在移动设备中通过执行行为分析操作推断应用状态的方法和系统与流程

文档序号:11890248阅读:215来源:国知局
在移动设备中通过执行行为分析操作推断应用状态的方法和系统与流程

移动和无线技术在过去几年已经得到爆炸式增长。该增长得益于更好的通信、硬件以及更可靠的协议。无线服务提供商现在能够为其消费者提供持续扩展的特征和服务队列,并且为用户提供针对信息、资源和通信的史无前例的访问级别。为了能够跟上这些增长,移动电子设备(例如,蜂窝电话、手表、耳机、遥控器等等)已经变得比过去更为复杂,并且现在通常包括多个处理器、片上系统(SoC)以及其他资源,其允许移动设备用户在其移动设备上执行复杂且耗电量大的软件应用(例如,视频流化、视频处理等等)。随着复杂度和功耗的增长,能够更好地利用移动设备的资源和能力的新的改进的处理解决方案将会有利于消费者。



技术实现要素:

各个方面包括用于通过如下方式来确定移动设备中的软件应用的执行状态的方法:在所述移动设备的处理器中监视软件应用或进程的活动以收集行为信息;基于所收集的行为信息来生成行为矢量;以及通过对所述行为矢量应用分类器模型来确定所述软件应用或进程的执行状态。在一个方面中,所述方法可以包括:基于所确定的执行状态来选择节能方案,并实施所选择的节能方案。在另一方面中,所述方法可以包括:通过对所述行为矢量应用所述分类器模型来预测所述软件应用或进程的未来执行状态;以及向调度器通知所确定的未来执行状态以使得所述调度器能够执行与所确定的未来执行状态相一致的动作。

在另一方面中,所述方法可以包括:确定所述软件应用或进程的操作系统执行状态;以及判断所确定的操作系统执行状态是否与所确定的执行状态相同。在另一方面中,所述方法可以包括:响应于判定操作系统执行状态与所确定的执行状态不相同,将所述软件应用分类为“非良性的(not benign)”。在另一方面中,所述方法可以包括:基于所确定的执行状态来选择行为分类器模型;以及使用所选择的行为分类器模型来判断所述软件应用是否是“非良性的”。在另一方面中,基于所确定的执行状态来选择行为分类器模型可以包括:选择特定于应用的分类器模型(application specific classifier model)。在另一方面中,基于所确定的执行状态来选择行为分类器模型可以包括:识别所述软件应用所使用的移动设备特征;以及选择所述行为分类器模型以包含所识别的特征。

在另一方面中,所述方法可以包括:判断所述软件应用或进程的执行状态是否与所述活动相关;响应于判定所述执行状态与所述活动相关,生成阴影特征值(shadow feature value),所述阴影特征值识别所述活动被监视期间所述软件应用或进程的执行状态;生成将所述活动与识别所述执行状态的所述阴影特征值相关联的第二行为矢量;以及使用所述第二行为矢量来判断所述活动是否是“非良性的”。

其他方面包括一种计算设备,所述计算设备可以包括处理器,所述处理器由处理器可执行指令配置为执行包括如下的操作:监视软件应用或进程的活动以收集行为信息;基于所收集的行为信息来生成行为矢量;以及通过对所述行为矢量应用分类器模型来确定所述软件应用或进程的执行状态。在一个方面中,所述处理器可以由处理器可执行指令配置为执行包括如下的操作:基于所确定的执行状态来选择节能方案;以及实施所选择的节能方案。

在另一方面中,所述处理器可以由处理器可执行指令配置为执行包括如下的操作:通过对所述行为矢量应用所述分类器模型来预测所述软件应用或进程的未来执行状态;以及向调度器通知所确定的未来执行状态以使得所述调度器能够执行与所确定的未来执行状态相一致的动作。在另一方面中,所述处理器可以由处理器可执行指令配置为执行包括如下的操作:确定所述软件应用或进程的操作系统执行状态;以及判断所确定的操作系统执行状态是否与所确定的执行状态相同。在另一方面中,所述处理器可以由处理器可执行指令配置为执行包括如下的操作:响应于判定操作系统执行状态与所确定的执行状态不相同,将所述软件应用分类为“非良性的”。

在另一方面中,所述处理器可以由处理器可执行指令配置为执行包括如下的操作:基于所确定的执行状态来选择行为分类器模型;以及使用所选择的行为分类器模型来判断所述软件应用是否是“非良性的”。在另一方面中,所述处理器可以由处理器可执行指令配置为执行操作以使得基于所确定的执行状态来选择行为分类器模型可以包括:选择特定于应用的分类器模型。在另一方面中,所述处理器可以由处理器可执行指令配置为执行操作以使得基于所确定的执行状态来选择行为分类器模型可以包括:识别所述软件应用所使用的移动设备特征;以及选择所述行为分类器模型以包含所识别的特征。

在另一方面中,所述处理器可以由处理器可执行指令配置为执行包括如下的操作:判断所述软件应用或进程的所述执行状态是否与所述活动相关;响应于判定所述执行状态与所述活动相关,生成阴影特征值,所述阴影特征值识别所述活动被监视期间所述软件应用或进程的执行状态;生成将所述活动与识别所述执行状态的所述阴影特征值相关联的第二行为矢量;以及使用所述第二行为矢量来判断所述活动是否是“非良性的”。

其他方面包括具有存储在其上的处理器可执行软件指令的非瞬态计算机可读存储介质,所述处理器可执行软件指令被配置为导致移动设备处理器执行包括如下的操作:监视软件应用或进程的活动以收集行为信息;基于所收集的行为信息来生成行为矢量;以及通过对所述行为矢量应用分类器模型来确定所述软件应用或进程的执行状态。在一个方面中,所存储的处理器可执行软件指令可以被配置为导致接收机设备的处理器执行包括以下的操作:基于所确定的执行状态来选择节能方案;以及实施所选择的节能方案。

在一个方面中,所存储的处理器可执行软件指令可以被配置为导致处理器执行包括以下的操作:通过对所述行为矢量应用所述分类器模型来预测所述软件应用或进程的未来执行状态;以及向调度器通知所确定的未来执行状态以使得所述调度器能够执行与所确定的未来执行状态相一致的动作。在一个方面中,所存储的处理器可执行软件指令可以被配置为导致处理器执行包括以下的操作:确定所述软件应用或进程的操作系统执行状态;以及判断所确定的操作系统执行状态是否与所确定的执行状态相同。

在一个方面中,所存储的处理器可执行软件指令可以被配置为导致处理器执行包括以下的操作:响应于判定操作系统执行状态与所确定的执行状态不相同,将所述软件应用分类为“非良性的”。在一个方面中,所存储的处理器可执行软件指令可以被配置为导致处理器执行包括以下的操作:基于所确定的执行状态来选择行为分类器模型;以及使用所选择的行为分类器模型来判断所述软件应用是否是“非良性的”。在一个方面中,所存储的处理器可执行软件指令可以被配置为导致处理器执行操作以使得基于所确定的执行状态来选择行为分类器模型可以包括:选择特定于应用的分类器模型。

在一个方面中,所存储的处理器可执行软件指令可以被配置为导致处理器执行操作以使得基于所确定的执行状态来选择行为分类器模型可以包括:识别所述软件应用所使用的移动设备特征;以及选择所述行为分类器模型以包含所识别的特征。在一个方面中,所存储的处理器可执行软件指令可以被配置为导致处理器执行包括以下的操作:判断所述软件应用或进程的执行状态是否与所述活动相关;响应于判定所述执行状态与所述活动相关,生成阴影特征值,所述阴影特征值识别所述活动被监视期间所述软件应用或进程的执行状态;生成将所述活动与识别所述执行状态的所述阴影特征值相关联的第二行为矢量;以及使用所述第二行为矢量来判断所述活动是否不是良性的。

其他方面包括一种移动计算设备,其具有:用于监视软件应用或进程的活动以收集行为信息的单元;用于基于所收集的行为信息来生成行为矢量的单元;以及用于通过对所述行为矢量应用分类器模型来确定所述软件应用或进程的执行状态的单元。在一个方面中,所述移动计算设备可以包括:用于基于所确定的执行状态来选择节能方案的单元;以及用于实施所选择的节能方案的单元。在一个方面中,所述移动计算设备可以包括:用于通过对所述行为矢量应用所述分类器模型来预测所述软件应用或进程的未来执行状态的单元;以及用于向调度器通知所确定的未来执行状态以使得所述调度器能够执行与所确定的未来执行状态相一致的动作的单元。在其他方面中,所述移动计算设备可以包括用于执行与任意上述方法操作相对应的功能的单元。

附图说明

本文包含附图并构成本说明书的组成部分,附图图示了本发明的多个示例性方面,并且与以上给出的一般性说明和以下给出的详细说明一起用于解释本发明的多个特征。

图1是适合于实施各个方面的示例性片上系统的组件方框图。

图2A是图示根据一个方面的示例性移动设备中的逻辑组件和信息流的方框图,该移动设备被配置为使用机器学习技术来确定软件应用的实际执行状态。

图2B是图示根据各个方面的示例性移动设备中的逻辑组件和信息流的方框图,该移动设备被配置为基于软件应用的实际执行状态来执行动态且自适应的行为观察和分析操作。

图3A是图示用于使用软件应用的实际执行状态来判断软件应用是“恶意的”还是“良性的”的一个方面的方法的过程流程图。

图3B是图示用于使用软件应用的实际执行状态来实施节能方案的一个方面的方法的过程流程图。

图3C是图示用于使用软件应用的实际执行状态来选择分类器模型并改善综合行为监视与分析系统的准确性和性能的一个方面的方法的过程流程图。

图3D是图示用于使用所述实际执行状态来改善综合行为监视与分析系统的准确性和性能并实施高效节能方案的另一个方面的方法的过程流程图。

图3E是图示用于使用所述实际执行状态来确定未来执行状态并提高移动设备性能的一个方面的方法的过程流程图。

图4是图示用于智能地产生行为矢量的一个方面的方法的过程流程图,所述行为矢量适用于判断移动设备行为是否与正常操作模式不一致,而不会消耗移动设备大量的处理、存储或电池资源。

图5是图示根据各个方面的在实施观察器模块和观察器系统服务(observer daemons)的计算系统中的逻辑组件和信息流的组件方框图。

图6是图示用于在移动设备上执行自适应观察的一个方面的方法的过程流程图。

图7是适用于各个方面的示例性移动设备的组件方框图。

图8是适用于各个方面的示例性服务器计算机的组件方框图。

具体实施方式

将参考附图详细说明各个方面。在任何可能时,在全部附图中使用相同的参考数字来指代相同或类似的部分。对于具体实例和实现方式的提及仅是为了举例说明的目的,而不旨在限制本发明或权利要求的保护范围。

总体而言,各个方面包括用于使用机器学习技术来确定移动设备的软件应用的执行状态的方法,所述执行状态独立于可从操作系统或软件应用获得的执行状态信息,以及被配置为实现所述方法的移动设备。在一个方面中,移动设备的处理器可以被配置为使用该应用及操作系统不可知的执行状态信息(application-and-operating-system-agnostic execution state information)来实施不会改变设备功能或可靠性的高效节能方案。在另一方面中,移动设备的处理器可以被配置为使用该应用及操作系统不可知的执行状态信息来改善综合行为监视与分析系统的准确性和性能,并使得移动设备能够更好地预测移动设备行为是否是良性的、可疑的、恶意的、或者造成移动设备的性能和/或功耗特性的降级。

