用于移动装置行为的聚集多应用程序行为分析的方法和系统与流程

文档序号:12071220阅读:307来源:国知局
用于移动装置行为的聚集多应用程序行为分析的方法和系统与流程

近几年来,蜂窝式和无线通信技术迅猛发展。无线服务供应商现在提供大量特征和服务,所述特征和服务向其用户提供对信息、资源及通信的前所未有的等级的存取。为了与这些改进保持同步,家用电子装置(例如,蜂窝式电话、手表、头戴式耳机、远程控件等)变得前所未有的强大和复杂,且现在家用电子装置通常包括大功率处理器、大型存储器和允许在它们的装置上执行复杂和强大软件应用程序的其它资源。另外,这些装置允许它们的用户从应用程序下载服务器(例如,App Store、Store、play等)或互联网下载和执行多种软件应用程序。

由于这些和其它改进,越来越多的移动和无线装置用户现在使用它们的装置来存储敏感信息(例如,信用卡信息、联系人等)和/或完成安全性非常重要的任务。举例来说,移动装置用户频繁地使用他们的装置来购买货物、发送和接收敏感通信、支付账单、管理银行账户并且进行其它涉密交易。由于这些趋势,移动装置迅速变为恶意软件和网络攻击的下一个前线。因而,更好的保护资源受限制的计算装置(例如,移动和无线装置)的新的且改进的安全解决方案将有利于消费者。



技术实现要素:

各种实施例包括使用行为分析或机器学习技术以评估在计算装置上运行的两个或大于两个软件应用程序的共同行为的方法。所述方法可以包括分析计算装置中的行为,方法是在计算装置的处理器中监测多个软件应用程序的活动、收集用于多个软件应用程序中的每一个的监测活动的行为信息、基于所收集的行为信息产生行为向量、将所产生的行为向量应用于分类器模型以产生分析信息并且使用分析信息来评估多个软件应用程序的共同行为。

在一个实施例中,基于所收集的行为信息产生行为向量可以包括产生表征多个软件应用程序的共同行为的信息结构。在另一实施例中,基于所收集的行为信息产生行为向量可以包括产生表征多个软件应用程序之间的关系的信息结构。在另一实施例中,监测多个软件应用程序的活动可以包括监测多个软件应用程序之间的交互,且使用分析信息以评估多个软件应用程序的共同行为可以包括识别应当作为一组一起评估的两个或大于两个软件应用程序。

在另一实施例中,所述方法可以包括监测所识别的两个或大于两个软件应用程序的额外活动以收集额外的行为信息、基于所收集的额外的行为信息产生表征所识别的两个或大于两个软件应用程序的共同行为的共同行为向量、将所产生的共同行为向量应用于分类器模型以产生额外的分析信息并且使用额外的分析信息以确定所识别的两个或大于两个软件应用程序的共同行为是否是非良性的。在另一实施例中,所述方法可以包括将各自表征所识别的两个或大于两个软件应用程序的行为的行为向量应用于分类器模型以产生额外的分析信息、聚集针对每个行为向量产生的额外的分析信息并且使用分析结果来确定所识别的两个或大于两个软件应用程序的共同行为是否是非良性的。

在另一实施例中,将所产生的行为向量应用于分类器模型以产生分析信息可以包括将所产生的行为向量应用于多应用程序分类器模型。在另一实施例中,基于所收集的行为信息产生行为向量可以包括产生每个表征多个软件应用程序中的一个的行为的多个行为向量,且将所产生的行为向量应用于多应用程序分类器模型可以包括将行为向量中的每一个应用于多应用程序分类器模型以产生分析信息。

在另一实施例中,将所产生的行为向量应用于多应用程序分类器模型可以包括评估包含于多应用程序分类器模型中的每个测试条件、在多应用程序分类器模型中计算评估测试条件的每个结果的加权平均值以及基于加权平均值确定共同行为是否是非良性的。在另一实施例中,使用分析信息以对多个软件应用程序的共同行为进行分类可以包括对监测的多个软件应用程序进行分类、解析多个软件应用程序的每个类别并且产生多个软件应用程序的每个类别的性能编号。

其它实施例可以包括具有配置有处理器可执行指令以执行操作的处理器的计算装置,所述操作包括监测多个软件应用程序的活动、收集用于多个软件应用程序中的每一个的所监测的活动的行为信息、基于所收集的行为信息产生行为向量、将所产生的行为向量应用于分类器模型以产生分析信息并且使用分析信息来评估多个软件应用程序的共同行为。

在一个实施例中,处理器可以配置有处理器可执行指令以执行操作使得基于所收集的行为信息产生行为向量可以包括产生表征多个软件应用程序的共同行为的信息结构。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作使得基于所收集的行为信息产生行为向量可以包括产生表征多个软件应用程序之间的关系的信息结构。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作使得监测多个软件应用程序的活动可以包括监测多个软件应用程序之间的相互作用,并且使得使用分析信息来评估多个软件应用程序的共同行为可以包括识别应当作为一组一起评估的两个或大于两个软件应用程序。

在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,所述操作进一步包括监测所识别的两个或大于两个软件应用程序的额外活动以收集额外的行为信息、基于所收集的额外的行为信息产生表征所识别的两个或大于两个软件应用程序的共同行为的共同行为向量、将所产生的共同行为向量应用于分类器模型以产生额外的分析信息,并且使用额外的分析信息以确定所识别的两个或大于两个软件应用程序的共同行为是否是非良性的。

在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,所述操作进一步包括将每个表征所识别的两个或大于两个软件应用程序的行为的行为向量应用于分类器模型以产生额外的分析信息、聚集针对每个行为向量产生的额外的分析信息,并且使用分析结果以确定所识别的两个或大于两个软件应用程序的共同行为是否是非良性的。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作使得将所产生的行为向量应用于分类器模型以产生分析信息可以包括将所产生的行为向量应用于多应用程序分类器模型。

在另一实施例中,处理器可以配置有处理器可执行指令以执行操作使得基于所收集的行为信息产生行为向量可以包括产生各自表征多个软件应用程序中的一个的行为的多个行为向量,并且使得将所产生的行为向量应用于多应用程序分类器模型可以包括将行为向量中的每一个应用于多应用程序分类器模型以产生分析信息。

在另一实施例中,处理器可以配置有处理器可执行指令以执行操作使得将所产生的行为向量应用于多应用程序分类器模型可以包括评估包含于多应用程序分类器模型中的每个测试条件、计算在多应用程序分类器模型中的评估测试条件的每个结果的加权平均值,并且基于加权平均值确定共同行为是否是非良性的。

在另一实施例中,处理器可以配置有处理器可执行指令以执行操作使得使用分析信息对多个软件应用程序的共同行为进行分类可以包括对所监测的多个软件应用程序进行分类、解析多个软件应用程序的每个类别,并且产生多个软件应用程序的每个类别的性能编号。

在另一实施例中,计算装置可以包括经配置以在硬件层级处监测计算装置存储器和硬件事件的使用并且输出所收集的行为信息到处理器的行为观测器硬件模块。在此类实施例中,处理器可以配置有处理器可执行指令以执行操作使得监测多个软件应用程序的活动包括从行为观测器硬件模块接收所收集的行为信息。

其它实施例可以包括非暂时性计算机可读存储媒体,所述非暂时性计算机可读存储媒体具有存储在其上的处理器可执行软件指令,所述指令经配置以使得计算装置处理器执行上文所述方面方法的操作。其它实施例可以包括具有用于上文所述方面方法的操作的执行功能的装置的计算装置。

附图说明

并入本文中并且构成本说明书的一部分的附图说明了本发明的示意性方面,并且连同上文给出的总体描述和下文给出的具体描述一起用来阐释本发明的特征。

图1是适用于实施各种实施例的实例芯片上系统的架构图式。

图2是说明在一个实施例移动装置中的实例逻辑组件和信息流的框图,所述实施例移动装置经配置以确定特定移动装置行为是否是良性或非良性的。

图3是根据一个实施例说明评估两个或大于两个软件应用程序的共同行为的方法的过程流程图。

图4是根据一个实施例说明确定两个或大于两个软件应用程序之间的相互关系的方法的过程流程图。

图5是根据一个实施例说明确定两个或大于两个软件应用程序的共同行为是否是非良性的方法的过程流程图。

图6是根据另一实施例说明确定两个或大于两个软件应用程序的共同行为是否是非良性的方法的过程流程图。

图7是说明在移动装置中产生基于应用程序或精益分类器模型的另一实施例移动装置方法的过程流程图。

图8是可以由实施例服务器处理器产生且由装置处理器使用以产生精益分类器模型的实例增强决策柱的说明。

图9是根据一个实施例说明在经配置以执行动态且自适应观察的观测器模块中的实例逻辑组件和信息流的框图。

图10是根据另一实施例说明在实施观测器后台程序的计算系统中的逻辑组件和信息流的框图。

图11是说明用于在移动装置上执行自适应观察的实施例方法的过程流程图。

图12是适合在一个实施例中使用的移动装置的组件框图。

图13是适合在一个实施例中使用的服务器装置的组件框图。

具体实施方式

将参看附图详细描述各种实施例。在可能的情况下,将在整个图式中使用相同参考标号来指代相同或相似部分。对特定实例和实施方案作出的参考是出于说明性目的,且并不希望限制本发明或权利要求书的范围。

在概述中,各种实施例包括方法和经配置以实施方法的计算装置,所述方法使用行为分析和机器学习技术以评估在计算装置上操作的两个或大于两个软件应用程序的共同行为。举例来说,在一个实施例中,计算装置可以经配置以监测在装置上操作的软件应用程序的活动、从监测活动收集行为信息、基于所收集的行为信息产生行为向量、将行为向量应用于分类器模型以产生分析信息、使用分析信息以识别软件应用程序之间的关系、基于所识别的关系识别应当作为一组一起评估的软件应用程序、聚集所识别的软件应用程序的分析结果,并且使用所聚集的分析结果来确定软件应用程序的共同行为是否是良性或非良性的。这些操作通过使得装置能够快速且有效地识别和响应于各种条件或行为而改进了计算装置的功能,所述条件或行为可能对装置的安全性、性能或电力消耗特性具有负面影响,并且另外所述状态或行为不能被常规的基于行为的安全解决方案检测到。