通常,常规解决方案需要计算设备将软件应用分类为处于操作系统(例如,Android、Windows 8等等)所预先定义的某种执行状态(例如,后台、空、前台、可察觉、服务和可见)中。然而,这些执行状态可能未准确地说明软件应用的实际操作状态。另外,该操作系统执行状态信息(即操作系统所提供的状态信息)常常不包含可用于实施高效节能方案或准确地评估复杂移动设备行为的足够精细粒度的信息或细节。

由于常规解决方案需要计算设备依赖于由操作系统或软件应用提供的该信息,因此如果软件应用是恶意的或者计算设备已经被恶意软件感染或劫持,则这些解决方案可能是无效的。例如,如果计算设备被恶意应用感染,该恶意应用拦截并修改在系统软件与操作系统之间的通信,则系统软件会接收到不正确的状态信息并且由此不能使用该应用的实际执行状态来准确地判断该应用是否是恶意的。

为了克服常规解决方案的这些限制以及其他限制,各个方面包括方法和配有模块或组件的移动设备,其允许移动设备确定软件应用的执行状态,该执行状态独立于可从软件应用或操作系统获得的执行状态信息。

在一个方面中,移动设备可以配有状态估计与预测模块(和/或应用执行状态确定模块),其被配置为从移动设备的各种软件和硬件组件接收执行、事件和/或行为信息。所述信息可以包括以下任意项或全部:操作状态信息、事件信息(例如,表面触摸、点击、按键操作等等)、来自传感器的用于指示活动/非活动的信息、CPU/GPU使用级别、电池消耗级别、标识所实现功能的信息、资源状态信息、存储器事务信息、通信事务信息、以及与在移动设备中进行的有关于软件应用执行的各种行为、活动、操作和事件相关的其他类型的信息。

状态估计与预测模块(或应用执行状态确定模块)可以对其从软件和硬件组件接收的信息应用决策规则和机器学习算法,以推断、估计、预测或确定软件应用的执行状态,该执行状态独立于可从操作系统或应用获得的执行状态信息。就是说,状态估计与预测模块可以生成应用及操作系统不可知的执行状态信息,该应用及操作系统不可知的执行状态信息与由操作系统或软件应用提供的状态信息相比更为准确、更为细节并且粒度更精细。例如,状态估计与预测模块可以生成该执行状态信息以包括关于如下的详细统计:资源被应用软件所使用的持续时间、或该软件应用请求使用该资源的频率。移动设备随后可以使用该信息来判断操作系统执行状态信息是否准确,诸如被操作系统分类为处于“前台”状态中的软件应用是否实际上处于“空闲”执行状态中。

在一个方面中,移动设备的功率管理模块可以使用由状态估计与预测模块所提供的执行状态信息来在移动设备中实施高效的节能方案,所述节能方案平衡了移动设备的功耗和性能特性。在另一方面中,移动设备的行为监视与分析系统可以使用该执行状态信息来更好地预测移动设备行为是“良性的”还是“恶意的”。例如,行为监视与分析系统可以使用该应用及操作系统不可知的执行状态信息来识别并选择特定于应用的精简(lean)分类器模型,所述精简分类器模型评估与分析同软件应用的执行相关联的复杂移动设备行为最相关的特征或状况。

术语“移动计算设备”和“移动设备”在本文中可互换地使用,以指代以下任意一种或全部:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数字助理(PDA)、笔记本电脑、平板电脑、智能本、超级本、掌上电脑、无线电子邮件接收机、具有多媒体互联网功能的蜂窝电话、无线游戏控制器、以及类似的个人电子设备,其包括存储器和关注于性能的可编程处理器,并在电池供电下操作从而使得节电方法对其有利。虽然各个方面对于具有有限资源并在电池供电下运行的移动计算设备(诸如智能电话)而言特别有利,但是总的来说这些方面在包括处理器并执行应用程序的任何电子设备中都有用。

本文使用术语“性能降级”表示宽泛范围的各种不期望的移动设备操作和特性,诸如更长的处理时间、更低的实时响应、更低的电池使用时间、私有数据的丢失、恶意经济活动(例如,发送未授权的付费(premium)SMS消息),拒绝服务(DoS)、与强占有关的操作。

如上所述,基于所观察的行为来确定应用的状态对于监视移动设备行为以识别造成性能降级的问题和恶意软件的系统和方法而言是有用处的。通常,移动设备的性能和功率效率随时间而降级。最近,杀毒公司(例如,McAfee、Symantec等等)已经开始出售移动版杀毒、防火墙和加密产品,其目的是减缓该降级。然而,这些解决方案中的很多依赖于在移动设备上周期地执行计算量大的扫描引擎,这会消耗移动设备很多的处理和电池资源,使得移动设备在延长的时间段内速度变慢或者导致移动设备无法使用,和/或以其他方式使用户体验变差。另外,这些解决方案通常受限于检测已知的病毒和恶意软件,并且不解决经常组合起来导致移动设备随时间性能降级的多种复杂因素和/或交互(例如,在性能降级不是由病毒或恶意软件造成时)。由于这些原因以及其他原因,现有的杀毒、防火墙和加密产品并不提供合适的解决方案来识别会造成移动设备随时间降级的大量因素,避免移动设备降级,或高效地将老旧移动设备恢复到其原始状况。

移动设备是资源约束型系统,其具有相对有限的处理、存储器和功率资源。现代移动设备还是复杂系统,并且存在大量因素会造成移动移动的性能和功率使用级别随时间降级,包括设计差的软件应用、恶意软件、病毒、碎片化存储器、后台进程等等。由于这些因素的数量、多样性和复杂性,经常无法评估会使得现代移动设备的复杂但资源约束型系统的性能和/或功率使用级别降级的全部各种进程、组件、行为或因素(或其组合)。因此,用户、操作系统和/或应用程序(例如,杀毒软件等等)难以准确且高效地识别这些问题的源头。因此,移动设备用户当前几乎没有什么补救措施能够避免移动设备的性能和功率使用级别随时间而降级,以及将老旧移动设备恢复到其原始性能和功率使用级别。

用于确定应用的状态的各个方面可以由综合行为监视与分析系统用来智能地且高效地识别、避免、和/或纠正经常造成移动设备的性能和/或功率使用级别随时间而降级的状况、因素和/或移动设备行为。在这种行为监视与分析系统中,移动设备的观察器进程、系统服务、模块或子系统(本文中统称为“模块”)可以在移动设备系统的各个级别上装配或协调各种应用程序编程接口(API)、寄存器、计数器或其他组件(本文中统称为“装配组件”)。观察器模块可以通过从装配组件收集行为信息,来持续地(或接近持续地)监视移动设备行为。移动设备还可以包括分析器模块,并且观察器模块可以将所收集的行为信息发送给分析器模块。分析器模块可以被配置为执行实时行为分析操作,其可以包括对所收集的行为信息执行、运行和/或应用数据、算法、分类器或模型(本文统称为“分类器模块”),以判断移动设备行为是“良性的”还是“非良性的”(例如,恶意的或造成性能降级的)。移动设备随后可以使用该分析的结果来恢复、解决、隔离或以其他方式修复或应对所识别的问题。

通常,在移动设备上每个软件应用执行多个任务或活动。特定的任务/活动固有地需要操作系统或软件应用(或进程、线程等等)处于支持或兼容这些任务/活动的执行状态中。例如,使用相机、激活麦克风来录制音频、发送短消息服务(SMS)消息以及收集加速计数据都是通常需要用户与移动设备的某种形式的交互(例如,用户按下相机的快门释放按键、键入文本、点击发送按键等等)的任务/活动。因此,这些活动通常必须在“前台”执行状态中执行,或者在支持用户与移动设备的交互的另一执行状态中执行。

当在某个不支持用户与移动设备的高级交互的执行状态中(例如在背景中)执行这些任务/活动或其他类似任务/活动时,该操作状况可以是一个关于与该活动相关联的移动设备行为是恶意的或者应该受到额外或更为密切的监管、监视或分析的表征。就是说,在移动设备中执行特定任务/活动的特定执行状态可以是一个关于移动设备行为是否应该受到额外或更为密切的监管、监视和/或分析的表征。然而,由操作系统和应用程序提供的一般性且预定义的执行状态信息经常不准确,或者不包括可用于如下的信息:实施高效节能方案、判断应该使用哪些行为模式(或分类器模式)来评估应用、和/或准确地将与软件应用相关联的复杂移动设备行为分类为“恶意的”或“良性的”。

各个方面包括配有状态估计与预测模块(和/或应用执行状态确定模块)的移动设备,所述模块被配置为从移动设备的各种软件/硬件组件接收信息,并对所接收的信息应用机器学习技术来计算该应用的实际执行状态。这些软件/硬件组件可以被配置为监视由移动设备中的软件应用所执行的或与软件应用的执行相关的宽泛的各种活动和任务,并且由此能够访问与通常可从操作系统或软件应用获得的信息相比而言额外的、更为详细的、和/或粒度更精细的信息。因此,状态估计与预测模块可以产生与由软件应用或操作系统提供或可从软件应用或操作系统获得的状态信息相比更为准确的执行状态信息。

另外,状态估计与预测模块可以产生与应用或操作系统提供的状态信息不同的执行状态信息。例如,状态估计与预测模块确定被操作系统分类为处于“前台”执行状态中的软件应用的实际执行状态并未正在使用类似应用所使用的资源、并未正在执行与由类似应用所执行的操作类似的处理或存储器访问操作、并且在过去10秒内并未接收用户输入。在该情况下,状态估计与预测模块确定该软件应用的实际执行状态是“空闲”。

通过确定所选软件应用(或进程、线程等等)的实际执行状态,各个方面允许移动设备实施更为高效的节能方案。例如,移动设备可以使用软件应用的实际执行状态来识别该应用的实际功耗或处理需要,并判断应该对处理核心增加供电还是减少供电来满足这些需求。移动设备还可以使用该信息来判断何时应该对特定的处理核心增加供电或减少供电以便增加其电池使用时间、减少延迟或提高性能。

移动设备还可以使用软件应用的实际执行状态来更好地选择行为模型,将其操作集中在评估移动设备的最重要的特征上,以及更好地预测某个行为是良性的还是恶意的。例如,观察器和/或分析器模块可以被配置为从状态估计与预测模块接收应用及操作系统不可知的执行状态信息,并使用该信息来将其操作集中在评估移动设备的最相关特征上。

在各个方面中,分析器模块可以被配置为使用应用及操作系统不可知的执行状态信息来选择分类器模型,所述分类器模型关注于与以下最相关的特征:分析特定软件应用或行为、更好地确定软件应用的意图(“恶意的”还是“良性的”)、和/或更好地判断移动设备行为是“造成性能降级的”还是“良性的”。类似地,观察器模块可以被配置为使用该信息更好地识别需要监视的特征,和/或确定用以监视所选特征的粒度。

在各个方面中,观察器和/或分析器模块可以被配置为使用应用及操作系统不可知的执行状态信息结合操作系统执行状态信息,来选择特定于应用的精简分类器模型,其包括被关注数据模型,该被关注数据模型仅包括/测试与判断该特定软件应用是“良性的”还是“非良性的”(例如,“恶意的”或“造成性能降级的”)最相关的特征/条目。

各个方面可以包括被配置为执行行为分析操作以确定应用或进程的状态(例如,运行于前台、执行特定活动、空闲、访问联系列表等等)的组件。