计算装置可以配备有使用行为分析技术的基于行为的安全系统以识别、防止和/或校正条件、因素和/或行为,所述条件、因素和/或行为通常随时间推移降低计算装置的性能、电力利用水平、网络使用水平、安全性和/或隐私性。举例来说,基于行为的安全系统可以经配置以确定软件应用程序是否是良性或非良性的(例如,恶意、性能降低等)并且执行各种操作以校正、治愈、解决、隔离或者修复所识别的问题(例如,确定行为是非良性的)。

虽然此类基于行为的安全系统通常对于防止计算装置随时间推移的性能下降非常有效,但是恶意软件应用程序可以通过串通或协同工作以掩盖它们的操作来避开此类系统的检测。举例来说,当从用户的地址簿窃取信息时,第一恶意软件应用程序可能存取地址簿、对信息进行编码以及在通用或离散文件中存储经编码信息。第二恶意应用程序可随后检索存储在通用/离散文件中的经编码的信息并且发送信息到服务器。

通常,基于行为的安全系统将能够确定操作的这一顺序(例如,读取、存储和发送地址簿数据)与装置的正常操作模式不一致,并且将这一行为归类为非良性行为。然而,由于操作是通过多个软件应用程序协同工作执行的,所以现有解决方案通常无法将这些操作识别为同一序列或行为的一部分。

单独地,存取地址数据、编码数据、在文件中存储数据和发送存储在文件中的信息的操作未必指示非良性行为。实际上,这些操作的共同或顺序执行是非良性行为的指示。然而,现有基于行为的解决方案并不充分表征软件应用程序之间的关系。因此,现有解决方案通常无法被准确地识别应当被一起评估为单个行为的一部分的操作。因为这些和其它原因,现有基于行为的安全解决方案不足以识别行为和条件以及对行为和条件作出回应,所述行为和条件由一组软件应用程序的共同活动引起,例如,包括协同工作的多个软件应用程序的网络攻击。

鉴于现有系统的这些限制,各种实施例用基于行为的安全系统配备计算装置,所述安全系统经配置以智能地且有效地识别和响应于由一组软件应用程序的共同活动引起的非良性行为,所述一组软件应用程序例如串通或协同工作的恶意软件应用程序。

在一个实施例中,基于行为的安全系统可以经配置以监测软件应用程序之间的相互作用、产生表征软件应用程序之间的关系的行为向量,并且将行为向量应用于分类器模型以确定应用程序是否串通或协同工作。基于行为的安全系统可随后识别应当作为一组一起分析的软件应用程序、将所识别的应用程序的行为向量应用于分类器模型、聚集产生的信息,并且使用所聚集的信息来确定应用程序的共同行为是否是非良性的。替代地,基于行为的安全系统可以识别应当作为一组一起分析的软件应用程序、产生表征所识别的应用程序的共同行为的行为向量,并且将所产生的行为向量应用于同一或不同分类器模型以确定应用程序的共同行为是否是非良性的。

各种实施例出于数个原因改进了计算装置(例如,移动计算装置)的功能,其中一些原因是在以下实施例的详细描述中说明的,和/或从以下实施例的详细描述中是显而易见。举例来说,通过智能地识别串通或协同工作的软件应用程序且通过评估所识别的应用程序的操作一起为单个装置行为的一部分,各种实施例通过使得装置能够识别和响应于性能降低的行为而改进了计算装置的功能,另外所述性能降低的行为是原本没有被常规的基于行为的安全解决方案检测到的。另外,通过聚集从多个单独的应用程序中收集的行为信息并且监测多个应用程序之间的相互作用,各种实施例通过使得装置能够更准确地表征软件应用程序之间的关系、解析软件应用程序的类别、更好的分析一组软件应用程序的共同行为且更好的对系统层级装置行为进行分类而改进了计算装置的功能。

另外,各种实施例提供了基于行为的安全系统,所述安全系统使得计算装置能够快速且有效地识别和响应于非良性装置行为,而不会对计算装置的响应性、性能或电力消耗特性有着相当大的负面或用户可察觉影响。因而,基于行为的安全系统较适合于包含在移动装置和其它资源受限制的计算装置中且在移动装置和其它资源受限制的计算装置中使用,所述其它资源受限制的计算装置例如智能电话,智能电话是资源有限的、通过电池电源运行且对于智能电话而言性能和安全是重要的。

计算装置的功能、功能性和/或机能的额外的改进从下文所提供的实施例的详细描述中是显而易见的。

术语“性能下降”在本申请中用于指代多种多样的计算装置的不希望的操作和特性,例如较长处理时间、较慢实时响应性、较低的电池寿命、私人数据的损失、恶意经济活动(例如,发送未经授权的收费短信)、拒绝服务(DoS)、不充分地编写或设计的软件应用程序、恶意软件、恶意代码、病毒、分段存储器、涉及强占移动装置或利用电话从事间谍或僵尸网络活动的操作等。并且,出于这些原因中的任一个的降低性能的行为、活动和条件在本文中被称作“不是良性”或“非良性”。

术语“移动计算装置”和“移动装置”在本文中互换地使用以指代以下各项中的任何一者或全部:蜂窝式电话、智能电话、个人或移动多媒体播放器、个人数据助理(PDA)、膝上型计算机、平板计算机、智能本、超级本、掌上型计算机、无线电子邮件接收器、具多媒体互联网功能的蜂窝式电话、无线游戏控制器,以及包括存储器和可编程处理器的类似的个人电子装置,对于所述电子装置性能是重要的,并且所述电子装置在电池电源下运行使得节约电力的方法是有益的。虽然各种实施例对于移动计算装置(例如,具有有限的资源且通过电池运行的智能电话)是尤其有用的,但是实施例通常在包括处理器且执行应用程序的任何电子装置中是有用的。

一般而言,移动装置的性能和功率效率随时间推移降低。近年来,杀毒软件公司(例如,McAfee、Symantec等)已经开始营销旨在减缓这种降低的手机杀毒软件、防火墙和加密产品。然而,这些解决方案中的许多依赖于在移动装置上周期性地执行计算密集型扫描引擎,这可能消耗许多的移动装置的处理和电池资源、在延长的时间周期减缓或放弃移动装置和/或另外降低用户体验。另外,这些解决方案是通常限制在检测已知的病毒和恶意代码,且并不解决通常结合以导致移动装置的随时间推移的降低的多个复杂的因素和/或相互作用(例如,当性能下降并不是由病毒或恶意代码引起的时)。出于这些和其它原因,现有杀毒软件、防火墙和加密产品并不提供可以胜任以下问题的解决方案:识别可以造成移动装置随时间推移降级的多个因素、防止移动装置降级或者有效恢复老化的移动装置到其初始状态。

另外,现代移动装置是高度可配置的并且是复杂的系统。因而,对于确定特定装置行为是否是良性或非良性(例如,恶意或性能降低)的最重要特征可能在每个移动装置中不同。另外,存在可以造成随时间推移的移动计算装置的性能和电源利用水平下降的各种各样的因素,其包括不充分地编写或设计的软件应用程序、恶意代码、病毒、分段存储器、后台进程等。由于这些因素的数量多、种类广和其复杂性,评估在现代移动计算装置的复杂而资源受限制的系统的性能和/或电源利用水平中造成下降的全部因素通常是不可行的。因而,对于用户、操作系统和/或应用程序(例如,杀毒软件等)而言准确地且有效地识别问题的来源是困难的。因此,当前移动装置用户几乎没有防止随时间推移在移动装置的性能和电源利用水平中的降级的补救措施,或者恢复老化的移动装置到其初始性能和电源利用水平的补救措施。

当前,存在各种解决方案以模拟在计算装置上运行/执行的软件应用程序的行为,并且这些解决方案可以连同机器学习技术一起使用以确定软件应用程序是否是恶意的或良性的。然而,现有解决方案并不适用于移动或资源受限制的装置,这是因为它们需要评估非常大体量的行为信息,并不动态地产生行为模型以考虑计算装置的装置特定的和应用特定的特征,并不智能地在行为模型中优化特征;且现有解决方案被限制在评估个体应用程序或过程和/或需要在装置中执行计算密集型过程。因而,在移动或资源受限制的计算装置中实施或执行这些解决方案可能对装置的响应性、性能或电力消耗特性具有相当大的负面和/或用户可察觉的影响。

鉴于这些问题,为了提供更好的性能,计算装置(例如,移动装置等)可以配备有基于行为的安全系统,所述安全系统经配置以使用行为分析技术以智能地且有效地在计算装置中识别、防止、校正或者另外响应于非良性行为,而不会对装置的响应性、性能或电力消耗特性具有相当大的、负面的或用户可察觉的影响。

基于行为的安全系统可以包括观测器过程、后台程序、模块或子系统(本文中统称为“模块”)行为提取器模块和分析仪模块。观测器模块可以经配置以在计算装置系统(例如,移动装置系统)的各种层级处指示或协调各种应用程序编程接口(API)、寄存器、计数器或其它装置组件(本文中统称为“所指示的组件”)、从所指示的组件中收集行为信息以及将所收集的行为信息传送(例如,经由存储器写入操作、函数调用等)到行为提取器模块。行为提取器模块可以使用所收集的行为信息以产生各自表示或表征与装置的一或多个特定的线程、过程、软件应用程序、模块或组件相关联的许多或全部观察到的事件、条件、任务、活动和/或行为(本文中统称为“行为”)的行为向量。行为提取器模块可以将所产生的行为向量传送(例如,经由存储器写入操作、函数调用等)到使用行为向量以执行行为分析操作的分析仪模块,所述行为分析操作可以包括实施、执行和/或应用数据、算法和/或模型以确定软件应用程序或装置行为是否是良性的或非良性的(例如,恶意的、不充分地编写、性能降低等)。计算装置处理器可随后执行各种操作以校正、治愈、解决、隔离或者另外修复所识别的问题(例如,确定为非良性的行为)。

虽然上文描述的系统对于防止随时间推移在计算装置的性能和电源利用水平中的降低通常是非常有效,但是网络攻击的复杂度是在增长的而且可以通过使用两个或大于两个软件应用程序以掩盖它们的恶意操作而规避或避开通过基于行为的安全系统的检测。举例来说,两个串通的软件应用程序可以协调它们的操作以盗窃用户的私人信息(例如,联系人、信用卡号等)并且避免通过基于行为的安全系统的检测。举例来说,第一个串通的应用程序可以在装置的存储器的指定部分中(或在特定的存储器位置处)读取和写入私人信息,而第二个串通的应用程序可以读取和传送存储于存储器位置中的信息到服务器。由于单独地这些操作是没有指示恶意活动的,所以现有的基于行为的安全系统可能不能够准确地识别这一系列的操作为与单个非良性行为相关联。

检测和确定一系列操作与单个行为相关联的一种方法是执行数据流跟踪操作。数据流跟踪解决方案,例如,FlowDroid,通常是防止恶意软件应用程序避开检测的有效工具。简要地,数据流跟踪解决方案在计算系统中监测许多或全部的数据操作(读取、写入、数据编码、数据传输等)且尝试识别单独地或共同地不恰当地使用数据的软件应用程序。然而,数据流跟踪解决方案需要在计算系统中监测许多的数据流和数据操作和/或需要执行非常复杂的且耗电量大的过程。因而,数据流跟踪解决方案并不适合于用于具有相对有限的处理、存储器和能源资源的通常是资源受限制的系统的移动装置。另外,现代移动装置是复杂的系统,且评估全部的各种可能是恶意的或者造成移动装置性能下降的数据流、数据操作(读取、写入、数据编码、数据传输等)、过程、组件、行为或因素(或其组合)通常是不可行的。出于全部这些原因,现有数据流跟踪解决方案并不适用于移动和资源受限制的计算装置。

鉴于这些问题,各种实施例可以配置装置处理器(例如,移动装置处理器等)以识别、分析、防止和/或响应于串通的攻击和由一组选择的软件应用程序的共同行为引起的其它状态,而不用在装置中监测数据流或执行数据流跟踪操作。装置处理器可以完成此操作而不对计算装置的响应性、性能或电力消耗特性有相当大负面或用户可察觉的影响。因而,各种实施例在移动装置和含有有限资源且其性能和电池寿命重要的资源受限制的计算装置中是尤其有用的。

在各种实施例中,装置处理器(或装置的基于行为的安全系统)可以经配置以监测两个或大于两个软件应用程序之间的相互作用、产生识别或表征所监测的应用程序之间关系的关系信息(例如,行为向量等)、使用关系信息来识别应当作为一组一起评估的软件应用程序、从所识别的应用程序中的每一个中收集行为信息、聚集从所识别的应用程序中的每一个中(例如,在行为向量中)所收集的行为信息和/或聚集评估每个所识别的应用程序的结果(例如,经由分类器模型)。装置处理器可随后使用所聚集的信息来评估所识别的应用程序的共同行为作为单个装置行为。

通过确定关系的本质和特定的应用程序之间的相互作用,各种实施例使得装置处理器能够更好的确定两个或大于两个应用程序是否一起工作以隐藏它们的恶意活动,和/或更好的确定软件应用程序的较小或集中群组的共同行为是否已经对计算装置的性能特性有非预期的负面影响(例如,由于应用程序中的一或多个为不充分地设计等)。

在一些实施例中,装置处理器可以经配置以对所监测的应用程序进行分类、解析或预解析应用程序的选择群组或类别和/或产生应用程序的类别的性能编号。性能编号可以包括适用于识别、评估和/或比较各种性能特性的信息,例如能耗、存储器使用、带宽使用、CPU循环、关于应用程序性能的用户体验、用户接口(UI)响应性和个体应用程序、应用程序的群组或应用程序的类别的其它类似的可测量的特性。通过使用行为分析技术以解析或产生应用程序(或应用程序的群组或类别)的性能编号,各种实施例使得装置处理器能够更好的识别和响应于已经对计算装置的性能和/或电力消耗水平具有非预期的、不成比例的或负面的影响的应用程序或应用程序的群组。

在各种实施例中,计算装置(例如,移动装置等)可以配备有经配置以执行在本申请案中讨论的操作中的任一者或全部的综合行为监测和分析系统。举例来说,行为监测和分析系统可以包括观测器模块、行为提取器模块和分析仪模块。观测器模块可以经配置以监测选择应用程序(或一组应用程序)之间的操作(例如,存储器读取/写入操作)、相互作用、关系和通信。这可以通过监测各种所指示的组件,例如存储器的选择部分、选择存储器地址、硬件组件、内容解析器API等实现。通过监测这些所指示的组件,观测器模块可以收集原本将不能通过常规的基于行为的安全系统所收集的额外的行为信息。

行为提取器模块可以经配置以使用行为信息(即,通过观测器模块收集的信息)以产生表征应用程序之间关系的行为向量和/或表示或表征两个或大于两个应用程序的共同行为的行为向量。每个行为向量可以为包括或囊封一或多个“行为特征”的信息结构。行为特征可以为表示在计算装置中观察到的事件、状态、活动、操作、关系、相互作用或行为的全部或一部分的抽象的数字或符号。每个行为特征可以与识别一系列可能值的数据类型以及可以在那些值、值的含义和其它类似信息上执行的操作相关联。数据类型可以由计算装置使用以确定应当如何测量、分析、加权或使用对应的行为特征(或特征值)。

行为提取器模块可以传送(例如,经由存储器写入操作、函数调用等)所产生的行为向量到分析仪模块,所述分析仪模块可以将行为向量应用于分类器模型以确定软件应用程序之间关系的本质(例如,两个或大于两个软件应用程序是否协同工作等)和/或确定应用程序的共同行为是否是非良性的。

分类器模型可以为包括数据、表项、决策节点、决策标准和/或信息结构的行为模型,所述结构信息可以由装置处理器使用以快速地且有效地测试或评估特定的特征、因素、数据点、表项、API、状态、状况、行为、软件应用程序、过程、操作、组件等(本文中统称为“特征”)或装置行为的其它实施例。分类器模型还可以包括可以由装置处理器使用以确定软件应用程序之间关系的本质和/或在计算装置中所监测的行为的信息。

每个分类器模型可以分类为完整分类器模型或精益分类器模型。完整分类器模型可以为稳健数据模型,所述数据模型是作为大量培训数据集的函数产生的,其可以包括数千特征和数十亿的表项。精益分类器模型可以为更为集中的数据模型,所述数据模型由简化数据集产生,所述简化数据集包括或优先考虑与确定特定计算装置行为是否是非良性的最相关的特征/表项上的测试。本地分类器模型可以为在移动计算装置中产生的精益分类器模型。装置特定的分类器模型可以为包括集中数据模型的本地分类器模型,所述集中数据模型仅包括/测试计算装置特定的特征/表项,所述特征/表项被确定为与在该特定装置中对活动或行为进行分类最为相关。应用程序特定的分类器模型可以为包括集中数据模型的本地分类器模型,所述集中数据模型包括或优先考虑在与确定特定软件应用程序(或特定类型的软件应用程序)是否是非良性的最相关的特征/表项上的测试。

多应用程序分类器模型可以为包括所聚集的特征集和/或测试与评估两个或大于两个软件应用程序相关的特征的决策节点的本地分类器模型。举例来说,多应用程序分类器模型可以包括测试与识别或表征两个软件应用程序之间的关系最相关的条件或特征的决策节点。作为另一实例,多应用程序分类器模型可以包括测试与确定两个软件应用程序(或特定类型的软件应用程序)的共同行为是否是非良性的最相关的条件或特征的决策节点。

在一些实施例中,装置处理器可以经配置以通过组合两个或大于两个应用特定的分类器模型而产生多应用程序分类器模型。在其它实施例中,装置处理器可以通过识别与识别两个或大于两个软件应用程序之间的关系、相互作用和/或通信最相关的装置特征、通过识别评估所识别的装置特征的测试条件以及通过产生分类器模型以包括所识别的测试条件而产生多应用程序分类器模型。在另一实施例中,装置处理器可以经配置以确定所识别的测试条件的优先级、重要性或成功率并且产生分类器模型以使得测试条件根据它们的优先级、重要性或成功率来排序。

在各种实施例中,装置处理器可以经配置以产生或使用分类器模型以确定应用程序之间的关系和/或确定应用程序的共同行为是否是非良性的。

举例来说,在一个实施例中,装置处理器可以经配置以监测在计算装置上运行的软件应用程序之间的相互作用、产生表征软件应用程序之间关系的行为向量、将行为向量应用于分类器模型以产生分析信息并且使用分析信息来确定应用程序是否是串通或协同工作的。装置处理器可随后识别应当作为一组一起分析的软件应用程序(例如,串通应用程序)、将所识别的应用程序的行为向量应用于同一或不同分类器模型(或分类器模型的家族)、聚集所产生的分析信息,并且使用所聚集的分析信息来确定所识别的应用程序的共同行为是否是非良性的。

作为另一实例,装置处理器可以经配置以识别应当作为一组一起分析的软件应用程序、监测所识别的应用程序的活动、收集用于所监测的活动中的每一个的行为信息、基于所收集的行为信息产生表征所识别的应用程序的共同行为的行为向量、将所产生的行为向量应用于分类器模型(或分类器模型的家族)以产生分析,并且使用分析信息来确定所识别的应用程序的共同行为是否是非良性的。

在一些实施例中,装置处理器还可经配置以使用分析信息(即,将行为向量应用于分类器模型的结果)以对所监测的软件应用程序进行分类、解析软件应用程序的每个类别,和/或产生软件应用程序的每个类别的性能编号。举例来说,装置处理器可以使用分析信息来计算/估算一类软件应用程序(例如,游戏、社交网络、新闻、财务等)的电源消耗的量。另外,通过预解析和测量每个特征的电力消耗,装置处理器可以解析在装置上运行的全部活动或应用程序的电力消耗。装置处理器可以使用此类信息(例如,估算的电力消耗)来预测电池寿命、识别消耗装置的可供使用的大量资源的应用程序的类别且执行其它类似操作。装置处理器可以显示此类信息给计算装置的用户或使用这一信息更好的评估装置行为。