各个方面还可以包括被配置为使用行为分析操作的结果和猜测/预测技术来预测移动设备的未来行为或各种应用或进程的未来状态或活动的组件。移动设备可以使用该预测的未来行为/状态/活动信息来识别很有可能在未来使用的资源,并执行各种动作或操作来为所述未来行为/状态/活动做准备。例如,在一个方面中,移动设备可以包括调度器组件,其被配置为基于预测的未来状态来调度进程或任务以在该设备的处理核心中执行,和/或执行与所确定的未来执行状态一致的其他动作或操作。

例如,移动设备可以确定所观察的活动/状态包括读取联系列表,并使用该信息来确定/预测未来的活动/状态可能包括“发送SMS消息”或“建立语音通信链路”。移动设备于是可以将这些预测的未来活动/状态通知给其操作系统调度器。调度器可以使用该信息执行与所确定的未来执行活动/状态一致的动作或操作。例如,调度器可以响应于确定所预测的未来活动是大处理器开销的、重要的、或具有高优先级,而从运行队列中移除低优先级进程。

各个方面可以在多个不同移动设备中实施,包括单处理器系统和多处理器系统以及片上系统(SOC)。图1示出了可以在实施各个方面的计算设备中使用的示例性SOC 100架构。SOC 100可以包括多个异构处理器,诸如数字信号处理器(DSP)101、调制解调处理器104、图形处理器106和应用处理器108。SOC 100还可以包括一个或多个协处理器110(例如,矢量协处理器),其连接到所述异构处理器101、104、106、108中的一个或多个。每个处理器101、104、106、108、110可以包括一个或多个核心,并且每个处理器/核心可以独立于其他处理器/核心来执行操作。例如,SOC 100可以包括执行第一类操作系统(例如,FreeBSD、LINIX、OS X等等)的处理器,和执行第二类操作系统(例如Microsoft Windows 8)的处理器。

SOC 100还可以包括模拟电路和定制电路114,用于管理传感器数据、模数转换、无线数据传输,以及用于执行其他专用操作,诸如处理游戏和电影的编码音频信号。SOC 100还可以包括系统组件和资源116,诸如电压调节器、振荡器、锁相环、外设桥、数据控制器、存储器控制器、系统控制器、存取端口、定时器和用于支持处理器和运行在计算设备上的客户机的其他类似组件。

系统组件/资源116和定制电路114可以包括用于与诸如相机、电子显示屏、无线通信设备、外部存储器芯片等等的外设对接的电路。处理器101、104、106、108可以经由互连/总线模块124互连到一个或多个存储器元件112、系统组件以及资源116和定制电路114,互连/总线模块124可以包括可重配置的逻辑门阵列和/或实施总线架构(例如,CoreConnect、AMBA等等)。通信可以由诸如高性能片上网络(NoC)之类的高级互连来提供。

SOC 100还可以包括用于与SOC外部的资源(诸如时钟118和电压调节器120)通信的输入/输出模块(未图示)。SOC外部的资源(例如,时钟118和电压调节器120)可以由两个或更多个内部SOC处理器/核心(例如,DSP 101、调制解调处理器104、图形处理器106、应用处理器108等等)共享。

SOC 100还可以包括适合于从传感器收集传感器数据的硬件和/或软件组件,包括扬声器、用户接口元件(例如输入按键、触摸显示屏等等)、麦克风阵列、用于监视物理状况(例如,位置、方向、运动、定向、振动、压力等等)的传感器、相机、罗盘、GPS接收机、通信电路(例如,WLAN、WiFi等等),以及现代电子设备的其他已知组件(例如,加速计等等)。

除了在上述SOC 100中实施之外,各个方面可以在宽泛的多种计算系统中实施,所述计算系统可以包括单个处理器、多个处理器、多核心处理器或其任意组合。

图2A图示在一个方面的移动设备102中的示例性逻辑组件和信息流,移动设备102被配置为使用机器学习技术来确定移动设备的软件应用的执行状态,该执行状态独立于可从操作系统或软件应用获得的状态信息。在图2A中图示的示例中,移动设备102包括应用观察器模块202、应用行为提取器模块204、应用执行状态确定模块206、功率管理模块208、行为观察器模块222和行为分析器模块224。在一个方面中,应用执行状态确定模块206可以包括状态估计与预测模块(未图示)。

每个模块202-224可以实施为软件、硬件或其任意组合。在各个方面中,模块202-224可以实施在操作系统的多个部分中(例如,在内核中,在内核空间中,在用户空间中等等)、在分开的程序或应用中、在专用硬件缓冲器或处理器中、或其任意组合。在一个方面中,模块202-224中的一个或多个模块可以实施为在移动设备102的一个或多个处理器上执行的软件指令。

应用观察器模块202可以被配置为监视移动设备的各种软件和硬件组件,并收集与以下相关的信息:通信、事务、事件、或与软件应用的操作或任务的性能或软件应用在移动设备处理核心上的执行相关联的被监视组件的操作。在各个方面,应用观察器模块202可以被配置为监视行为观察器模块222所监视的特征、行为或组件中的任意或全部,行为观察器模块222还在图2B中图示并在以下更为详细地论述。应用观察器模块202还可以被配置为针对移动设备持续地监视由于软件应用的操作所导致的移动设备的配置和/或状态的改变。应用观察器模块202还可以监视会影响移动设备的性能或效率的配置和/或状态改变。应用观察器模块202可以将所收集的信息存储在存储器中(例如在日志文件等等中)和/或向应用行为提取器模块204发送(例如经由存储器写入、函数调用等等)所产生的观察数据。

应用行为提取器模块204可以被配置为基于应用观察器模块202收集的观察数据或信息来产生一个或多个行为矢量。该信息可以包括:操作状态信息、事件信息(例如,表面触摸、点击、按键操作等等)、来自传感器的指示活动/非活动的信息、CPU/GPU使用级别、电池消耗级别、标识所实施的功能的信息、资源状态信息、存储器事务信息、通信事务信息、以及与在移动设备中进行的各种活动和事件相关的其他类型的信息。在各个方面中,应用行为提取器模块204可以被配置为执行可由行为分析器模块224(以下进一步详细论述)执行的操作中的任意或全部,以提取软件应用的行为。应用行为提取器模块204可以将所生成的行为矢量和/或所提取的行为信息发送给应用执行状态确定模块206以便进一步分析。

应用执行状态确定模块206可以接收行为矢量并将其与一个或多个行为模块进行比较来确定软件应用的精确执行状态。在一个方面中,这些行为模块可以是分类器模块,所述分类器模块包括适合于评估或识别特定软件应用所使用的移动设备特征的多个测试条件。特定软件应用或特定软件应用类型所使用的特征可以通过监视或评估如下来确定:移动设备操作、移动设备事件、数据网络活动、系统资源使用、移动设备状态、进程间通信、驱动器统计、硬件组件状态、硬件计数器、软件应用的动作或操作、软件下载、设备或组件设置的改变、应用级的状况或事件、无线电级的状况和事件、传感器级的状况和事件、定位硬件、个域网硬件、麦克风硬件、扬声器硬件、相机硬件、屏幕硬件、通用串行总线硬件、同步硬件、定位硬件驱动器、个域网硬件驱动器、近场通信硬件驱动器、麦克风硬件驱动器、扬声器硬件驱动器、相机硬件驱动器、陀螺仪硬件驱动器、浏览器支持硬件驱动器、电池硬件驱动器、通用串行总线硬件驱动器、存储设备硬件驱动器、用户接口硬件驱动器、同步硬件驱动器、无线电接口硬件驱动器、以及定位硬件、近场通信(NFC)硬件、屏幕硬件、浏览器支持硬件、存储设备硬件、加速计硬件、同步硬件、双SIM硬件、无线电接口硬件和与任何专用硬件无关或相关的特征。

在一个方面中,应用执行状态确定模块206可以被配置为对行为矢量应用分类器模型,以推断、估计、预测或确定软件应用的执行状态,该执行状态与从操作系统或软件应用获得的状态信息无关。就是说,应用执行状态确定模块206可以产生应用及操作系统不可知的执行状态信息,该应用及操作系统不可知的执行状态信息与由操作系统或软件应用提供的状态信息相比更为准确、更为细节并且粒度更精细。应用执行状态确定模块206还可以生成包含与使用资源的持续时间或应用请求资源的频率相关的详细统计的应用及操作系统不可知的执行状态信息。在各个方面中,应用执行状态确定模块206可以被配置为执行可由行为分析器模块224执行的操作中的任意或全部,以确定软件应用的实际执行状态。

应用执行状态确定模块206可以被配置为将所确定的执行状态信息发送给行为观察器模块222、行为分析器模块224和/或功率管理模块208。

功率管理模块208可以被配置为使用执行状态信息来选择或实施节能方案,所述节能方案将各种资源和处理核心置于低功率状态。在各个方面中,功率管理模块208可以使用执行状态信息来识别应用软件的功耗或处理要求,并基于这些功耗或处理要求来判断应该对处理核心增加供电还是减少供电。功率管理模块208还可以判断应该何时对处理核心增加功率以便实现移动计算设备上的功耗与性能的最佳平衡。

行为观察器模块222可以被配置为使用执行状态信息来将其操作集中于监视与对软件应用或移动设备的行为进行分类最相关的特征或状况。类似地,行为分析器模块224可以被配置为使用状态信息将其操作集中于分析与判断软件应用或移动设备的行为是“恶意的”还是“良性的”最相关的特征或状况。例如,行为观察器模块222和/或行为分析器模块224可以使用应用及操作系统不可知的执行状态信息结合操作系统执行状态信息来选择特定于应用的精简分类器模型,其识别应该被监视和/或分析以便判断软件应用或移动设备行为是“恶意的”还是“良性的”的移动设备特征。以下将参考图2B更为详细地论述行为观察器模块222和行为分析器模块224。

图2B图示在一个方面的移动设备102中的示例性逻辑组件和信息流,移动设备102被配置为判断特定的移动设备行为、软件应用或进程是恶意的/造成性能降级的、可疑的还是良性的。在图2B中图示的示例中,移动设备102包括行为观察器模块222、行为分析器模块224、外部上下文信息模块226、和致动器模块228。

每个模块222-228可以实施为软件、硬件或其任意组合。在各个方面中,模块222-228可以实施在操作系统的多个部分中(例如,在内核中,在内核空间中,在用户空间中等等)、在分开的程序或应用中、在专用硬件缓冲器或处理器中、或其任意组合。在一个方面中,模块222-228中的一个或多个模块可以实施为在移动设备102的一个或多个处理器上执行的软件指令。

行为观察器模块222可以被配置为在移动设备的各个级别/模块中装配或协调应用程序编码接口(API),以及经由所装配的API监视/观察在一个时间段内在各个级别/模块上的移动设备的操作和事件(例如,系统事件、状态改变等等),收集与所观察的操作/事件相关的信息,智能地对所收集的信息进行过滤,基于过滤后的信息产生一个或多个观察数据,并将所生成的观察数据存储在存储器中(例如,在日志文件等等中)和/或将所生成的观察数据发送(例如经由存储器写入、函数调用等等)到行为分析器模块224。

行为观察器模块222可以通过收集与如下相关的信息来监视/观察移动设备的操作和事件:在应用框架中的库应用程序编程接口(API)或运行时(run-time)库、系统调用API、文件系统和联网子系统操作、设备(包括传感器设备)状态改变和其他类似事件。行为观察器模块222还可以监视文件系统活动,其可以包括搜索文件名、文件访问的类别(个人信息或普通数据文件),创建或删除文件(例如,类型exe、zip等等),文件读出/写入/搜索操作、改变文件权限等等。

行为观察器模块222还可以监视数据网络活动,其可以包括连接类型、协议、端口号、设备连接的服务器/客户机、连接数量、通信量或通信频率等等。行为观察器模块222可以监视电话网络活动,其可以包括监视所发出的、接收的或截获的呼叫或消息(例如SMS等等)的类型和数量(例如,所设置的付费通话的数量)。

行为观察器模块222还可以监视系统资源使用,其可以包括监视分叉(forks)的数量、存储器访问操作、文件打开的数量等等。行为观察器模块222可以监视移动设备的状态,其可以包括监视各种因素,诸如显示屏是开还是关、设备被锁还是未被解锁、剩余电池量、相机状态等等。行为观察器模块222还可以通过例如监视针对关键服务(浏览器、协议提供者(contract provider))的意图、进程间通信的级别、弹出窗口等等,来监视进程间通信(IPC)。

行为观察器模块222还可以监视/观察驱动器统计和/或一个或多个硬件组件的状态,所述硬件组件可以包括相机、传感器、电子显示屏、WiFi通信组件、数据控制器、存储器控制器、系统控制器、访问端口、定时器、外设、无线通信组件、外部存储器芯片、电压调节器、振荡器、锁相环、外设桥、和用于支持处理器和运行在移动计算设备上的客户机的其他类似组件。

行为观察器模块222还可以监视/观察一个或多个硬件计数器,所述硬件计数器指示移动计算设备和/或移动设备子系统的状态或情况。硬件计数器可以包括处理器/核心的专用寄存器,其被配置为存储在移动计算设备中发生的与硬件相关的活动或事件的计数或状态。

行为观察器模块222还可以监视/观察如下的动作或操作:软件应用、从应用下载服务器(例如,的应用商店服务器)下载软件、软件应用所使用的移动设备信息、呼叫信息、文本消息发送信息(例如,SendSMS、BlockSMS、ReadSMS等等)、媒体消息发送信息(例如,ReceiveMMS),用户账户信息、定位信息、相机信息、加速计信息、浏览器信息、基于浏览器的通信的内容、基于语音的通信的内容、短距无线电通信(例如,蓝牙、WiFi等等),基于文本的通信的内容、所记录的音频文件的内容、电话号码本或联系信息、联系列表等等。

行为观察器模块222可以监视/观察移动设备的传输或通信,包括包含如下的通信:语音邮件(VoiceMailComm)、设备标识符(DeviceIDComm)、用户账户信息(UserAccountComm)、日历信息(CalendarComm)、定位信息(LocationComm)、所记录的音频信息(RecordAudioComm)、加速计信息(AccelerometerComm)等等。

行为观察器模块222可以监视/观察对如下的使用以及更新/改变:罗盘信息、移动设备设置、电池使用时间、陀螺仪信息、压力传感器、磁传感器、屏幕活动等等。行为观察器模块222可以监视/观察向软件应用发送和从软件应用发送的通知(AppNotifications),应用更新等等。行为观察器模块222可以监视/观察与第一软件应用请求下载和/或安装第二软件应用相关的状况或事件。行为观察器模块222可以监视/观察与用户验证(诸如密码输入等等)相关的状况或事件。

行为观察器模块222可以被配置为在一个时间段内监视/观察任何移动设备行为。这些观察可以针对一个设置的时间段,或是可累积的,诸如在连续的学习过程中。因此,移动设备操作时间越长,则可以收集越多的行为观察数据。

行为观察器模块222还可以监视/观察在移动设备的多个级别上的状况或事件,包括应用级、无线电级和传感器级。应用级观察可以包括:经由面部识别软件来观察用户、观察社交流、观察用户输入的笔记、观察与PassBook/Google Wallet/Paypal/等等的使用相关的事件。应用级观察还可以包括观察与虚拟专用网(VPN)的使用相关的事件,以及与同步、语音搜索、语音控制(例如,通过说出一个单词来锁定/解锁电话)、语言翻译器、计算数据的卸载、视频流化、无用户活动的相机使用、无用户活动的麦克风使用等等相关的事件。

无线电级观察可以包括确定以下任一个或多个的存在、存有或数量:在建立无线电通信链路或发送信息之前与移动设备的用户交互、双/多用户标识模块(SIM)卡、互联网无线电、移动电话绑定、计算数据的卸载、设备状态通信、作为游戏控制器或家用控制器的使用、车辆通信、移动设备同步等等。无线电级观察还可以包括监视用于定位、对等(p2p)通信、同步、车辆与车辆的通信和/或机器与机器通信(m2m)的无线电(WiFi、WiMax、蓝牙等等)的使用。无线电级观察还可以包括监视网络业务使用、统计或简档。

传感器级观察可以包括:监视磁传感器或其他传感器以确定移动设备的使用和/或外部环境。例如,移动设备处理器可以被配置为判断电话是在套中(例如,经由被配置为感测套中的磁体的磁传感器)还是在用户口袋中(例如,经由相机或光传感器所检测的光的量)。检测到移动设备在套中可以与识别可疑行为相关,这是因为,例如,当移动设备在套中时发生的与用户的有效使用相关的活动和功能(例如,拍照或视频、发消息、进行语音通话、记录声音等等)是在移动设备上执行的恶意进程的标志(例如,用于跟踪或监视用户)。

与使用或外部环境相关的传感器级观察的其他示例可以包括:检测NFC信号传送、从信用卡扫描器、条码扫描器或移动标签读取器收集信息、检测通用串行总线(USB)充电电源的存在、检测键盘或辅助设备已经耦合到移动设备、检测移动设备已经耦合到计算设备(例如,经由USB等等)、确定LED、闪光灯、闪光信号灯、或光源是否已经被修改或无效(例如,恶意地无效紧急信号传送应用等等)、检测扬声器或麦克风已经打开或上电、检测充电或功率事件、检测移动设备正在被用作游戏控制器等等。传感器级观察还可以包括:从医学或医疗传感器或通过扫描用户身体来收集信息,从插入USB/音频插孔的外部传感器收集信息、从触觉或触感传感器(例如经由振动器接口等等)收集信息,收集与移动设备的热状态相关的信息,等等。

为了将被监视的因素数量减少到一个可管理的水平,在一个方面中,行为观察器模块222可以通过监视/观察行为或因素的初始集合来执行粗糙观察,所述行为或因素的初始集合是会造成移动设备降级的全部因素的一个小子集。在一个方面中,行为观察器模块222可以从服务器模块和/或云服务或网络中的组件接收该行为和/或因素的初始集合。在一个方面中,该行为/因素的初始集合可以在分类器模型中指定。

每个分类器模型可以是包括可由移动设备处理器用于评估移动设备的行为的特定特征或方面的数据和/或信息结构(例如,特征矢量、行为矢量、组件列表等等)的行为模型。每个分类器模型还可以包括针对监视移动设备中的多个特征、因素、数据点、条目、API、状态、状况、行为、应用、进程、操作、组件(统称为“特征”)的决策标准。分类器模型可以预先安装在移动设备上,从网络服务器下载或接收,在移动设备中生成,或其任意组合。分类器模型可以通过使用众包解决方案(crowd sourcing solution)、行为建模技术、机器学习算法等等来产生。

每个分类器模型可以被分类为完备分类器模型或精简分类器模型。完备分类器模型可以是一个鲁棒的数据模块,其根据大训练数据集产生,所述大训练数据集可以包括几千个特征和数十亿条目。精简分类器模型可以是一个更集中的数据模型,其从精简数据集产生,所述精简数据集仅包括/测试与判断特定移动设备行为是“良性的”还是“非良性的”(例如,恶意的或造成性能降级的)最相关的特征/条目。

本地产生的精简分类器模型是在移动设备中产生的精简分类器模型。基于应用的分类器模型可以是特定于应用的分类器模型或特定于应用类型的分类器模型。特定于应用的分类器模型是包括这样的集中数据模型的分类器模型:所述集中数据模型仅包括/测试与判断特定软件应用是“良性的”还是“非良性的”(例如,恶意的或造成性能降级的)最相关的特征/条目。特定于应用类型的分类器模型是包括这样的集中数据模型的分类器模型:所述集中数据模型仅包括/测试与判断特定类型的软件应用是“良性的”还是“非良性的”(例如,恶意的或造成性能降级的)最相关的特征/条目。特定于设备的分类器模型可以是包括这样的集中数据模型的分类器模型:所述集中数据模型仅包括/测试被确定为与对特定移动设备中的行为进行分类最相关的特定于移动设备的特征/条目。特定于设备类型的分类器模型可以是包括这样的集中数据模型的分类器模型:所述集中数据模型仅包括/测试与对特定类型(例如,相同的制造商、型号、配置等等)的移动设备中的行为进行分类最相关的特征/条目。

在一个方面中,行为分析器模块224可以从行为观察器模块222接收观察数据,将接收的信息(即观察数据)与从外部上下文信息模块226接收的上下文信息进行比较,并将分类器模型应用于接收的信息以识别与造成(或可能造成)设备随时间降级或以其他方式造成设备上的问题的所接收观察数据相关联的子系统、进程和/或应用。

在一个方面中,行为分析器模块224可以包括用于以下的智能:使用有限的信息集合(即,粗糙的观察数据)来识别正在造成(或可能造成)设备随时间降级或以其他方式造成设备上的问题的行为、进程或程序。例如,行为分析器模块224可以被配置为分析从各个模块(例如,行为观察器模块222、外部上下文信息模块226等等)收集的信息(例如,采用观察数据的形式),学习移动设备的正常操作行为,并基于比较的结果产生一个或多个行为矢量。行为分析器模块224还可以对分类器模块应用行为矢量来判断特定的移动设备行为、软件应用或进程是否是造成性能降级的/恶意的、良性的、或可疑的。

当行为分析器模块224确定行为、软件应用或进程是“恶意的”或“造成性能降级的”时,行为分析器模块224可以通知致动器模块228,致动器模块228可以执行各种动作或操作来纠正被判定为“恶意的”或“造成性能降级的”的移动设备行为,和/或执行操作来恢复、解决、隔离或以其他方式修复所识别的问题。

当行为分析器模块224确定行为、软件应用或进程是可疑的时,行为分析器模块224可以通知行为观察器模块222,行为观察器模块222可以基于从行为分析器模块224接收的信息(例如,实时分析操作的结果)调节其观察粒度(即,对移动设备行为进行观察的细节等级)和/或改变被观察的行为,产生或收集新的或额外的行为信息,并将该新的/额外的信息发送给行为分析器模块224以便进行进一步分析/分类。在行为观察器模块222与行为分析器模块224之间的这种反馈通信使得移动设备102能够递归地增加观察粒度(即,进行越来越精细或细节的观察)或改变被观察的特征/行为,直到识别出可疑的或造成性能降级的移动设备行为的源头为止、直到达到了处理或电池消耗阈值为止、或直到移动设备处理器确定无法通过观察粒度的进一步增加识别可疑的或造成性能降级的移动设备行为的源头为止。这种反馈通信还使得移动设备12能够在移动设备中本地调节或修改分类器模型,而不会消耗移动设备大量的处理、存储器或电量资源。

在一个方面中,行为观察器模块222和行为分析器模块224可以分别地或一起来提供对计算系统的行为的实时行为分析,以便从有限且粗糙的观察数据中识别可疑的行为,动态地确定要进行更细节观察的行为,以及动态地确定观察所需的细节级别。以这种方式,行为观察器模块222使得移动计算设备102能够高效地识别并避免在移动计算设备上发生的问题,而不会需要设备上的大量处理器、存储器或电池资源。