各种实施例可以在包括单处理器和多处理器系统以及芯片上系统(SOC)的多个不同计算装置中实施。图1是说明可以用于实施各种实施例的计算装置中的实例芯片上系统(SOC)100架构的架构图。SOC 100可以包括多个异构处理器,例如,数字信号处理器(DSP)101、调制解调器处理器104、图形处理器106和应用程序处理器108。SOC 100还可以包括一或多个连接到异构处理器102、104、106、108中的一或多个的协同处理器110(例如,向量协同处理器)。每个处理器101、104、106、108、110可以包括一或多个核心,且每个处理器/核心可以执行不依赖于其它处理器/核心的操作。举例来说,SOC 100可以包括执行第一类型的操作系统(例如,FreeBSD、LINIX、OS X等)的处理器和执行第二类型的操作系统(例如,微软Windows 8)的处理器。

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

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

在处理器101、104、106、108、110中的一或多个中执行的操作系统可以经配置以通过软件应用程序控制和协调存储器的分配以及使用,且跨越多个软件应用程序分割物理存储器。因而,操作系统可以包括一或多个存储器管理系统或过程(例如,虚拟内存管理器等),所述存储器管理系统或过程通过各种软件应用程序管理存储器的分配和使用并且确保由一个过程使用的存储器不与另一过程已经使用的存储器发生干扰。

除了上文所论述的基于软件的存储器管理系统或过程(例如,OS VMM等)之外,SOC 100还可以包括一或多个基于硬件的存储器管理系统,例如,中央处理单元(CPU)存储器管理单元(MMU)和系统MMU。CPU MMU和系统MMU可以是负责执行各种存储器相关操作的硬件组件,例如,转换虚拟地址为物理地址、高速缓存控制、总线判优和存储器保护。举例来说,CPU MMU可以负责向主CPU(例如,应用程序处理器108)提供地址转换服务和保护功能,并且系统MMU可以负责向其它硬件组件(例如,数字信号处理器101、调制解调器处理器104、图形处理器106等)提供地址转换服务和保护功能。

SOC 100还可以包括基于硬件的存储器监测单元113,其可以是经配置以通过软件应用程序在硬件层级处和/或基于硬件事件(例如,存储器读取和写入操作等)监测MMU和存储器元件112的存取或使用的可编程逻辑电路(PLC)。基于硬件的存储器监测单元113可以与其它硬件和基于软件的存储器管理系统以及装置的MMU分隔,且不依赖于其它硬件和基于软件的存储器管理系统以及装置的MMU运行。

在各种实施例中,基于硬件的存储器监测单元113可以经配置以通过软件应用程序监测MMU和存储器元件112的存取和使用以收集存储器使用信息,并且比较所收集的存储器使用信息与存储器使用模式(其可以编程到PLC中)以识别应用程序之间的关系和/或确定通过软件应用程序使用的存储器是否指示可疑或串通行为。基于硬件的存储器监测单元113可随后报告所识别的关系和/或可疑或串通行为到观测器或分析仪模块(例如,经由处理器101、104、106、108)。

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

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

除了上文所论述的SOC 100之外,各种实施例还可以在多种多样的计算系统中实施,所述计算系统可以包括单个处理器、多个处理器、多核心处理器或其任何组合。

图2说明在一个实施例移动计算装置102中的实例逻辑组件和信息流,所述移动计算装置包括经配置以使用行为分析技术来识别和响应于非良性装置行为的基于行为的安全系统200。在图2中说明的实例中,计算装置是移动计算装置102,其包括配置有包含行为观测器模块202、行为提取器模块204、行为分析仪模块208和致动器模块210的可执行指令模块的装置处理器(即,移动装置处理器)。模块202到210中的每一个可以为线程、过程、后台程序、模块、子系统、或在软件、硬件或其组合中实施的组件。在各种实施例中,模块202到210可以在操作系统的部分内(例如,在内核内、在内核空间中、在用户空间中等)实施、在单独程序或应用程序内实施、在特定硬件缓冲器或处理器中实施或在其任何组合中实施。在一个实施例中,模块202到210中的一或多个可以被实施为在移动计算装置102的一或多个处理器上执行的软件指令。

行为观测器模块202可以经配置以在某一时间周期内在装置的各种层级/模块处指导应用程序编程接口(API)、计数器、硬件监测器等,以及在各种层级/模块处监测活动、条件、操作和事件(例如,系统事件、状态改变等)。举例来说,行为观测器模块202可以经配置以监测移动计算装置102的各种软件和硬件组件,以及收集关于相互作用、通信、交易、事件或与移动计算装置102的活动相关联的所监测的和可测量的组件的操作的行为信息。此类活动包括软件应用程序使用硬件组件、操作或任务的性能、软件应用程序在移动计算装置102的处理核心中的执行、过程的执行、任务或操作的性能、装置行为等。

作为另一个实例,行为观测器模块202可以经配置以通过利用软件应用程序监测装置存储器的分配或使用而监测移动计算装置102的活动。在一个实施例中,这可以通过监测计算装置的存储器管理系统(例如,虚拟存储器管理器、存储器管理单元等)的操作实现。此类系统通常负责通过各种应用程序来管理系统存储器的分配和使用以确保由一个过程使用的存储器并不与已经由另一过程使用的存储器发生干扰。因此,通过监测存储器管理系统的运行,装置处理器可以收集适用于确定两个应用程序是否协同工作的行为信息,例如两个过程是否已经被分配了同一存储器空间、是否读取和写入信息到同一存储器地址或位置,或是否执行其它可疑存储器相关的操作。

行为观测器模块202可以收集关于所监测的活动、条件、操作或事件的行为信息,并且将所收集的信息存储在存储器中(例如,在日志文件中等)。行为观测器模块202可随后将所收集的行为信息传送(例如,经由存储器写入操作、函数调用等)到行为提取器模块204。

在一个实施例中,行为观测器模块202可以经配置以在硬件层级处和/或基于硬件事件(例如,存储器读取和写入操作等)通过监测装置存储器的分配或使用而监测移动计算装置102的活动。在另一实施例中,行为观测器模块202可以在硬件模块(例如,上文参考图1所述的存储器监测单元113)中实施以用于监测功能的更快的、接近实时的执行。举例来说,行为观测器模块202可以在包括可编程逻辑电路(PLC)的硬件模块内实施,其中可编程逻辑元件经配置以在硬件层级处和/或基于硬件事件(例如,存储器读取和写入操作等)监测计算装置存储器的分配或使用并且另外实施各种实施例。此类硬件模块可以输出硬件事件监测的结果到实施行为提取器模块204的装置处理器。PLC可经配置以监测某些硬件并且使用众所周知的PLC编程方法实施本文所描述的各种实施例的某些操作。也可以使用用于在硬件模块中实施实施例方法的一些操作的其它电路。

类似地,模块202到210中的每一个可以在硬件模块中实施,例如通过在SoC中包括一或多个PLC元件,其中PLC元件是使用PLC编程方法配置的以执行实施例方法的一些操作。

行为提取器模块204可经配置以接收或检索所收集的行为信息,并且使用这一信息以产生一或多个行为向量。在各种实施例中,行为提取器模块204可经配置以产生行为向量以包括软件应用程序的所观察到的行为、关系或相互作用的简洁定义。举例来说,每个行为向量可以在值或向量数据结构中简明地描述软件应用程序的共同行为。向量数据结构可以包括编号的序列,其中的每一个表示装置的特征或行为,例如,计算装置的相机是否在使用中(例如,作为零或一)、已经从计算装置中传输多少网络流量或多少网络流量通过计算装置产生(例如,20KB/秒等)、已经传送多少互联网消息(例如,SMS消息的数目等),和/或通过行为观测器模块202收集的任何其它行为信息。在一个实施例中,行为提取器模块204可经配置以产生行为向量使得它们充当标识符,所述标识符使得计算装置系统(例如,行为分析仪模块208)能够快速地认出、识别或分析应用程序之间的关系。

行为分析仪模块208可经配置以将行为向量应用于分类器模块以识别两个或大于两个软件应用程序之间的关系的本质。行为分析仪模块208还可经配置以将行为向量应用于分类器模块以确定共同装置行为(即,在装置上运行的两个或大于两个软件应用程序的共同活动)是否是有助于(或可能地造成)装置的随时间推移的降级和/或可能另外在装置上造成问题的非良性行为。

行为分析仪模块208可以通知致动器模块210活动或行为不是良性的。作为响应,致动器模块210可以执行各种动作或操作以治愈、解决、隔离或者修复所识别的问题。举例来说,致动器模块210可经配置以在将行为向量应用于分类器模型(例如,通过分析仪模块)的结果指示软件应用程序的共同行为并不是良性的时停止或终止软件应用程序中的一或多个。

在各种实施例中,行为观测器模块202可经配置以监测移动计算装置102的活动,方法是收集关于在应用程序框架或运行时间库中的库API调用、系统调用API、文件系统和网络连接子系统操作、装置(包括传感器装置)状态改变和其它类似事件的信息。另外,行为观测器模块202可以监测文件系统活动,文件系统活动可以包括搜寻文件名称、文件存取的类别(个人信息或普通数据文件)、创建或删除文件(例如,类型exe、zip等)、文件读取/写入/寻找操作、改变文件许可等。

行为观测器模块202也可以通过监测数据网络活动监测移动计算装置102的活动,其可以包括装置所连接到的连接、协议、端口号、服务器/客户端的类型、连接的数目、通信的容积或频率等。行为观测器模块202可以监测电话网络活动,其可以包括监测发出、接收或拦截的呼叫或消息(例如,SMS等)的类型和数目(例如,放置的收费呼叫的数目)。

行为观测器模块202也可以通过监测系统资源使用来监测移动计算装置102的活动,其可以包括监测叉路的数目、存储器存取操作、文件打开的数目等。行为观测器模块202可以监测移动计算装置102的状态,其可以包括监测各种因素,例如,显示器是否是开启或关闭的、装置是否是锁定或解锁的、剩余的电池的量、相机的状态等。行为观测器模块202也可以监测过程间通信(IPC),例如,监测到关键服务(浏览器、合同提供商等)的意图、过程间通信的程度、弹出窗口等。