在各个方面中,行为观察器模块222和/或行为分析器模块224可以被配置为通过以下来分析移动设备行为:识别需要密切监视的关键数据资源,识别与关键数据资源相关联的中间资源,监视软件应用在访问关键数据资源和中间资源时做出的API调用,识别由API调用所消耗或产生的移动设备资源,识别软件应用的指示恶意活动的API调用模式,基于所识别的API调用模式和所识别的移动设备资源生成轻量级(light-weight)行为签名,使用轻量级行为签名执行行为分析操作,并基于行为分析操作来判断软件应用是恶意的还是良性的。

在各个方面中,行为观察器模块222和/或行为分析器模块224可以被配置为通过以下来分析移动设备行为:识别在移动设备上执行的软件应用使用最频繁的API,在移动设备的存储器中的API日志中存储关于所识别的热门API的使用的信息,以及基于存储在API日志中的信息来执行行为分析操作以识别与正常操作模式不一致的移动设备行为。在一个方面中,可以生成API日志,使得所述API日志被组织为:将在API调用间保持相同的通用字段的值存储在与特定于每次API调用的特定字段的值分开的表格中。还可以生成API日志,使得特定字段的值存储在表格中,并且哈希值存储在存储有所述通用字段的值的所述分开的表格中。

在各个方面中,行为观察器模块222和/或行为分析器模块224可以被配置为通过以下来分析移动设备行为:接收包括有限状态机的完备分类器模型,所述有限状态机适合于转换或表示为多个Boosted决策桩(boosted decision stumps),基于完备分类器生成移动设备中的精简分类器模型,并使用移动设备中的精简分类器模型来将移动设备的行为分类为良性的或非良性的(例如,恶意的,造成性能降级的,等等)。在一个方面中,基于完备分类器模型生成精简分类器模型可以包括:确定在不会消耗移动设备大量的处理、存储器或电量资源的情况下应该被评估以对移动设备行为进行分类的唯一性测试条件的数量;通过以下来生成测量条件列表:顺序地遍历Boosted决策桩列表,并且将与每一个顺序遍历的Boosted决策桩相关联的测试条件插入测试条件列表中,直到测试条件列表可以包括所确定数量的唯一性测试条件为止;以及,生成精简分类器模型以仅包含那些用于测试在所生成的测试条件列表中包含的多个测试条件之一的Boosted决策桩。

在各个方面中,行为观察器模块222和/或行为分析器模块224可以被配置为使用移动设备的特定于设备的信息(例如,能力和状态信息),在多个测试条件中识别与对移动设备的行为进行分类相关的特定于移动设备的测试条件,生成仅包括所识别的特定于移动设备的测试条件的精简分类器模型,并使用在移动设备中的所生成的精简分类器模型来对移动设备的行为进行分类。在一个方面中,可以生成精简分类器模型以仅包括用于评估与移动设备的当前操作状态或配置相关的移动设备特征的决策节点。在另一个方面中,生成精简分类器模型可以包括:确定在不会消耗移动设备大量资源(例如,处理、存储器或电量资源)的情况下应该被评估以对行为进行分类的唯一性测试条件的数量;通过以下来生成测量条件列表:在完备分类器模型中顺序地遍历所述多个测试条件;将那些与对移动设备的行为进行分类相关的测试条件插入测试条件列表中,直到测试条件列表包括所确定数量的唯一性测试条件为止;以及,生成精简分类器模型以包含在完备分类器模型中包括的、测试在所生成的测试条件列表中包括的条件之一的决策节点。

在各个方面中,行为观察器模块222和/或行为分析器模块224可以被配置为通过以下来识别与移动设备的正常操作模式不一致的移动设备行为:监视软件应用或进程的活动,确定软件应用/进程的操作系统执行状态,并且基于在活动被监视期间软件应用或进程的活动和/或操作系统执行状态来判断所述活动是否是良性的。在另一个方面中,行为观察器模块222和/或行为分析器模块224可以判断应用软件或进程的操作系统执行状态是否与所述活动相关,生成阴影特征值,所述阴影特征值识别活动被监视期间软件应用或进程的操作系统执行状态,生成将所述活动与识别所述操作系统执行状态的所述阴影特征值相关联的行为矢量,以及使用所述行为矢量来判断所述活动是否是良性的、可疑的、或非良性的(例如,恶意的或造成性能降级的)。

在各个方面中,行为观察器模块222和/或行为分析器模块224可以被配置为通过以下来识别与移动设备的正常操作模式不一致的移动设备行为:监视软件应用或进程的活动,确定软件应用/进程的应用及操作系统不可知执行状态,并基于活动被监视期间软件应用的活动和/或应用及操作系统不可知执行状态来判断所述活动是否是良性的。在另一个方面中,行为观察器模块222和/或行为分析器模块224可以判断软件应用的应用及操作系统不可知执行状态是否与所述活动相关,并生成将所述活动与所述应用及操作系统不可知执行状态相关联的行为矢量,并使用所述行为矢量来判断所述活动是否是良性的、可疑的、或非良性的(例如,恶意的或造成性能降级的)。移动设备还可以使用所述应用及操作系统不可知执行状态来选择分类器模型(例如,特定于应用的分类器模型),并将所述行为矢量应用于所选择的分类器模型以判断移动设备行为是否与移动设备的正常操作模式不一致。

在各个方面中,移动设备102可以被配置为与网络服务器结合工作,以智能地且高效地识别与判断移动设备行为是“良性的”还是“非良性的”(例如,恶意的或造成性能降级的)最相关的特征、因素和数据点。例如,移动设备102可以被配置为从网络服务器接收完备分类器,并使用所接收的完备分类器模型来生成特定于移动设备的特征和功能或移动设备的软件应用的精简分类器模型(即,数据/行为模型)。

在一个方面中,移动设备102可以被配置为使用完备分类器模型来生成各种复杂度(或“精简度”)级别的精简分类器模型的家族。可以例行地应用精简分类器模型的最精简家族(即,基于最少数量测量条件的精简分类器模型),直到遇到了该模型不能分类为“良性的”或“恶意的”的行为(并且由此被该模型分类为“可疑的”),此时,可以应用更为鲁棒(即较为不精简)的精简分类器模型以便尝试将该行为分类为“良性的”或“恶意的”。可以应用在所生成的精简分类器模型的家族中更进一步鲁棒的精简分类器模型,直到实现了对该行为的决定性分类为止。采用这种方式,观察器和/或分析器模块可以通过将最完备但资源使用量大的精简分类器模型的使用限制于那些需要鲁棒的分类器模型来对行为进行决定性分类的情况,来实现效率与准确性之间的平衡。

在各个方面中,移动设备102可以被配置为通过如下来生成一个或多个精简分类器模型:将有限状态机表现/表示转换为Boosted决策桩,基于特定于移动设备的状态、特征、行为、状况或配置对Boosted决策桩的完备集合进行修剪(pruning)或剔除(culling)以包括在完备分类器模型中包含的Boosted决策桩的一个或多个子集,并使用所述Boosted决策桩的一个或多个子集来智能地监视、分析和/或分类移动设备行为。

Boosted决策桩是一级决策树,其仅具有一个节点(并由此仅具有一个测试问题或测试条件)和权重值,并且因此非常适合用于数据/行为的二值分类。就是说,将行为矢量应用于Boosted决策桩得到了二值结果(例如,“是”或“否”)。例如,如果Boosted决策桩所测试的问题/条件是“短消息服务(SMS)传输的频率是否小于每分钟x次”,将值“3”应用于Boosted决策桩会得到“是”回答(对于“少于3个”SMS传输)或“否”回答(对于“3个或更多个”SMS传输)。

Boosted决策桩是高效的,因为其非常简单且基础(并且因此不需要大量的处理资源)。Boosted决策桩还是非常并行化的,并且由此可以并行地/在相同时间应用或测试多个桩(例如,通过移动设备中的多个核心或处理器)。

在一个方面中,移动设备102可以被配置为生成这样的精简分类器模型:该精简分类器模型包括在完备分类器模型中包含的分类器标准的子集并且仅包括对应于与移动设备配置、功能和所连接的/所包含的硬件相关的特征的那些分类器标准。移动设备102可以使用该一个(或多个)精简分类器模型来仅监视存在于该设备或与该设备相关的那些特征和功能。从而,移动设备可以周期性地基于移动设备的当前状态和配置来修改或重新生成该一个(或多个)精简分类器模型,以包括或删除各种特征和对应的分类器标准。

例如,行为分析器模块222可以被配置为接收具有与行为模型(例如分类器)的完备特征集合相关联的决策桩的较大的Boosted决策桩分类器模型,并且行为分析器模块224可以通过以下从该较大的分类器模型中导出一个或多个精简分类器模型:从该一个(或多个)较大的分类器模型中仅选择与移动设备的当前配置、功能、操作状态和/或所连接的/所包含的硬件相关的特征,并在精简分类器模型中包含与所选择的特征对应的Boosted决策桩的子集。在该方面中,对应于与移动设备相关的特征的分类器标准可以是在该较大分类器模型中所包括的测试所选择的特征中至少一个特征的那些Boosted决策桩。从而,行为分析器模块224可以周期性地基于移动设备的当前状态和配置来修改或重新生成该一个(或多个)Boosted决策桩精简分类器模型以包括或删除各种特征,从而使得精简分类器模型持续地包括特定于应用或特定于设备的特征的Boosted决策桩。

另外,移动设备102还可以动态地生成这样的特定于应用和/或特定于应用类型的分类器模型:所述特定于应用和/或特定于应用类型的分类器模型识别与特定软件应用(wallet)和/或特定软件应用类型(例如,游戏、导航、金融、新闻、生产等等)相关的状况或特征。在一个方面中,可以生成这些基于应用的分类器模型(即,特定于应用和特定于应用类型的分类器模型)以包含在所接收的完备分类器模型中所包括的决策节点的精简且更为集中的子集或从所接收的完备分类器模型生成的精简分类器模型中所包括的决策节点的精简且更为集中的子集。

在各个方面中,移动设备102可以被配置为:为系统中的每个软件应用和/或系统中的每个软件应用类型生成特定于应用的分类器模型。移动设备102还可以被配置为:动态地识别具有被滥用的高风险或容易被滥用的软件应用和/或应用类型(例如,金融应用、销售点应用、生物传感器应用等等),并仅为被识别为具有被滥用的高风险或容易被滥用的软件应用和/或应用类型生成基于应用的分类器模型。在各个方面中,移动设备102可以被配置为:动态地、反应性地、前摄地和/或每次安装或更新新的应用时生成基于应用的分类器模型。

在一个方面中,移动设备102可以被配置为并行地使用或应用多个分类器模型。在各个方面中,移动设备102可以被配置为:在评估一个特定软件应用时,相对于通过将更为一般性且在本地生成的精简分类器模型应用于行为/特征矢量产生的结果,给予通过将基于应用的分类器模型应用于该相同的或不同的行为/特征矢量生成的结果优选性或优先级。在各个方面中,移动设备102可以使用应用分类器模型的结果来预测软件应用、进程、或复杂移动设备行为是良性的还是造成移动设备的性能或功耗特性的降级的。

如上所述的,每个软件应用通常在移动设备上执行多个任务或活动,并且在移动设备中执行特定任务/活动时的特定执行状态可以是关于移动设备行为是否应该进行额外或更密切的监督、监视和/或分析的一个有力表征。由此,在各个方面中,移动设备102的处理器可以由处理器可执行指令配置为:使用用于识别执行特定任务/活动时的实际执行状态的信息来集中其监视与分析操作,并更好地判断移动设备行为是良性的、可疑的还是恶意的/造成性能降级的。