行为观测器模块202也可以通过监测一或多个硬件组件的驱动器统计数据和/或状态来监测移动计算装置102的活动,这些硬件组件可以包括相机、传感器、电子显示器、WiFi通信组件、数据控制器、存储器控制器、系统控制器、存取端口、计时器、外围装置、无线通信组件、外部存储器芯片、电压调节器、振荡器、锁相环、外围桥接和用于支持在移动计算装置102上运行的处理器和客户端的其它类似组件。

行为观测器模块202也可以通过监测一或多个硬件计数器来监测移动计算装置102的活动,所述硬件计数器表示移动计算装置102和/或计算装置子系统的状态或情况。硬件计数器可以包括经配置以存储发生在移动计算装置102中的硬件相关活动或事件的计数值或状态的处理器/核心的特殊目的寄存器。

行为观测器模块202也可以通过监测软件应用程序的动作或操作、从应用程序下载服务器(例如,应用商城服务器)下载的软件、由软件应用程序使用的计算装置信息、呼叫信息、文本消息传送信息(例如,发送SMS、阻断SMS、读取SMS等)、媒体消息传送信息(例如,接收MMS)、用户帐户信息、位置信息、相机信息、加速计信息、浏览器信息、基于浏览器通信的内容、基于语音通信的内容、短程无线电通信(例如,蓝牙、WiFi等)、基于文本通信的内容、所记录的音频文件的内容、电话簿或联系人信息、联系人列表等来监测移动计算装置102的活动。

行为观测器模块202也可以通过监测移动计算装置102的传输或通信来监测移动计算装置102的活动,所述通信包括包含以下项的通信:语音邮件(VoiceMailComm)、装置标识符(DeviceIDComm)、用户帐户信息(UserAccountComm)、日历信息(CalendarComm)、位置信息(LocationComm)、所记录的音频信息(RecordAudioComm)、加速计信息(AccelerometerComm)等。

行为观测器模块202也可以通过监测指南针信息、计算装置设置、电池寿命、陀螺仪信息、压力传感器、磁传感器、屏幕活动等的使用和更新/改变来监测移动计算装置102的活动。行为观测器模块202可以监测传送到软件应用程序(AppNotifications)和来自软件应用程序(AppNotifications)的通知、应用程序更新等。行为观测器模块202可以监测关于第一软件应用程序的条件或事件,所述第一软件应用程序请求第二软件应用程序的下载和/或安装。行为观测器模块202可以监测关于用户验证的条件或事件,例如,密码的输入等。

行为观测器模块202也可以通过监测在移动计算装置102的多个层级处的条件或事件来监测移动计算装置102的活动,这些层级包括应用程序层级、无线电层级和传感器层级。应用程序层级观察可以包括经由面部识别软件来观察用户、观察社交串流、观察用户输入的记录、观察关于Wallet、和其它类似应用程序或服务的使用的事件。应用程序层级观察还可以包括观察涉及虚拟专用网络(VPN)的使用的事件和关于同步、语音搜索、语音控制(例如,通过说出一个词语来锁定/解锁电话)、语言翻译程序、为了计算的数据的卸载、视频串流、不含用户活动的相机使用、不含用户活动的麦克风使用等的事件。

无线电层级观察可以包括在建立无线电通信链路或传输信息、双重/多个订户识别模块(SIM)卡、互联网无线电、移动电话网络共享、为了计算卸载数据、装置状态通信、作为游戏控制器或家庭控制器的使用、媒介通信、计算装置同步等之前确定与移动计算装置102的用户交互中的任何一个或多个的出现、存在或数量。无线电层级观察还可以包括监测无线电(WiFi、WiMax、蓝牙等)的使用以用于定位、同级间(p2p)通信、同步、媒介间通信和/或机器间(m2m)。无线电层级观察可以进一步包括监测网络流量使用、统计数据或配置文件。

传感器层级观察可以包括监测磁传感器或其它传感器以确定移动计算装置102的使用和/或外部环境。举例来说,计算装置处理器可经配置以确定装置是否在皮套中(例如,经由磁传感器经配置以感测皮套内磁体)或在用户的口袋中(例如,经由通过相机或光传感器检测到的光的量)。检测移动计算装置102在皮套中可以与识别可疑行为相关,举例来说,因为与通过用户的活跃使用相关的活动和功能(例如,拍摄照片或视频、发送消息、进行语音呼叫、记录声音等)在移动计算装置102装在皮套中的同时发生可以是在装置上执行违法过程(例如,跟踪或监视用户)的征兆。

与使用或外部环境相关的传感器层级观察的其它实例可以包括:检测NFC信令、从信用卡扫描仪、条形码扫描仪或移动标签读取器收集信息、检测通用串行总线(USB)电力充电源的存在、检测已经耦合到移动计算装置102的键盘或辅助装置、检测移动计算装置102已经耦合到另一计算装置(例如,经由USB等)、确定LED、闪光、手电筒或光源是否已经是经修改或停用的(例如,恶意停用紧急信令应用程序等)、检测扬声器或麦克风已经开启或供电、检测充电或电源事件、检测移动计算装置102被用作游戏控制器等。传感器层级观察还可以包括:从医学或医疗传感器中收集信息或者通过扫描用户的身体收集信息、从插入到USB/音频插孔中的外部传感器收集信息、从触感或触觉传感器中收集信息(例如,经由振动器接口等)、收集关于移动计算装置102的热状态的信息等。

为了减少监测到可管理层级的因素的数目,在一个实施例中,行为观测器模块202可经配置以通过监测/观察行为或因素的初始集合来执行粗略观察,所述行为或因素的初始集合是可以造成计算装置的降级的全部因素的较小子集。在一个实施例中,行为观测器模块202可以从云服务或网络中的服务器和/或组件中接收行为和/或因素的初始集合。在一个实施例中,可以在机器学习分类器模型中规定行为/因素的初始集合。

每个分类器模型可以是包括数据和/或信息结构(例如,特征向量、行为向量、组件列表等)的行为模型,所述数据和/或信息结构可以由计算装置处理器使用以评估计算装置的行为的特定特征或实施例。每个分类器模型还可以包括用于监测计算装置中的多个特征、因素、数据点、表项、API、状态、条件、行为、应用程序、过程、操作、组件等(本文中统称为“特征”)的决策标准。分类器模型可以预先安装在计算装置上、从网络服务器中下载或接收、产生于计算装置中,或其任何组合。分类器模型可以通过使用众包解决方案、行为模拟技术、机器学习算法等产生。

每个分类器模型可以分类为完整分类器模型或精益分类器模型。完整分类器模型可以为稳健数据模型,所述数据模型是作为大量培训数据集的函数产生的,其可以包括数千特征和数十亿的表项。精益分类器模型可以是从简化数据集中产生的更集中的数据模型,其仅包括/测试与用于确定特定活动是否是进行中的关键活动和/或特定计算装置行为是否并不是良性的最相关的特征/表项。作为实例,装置处理器可以是可经配置以从网络服务器中接收完整分类器模型、在计算装置中基于完整分类器产生精益分类器模型,并且使用本地产生的精益分类器模型来将装置的行为分类为良性或非良性的(即,恶意、性能降低等)。

本地产生的精益分类器模型是产生于计算装置中的精益分类器模型。也就是说,由于现代计算装置(例如,移动装置等)是高度可配置的且复杂的系统,所以用于确定特定装置行为是否是非良性的(例如,恶意或性能降低)的最重要特征在每个装置中可以是不同的。另外,可能需要在每个装置中监测和/或分析特征的不同组合以便该装置快速地且有效地确定特定行为是否是非良性的。然而,需要监测和分析的特征的精确组合和每个特征或特征组合的相对优先级或重要性通常仅可以使用从其中行为待监视或分析的特定的装置中获得的信息来确定的。出于这些和其它原因,各种实施例可以在其中使用模型的计算装置中产生分类器模型。这些本地分类器模型使得装置处理器能够准确地识别在确定特定的装置上的行为是否是非良性的(例如,有助于装置性能下降)中最重要的特定特征。本地分类器模型还使得装置处理器能够优先化根据它们的相对重要性测试或评估的特征以对该特定装置中的行为进行分类。

装置特定的分类器模型是包括集中数据模型的分类器模型,所述集中数据模型仅包括/测试所确定的与对特定计算装置中的活动或行为进行分类最相关的计算装置特定的特征/表项。应用程序特定的分类器模型是包括集中数据模型的分类器模型,所述集中数据模型仅包括/测试与用于评估特定软件应用程序最相关的特征/表项。通过在计算装置中本地动态地产生应用程序特定的分类器模型,各种实施例使得装置处理器能够将其监测和分析操作集中于用于确定特定软件应用程序的操作是否有助于该装置的不希望的或性能降低行为的最重要的少量特征。

多应用程序分类器模型可以是包括集中数据模型的本地分类器模型,所述集中数据模型包括或优先化关于与用于确定两个或大于两个特定软件应用程序(或特定类型的软件应用程序)的共同行为是非良性的最相关的特征/表项的测试。多应用程序分类器模型可以包括测试/评估特征的聚集的集合的聚集特征集合和/或决策节点。装置处理器可经配置以产生多应用程序分类器模型,方法是:识别用于识别在计算装置上运行的两个或大于两个软件应用程序之间的关系、相互作用和/或通信的最相关的装置特征、识别评估所识别的装置特征中的一个的测试条件、确定所识别的测试条件的优先级、重要性或成功率、根据它们的重要性或成功率优先化或排序所识别的测试条件,并且产生分类器模型以包括所识别的测试条件使得它们是根据它们的所确定的优先级、重要性或成功率排序的。装置处理器还可经配置以通过组合两个或大于两个应用程序特定的分类器模型产生多应用程序分类器模型。

在各种实施例中,装置处理器可经配置以响应于确定两个或大于两个应用程序是串通或协同工作的或应用程序应当作为一组一起分析产生多应用程序分类器模型。装置处理器可经配置以产生用于应用程序的每个所识别群组或类别的多应用程序分类器模型。然而,分析每个群组可能消耗大量的装置的有限的资源。因此,在一个实施例中,装置处理器可经配置以确定应用程序参与串通行为的概率(例如,基于其与其它应用程序的相互作用等),并且仅针对包括存在高概率的串通行为的软件应用程序的群组智能地产生分类器模型。

行为分析仪模块208可经配置以将由行为提取器模块204产生的行为向量应用于分类器模型以确定所监测的活动(或行为)是否是良性或非良性的。在一个实施例中,当行为的行为分析操作的结果并不能提供将行为分类为良性或非良性的足够的信息时行为分析仪模块208可以将行为分类为“可疑”。

行为分析仪模块208可经配置以响应于识别串通软件应用程序、确定某些应用程序应当被评估为一组和/或响应于确定所监测的活动或行为是可疑的而通知行为观测器模块202。作为响应,行为观测器模块202可调节其观察的间隔尺寸(即,监测到计算装置特征的详细的层级)和/或改变基于从行为分析仪模块208接收的信息(例如,实时分析操作的结果)监测的应用程序/因素/行为,产生或收集新的或额外的行为信息,并且发送新的/额外的信息到行为分析仪模块208以用于进一步的分析/分类。

行为观测器模块202和行为分析仪模块208之间的此类反馈通信使得移动计算装置102能够以递归方式增大观察的间隔尺寸(即,进行更加细致或更加详细的观察)或改变所观察到的特征/行为直至共同行为被分类为良性或非良性的、识别可疑或性能降低行为的来源为止;直至达到处理或电池消耗阈值为止;或直至装置处理器确定可疑或性能降低装置行为的来源无法通过观察间隔尺寸的进一步的改变、调节或增大来识别为止。此类反馈通信还使得移动计算装置102能够调节或修改行为向量和分类器模型而不会消耗过量的计算装置的处理、存储器或能源资源。

行为观测器模块202和行为分析仪模块208可单独地或共同地提供计算系统的行为的实时行为分析以从有限的且粗略的观察中识别可疑行为、以动态地确定行为以更详细地观察,并且以动态地确定观察所需要的详细的层级。这使得移动计算装置102能够有效地识别和防止问题而无需装置上的大量的处理器、存储器或电池资源。

在各种实施例中,移动计算装置102的装置处理器可经配置以识别需要密切监测的关键数据资源、监测(例如,经由行为观测器模块202)当存取关键数据资源时软件应用程序所进行的API调用、识别API调用的模式为指示通过两个或大于两个软件应用程序的非良性行为、基于API调用的所识别的模式和资源使用产生行为向量、使用行为向量来执行行为分析操作(例如,经由行为分析仪模块208),并且基于行为分析操作确定软件应用程序中的一或多个是否是非良性的。

在一个实施例中,装置处理器可经配置以识别通过在计算装置运行的软件应用程序使用的最频繁的API、存储关于在装置的存储器中的API记录中的所识别的热门API的使用的信息,并且基于存储在API记录中的信息执行行为分析操作以识别非良性行为。

在各种实施例中,移动计算装置102可经配置以结合网络服务器工作以智能地且有效地识别与确定活动或行为是否是非良性的最相关的特征、因素和数据点。举例来说,装置处理器可经配置以从网络服务器接收完整分类器模型,并且使用接收到的完整分类器模型来产生专用于在装置上运行的计算装置或软件应用程序的特征和功能性的精益分类器模型(即,数据/行为模型)。装置处理器可使用完整分类器模型来产生不同复杂度水平(或“精益度”)的精益分类器模型的家族。可以常规地应用精益分类器模型的最精益家族(即,基于最少数目的测试条件的精益分类器模型)直至遇到模型无法将其分类为良性或非良性(并且因此被模型分类为可疑)的行为,此时可以应用更加稳健(即,不太精益)的精益分类器模型以尝试对行为进行分类。可以应用在所产生的精益分类器模型的家族内的甚至更加稳健的精益分类器模型的应用程序直至获得行为的决定性分类。以此方式,装置处理器可以通过限制最完整但是资源密集型精益分类器模型的使用到其中需要稳健分类器模型以决定性地对行为进行分类的那些情况而在效率与准确性之间形成均衡。

在各种实施例中,装置处理器可经配置以通过将包含于完整分类器模型中的有限状态机表示/表达转换到增强的决策柱中产生精益分类器模型。装置处理器可基于装置特定的特征、条件或配置删除或挑选增强的决策柱的完整集合以产生包括包含于完整分类器模型中的增强的决策柱的子集的分类器模型。装置处理器可随后使用精益分类器模型以智能地监测、分析和/或对计算装置行为进行分类。

增强的决策柱是具有恰好一个节点(并且因此一个测试问题或测试条件)和权重值的一个层级决策树,并且因此较适合于在数据/行为的二进制分类中使用。也就是说,将行为向量应用于增强的决策柱引起二进制回答(例如,是或否)。举例来说,如果通过增强的决策柱测试的问题/条件是“短消息服务(SMS)传输的频率小于每分钟x”,那么将“3”的值应用于增强的决策柱将引起“是”的回答(对于“小于3”的SMS传输)或“否”的回答(对于“3或大于3的”SMS传输)。

增强的决策柱是高效的因为它们是非常简单且原始的(并且因此并不需要相当大的处理资源)。增强的决策柱也是非常可并行化的,并且因此许多柱可以并行/同时应用或测试(例如,通过计算装置中的多个核心或处理器)。

在一个实施例中,装置处理器可经配置以产生包括分类器标准的子集的精益分类器模型,所述分类器标准的子集包含于完整分类器模型中并且仅那些分类器标准对应于与计算装置配置、功能性和连接的/包括的硬件相关的特征。装置处理器可以使用这一精益分类器模型来仅监测存在或与装置相关的那些特征和功能。装置处理器可随后周期性修改或重新产生精益分类器模型以基于计算装置的当前状态和配置包括或去除各种特征和对应的分类器标准。

作为实例,装置处理器可经配置以接收包括与行为模型(例如,分类器)的完整特征集合相关联的决策柱的大型增强的决策柱分类器模型,并且从大型分类器模型中导出一或多个精益分类器模型,方法是仅从与计算装置的当前配置、功能性、操作状态和/或连接的/包括的硬件相关的大型分类器模型中选择特征,并且在精益分类器模型中包括对应于所选择的特征的增强的决策柱的子集。在此实施例中,对应于与计算装置相关的特征的分类器标准可以是包含于测试所选择的特征中的至少一者的大型分类器模型中的那些增强的决策柱。装置处理器可随后周期性地修改或重新产生增强的决策柱精益分类器模型以基于计算装置的当前状态和配置包括或去除各种特征以使得精益分类器模型继续包括应用程序特定的或装置特定的特征增强的决策柱。

另外,装置处理器也可以动态地产生应用程序特定的分类器模型,所述应用程序特定的分类器模型识别与特定的软件应用程序(钱包和)相关和/或与特定类型的软件应用程序(例如,游戏、导航、金融、新闻、生产率等)相关的条件或特征。这些分类器模型可以产生为包括包含于完整分类器模型中的决策节点的简少的且更集中的子集(或包括包含于从接收到的完整分类器模型中产生的更精益的分类器模型中的那些的简少的且更集中的子集)。这些分类器模型可以组合以产生多应用程序分类器模型。

在各种实施例中,装置处理器可经配置以针对在系统中的每个软件应用程序和/或针对在系统中的每种类型的软件应用程序产生基于应用程序的分类器模型。所述装置处理器还可经配置以动态地识别高风险或易受滥用影响的软件应用程序和/或应用程序类型(例如,金融应用程序、销售点应用程序、生物计量传感器应用程序等),并且产生基于应用程序的分类器模型以仅用于被识别为高风险或易受滥用影响的软件应用程序和/或应用程序类型。在各种实施例中,装置处理器可经配置以动态地、反应性地、主动地和/或每次安装或更新新应用程序时产生基于应用程序的分类器模型。

每个软件应用程序通常在计算装置上执行多个任务或活动。在其中某些任务/活动在计算装置中执行的特定的执行状态可以是行为或活动是否有益于额外的或更接近的审查、监测和/或分析的较强指示。因而,在各种实施例中,装置处理器可经配置以使用识别实际执行状态的信息,在实际执行状态中执行某些任务/活动以集中其行为监测和分析操作,并且更好的确定活动是否是关键活动和/或活动是否是非良性的。

在各种实施例中,装置处理器可经配置以使通过软件应用程序执行的活动/任务与其中执行那些活动/任务的执行状态相关联。举例来说,装置处理器可经配置以产生行为向量,所述行为向量包括从监测子向量或数据结构中的所指示的组件中收集的行为信息,所述行为信息列出了执行状态与之相关的软件的特征、活动或操作(例如,位置存取、SMS读取操作、传感器存取等)。在一个实施例中,这一子向量/数据结构可以结合识别其中观察到每个特征/活动/操作的执行状态的阴影特征值子向量/数据结构来存储。作为实例,装置处理器可产生包括“location_background”数据字段的行为向量,当装置处理器在背景状态中运行时所述数据字段的值识别软件应用程序存取位置信息的数目或速率。这使得装置处理器能够分析此执行状态信息而不不依赖于计算装置的其它所观察到的/所监测的活动和/或与计算装置的其它所观察到的/所监测的活动并行。以此方式产生行为向量还可以使得系统能够随时间推移聚集信息(例如,频率或速率)。

在各种实施例中,装置处理器可经配置以产生行为向量以包括可以输入到机器学习分类器中的决策节点的信息以产生对关于监测活动的查询的回答。

在各种实施例中,装置处理器可经配置以产生行为向量以包括执行信息。执行信息可以包含于行为向量中作为行为的一部分(例如,通过后台过程相机在3秒中使用5次,通过前台过程相机在3秒中使用3次等)或者作为独立特征的一部分。在一个实施例中,执行状态信息可以包含于行为向量中作为阴影特征值子向量或数据结构。在一个实施例中,行为向量可存储与同执行状态相关的特征、活动、任务相关联的阴影特征值子向量/数据结构。

图3说明了根据一个实施例使用行为分析技术来评估两个或大于两个软件应用程序的共同行为的方法300。方法300可以在移动或资源受限制的计算装置的处理核心中执行。