在各个方面中,行为观察器模块222和/或行为分析器模块224可以被配置为将由软件应用执行的活动/任务与这些活动/任务被执行时的执行状态相关联。例如,观察器模块可以被配置为生成行为矢量,其将通过监视所装配的组件而收集的行为信息包含在子矢量或数据结构中,所述子矢量或数据结构列出了与该执行状态相关的软件的特征、活动或操作(例如,位置访问、SMS读取操作、传感器访问等等)。在一个方面中,该子矢量/数据结构可以与阴影特征值子矢量/数据结构相关联地存储,所述阴影特征值子矢量/数据结构标识在每个特征/活动/操作被观察时的执行状态。例如,观察器模块可以生成包括“location_background(位置_后台)”数据字段的行为矢量,该数据字段的值标识当软件应用在后台状态中操作时,软件应用访问位置信息的次数或速率。这允许分析器模块以与移动设备的其他被观察行为无关的和/或并行的方式来分析该执行状态信息。以这种方式生成行为矢量还允许系统随时间而积累信息(例如,频率或速率)。

在各个方面中,行为观察器模块222和/或行为分析器模块224可以被配置为生成行为矢量来包括被观察行为的简约定义。行为矢量可以在值或矢量数据结构中(例如,以数字串的形式等等)简洁地表述移动设备、软件应用或进程的被观察行为。行为矢量还可以用作使得移动设备能够快速地分辨、识别和/或分析移动设备行为的标识符。在各个方面中,观察器和/或分析器模块可以被配置为生成行为矢量以包括数字序列,其每个数字表示移动设备的一个特征或行为。例如,在行为矢量中包含的数字可以表示移动设备的相机是否处于使用中(例如,按照0或1),已经从移动设备发送或生成了多少网络业务(例如,20KB/秒,等等),已经传输了多少互联网消息(例如,SMS消息的数量等等),等等。

在各个方面中,行为观察器模块222和/或行为分析器模块224可以被配置为生成行为矢量以包括执行信息。所述执行信息可以被包括在行为矢量中作为行为的一部分(例如,后台进程在3秒内使用了5次相机,前台进程在3秒内使用了3次相机等等)或独立特征的一部分。在一个方面中,所述执行状态信息可以被包括在行为矢量中作为阴影特征值子矢量或数据结构。在一个方面中,所述行为矢量可以与涉及所述执行状态的特征、活动、任务相关联地存储阴影特征值子矢量/数据结构。

图3A-E图示了可由移动设备102的处理核心执行来确定并使用软件应用的实际执行状态以改善移动设备102的性能和功耗特性的多个方面的方法。

图3A图示了用于确定并使用软件应用的实际执行状态来判断该软件应用是“恶意的”还是“良性的”的方面的方法300。方法300可以由移动设备102的处理核心执行。

在方框302中,移动设备的处理器可以监视移动设备的软件应用在移动设备的各个软件和硬件组件中的活动。在方框304中,移动设备处理器可以基于由各个软件和硬件组件收集的执行、事件和/或行为信息来生成行为矢量。在方框306中,移动设备处理器可以对行为矢量应用决策规则和机器学习算法(例如,分类器模型),以确定软件应用的实际执行状态。在方框308中,移动设备处理器可以基于对行为矢量应用决策规则和机器学习算法(例如,分类器模型)的结果,来确定软件应用的操作系统执行状态。在方框310中,移动设备处理器可以将所述操作系统执行状态与所确定的实际执行状态进行比较来识别在实际执行状态与所报告的执行状态之间的差异。

在判断框312中,移动设备处理器可以判断在操作系统执行状态与所计算的实际执行状态之间是否存在任何差异。响应于判定在操作系统执行状态与所计算的实际执行状态之间存在差异(即,判断框312=“是”),移动设备处理器可以在方框314中将该软件应用分类为“恶意的”。作出该判定的原因在于,与操作系统所知的执行状态不同的执行状态表示该应用正在进行的行为不寻常或与操作系统不一致。

响应于判定在操作系统执行状态与所计算的实际执行状态之间不存在差异(即,判断框312=“否”),移动设备处理器可以在方框316中使用该软件应用的操作系统执行状态来选择适当的分类器模型以用于监视移动设备行为。因此,如果执行状态与操作系统所知的状态一致,则可以使用该执行状态来选择特定于状态的分类器模型以便由观察器和分析器模块用于监视执行该应用的移动设备的行为。在方框318中,移动设备处理器可以使用所选择的分类器模型来确定应该被观察器模块222监视和/或被分析器模块224分析来判断软件应用是“恶意的”还是“良性的”的移动设备特征。

图3B图示了用于确定并使用软件应用的实际执行状态来实施高效节能方案的方面的方法320。方法320可以由移动设备102的处理核心执行。在方框302-312中,移动设备处理器可以执行与以上参考图3A的类似编号的方框所描述的操作相同或类似的操作。就是说,在方框302中,移动设备处理器可以监视移动设备的软件应用在移动设备的各个软件和硬件组件中的活动。在方框304中,移动设备处理器可以基于由各个软件和硬件组件收集的执行、事件和/或行为信息来生成行为矢量。在方框306中,移动设备处理器可以对行为矢量应用决策规则和机器学习算法(例如,分类器模型),以确定软件应用的实际执行状态。在方框308中,移动设备处理器可以确定软件应用的操作系统执行状态。在方框310中,移动设备处理器可以将所述操作系统执行状态与所确定的实际执行状态进行比较来识别在实际执行状态与所报告的执行状态之间的差异。在判断框312中,移动设备处理器可以判断在操作系统执行状态与所计算的实际执行状态之间是否存在任何差异。

响应于判定在操作系统执行状态与所计算的实际执行状态之间存在差异(即,判断框312=“是”),移动设备处理器可以在方框334中使用实际执行状态信息来确定或选择节能方案。例如,移动设备处理器可以使用软件应用的实际执行状态来识别该应用的实际功耗或处理要求,确定应该对处理核心增加供电还是减少供电来满足这些要求,确定应该对处理核心增加供电或减少供电的时间,以便平衡移动设备的功耗与性能特性,并基于该信息选择节能方案。

响应于判定在操作系统执行状态与所计算的实际执行状态之间不存在差异(即,判断框312=“否”),移动设备处理器可以在方框336中使用该软件应用的操作系统执行状态来确定并选择节能方案。可替换地,在方框336中,移动设备处理器可以使用本领域公知的任何常规解决方案来识别并选择节能方案。在方框338中,移动设备处理器可以使用所选择的节能方案来实施更为高效的节能方案。实施节能方案可以包括:基于所计算的实际执行状态将一个或多个处理器和设备资源置于低功率状态。实施节能方案可以包括:监视处理器的操作频率来确定其当前操作频率,基于所计算的实际执行状态来计算处理器的所预测的操作频率值,并基于所预测的操作频率来更新(即增加或降低)处理器频率。

图3C图示了用于确定并使用软件应用的实际执行状态来改善复杂行为监视与分析系统的准确性和性能的方面的方法340。方法340可以由移动设备102的处理核心执行。在方框302-312中,移动设备处理器可以执行与以上参考图3A的类似编号的方框所描述的操作相同或类似的操作。

在方框354中,响应于判定在操作系统执行状态与所计算的实际执行状态之间存在差异(即,判断框352=“是”),移动设备处理器可以使用软件应用的实际执行状态信息来选择分类器模型,所述分类器模型集中在与分析软件应用最相关的特征或与移动设备中软件应用的执行相关的软件设备行为上。在方框358中,移动设备处理器可以使用所选择的分类器模型来确定应该被监视和/或分析以判断软件应用是“恶意的”还是“良性的”的移动设备特征。可替换地,在方框354和358中,移动设备处理器可以监视软件应用的活动,并基于活动被监视期间软件应用的活动和实际执行状态来判断活动是“恶意的”还是“良性的”。

响应于判定在操作系统执行状态与所计算的实际执行状态之间不存在差异(即,判断框322=“否”),移动设备处理器可以使用常规解决方案或操作系统执行状态来选择分类器模型。在方框358中,移动设备处理器可以使用所选择的分类器模型来确定应该被监视和/或分析以判断软件应用是“恶意的”还是“良性的”的移动设备特征。

图3D图示了用于确定并使用实际执行状态来改善复杂行为监视与分析系统的准确性和性能和/或实施高效节能方案的方面的方法360。方法360可以由移动设备102的处理核心执行。在方框302-306中,移动设备处理器可以执行与以上参考图3A的类似编号的方框所描述的操作相同或类似的操作。在方框368中,移动设备处理器可以使用实际执行状态信息来确定或选择节能方案。在方框370中,移动设备处理器可以实施所选择的节能方案来实施节能方案。

在方框372中,移动设备处理器可以使用软件应用的实际执行状态来选择分类器模型,所述分类器模型集中在与分析软件应用最相关的特征或与移动设备中软件应用的执行相关的软件设备行为上。在方框374中,移动设备处理器可以使用所选择的分类器模型来确定应该被监视和/或分析以判断软件应用是“恶意的”还是“良性的”的移动设备特征。

图3E图示了用于确定并使用实际执行状态来确定、预测、预见未来执行状态的方面的方法380,所述未来执行状态可以用于改善计算设备的性能。方法380可以由移动设备102的处理核心执行。在方框302-306中,移动设备处理器可以执行与以上参考图3A的类似编号的方框所描述的操作相同或类似的操作。

在方框382中,移动设备处理器可以基于所确定的实际执行状态,使用实际执行状态信息来确定或预测未来活动或执行状态。在一个方面中,这可以通过对行为矢量应用分类器模型来实现。在方框384中,移动设备处理器可以采取与所确定的未来执行状态一致的动作。例如,移动设备处理器可以执行操作以向移动设备的操作系统调度器通知所预测的未来状态。作为响应,调度器可以执行该所确定的未来执行活动/状态一致的动作或操作,诸如从执行或运行队列中移除低优先级进程。

图4图示了用于智能地生成行为矢量的方面的方法400,所述行为矢量适合用于高效地判断移动设备行为是否与正常操作模式不一致,而不会消耗移动设备大量的处理、存储器或电池资源。方法400可以由移动设备102的处理核心执行。

在方框402中,移动设备处理器可以监视在移动设备上执行的软件应用的活动。在判断框404中,处理核心可以判断该活动的执行期间软件应用的执行状态是否有关于判断任何移动设备行为、软件应用、进程、任务、活动等等是否是恶意的或与移动设备的正常操作模式不一致。在一个方面中,这可以通过访问执行状态关联数据结构来实现,所述执行状态关联数据结构包括与执行状态相关的全部的各种行为、软件应用、活动和/或任务。

响应于判定该活动的执行期间软件应用的执行状态是不相关的(即,判断框404=“否”),在方框406中,处理核心可以生成不包括执行状态信息的行为矢量。在方框408中,处理核心可以在不考虑该活动发生时的执行状态的情况下,基于通过对组件进行观察/监视而收集的行为信息来判断该活动是恶意的还是良性的。

响应于判定该活动的执行期间软件应用的执行状态是与所监视的活动相关的(即,判断框404=“是”),在方框412中,处理核心可以生成阴影特征值,所述阴影特征值识别活动被监视期间软件应用的执行状态。在方框414中,处理核心可以生成将被监视的活动与识别执行状态的阴影特征值相关联的行为矢量。在方框416中,处理核心可以基于与活动相关联的执行状态来判断该活动是恶意的还是良性的。

如上所述地,特定任务/活动固有地需要操作系统或软件应用处于支持或兼容这些任务/活动的执行状态中。例如,相机的使用、激活麦克风来录制音频、发送SMS消息和收集加速计数据都是需要与移动设备的某种形式的用户交互的任务/活动,并且由此这些活动通常必须在前台执行,或者在支持与移动设备的用户交互的执行状态中执行。

作为另一示例,在操作系统或软件应用处于特定执行状态中时特定任务/活动在移动设备中被执行的频率可以是关于与该活动相关的移动设备行为应该进行额外或更为密切的监督、监视和/或分析的一个有力表征。就是说,诸如对传感器数据(例如,加速计、陀螺仪、罗盘、压力传感器等等)进行采样、对位置数据进行采样、执行WiFi扫描等等的活动,可以在相关软件应用运行在前台中时频繁地执行,作为正常或良性的移动设备行为/操作的一部分,但是,当相关软件应用运行在后台中时不应被以相同的频率执行。例如,当应用处于后台中时频繁地采样传感器信息可以表示传感器信息正在被恶意应用滥用,而在应用处于前台中时以相同的频率对相同的传感器信息采样则可以是良性的移动设备行为的一部分。类似地,在应用处于后台状态中时频繁的WiFi扫描可以表示对位置API的调用正在被恶意软件应用绕开或者WiFi系统正在被不正确地使用和/或正在造成移动设备的性能和功耗特性的降级。

在一个方面中,移动设备处理器可以被配置为通过从在移动设备的存储器中所存储的执行状态关联数据结构(例如,列表、表、图等等)中读出信息,来识别需要操作系统或软件应用处于支持或兼容这些任务/活动的执行状态中的任务/活动。在一个方面中,移动设备处理器可以被处理器可执行指令配置为,基于历史信息(例如,从先前执行、先前对行为模型的应用中收集的历史信息,等等)、新信息、机器学习、上下文建模、以及在可用信息、移动设备状态、环境状况、网络状况、移动设备性能、电池消耗水平等等中所检测到的改变,来智能地在执行状态关联数据结构中添加或删除条目、特征和执行状态。

图5示出了在实施一个方面的观察器系统服务的计算系统500中的逻辑组件和信息流。在图5所示的示例中,计算系统500包括在用户空间中的行为检测器模块502、数据库引擎模块504以及行为分析器模块224,以及在内核空间520中的环形缓冲器514、滤波器规则模块516、节流(throttling)规则模块518和安全缓冲器。计算系统500还可以包括观察器系统服务,其包括在用户空间中的行为检测器模块502和数据库引擎504,以及在内核空间中的安全缓冲器管理器506、规则管理器508和系统健康监视器510。

各个方面可以在移动设备上提供跨层观察,涵盖了webkit、SDK、NDK、内核、驱动器和硬件,以便表征系统行为。行为观察可以实时地进行。

图6图示了根据一个方面的用于执行动态且自适应的观察的示例性方法600。在方框602中,移动设备处理器可以通过监视/观察会造成移动设备降级的大量因素/行为的子集,来执行粗糙观察。在方框603中,移动设备处理器可以基于所述粗糙观察生成表征所述粗糙观察和/或移动设备行为的行为矢量。在方框604中,移动设备处理器可以识别可能潜在地造成移动设备降级的与所述粗糙观察相关联的子系统、进程和/或应用。例如,这可以通过将从多个来源接收的信息与从移动设备的传感器接收的上下文信息进行比较来实现。在方框606中,移动设备处理器可以基于所述粗糙观察来执行行为分析操作。在一个方面中,作为方框603和604的一部分,移动设备处理器可以执行如上所述的一个或多个操作。

在判断框608中,移动设备处理器可以判断是否能够基于行为分析的结果识别并纠正可疑的行为或潜在的问题。当移动设备处理器判定能够基于行为分析的结果识别并纠正可疑的行为或潜在的问题时(即,判断框608=“是”),在方框618中,处理器可以初始化一进程来纠正该行为,并返回方框602以执行额外的粗糙观察。

响应于判定不能基于行为分析的结果识别和/或纠正可疑的行为或潜在的问题(即,判断框608=“否”),在判断框609中,移动设备处理器可以判断是否具有存在问题的可能性。在一个方面中,移动设备处理器可以通过如下来确定具有存在问题的可能性:计算移动设备遇到潜在问题和/或参与可疑行为的概率,并判断所计算的概率是否大于预定阈值。当移动设备处理器判定所计算的概率不大于预定阈值和/或没有可疑行为或潜在问题存在和/或可检测的可能性时(即,判断框609=“否”),处理器可以返回方框602来执行额外的粗糙观察。

响应于判定具有可疑行为或潜在问题存在和/或可检测的可能性时(即,判断框609=“是”),在方框610中,移动设备处理器可以对所识别的子系统、进程或应用执行更深的日志记录/观察或最终日志记录。在方框612中,移动设备处理器可以对所识别的子系统、进程或应用执行更深且更细致的观察。在方框614中,移动设备处理器可以基于该更深且更细致的观察,来执行进一步和/或更深的行为分析。在判断框608中,移动设备处理器可以再一次判断是否能够基于该更深的行为分析的结果识别并校正可疑的行为或潜在问题。响应于判定不能基于该更深的行为分析的结果识别并校正可疑的行为或潜在问题(即,判断框608=“否”),处理器可以重复方框610-614中的操作,直到细节级别足够细致以至于能够识别问题,或直到确定该问题不能使用额外的细节来识别或不存在问题。

响应于判定能够基于该更深的行为分析的结果识别并校正可疑的行为或潜在的问题(即,判断框608=“是”),在方框618中,移动设备处理器可以执行操作以校正问题/行为,并且处理器可以返回方框602以执行额外操作。

在一个方面中,作为方法600的方框602-618的一部分,移动设备处理器可以执行系统行为的实时行为分析,以从有限且粗糙的观察中识别可疑的行为,动态地确定需要以更多细节来观察的行为,并且动态地确定观察所需要的准确细节等级。这使得移动设备处理器能够高效地识别问题并避免问题发生,而不需要使用设备上大量的处理器、存储器或电池资源。

当前,存在各种解决方案用于对在计算设备上执行的应用程序的行为进行建模,并且这些解决方案可以与机器学习技术一起使用来判断软件应用是恶意的还是良性的。然而,这些技术方案并不适合用于移动计算设备,因为它们需要评估非常大量的行为信息,不动态地产生行为模型,不应对移动计算设备的能力和状态,不智能地对行为模型中的特征进行优先级排序,受限于评估单个应用程序或进程,和/或需要在移动计算设备上执行大计算量的进程。由此,这些现有解决方案在移动计算设备中的实施、实现或执行会对移动计算设备的响应、性能或功耗特性造成巨大的负面和/或用户可察觉的影响。

例如,计算设备可以被配置为使用现有的基于机器学习的解决方案来访问并使用大量训练数据,推导出以特征矢量为输入的模型,并使用该模型来判断计算设备的软件应用是恶意的还是良性的。然而,这种解决方案不能生成用于采用可用来生成精简分类器模型的格式或信息结构(例如有限状态机等等)描述大量行为信息的完备分类器模型(即,鲁棒的数据或行为模型)。另外,该解决方案不从移动计算设备接收描述该设备的能力、功能、特征、配置、当前状态、设置和/或参数的识别信息。至少由于这些原因,这种解决方案并不允许服务器和/或移动计算设备快速且高效地生成用于包括、测试或应对移动计算设备的能力和操作状态的分类器模型。另外,该解决解决方案并不允许服务器或移动计算设备生成用于以下的精简分类器模型:根据特征与要使用所述模型的特定移动计算设备中的特定行为进行分类的相关性,来智能地识别这些特征或对其进行优先级排序。由于这些原因及其其他原因,该解决方案不能用于快速且高效地识别、分析或分类复杂的移动计算设备行为而不会对移动计算设备的响应、性能或功耗特性造成巨大的负面或用户可察觉的影响。

除了现有解决方案的上述局限之外,很多行为建模解决方案实施“一个尺寸匹配全部(one-size-fits-all)”的方法来对计算设备的行为进行建模,并且因此并不适用于移动设备。就是说,这些解决方案通常产生行为模型以使得所述行为模型是一般性的并可以用于很多计算设备和/或各种不同硬件和软件配置。这样,这些一般性行为模型经常包括/测试非常大数量的特征,这些特征很多是与(并且不能用于)对其实际被使用的特定计算设备中的行为进行识别、分析或分类无关的。另外,这些解决方案并不基于特征与使用该模型的特定移动设备中的特定行为进行分类的相关性来为所述特征分配相对优先级。因此,这些解决方案通常需要计算设备应用包括大量未组织的、不适当优先级划分的或无关的特征的行为模型。这些模型不适用于资源受限的移动设备,因为这些模型会造成移动设备处理器分析大量的对于识别造成移动设备随时间降级的原因或源头而言无用的特征。由此,这些现有解决方案并不适应于复杂但资源受限的移动设备。

现代移动设备是高可配置性且复杂的系统。由此,对于判断特定移动设备行为是“良性的”还是“非良性的”(例如,恶意的或造成性能降级的)而言最重要的特征在各个移动设备中可能会是不同的。此外,可能会需要在每个移动设备中监视和/或分析不同的特征组合,以便该移动设备快速且高效地判断特定行为是良性的还是非良性的。然后,需要进行监视和分析的准确特征组合以及每个特征或特征组合的相对优先级或重要性,经常仅能够使用从要对行为进行监视或分析的特定移动设备获得的特定于设备的信息来确定。由于这些原因以及其他原因,在使用行为模型的特定设备之外的其他任何计算设备中生成的行为模型不能包括用于识别对于在该设备中的行为进行分类而言最重要的准确特征组合的信息。

例如,如果第一移动设备被配置为使用其生理传感器(例如,指纹读取器、语音识别子系统、视网膜扫描器等等)来授权金融事务,则用于测试与所述生物传感器的访问和使用相关的条件的特征,有可能有关于判断在该移动设备中所观察到的访问金融软件的行为是恶意的还是良性的。例如,在第一移动设备中的生物传感器的访问和使用可以表示恶意应用正在在用户不知道或未同意的情况下授权金融事务。另一方面,在未被配置为使用其生物传感器来授权金融事务的第二移动设备中,用于测试与这些传感器的访问和使用相关的条件的特征,不可能有关于判断所观察到的访问金融软件的行为是恶意的还是良性的。就是说,由于第一和第二设备除了它们对其生物传感器的使用的配置之外的所有方面(即,相同的类型、型号、操作系统、软件等等)都相同,对于生成用于准确地识别用来评估与这两个设备的生物传感器的访问和使用相关的条件的特征的一般性行为模型而言,将会存在问题。更大的问题是,生成用于在几十万(或几百万)具有类似配件但具有独立可配置性的移动设备上测试更为复杂的条件或特征的一般性模型。