在框302中,处理核心可以监测在装置上运行的软件应用程序的活动。在框304中,处理核心可以从所监测的活动中收集行为信息。在框306中,处理核心可以基于所收集的行为信息产生行为向量。在框308中,处理核心可以将行为向量应用于分类器模型(或分类器模型的家族)以产生分析信息。在框310中,处理核心可以使用分析信息来识别软件应用程序之间的关系。在框312中,处理核心可以识别应当基于所识别的关系作为一组一起评估的软件应用程序。在框314中,处理核心可聚集所识别的软件应用程序的行为信息和/或分析结果。在框316中,处理核心可使用聚集的分析结果来确定软件应用程序的共同行为是否是良性或非良性的。

图4说明了根据一个实施例使用行为分析技术来确定软件应用程序之间的关系的方法400。方法400可以在移动或资源受限制的计算装置的处理核心中执行。在框402中,处理核心可监测在计算装置上运行的软件应用程序之间的相互作用。在框404中,处理核心可产生表征软件应用程序之间的关系的行为向量。在框406中,处理核心可以将行为向量应用于分类器模型(或分类器模型的家族)以产生分析信息。在框408中,处理核心可以使用分析信息来确定应用程序之间的关系的本质,例如,应用程序是否是串通或协同工作的。

图5说明了根据一个实施例使用行为分析技术来确定所识别的应用程序的共同行为是否是非良性的方法500。方法500可以在移动或资源受限制的计算装置的处理核心中执行。在框502中,处理核心可以识别软件应用程序应当作为一组(例如,串通应用程序等)一起分析。在框504中,处理核心可以将所识别的应用程序的行为向量应用于分类器模型(或分类器模型的家族)。在框506中,处理核心可以将由行为向量的每个应用程序产生的分析信息聚集到分类器模型。在框508中,处理核心可使用聚集的分析信息来确定所识别的软件应用程序的共同行为是否是非良性的。

图6说明了根据另一实施例使用行为分析技术来确定所识别的应用程序的共同行为是否是非良性的方法600。方法600可以在移动或资源受限制的计算装置的处理核心中执行。在框602中,处理核心可以识别软件应用程序应当作为一组一起分析。在框604中,处理核心可以监测所识别的应用程序的活动。在框606中,处理核心可以收集用于所监测的活动中的每一个的行为信息。在框608中,处理核心可以基于所收集的行为信息产生表征所识别的应用程序的共同行为的行为向量。在框610中,处理核心可以将所产生的行为向量应用于分类器模型(或分类器模型的家族)以产生分析信息。在框612中,处理核心可使用分析信息来确定所识别的软件应用程序的共同行为是否是非良性的。

图7说明了使用精益分类器模型的家族以对计算装置的行为进行分类的实施例方法700。方法700可以通过移动或资源受限制的计算装置的处理核心执行。

在框702中,处理核心可以执行观察以从指示为在计算装置系统的各种层级处的各种组件中收集行为信息。在一个实施例中,这可以经由上文参考图2所论述的行为观测器模块202实现。在框704中,处理核心可以产生表征观察、所收集的行为信息和/或计算装置行为的行为向量。另外,在框704中,处理核心可以使用从网络服务器中接收的完整分类器模型以产生不同复杂度水平(或“精益度”)的精益分类器模型或精益分类器模型的家族。为了实现这一点,处理核心可以采集包含于完整分类器模型中的增强的决策柱的家族以产生包括减少的数目的增强的决策柱和/或评估有限数目的测试条件的精益分类器模型。

在框706中,处理核心可以选择在精益分类器模型的家族中的最精益的分类器(即,基于最少数目的不同的计算装置状态、特征、行为或条件),然而所述最精益的分类器尚未由计算装置评估或应用。在一个实施例中,这可以通过选择分类器模型的有序列表中的第一分类器模型的处理核心实现。

在框708中,处理核心可以将所收集的行为信息或行为向量应用于所选择的精益分类器模型中的每个增强的决策柱。因为增强的决策柱是二进制决策并且精益分类器模型是通过基于同一测试条件选择许多二进制决策产生的,所以将行为向量应用于精益分类器模型中的增强的决策柱的过程可以在并行操作中执行。替代地,在框530中应用的行为向量可以是截短或滤波后的以恰好包括包含于精益分类器模型中的有限数目的测试条件参数,由此进一步减少在应模型中的计算努力。

在框710中,处理核心可以计算或确定将所收集的行为信息应用于精益分类器模型中的每个增强的决策柱的结果的加权平均值。在框712中,处理核心可以比较所计算的加权平均值与阈值。在确定框714中,处理核心可以确定这一比较的结果和/或由应用所选择的精益分类器模型产生的结果是否是可疑的。举例来说,处理核心可以确定这些结果是否可用于以较高程度的置信度将行为分类为恶意或良性的,并且如果不是则将行为作为可疑的对待。

如果处理核心确定结果是可疑的(例如,确定框714=“是”),那么处理核心可在框706到712中重复所述操作以选择和应用较强的(即,不太精益的)分类器模型,所述分类器模型评估更多的装置状态、特征、行为或条件直至行为被以较高程度的置信度分类为恶意或良性的。如果处理核心确定结果不是可疑的(例如,确定框714=“否”),例如通过确定行为可以较高程度的置信度被分类为恶意或良性的,那么在框716中,处理核心可以使用产生于框712中的比较的结果以将计算装置的行为分类为良性或潜在地恶意的。

在替代实施例方法中,上文所述的操作可以依序通过以下项而实现:选择并非已经在精益分类器模型中的增强的决策柱;识别取决于与所选择的决策柱相同的计算装置状态、特征、行为或条件(且因此可以基于一个确定结果应用)的全部其它增强的决策柱;在精益分类器模型中包括所选择的和取决于相同计算装置状态、特征、行为或条件的全部所识别的其它增强的决策柱;并且以等于测试条件的所确定数目重复所述过程多次。因为取决于与所选择的增强的决策柱相同的测试条件的全部增强的决策柱每次被添加到精益分类器模型,所以限制执行这一过程的次数将限制包含于精益分类器模型中的测试条件的数目。

图8说明了适用于各种实施例中的适用于产生增强的决策树/分类器的实例增强方法800。在框802中,处理器可以产生和/或执行决策树/分类器、从决策树/分类器的执行中收集培训样本,并且基于培训样本产生新的分类器模型(h1(x))。培训样本可以包括从计算装置中的计算装置行为、软件应用程序或过程的先前观察或分析中收集的信息。培训样本和/或新分类器模型(h1(x))可以基于包含于先前分类器中的问题的类型或测试条件和/或基于从在行为分析仪模块208的分类器模块中的先前数据/行为模型或分类器的执行/应用程序中收集的准确性或性能特性产生。在框804中,处理器可以增强(或增大)通过所产生的决策树/分类器(h1(x))错分类的表项的加权以产生第二新树/分类器(h2(x))。在一个实施例中,培训样本和/或新分类器模型(h2(x))可以基于分类器的先前执行或使用(h1(x))的错误速率产生。在一个实施例中,培训样本和/或新分类器模型(h2(x))可以基于确定为对分类器的先前执行或使用中的错误速率或数据点的错分类具有贡献的属性产生。

在一个实施例中,错分类表项可以基于它们的相对准确性或有效性加权。在框806中,处理器可以增强(或增大)通过所产生的第二树/分类器(h2(x))错分类的表项的加权以产生第三新树/分类器(h3(x))。在框808中,框804到806的操作可以重复以产生“t”数目的新树/分类器(ht(x))。

通过增强或增大通过第一决策树/分类器(h1(x))错分类的表项的加权,第二树/分类器(h2(x))可以更准确地对通过第一决策树/分类器(h1(x))错分类的实体进行分类,但是也可能对通过第一决策树/分类器(h1(x))正确地分类的实体中的一些进行错分类。类似地,第三树/分类器(h3(x))可准确地对由第二决策树/分类器(h2(x))错分类的实体进行分类并且对通过第二决策树/分类器(h2(x))正确地分类的实体中的一些错分类。也就是说,产生树/分类器h1(x)-ht(x)的家族可能未引起系统作为整体聚集,而是引起多个决策树/分类器可以并行地执行。

图9说明了根据一个实施例经配置以执行动态和自适应观察的计算系统的行为观测器模块202中的实例逻辑组件和信息流。行为观测器模块202可以包括自适应滤波器模块902、限制模块904、观测器模式模块906、高级行为检测模块908、行为向量产生器910和安全缓冲器912。高级行为检测模块908可以包括空间相关模块914和时间相关模块916。

观测器模式模块906可以从各种来源接收控制信息,所述来源可以包括分析仪单元(例如,上文参考图2所述的行为分析仪模块208)和/或应用程序API。观测器模式模块906可以将关于各种观测器模式的控制信息发送到自适应滤波器模块902和高级行为检测模块908。

自适应滤波器模块902可从多个来源接收数据/信息,并且对接收到的信息进行智能地滤波以产生选自接收到的信息的信息的较小子集。此滤波器可以是基于从分析仪模块接收的信息或控制或通过API传送的更高层级过程调适的。滤波后的信息可以被发送到限制模块904,所述限制模块可以负责控制从滤波器流动的信息的量以确保高级行为检测模块908并不会变得被请求或信息淹没或过载。

高级行为检测模块908可以从限制模块904接收数据/信息、从观测器模式模块906接收控制信息,并且从计算装置的其它组件接收背景信息。高级行为检测模块908可使用接收到的信息来执行空间和时间相关以检测或识别可能使得装置在次佳水平下执行的高级行为。空间和时间相关的结果可以被发送到行为向量产生器910,所述行为向量产生器可接收相关信息并且产生描述特定过程、应用程序或子系统的行为的行为向量。在一个实施例中,行为向量产生器910可产生行为向量使得特定过程、应用程序或子系统的每个高级行为是行为向量的元素。在一个实施例中,所产生的行为向量可以存储在安全缓冲器912中。高级行为检测的实例可以包括检测特定事件的存在、另一事件的量或频率、多个事件之间的关系、事件发生的顺序、某些事件的发生之间的时间差等。

在各种实施例中,行为观测器模块202可执行自适应观察并且控制观察间隔尺寸。也就是说,行为观测器模块202可动态地识别待观察的相关行为,并且动态地确定待观察的所识别的行为的详细的层级。以此方式,行为观测器模块202使得系统能够监测在各种等级(例如,多个粗略和精细等级)处的计算装置的行为。行为观测器模块202可以使得系统能够适应于所观察到的情况。行为观测器模块202可以使得系统能够动态地改变基于信息的集中子集所观察到的因素/行为,所述信息的集中子集可以从多种多样的来源中获得。