各个方面可以通过如下来克服这些局限性:配置网络服务器和移动设备来彼此结合地工作以高效地识别、分类、建模、避免和/或纠正经常造成移动设备的性能和/或功率使用级别随时间降级的条件和/或移动设备行为。网络服务器可以被配置为从中央数据库(例如,“云”)接收关于各种条件、特征、行为、可纠正动作的信息,并使用该信息生成完备分类器模型(即,数据或行为模型),所述完备分类器模型采用能够由移动设备快速地转换为一个或多个精简分类器模型的格式或结构(例如,有限状态机)描述了大量行为信息。在一个方面中,该完备分类器模型可以是所述大量行为信息的有限状态机描述或表示。在一个方面中,有限状态机可以包括适合于被表示为多个节点、Boosted决策树或决策桩的信息,这些节点、Boosted决策树或决策桩中的每一个测试一个或多个特征。例如,有限状态机可以是可被表示为Boosted决策桩家族的信息结构,所述Boosted决策桩家族共同地识别、描述、测试或评估与判断移动设备行为是良性的还是正在造成移动设备的性能随时间降级相关的特征和数据点中的全部或多个。网络服务器随后可以将该完备分类器模型(即,包括有限状态机和/或Boosted决策桩家族等等的信息结构)发送给移动设备。

在各个方面中,移动设备处理器可以被处理器可执行指令配置为,接收并使用完备分类器模型来生成特定于设备和/或特定于设备状态的精简分类器模型或具有可变复杂度(或“精简性”)级别的精简分类器模型的家族。为了实现该目的,移动设备处理器可以对从网络服务器接收的完备分类器模型中包括的鲁棒的Boosted决策树家族(本文中为“完备Boosted决策树分类器模型”)进行修剪或剔除,以生成包括精简数量的Boosted决策树和/或用于评估有限数量的测试条件或特征的精简分类器模型。移动设备处理器随后可以使用该在本地生成的特定于设备和/或特定于设备状态的分类器模型来执行实时行为监视与分析操作,并识别不期望的或造成性能降级的移动设备行为的来源或原因。

通过生成完备分类器模型且该完备分类器模型将大量行为信息描述或表示为能够被修改、剔除、扩展或以其他方式用于生成精简分类器模型的有限状态机、决策节点、决策树或其他类似信息结构,各个方面允许移动设备快速地且高效地生成精简分类器模型而不需要访问训练数据或者与网络服务器、中央数据库或云网络/服务器进行进一步通信。这显著地降低了移动设备对网络的依赖性,并改善了移动设备的性能和功耗特性。

此外,通过在移动设备中本地生成精简分类器模型来应对特定于应用或设备的特征,各个方面允许移动设备将其监视操作集中在对于识别不期望的或造成性能降级的移动设备行为的来源或原因而言最重要的特征或因素。这允许移动设备识别并响应不期望的或造成性能降级的移动设备行为,而不会对移动计算设备的响应、性能或功耗特性造成巨大的负面或用户可察觉的改变。

另外,通过使移动设备配有状态估计与预测模块(即,图2A图示的应用执行状态确定模块208)且该状态估计与预测模块被配置为对其从移动设备的各个软件和硬件组件接收的信息应用决策规则和机器学习算法来推测、估计、预测或确定软件应用的当前执行状态或未来执行状态,各个方面允许移动设备生成并使用独立于可从操作系统或获得的状态信息,且与该可获得的状态信息更为准确且更为细节的应用执行状态信息。这种高准确性、高细节性且高精细粒度的执行状态信息可以由移动设备用来实施更为高效的节能方案,或者由移动设备的行为监视与分析系统来选择最相关的特定于应用的精简分类器模型。这允许系统更好地预测移动设备行为是良性的还是恶意的。

各个方面可以在各种移动计算设备上实施,所述移动计算设备的一个示例在图7中以智能电话700的形式示出。智能电话700可以包括处理器702,其耦合到触摸屏控制器704和内部存储器706。处理器702可以是被设计用于通用或专用处理任务的一个或多个多核IC。内部存储器706可以是易失性或非易失性存储器,并且还可以是安全存储器和/或加密存储器,或不完全和/或未加密存储器,或其任何组合。触摸屏控制器704和处理器702还可以耦合到触摸屏面板712,诸如电阻感测型触摸屏、电容感测型触摸屏、红外感测型触摸屏等等。

智能电话700可以具有用于发送和接收的一个或多个无线信号收发机708(例如,Wi-Fi,无线射频)和天线710,其彼此耦合和/或耦合到处理器702。收发机708和天线710可以与上述电路一起用于实施各种无线传输协议栈和接口。多核设备700可以包括蜂窝网络无线调制解调芯片716,其实现经由蜂窝网络的通信并耦合到处理器702。智能电话700通常还包括扬声器714和用于接收用户输入的菜单选择按键或翘板开关(rocker switch)718。

典型的智能电话700还包括声音编码/解码(CODEC)电路722,其将从麦克风接收的声音数字化为适合于无线传输的数据分组,并将接收的声音数据分组进行解码来生成模拟信号,模拟信号被提供给扬声器来产生声音。另外,处理器702、无线收发机705和CODEC 722中的一个或多个还可以包括数字信号处理器(DSP)电路(未单独示出)。

所述方面的方法的多个部分可以实现在客户机-服务器架构中,其中一些处理可以在服务器中进行,诸如维护正常操作行为数据库,该数据库可由移动设备处理器在执行所述方面的方法时访问。这些方面可以实施在各种市场上可获得的服务器设备中的任何服务器设备上,诸如图8所示的服务器800。该服务器800通常包括处理器801,其耦合到易失性存储器802和大容量非易失性存储器,诸如硬盘驱动器803。服务器800还可以包括软盘驱动器、压缩光盘(CD)或数字多用途光盘(DVD)光盘驱动器804,其耦合到处理器801。服务器800还可以包括网络访问端口806,其耦合到处理器801,用于建立与网络805的数据连接,所述网络805诸如为耦合到其他广播系统计算机和服务器的局域网。

处理器702、801可以是任何可编程微处理器、微计算机或多处理器芯片,其可由软件指令(应用)配置来执行各种功能,包括如下所述的各个方面的功能。在一些移动设备中,可以提供多个处理器702,诸如一个专用于无线通信功能的处理器,以及一个专用于运行其他应用的处理器。通常,软件应用在其被访问并装载到处理器702、801之前,可以存储在内部存储器706、802、803中。处理器702、801可以包括足以存储应用软件指令的内部存储器。

在本发明中所使用的术语“性能降级(performance degradation)”表示宽泛范围的各种不期望的移动设备操作和特性,诸如更长的处理时间、更慢的实时响应、更低的电池使用时间、私有数据的丢失、恶意经济活动(例如,发送未授权的付费SMS消息),拒绝服务(DoS)、与强占移动设备有关的操作、或将电话用于间谍活动或僵尸网络活动等等。

通常,行为矢量可以是一维队列、数字特征的n维队列、经排序的事件列表、特征矢量、一个或多个对象、条件或事件的数字表示、状态机等等。在一个方面中,行为矢量可以包括一个或多个行为。在各个方面中,行为可以被表示为数值或存储多个数值的结构(例如,矢量、列表、队列等等)。

在可编程处理器上执行以实施各个方面的操作的计算机程序代码或“程序代码”可以用高级编程语言编写,诸如C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、结构查询语言(例如,Transact-SQL)、Perl,或采用各种其他编程语言编写。存储在计算机可读存储介质上的程序代码或程序当在该应用中使用时,可以指代形式可由处理器所理解的机器语言代码(诸如对象代码)。

很多移动计算设备操作系统核心被组织为用户空间(其中没有特权代码运行)和内核空间(其中有特权代码运行)。这种划分在中和其他通用公共许可(GPL)环境中特别重要,在这些环境中,作为内核空间的一部分的代码必须被GPL许可,而在用户空间中运行的代码可以不是GPL许可的。应该理解,本文所讨论的各种软件组件/模块可以在内核空间中或用户空间中实施,除非另有明确声明。

以上的方法描述和过程流示意图仅是作为说明性示例提供,而并非旨在要求或暗示各个方面的步骤必须按照所给出的顺序执行。本领域技术人员将会理解,上述方面的步骤的顺序可以是按照任何顺序执行的。诸如“以下”、“于是”、“随后”等等的单词并非旨在限定步骤的顺序;这些单词仅是简单地用于引导读者阅读方法的说明书。此外,对权利要求元素的任何单数指代,例如,使用冠词“一”、“一个”、“所述”,不应被理解为将该元素限制于单数。

在本发明中所使用的术语“组件”、“模块”、“系统”、“引擎”、“产生器”、“管理器”、“调度器”等等旨在包括与计算机相关的实体,诸如但不限于被配置为执行特定操作或功能的硬件、固件、硬件与软件的组合、软件或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行体、执行线程、程序和/或计算机。举例而言,运行在计算设备上的应用和该计算设备可以被称为组件。一个或多个组件可以位于执行进程和/或线程中,组件可以位于一个处理器或核心上和/或分布在两个或更多个处理器或核心中。另外,这些组件可以从各种非瞬态计算机可读介质执行,所述非瞬态计算机可读介质具有存储在其上的各种指令和/或数据结构。组件可以借助于本地和/或远程进程、功能或过程调用、电子信号、数据分组、存储器读/写和其他已知的与网络、计算机、处理器和/或进程相关通信方法来进行通信。

结合本文公开的各个方面所描述的各个示例性逻辑块、模块、电路和算法步骤可以实施为电子硬件、计算机软件或二者的组合。为了清楚地说明软件和硬件的这种可互换性,以上已经按照各个说明性组件、块、模块、电路和步骤的功能对其进行了描述。至于所述功能是实现为硬件还是软件则取决于具体应用和施加于整个系统的设计约束。本领域技术人员可以针对各个特定应用以可变的方式来实施所描述的功能,但这种实施决策不应被解释为导致脱离本发明的范围。

被设计为执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件、或者它们的任意组合,可以实施或执行用于实施结合本文所公开的各个方面所描述的各种示例性的逻辑、逻辑块、模块和电路的硬件。通用处理器可以是多处理器,但是可替换地,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算器件的组合,例如,DSP和多处理器的组合、多个多处理器、与DSP核相结合的一个或多个多处理器、或者任何其它这类结构。可替换地,一些步骤或方法可以由专用于给定功能的电路来执行。

在一个或多个方面,可以通过硬件、软件、固件、或其任意组合来实现所描述的功能。如果通过软件实现,则这些功能可以作为一条或多条指令或代码保存在非瞬态计算机可读介质或非瞬态处理器可读介质上。本文所公开的方法或算法的步骤可以实现为处理器可执行软件模块,其可以位于非瞬态计算机可读或处理器可读存储介质上。非瞬态计算机可读或处理器可读存储介质可以是可由计算机或处理器访问的任何存储介质。作为一个非限定性示例,所述非瞬态计算机可读或处理器可读存储介质可以包括RAM、ROM、EEPROM、闪存、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备、或者能够用来存储具有指令或数据结构形式的所期望的程序代码并且能够被计算机访问的任何其它介质。如本文所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘以及蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光碟是由激光器以光学方式再现数据。上述的组合也应该被包括在非瞬态计算机可读和处理器可读存储介质的范围内。另外,方法或算法的操作可以作为代码和/或指令的一个或任意组合或集合而位于非瞬态处理器可读存储介质和/或计算机可读介质上,其可以并入计算机程序产品中。

为使本领域任何技术人员能够实现或使用本发明,上面提供了对所公开的各个方面的描述。对于本领域普通技术人员来说,对这些方面的各种修改将是显而易见的,并且,本文定义的总体原理可以在不脱离本发明的精神或范围的前提下应用于其它方面。因此,本发明并非旨在局限于本申请所示出的各个方面,而是与所附权利要求以及本申请公开的原理和新颖特征的最宽范围相一致。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1