如上文所论述,行为观测器模块202可执行自适应观察技术并且基于从多种来源接收的信息控制观察间隔尺寸。举例来说,高级行为检测模块908可以从限制模块904、观测器模式模块906中接收信息,并且从计算装置的其它组件(例如,传感器)中接收背景信息。作为实例,执行时间相关的高级行为检测模块908可以检测到相机已经使用并且计算装置正在尝试将图片上传到服务器。高级行为检测模块908也可以执行空间相关以确定在装置在皮套中且附接到用户的腰带时计算装置上的应用程序是否拍摄图片。高级行为检测模块908可确定这一检测到的高级行为(例如,相机在装在皮套中的同时的使用)是否是可接受的或普通的行为,这可以通过比较计算装置的当前行为与过去行为和/或存取从多个装置中收集的信息(例如,从众包服务器中接收的信息)实现。由于在装在皮套中的同时拍摄图片且将它们上传到服务器是不寻常的行为(如同可以在装在皮套中的情形下从所观察到的普通行为中所确定的),所以在此情况下高级行为检测模块908可以将这一点识别为潜在地威胁的行为并且起始适当的响应(例如,关掉相机、发出警报声等)。

在一个实施例中,行为观测器模块202可以在多个部分中实施。

图10更详细地说明了在实施实施例观测器后台程序的计算系统1000中的逻辑组件和信息流。在图10中说明的实例中,计算系统1000包括在用户空间中的行为检测器1002模块、数据库引擎1004模块和行为分析仪模块208,以及在内核空间中的环形缓冲器1014、过滤规则1016模块、限制规则1018模块和安全缓冲器1020。计算系统1000可以进一步包括观测器后台程序,所述观测器后台程序包括在用户空间中的行为检测器1002和数据库引擎1004,以及在内核空间中的安全缓冲管理器1006、规则管理器1008和系统健康监测器1010。

各种实施例可以在涵盖webkit、SDK、NDK、内核、驱动器和硬件的计算装置上提供跨越层的观察以便表征系统行为。行为观察可以是实时进行的。

观测器模块可以执行自适应观察技术并且控制观察间隔尺寸。如上文所论述,存在可以造成计算装置的降级的大量(即,数千)因素,并且监测/观察可能造成装置的性能的降级的全部的不同因素可能是不可行的。为了克服这一点,各种实施例动态地识别待观察的相关行为,并且动态地确定待观察的所识别的行为的详细的层级。

图11说明了根据一个实施例用于执行动态和自适应观察的实例方法1100。在框1102中,装置处理器可通过监测/观察可以造成计算装置的降级的大量因素/行为的子集来执行粗略观察。在框1103中,装置处理器可产生表征粗略观察和/或基于粗略观察的计算装置行为的行为向量。在框1104中,装置处理器可识别与粗略观察相关联的可能潜在地造成计算装置的降级的子系统、过程和/或应用程序。举例来说,这可以通过比较从多个来源接收的信息与从计算装置的传感器接收的情境信息实现。在框1106中,装置处理器可基于粗略观察执行行为分析操作。在一个实施例中,作为框1103和1104的一部分,装置处理器可以执行上文参考图2到10所论述的操作中的一或多个。

在确定框1108中,装置处理器可以确定可疑行为或潜在问题是否可以基于行为分析的结果得到识别和校正。当装置处理器确定可疑行为或潜在问题可以基于行为分析的结果得到识别和校正时(即,确定框1108=“是”),在框1118中,处理器可以起始过程以校正行为并且返回到框1102以执行额外的粗略观察。

当装置处理器确定可疑行为或潜在问题无法基于行为分析的结果得到识别和/或校正时(即,确定框1108=“否”),在确定框1109中装置处理器可以确定是否存在问题的可能性。在一个实施例中,装置处理器可以确定存在问题的可能性,方法是计算计算装置遇到潜在问题和/或参与可疑行为的概率,并且确定计算出的概率是否大于预定阈值。当装置处理器确定计算概率并不大于预定阈值和/或不存在可疑行为或潜在问题存在和/或可检测的可能性时(即,确定框1109=“否”),处理器可以返回到框1102以执行额外的粗略观察。

当装置处理器确定存在可疑行为或潜在问题存在和/或可检测的可能性时(即,确定框1109=“是”),在框1110中,装置处理器可在所识别的子系统、过程或应用程序上执行更深入的记录/观察或最终记录。在框1112中,装置处理器可在所识别的子系统、过程或应用程序上执行更深入且更详细的观察。在框1114中,装置处理器可以基于更深入且更详细的观察执行进一步和/或更深入的行为分析。在确定框1108中,装置处理器可再次确定可疑行为或潜在问题是否是可以基于更深入的行为分析的结果得到识别和校正的。当装置处理器确定可疑行为或潜在问题无法基于更深入的行为分析的结果得到识别和校正时(即,确定框1108=“否”),处理器可以重复在框1110到1114中的操作直至详细的层级足够精细以识别问题或直至确定所述问题无法通过额外的细节得到识别或不存在问题为止。

当装置处理器确定可疑行为或潜在问题可以基于更深入行为分析的结果得到识别和校正时(即,确定框1108=“是”),在框1118中,装置处理器可以执行操作以校正问题/行为,并且处理器可以返回到框1102以执行额外的操作。

在一个实施例中,作为方法1100的框1102到1118的一部分,装置处理器可执行系统的行为的实时行为分析以从有限的且粗略的观察中识别可疑行为、以动态地确定行为以更详细地观察,并且以动态地确定观察所需要的详细的精确层级。这使得装置处理器能够有效地识别问题并且防止问题的发生,而无需使用装置上的大量的处理器、存储器或电池资源。

各种实施例通过使用行为分析和/或机器学习技术(与基于许可、策略或规则的方法相反)以监测和分析软件应用程序的选择群组的共同行为来改进现有解决方案。行为分析或机器学习技术的使用是重要的,这是因为现代计算装置是高度可配置的且复杂的系统,并且对于确定软件应用程序是否是串通的最重要的因素在每个装置中可能是不同的。另外,装置特征/因素的不同组合可能需要在每个装置中的分析以便所述装置确定软件应用程序是否是串通的。然而,需要监测和分析的特征/因素的精确组合通常仅可以是使用从特定的计算装置中获得的信息确定的,在特定的计算装置中执行活动并且当时活动是在进行中的。出于这些和其它原因,现有解决方案无法胜任在行为进行中的同时实时监测、检测和表征计算装置中的多个软件应用程序的共同行为或它们之间的关系,且不消耗大量的计算装置的处理、存储器或电力资源。

各种实施例(包括但不限于上文参考图1到11所论述的实施例)可以在多种计算装置上实施,计算装置的一个实例在图12中采用智能电话的形式说明。智能电话1200可以包括处理器1202,所述处理器耦合到内部存储器1204、显示器1212和扬声器1214。另外,智能电话1200可以包括用于发送和接收电磁辐射的天线,所述天线可连接到耦合到处理器1202的无线数据链路和/或蜂窝式电话收发器1208。智能电话1200通常还包括用于接收用户输入的菜单选择按钮或摇臂开关1220。

典型智能电话1200还包括声音编码/解码(CODEC)电路1206,所述电路将从麦克风接收的声音数字化为适合于无线发射的数据包,且解码所接收的声音数据包以产生提供到扬声器以产生声音的模拟信号。并且,处理器1202、无线收发器1208及CODEC 1206中的一或多个可以包括数字信号处理器(DSP)电路(未单独地示出)。在一个实施例中,处理器1202可以包含于芯片上系统(SOC)中,例如,在图1中说明的SOC 100。在一个实施例中,处理器1202可以是在图1中说明的应用程序处理器108。在一个实施例中,处理器1202可以是处理核心(例如,IP核心、CPU核心等)。

实施例方法的部分可以在客户服务器架构中实现,其中处理中的一些发生在服务器中,例如,维持普通操作性行为的数据库,这可以通过装置处理器存取同时执行实施例方法。此类实施例可以在多种市售服务器装置中的任一者上实施,例如,图13中说明的服务器1300。此类服务器1300通常包括处理器1301,其耦合到易失性存储器1302和大容量非易失性存储器,例如磁盘驱动器1303。服务器1300还可以包括耦合到处理器1301的软盘驱动器、压缩光盘(CD)或DVD光盘驱动器1304。服务器1300还可以包括网络存取端口1306,所述网络接入端口耦合到处理器1301以用于建立与网络1305(例如耦合到其它广播系统计算机和服务器的局域网)的数据连接。

处理器1202、1301可为可通过软件指令(应用程序)配置以执行多种功能(包括如下所述的各种实施例的功能)的任何可编程微处理器、微型计算机或多处理器芯片。在一些移动装置中,可以提供多个处理器1202,例如,一个处理器专用于无线通信功能,并且一个处理器专用于运行其它应用程序。通常,软件应用在被存取及加载到处理器1202、1301中之前可存储于内部存储器1204、1302、1303中。处理器1202、1301可以包括足以存储应用程序软件指令的内部存储器。

如本申请中所使用,术语“组件”、“模块”等等意图包括计算机相关实体,例如但不限于,硬件、固件、硬件与软件的组合、软件或执行中的软件,其经配置以执行特定操作或功能。举例来说,组件可为但不限于在处理器上运行的过程、处理器、对象、可执行程序、执行线程、程序和/或计算机。借助于说明,在计算装置上运行的应用程序以及所述计算装置可被称为组件。一或多个组件可以驻留在过程和/或执行线程内,并且组件可以局部化于一个处理器或核心上和/或分布在两个或大于两个处理器或核心之间。另外,这些组件可以从具有存储在其上的各种指令和/或数据结构的各种非暂时性计算机可读媒体中执行。组件可以借助于本地和/或远程过程、功能或过程调用、电子信号、数据包、存储器读取/写入和其它已知的网络、计算机、处理器和/或过程相关通信方法进行通信。

用于在可编程处理器上执行以用于执行各种实施例的操作的计算机程序代码或“程序代码”可以例如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