用于特定于行为的致动以实时白名单化的方法和系统与流程

文档序号:13451319阅读:240来源:国知局
用于特定于行为的致动以实时白名单化的方法和系统与流程

相关申请

本申请要求享受2015年5月11日提交的、标题为“methodsandsystemsforbehavior-specificactuationforreal-timewhitelisting”的美国临时专利申请no.62/159,433的优先权,故以引用方式将其全部内容明确地并入本文。



背景技术:

蜂窝和无线通信技术在最近几年出现了爆炸性的增长。这种增长得益于更好的通信和硬件、更大的网络和更可靠的协议。结果,无线服务提供商现在能够向它们的用户提供针对信息、资源和通信的空前水平的访问。为了跟上这些增强,消费电子设备(例如,蜂窝电话、手表、耳机、远程控制等等)与过去相比变得更强大和更复杂,它们现在通常包括稳健的处理器、较大的存储器和其它资源,这允许在它们的设备上执行复杂的和稳健的软件应用。此外,这些设备还使它们的用户能够从应用下载服务(例如,应用商店、商店、play等等)或者互联网中下载和执行各种各样的软件应用。

由于这些和其它方面的提高,越来越多的移动和无线设备用户现在使用他们的设备来存储敏感信息(例如,信用卡信息、联系人等等),和/或完成安全具有重要性的任务。例如,移动设备用户频繁地使用他们的设备来购买商品,发送和接收敏感通信,支付帐单,管理银行帐户和进行其它敏感交易。由于这些趋势,移动设备正在迅速成为恶意软件和网络攻击的下一个前沿。因此,用于更好地识别和响应资源受限的计算设备(例如,移动设备和无线设备)中的恶意软件和其它非良性设备行为的新的和改进的安全解决方案,对于消费者来说是有益的。



技术实现要素:

各个实施例包括用于评估计算设备中的设备行为,并实现特定行为的白名单化的方法。各个实施例可以包括:监测在计算设备上操作的软件应用的活动;生成用于表征该软件应用的第一被监测活动的行为向量信息结构。可以向机器学习分类器模型应用该行为向量信息结构,以生成分析结果。可以使用分析结果,将该软件应用的第一被监测活动分类成良性的、可疑的、和非良性的中一种。响应于将该软件应用的第一被监测活动分类成可疑的或者非良性的,可以显示该分类以及用于请求用户选择是否对该软件应用进行白名单化的提示。可以接收到响应于该提示的用户输入,响应于接收到该用户输入,可以将第一被监测活动增加到白名单中。在一些实施例中,响应于接收到该用户输入,将第一被监测活动增加到白名单中,可以包括:与该软件应用相关联地,将第一被监测活动存储在白名单数据库中。

在一些实施例中,该方法还可以包括:使用多标签分类或者元分类技术,将第一被监测活动分类成一个或多个子类别。在一些实现中,该方法还可以包括:停止对添加到白名单的活动进行监测。

在一些实施例中,该方法还可以包括:继续监测所述软件应用的活动,至少部分地基于所监测的活动,生成第二行为向量信息结构。可以向第二机器学习分类器模型应用第二行为向量信息结构以生成另外的分析结果。可以使用该另外的分析结果将第二被监测活动分类成良性的、可疑的、和非良性的中的一种,判断是否将第二被监测活动子分类成与第一被监测活动相同的子类别。响应于确定没有将第二被监测活动子分类成与第一被监测活动相同的子类别,可以显示用于请求用户选择是否对所述软件应用进行白名单化的另外提示。在一些实施例中,该方法还可以包括:接收响应于显示所述另外提示的另外用户输入。在一些实施例中,响应于接收到所述另外用户输入,该方法可以包括:从白名单中删除第一被监测活动,终止所述软件应用和/或将第二被监测活动增加到白名单中。

此外,一些实施例还可以包括:确定第一被监测活动的相对重要性,其中,该相对重要性通过行为向量信息结构来表征。在一些实施例中,用于标识第一被监测活动的相对重要性的信息,可以包括在用于请求用户选择是否对所述软件应用进行白名单化的提示中。此外,一些实施例还可以包括:在用于监测和分析所述软件应用的活动的处理资源、存储器或能量资源、与所确定的第一被监测活动的相对重要性之间进行平衡。在一些实施例中,该平衡可以包括:至少部分地基于所确定的第一被监测活动的相对重要性,选择致动操作。在一些实施例中,选择所述致动操作可以包括:至少部分地基于行为的子分类,判断是执行稳健的分析操作还是执行轻量级分析操作。

另外的实施例包括一种具有存储器、显示器和的处理器的计算设备,其中该处理器配置有处理器可执行指令,以执行上面所描述的方法的操作。另外的实施例包括一种其上存储有处理器可执行指令的非临时性处理器可读介质,其中所述处理器可执行指令被配置为使计算设备执行上面所描述的方法的操作。另外的实施例包括一种计算设备,其中该计算设备具有用于执行上面所描述的方法的功能的单元。

附图说明

被并入本文并且构成本说明书一部分的附图,描绘了本发明的示例性实施例,并且连同上面给出的概括描述以及下面给出的详细描述一起来解释本发明的特征。

图1是根据本公开内容的各个实施例,可以包括在计算设备中的示例性片上系统的组件的框图,其中该计算设备被配置为使用多标签分类或元分类技术将良性、可疑的、和非良性行为分类到类别、子类别、组或者子组中。

图2a是根据本公开内容的各个实施例,示出一种移动设备中的示例性逻辑组件和信息流的框图,其中该移动设备被配置为对行为进行分类和子分类。

图2b是根据本公开内容的一个实施例,示出用于选择性地对各个行为进行白名单化的方法的处理流程图。

图3a是根据本公开内容的一个实施例,示出生成精益(lean)分类器模型的方法的处理流程图,其中该精益分类器模型包括完整分类器模型中包括的特征和数据点的一个子集。

图3b是根据本公开内容的另一个实施例,示出在计算设备中本地地生成精益分类器模型的另一种方法的处理流程图。

图3c是根据本公开内容的一个实施例,示出使用本地生成的精益分类器模型,对计算设备的行为进行分类的方法的处理流程图。

图3d是示出在计算设备中生成和使用精益分类器模型的另一种方法的处理流程图。

图4a是示出生成完整分类器模型的方法的处理流程图,其中该完整分类器模型包括适合于计算设备在生成更加聚焦和精益分类器模型时使用的增强型决策树桩(boosteddecisionstumps)。

图4b是根据本公开内容的各个实施例,示出适合于生成增强型决策树桩分类器的示例性方法的处理流程图。

图5是根据本公开内容的一个实施例,示出用于对行为进行分类和子分类的方法的处理流程图。

图6是根据本公开内容的一个实施例,示出执行自适应观测的方法的处理流程图。

图7是适合于在本公开内容的实施例中使用的移动设备的组件框图。

具体实施方式

现在参照附图来详细地描述各个方面。在可以的地方,贯穿附图使用相同的附图标记来指代相同或者类似的部件。对于特定示例和实现的引用只是用于说明目的,而不是旨在限制本发明的保护范围。

总而言之,本公开内容的各个实施例包括一些方法和计算设备,其中该计算设备被配置为实现下面的方法:高效地识别、分类、建模、防止和/或纠正通常使计算设备的性能、功率利用水平、网络使用水平、安全性和/或私密性随时间下降的状况和行为。该计算设备可以装备有行为监测和分析系统,后者被配置为使用基于行为的技术和机器学习技术,将设备行为高效地分类成例如良性的、可疑的或者非良性的。此外,计算设备还可以被配置为使用多标签分类或元数据分类技术,将更广泛类别的行为(即,良性的、可疑的或者非良性的)进一步分类(例如,子分类、类别化、打标签等等)成另外的类别、子类别、组或者子组。计算设备可以至少部分地基于特定行为的子分类(例如,至少部分地基于与该行为相关联的类别、组或者标签),确定该行为的相对重要性(例如,软件应用或者行为对于设备的正常运行造成的风险或威胁的严重性等等),显示用于标识为何确定该行为是可疑的原因和/或其相对重要性的提示(例如,其是广告软件等等),请求用户选择是否对于与所检测的行为相关联的应用进行白名单化。

对更广泛的类别进行子分类,使计算设备能够向用户呈现关于特定行为的更有用或者更有意义的信息,转而允许用户关于该设备如何对该行为进行分析和响应具有更多的控制。例如,如果在用户喜欢玩的游戏中包括广告软件程序,则不是在检测到该广告软件程序时自动终止该游戏,而是系统可以向用户呈现关于该广告软件的信息,允许用户决定玩该游戏的利益超过其负面特征(例如,显示大量广告软件等等)。如果用户决定继续该游戏,则系统可以允许用户将该广告软件的行为列入白名单。

如本文所使用的,术语“白名单化”指代:将被评估为可疑或非良性行为的软件应用所展示的行为,添加到“白名单”或者“白名单数据库”,以便该应用可以继续在设备上运行的过程。

利用“白名单”的常规解决方案通常将整个软件应用添加到白名单中(即,将整个应用都列入白名单)。一旦列入白名单,则设备将停止对软件应用的进一步监测或分析,并将停止显示提示或者以其它方式向用户通知与列入白名单的软件应用相关联的可疑或非良性活动。将整个应用列入白名单可能会允许恶意软件和其它非良性软件应用(有意或无意地)规避基于行为的安全系统的检测。例如,恶意软件应用可能最初执行基于行为的系统将分类成低风险或者非良性行为或者用户可能允许的操作(例如,显示广告软件、向远程服务器发送国际移动设备标识(imei)号码等等)。恶意软件可能会在执行更严重、关键或者恶意操作(例如,在用户不了解或者同意的情况下,从银行应用向服务器发送金融信息,或者访问设备的联系人列表)之前,等待用户将该应用列入白名单。由于已经将该应用列入白名单,因此用户将不会接收到关于非良性行为的进一步通知。

根据本公开内容,计算设备可以被配置为将软件应用的单个行为列入白名单。在一些实施例中,计算设备可以被配置为:监测在该计算设备上操作的软件应用的活动,以收集行为信息。计算设备可以使用所收集的行为信息,来生成用于表征软件应用的行为的行为向量信息结构。计算设备可以向机器学习分类器模型应用该行为向量信息结构,以生成分析结果。计算设备可以使用该分析结果,将该行为向量信息结构(或者该行为向量信息结构所表征的活动/行为)分类成诸如良性的、可疑的或者非良性之类的类别。此外,计算设备还可以使用该分析结果,将行为向量信息结构子分类成一个或多个类别(例如,游戏、广告软件、向服务器发送imei号的应用等等)。计算设备可以显示/呈现用于显示该行为的分类和子分类的提示(以及因此确定该行为是可疑的或者非良性的原因),请求用户选择是否将该行为或者软件应用列入白名单(即,使用该应用的利益是否超过其负面特性)。响应于接收到用于指示对该行为进行白名单化的用户输入,计算设备可以将该行为增加到白名单中(例如,通过与软件应用相关联地,将行为向量信息结构和分析/分类结果存储在白名单数据库中)。通过将该行为列入白名单,计算设备可以停止显示提示或者向用户通知该行为的其它发生。在一些实现中,计算设备还可以停止该软件应用的其它可疑或者非良性行为和/或与列入白名单的行为被分类在相同的子类别中的其它行为。通过对应用的行为或者监测的活动进行白名单化,行为分析系统将不再需要对于该软件应用的相同行为或活动进行监测或分析。这可以潜在地导致降低该系统的开销处理,特别是当列入白名单的行为(例如,位置跟踪)是常见的时。

为了对于稍后呈现非良性行为的已经白名单化的应用进行监测,计算设备可以继续监测和分析该软件应用的活动或行为,将另一个或不同的行为分类成可疑的或者非良性的,并且确定该行为不包括在白名单中(例如,不将该第二行为子分类成与该应用中包括在白名单的任何行为相同的子类别中等等)。响应于该确定,计算设备可以显示第二提示,其中第二提示向用户指示先前白名单化的应用参与了可疑的或者非良性的另外的或者不同的行为。响应于接收到响应该提示的用户输入,计算设备可以使用所接收的用户输入来判断是否对新检测到的行为进行白名单化,或者终止(或者以其它方式响应)该软件应用。

通过将单个行为(与整个软件应用相对)列入白名单,可以防止对于列为白名单软件应用的非期望行为的检测进行有意或者无意地规避。通过下面所提供的实施例的详细描述,对于计算设备的功能、功能性和/或功能化的另外改进将会显而易见。

本文所使用的“示例性的”一词意味着“用作例子、例证或说明”。本文中描述为“示例性”的任何实现不应被解释为比其它实现更优选或更具优势。

本文互换地使用术语“移动计算设备”和“移动设备”指代下面中的任何一种或全部:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理(pda)、膝上型计算机、平板计算机、智能本、超级本、掌上型计算机、无线电子邮件接收机、具备多媒体互联网能力的蜂窝电话、无线游戏控制器、以及包括存储器、可编程处理器(其性能是非常重要的)并在电池供电情形下进行操作,使得省电方法有益的类似个人电子设备。虽然各个实施例在诸如智能电话之类的移动计算设备(它们具有有限的资源并在电池上运行)中是特别有用的,但这些实施例通常在包括处理器并执行应用程序的任何电子设备中也是有用的。

本申请中使用术语“性能下降”来指代计算设备的各种各样的非期望操作和特性,例如,更长的处理时间、减慢的实时响应速度、更低的电池寿命、私人数据的丢失、恶意经济活动(例如,发送未授权的高级短消息服务(sms)消息)、拒绝服务(dos)、编写或设计不当的软件应用程序、恶意软件、恶意程序、病毒、碎片化存储器、与征用计算设备或者使用该设备来进行窥探或僵尸活动有关的操作等等。此外,由于这些原因中的任何一个而使性能下降的行为、活动和状况,本文称之为“非良性的”或者“不良的”。

很多现代计算设备是具有有限的处理资源、存储器和能量资源的资源受限系统。例如,移动设备是具有很多的特征或因素的复杂和资源受限计算设备,其中这些特征或因素对于该移动设备随时间的性能和功率利用水平的下降具有贡献。可能对于性能下降具有贡献的因素的例子,包括:设计不佳的软件应用、恶意软件、病毒、碎片化存储器和后台进程。由于这些因素的数量、变型和复杂度,通常不能容易地评估所有的可能使这些复杂并且资源受限系统的性能和/或功率利用水平下降的各种组件、行为、进程、操作、状况、状态或特征(或者其组合)。因此,用户、操作系统或应用程序(例如,防病毒软件等等)很难准确地和高效地识别这些问题的源。结果,移动设备和其它资源受限计算设备的用户当前具有很少的补救措施来防止它们的设备随时间的性能和功率利用水平下降,或者将老化的设备恢复到其原始性能和功率利用水平。

为了克服这些常规解决方案的限制,计算设备可以装备有行为监测和分析系统(例如,基于行为的安全系统),其中该行为监测和分析系统被配置为识别非良性的行为和软件应用(例如,恶意的、编写很差、与设备不兼容的应用等等),防止这些行为/应用使设备的性能、功率利用水平、网络使用水平、安全和/或私密性随时间下降。通过使用基于行为的技术和机器学习技术,该行为监测和分析系统可以在不对计算设备的响应性、性能或功耗特性具有显著的、负面的或者用户可感知的影响的情况下,识别、防止、纠正和/或响应所识别的问题。因此,该系统非常适合于包含在移动和资源受限计算设备(例如,智能手机)中并在之中进行使用,其中移动和资源受限计算设备具有有限的资源,以电池电量运行,并对于其而言,性能和安全性至关重要。

在各个实施例中,该行为监测和分析系统可以包括:观测器进程、守护进程、模块或子系统(本文统称为“模块”)、行为提取器模块、分析器模块和致动器模块。观测器模块可以被配置为测量或协调该计算设备系统的各个层级的各个应用程序接口(api)、寄存器、计数器或其它设备部件(本文统称为“仪表部件”),从仪表部件收集行为信息,(例如,经由存储器写操作、函数调用等等)将所收集的行为信息发送给行为提取器模块。

行为提取器模块可以使用所收集的行为信息来生成行为向量,其中该行为向量表示或者表征与该计算设备的特定软件应用、模块、组件、任务或进程相关联的一个或多个观测的行为。每一个行为向量可以封装一个或多个“行为特征”。每一个行为特征可以包括用于表示所观测的行为的全部或一部分的抽象数字或符号。此外,每一个行为特征可以与下面的信息相关联:用于标识一系列可能的值的数据类型、可以关于这些值执行的操作、这些值的含义等等。计算设备可以使用该数据类型来确定应当如何对特征(或者特征值)进行测量、分析、加权、使用等等。

行为提取器模块可以将行为向量传输给分析器模块(例如,经由存储器写操作、函数调用等等),其中分析器模块可以将这些行为向量应用于分类器模型以生成分析结果,其中可以使用该分析结果来判断软件应用或设备行为是良性的,还是非良性的。分类器模型可以是一种行为模型,其包括能由计算设备处理器进行使用,以评估该设备的行为的特定因素、特征或者实施例的数据和/或信息结构(例如,决策节点、特征向量、组件列表等等)。分类器模型还可以包括用于监测或者分析该计算设备中的多个特征、因素、数据点、条目、api、状态、状况、行为、软件应用、进程、操作、组件等等(本文统称为“特征”)的决策标准。

完整分类器模型可以是根据较大的训练数据集来生成的健壮数据模型,其中该较大的训练数据集可以包括数千个特征和数亿个条目。精益分类器模型可以是根据精简的数据集来生成的更聚焦的数据模型,其中该精简的数据集包括或者优先级划分关于以下的特征/条目的测试:与判断特定的移动设备行为是否是良性的最有关的特征/条目。本地生成的精益分类器模型是在计算设备中生成的精益分类器模型。精简特征模型(rfm)可以是至少部分地基于更稳健的分类器模型来生成的精益分类器模型,以便包括对于判断该设备的行为是良性还是非良性来说最重要的特征的决策节点。

当分析器模块以较高的置信度(例如,至少部分地基于分析结果等等)确定一个行为或软件应用是非良性的时,其可以通知致动器模块。作为响应,致动器模块可以执行各种操作,以治疗、治愈、隔离或者以其它方式修复发现的问题。例如,致动器模块可以被配置为:隔离被确定为是恶意软件的软件应用,终止恶意进程,显示用于请求用户选择是否将确定为非良性的应用程序进行卸载或白名单化(或者将该应用的行为列入白名单)的提示,向用户通知一个软件应用对于设备的随时间性能下降具有贡献。

对每个潜在的非良性行为进行监测、分析和以其它方式进行响应,可能消耗大量的设备有限的处理资源、存储器或能量资源。例如,可能有成千上万的特征/因素和数十亿的数据点需要进行监测或分析,以便正确地识别计算设备随着时间的退化的原因或来源。在资源受限的计算设备(例如,智能手机)中,评估所有这些特征、因素和数据点通常是不可行的。

为了减少当判断一个行为是良性的、可疑的或非良性的时需要评估的特征、因素和数据点的数量,行为监测和分析系统可以执行渐进式、动态的和自适应的操作。例如,系统可以被配置为使用具有不同复杂程度(或者“精益性”)的分类器模型,来逐步分阶段地评估设备行为。这使设备能够放弃执行虚假操作,并减少系统所生成或者使用的行为向量的数量。

例如,在一些实施例中,系统可以被配置为生成一系列分类器模型,其包括初始分类器和模型以及一个或多个后续分类器模型。该初始分类器模型可以是精益分类器模型(或者减少的特征模型),其聚焦于评估在对移动设备行为进行分类时需要分析的所有功能、因素和数据点的一个目标子集。换言之,初始分类器模型可以包括用于评估初始集合的因素/特征的决策节点,其中该初始集合的因素/特征被确定为具有使系统能够以较高置信度来判断设备行为是良性还是非良性的高概率。每个后续分类器模型可以是更稳健的分类器,其与先前的分类器模型相比,包括更多数量的决策节点和/或评估更大子集的特征、因素和数据点。

系统可以向初始分类器模型应用行为向量,以生成初始分析结果,判断初始分析结果是否以较高的置信度指示该行为是良性的或者非良性的,响应于确定该行为不能以较高的置信度被分类成良性的或者非良性的,将该行为分类成可疑的,将相同或者不同的行为向量应用于逐渐更大或更稳健的分类器模型,以生成新的或者第一被监测的活动另外分析结果(例如,响应于确定该行为是可疑的),并判断新的/另外的分析结果是否以较高的置信度指示该行为是良性的或非良性的。系统可以连续地或重复地执行这些操作,直到分析结果以较高的置信度指示该行为是良性的或非良性的为止,直到该系列中的所有分类器模型都已被使用为止,直到达到处理资源或电池消耗门限为止,或者直到系统确定不能通过使用更大或更稳健的分类器模型或者通过所收集的行为信息的进一步分析来识别该可疑的或者使性能下降行为的来源为止。

此外,系统可以被配置为执行/收集粗略观察,至少部分地基于对该粗略观察进行分析的结果,判断是否要执行/收集另外的或者更多的细节观察。系统可以通过从可能对移动设备随时间退化具有贡献的所有因素的一个较小子集中收集行为信息,来执行粗略观察,使用该收集的行为信息来生成行为向量,将生成的行为向量应用于分类器模型以生成分析结果,并判断分析结果是否以较高的置信度指示该行为是良性的或者非良性的。响应于确定不能以较高的置信度将该行为分类成良性的或非良性的,系统可以将该行为分类成可疑的。此外,系统可以调整其观察的粒度(即,观察该设备行为的细节水平)和/或改变观察的因素以收集新的或另外的行为信息,至少部分地基于该新的或另外的行为信息来生成新的行为向量,将该新的行为向量应用于相同或不同的分类器模型以生成另外的分析结果,并判断该新的/另外的分析结果是否以较高的置信度指示该行为是良性的或者非良性的。系统可以重复地或连续地执行这些操作,直到分析结果以较高的置信度指示该行为是良性的或非良性的为止,直到达到处理资源或电池消耗门限为止,或者直到系统确定不能通过观察粒度的进一步增加来识别该可疑的或者使性能下降行为的来源为止。

通常,上面所描述的系统可以在无需消耗大量的设备有限的资源的情况下,判断一个行为是良性的、可疑的还是非良性的。另外,对于良性的、可疑的、和非良性行为分类中的每一种来说,存在多种不同的类别、子类别或者类型。例如,被分类成“非良性行为”的行为可以被分类为恶意软件,并被子分类为广告软件、密钥记录器、勒索软件(ransomware)、间谍软件、移动远程访问木马(mrat)、僵尸网络、网络钓鱼应用、木马、短信欺诈软件等等。这些不同的恶意软件子类别/类型中的每一个对用户或者计算设备构成不同的级别、程度或类型的风险或威胁。换言之,检测到的或者潜在的非良性行为对计算设备造成的风险/威胁的严重性,取决于其恶意软件类型(例如,广告软件、木马程序等)。

在一些实现中,计算设备可以被配置为使用多标签分类或元分类技术来识别或者确定与分类的行为(例如,良性的、可疑的或者非良性的)相关联的类别、子类别或者类型(例如,游戏、新闻应用、恶意软件)。例如,计算设备可以被配置为:使用多标签分类或元分类技术来识别或者确定与可疑的或非良性行为相关联的恶意软件类型(和因此的风险),至少部分地基于与可疑的或非良性行为相关联的恶意软件类型来定制其分析操作(例如,分析器模块所执行的操作等等),至少部分地基于与可疑的或非良性行为相关联的恶意软件类型,来执行不同的致动操作。

存在许多不同的恶意软件类型,检测到的或者潜在的非良性行为对于计算设备造成的风险/威胁的严重性可能取决于其恶意软件类型。例如,广告软件是一种类型的恶意软件,其在设备上自动地呈现广告,为其作者创造收益。广告软件应用可能秘密地监测设备的使用情况,收集有关用户访问的互联网站点的信息,并显示与访问的互联网站点上的特色商品或服务的类型相关的广告。由于广告软件应用通常并不收集或者共享高度机密或个人信息(例如,照片、联系人列表等),所以与设备的安全风险相比,它们通常对于用户而言更为烦恼。因此,计算设备可以被配置为:当可疑的或者潜在非良性行为被分类为广告软件时,执行有限的或轻量级的分析和/或致动操作(即,以节省其资源)。

密钥记录器是一种类型的恶意软件,其在用户不知情或者同意的情况下,监视和记录用户输入。例如,密钥记录器可以静默地观察击键以捕获密码、个人通信等等。与广告软件相比,密钥记录器通常对于用户/设备具有更大的安全风险,但是比许多其它类型的恶意软件(例如,间谍软件、僵尸网络等)具有更少的安全风险。

勒索软件(ransomware)是一种类型的恶意软件,其限制对计算设备的访问(例如,通过锁定设备,加密其所有文件等等),并且在限制被移除(例如,设备解锁,对文件进行解密等等)之前要求向创建者支付赎金。勒索软件应用可能对用户造成重大的财务威胁,其通常比广告软件和密钥记录器具有更大的安全风险。

间谍软件和mrat是在设备或者用户不知情或者同意的情况下,收集和发送关于设备或用户的信息的恶意软件的类型。例如,间谍软件应用可以监视用户的位置和动作(通过从设备的传感器收集信息),将这些值发送到外部服务器。因此,这些恶意软件类型可能对用户的隐私构成重大威胁,并且与广告软件、密钥记录器和勒索软件相比,通常对于设备造成更大的安全风险。

僵尸网络通常是与其它设备上的其他类似程序进行通信,以执行一个或多个任务(例如,维持互联网中继聊天(irc)信道的控制、发送垃圾邮件消息、参与大规模或分布式拒绝服务(ddos)攻击等等)的互联网连接的应用程序的集合。僵尸网络可能会消耗大量的计算设备的可用资源,并对设备构成重大威胁。僵尸网络可能对设备构成严重威胁,并且与广告软件、密钥记录器、勒索软件、间谍软件和mrat相比,通常对于用户/设备造成更高的安全风险。

网络钓鱼是一种网络攻击技术和一种类型的恶意软件,其尝试欺骗用户获取敏感信息(例如,用户名、密码、信用卡信息等等),通常经由欺骗另一个应用/网站或者伪装成成为一个值得信赖的实体。例如,网络钓鱼应用可能会尝试欺骗用户将个人信息输入到与合法网站/应用几乎相同的假网站或应用,或者可能包含指向受到恶意软件感染的网站的链接。网络钓鱼应用可能对设备构成适度的重大风险,特别是当用户是小孩、老年人或者不熟悉此类网络攻击技术时。

木马是包括恶意代码的非自我复制型的恶意软件,当其被执行时,执行由该木马的本质所确定的动作,通常造成数据的丢失或者被盗。通常,木马似乎是一个合法的应用,但其隐藏了恶意的功能。例如,木马通常充当为后门,联系其它实体/设备以向它们提供未经授权地访问受影响的计算设备。木马也可能消耗大量的计算设备的可用处理资源、存储器和电池资源。由于所有这些原因,木马可能对设备构成严重威胁,并且比大多数其它类型的恶意软件具有更高的安全风险。

sms欺诈软件是一种类型的恶意软件,其尝试在用户不知情或者同意的情况下,发送高级sms消息。sms欺诈可能对用户构成重大的财务威胁,其通常比广告软件具有更大的安全风险。

在一些实施例中,计算设备可以被配置为:至少部分地基于行为或软件应用的分类和子分类(例如,恶意软件、广告软件等等)或者确定的相对重要性,智能地确定或者选择设备所执行的分析和/或致动操作。在各个实施例中,计算设备可以被配置为通过使用多分类分类器模型和/或元分类器模型来确定子分类。在一个实施例中,多分类分类器模型可以包括元分类器模型。

多分类分类器模型可以是支持多分类标签的分类器模型。例如,多分类分类器模型可以包括决策树桩(例如,增强型决策树桩等等),这些决策树桩中的每一个与一个或多个标签相关联。决策树桩是具有精确的一个节点(因此一个测试问题或者测试条件)和权重值的单层决策树,因此非常适合于在数据/行为的二元分类中使用。也就是说,向增强型决策树桩应用特征向量导致二元答案(例如,是或否)。例如,如果增强型决策树桩测试的条件是“sms传输的频率小于每分钟x个?”,则向该增强型决策树桩应用“3”的值将导致“是”的应答(对应于“小于3个”sms传输)或者“否”应答(对应于“3个或更多”sms传输)。

除了评估状况并输出用于判断行为是良性的还是非良性的应答和权重值(例如,作为分析结果的一部分)之外,多分类分类器模型中的每个决策树桩可以输出其相关联的标签中的每一个相对应的另外值(例如,概率值等等)。例如,将行为向量应用于包括分类标签“广告软件”、“间谍软件”、“密钥记录器”、“sms欺诈”和“勒索软件”的多分类分类器模型,可能会导致设备产生下面的输出:

[0.1,0.9,0.9,0.2,0.2]。

实现实施例系统的计算设备可以使用该输出(即,标签分析结果[0.1,0.9,0.9,0.2,0.2])来确定所评估的行为将被子分类成:具有10%置信度的广告软件、具有90%置信度的间谍软件、具有90%置信度的密钥记录器、具有20%置信度的sms欺诈、具有20%置信度的勒索软件。结果,设备可以确定该行为将以较高的置信度(即,90%置信度)被子分类成间谍软件和密钥记录器。作为响应,计算设备可以将该行为子分类成间谍软件和密钥记录器(例如,通过增加或者将标签关联到行为等等),确定与这些类别中的每一个相关联的风险、威胁或者安全水平,并至少部分地基于类别或者它们相关联的风险、威胁或者安全水平来确定/选择要执行的分析和/或致动操作。

除了并且独立于设备行为是良性的、可疑的还是非良性的其分类判定/确定,计算设备还可以被配置为进行这些子分类判定/确定。例如,计算设备可以向多分类分类器模型应用行为向量以生成分类分析结果和标签分析结果,至少部分地基于分类分析结果将行为分类成可疑的,至少部分地基于标签分析结果将行为子分类成间谍软件和密钥记录器类别,增加其审查级别(例如,通过使用更稳健的分类器模型等等)以生成更全面的分析结果,并使用该更全面的分析结果来判断该行为是良性的还是非良性的。如果该行为被分类成非良性的,则计算设备可以至少部分地基于子分类(例如,间谍软件、密钥记录器等等)来选择或者确定适当的致动操作(例如,提示用户、将应用列入白名单、终止进程等等)。

在一个实施例中,计算设备可以被配置为通过使用元分类器模型来确定子分类。元分类器模型可以是一种分类器模型,其包括有用于测试或评估适合于确定用于行为的子分类的条件或特征的决策节点。计算设备可以被配置为向元分类器模型应用行为向量和分析结果或分类输出,以生成可以用于将行为子分类成一个或多个类别的信息。例如,元分类器模型可以包括用于评估位置特征的决策节点,可以将其结果增加到间谍值中。类似地,元分类器模型可以评估与记录和传输加速计读数有关的状况,可以将其结果增加到密钥记录器值和间谍值中。元分类器模型还可以评估用于判断该行为是否是未知类型的恶意软件(即,未落入到现有的或者已知类别的恶意软件)的条件。

在一些实施例中,计算设备可以被配置为:使用行为子分类来确定与行为相关联的风险、威胁或者可疑水平,至少部分地基于所确定的风险、威胁或可疑水平来选择或者修改分类器模型。例如,计算设备可以向分类器模型(例如,一系列分类器模型中的初始分类器模型)应用行为向量以生成分析结果,使用该分析结果来确定在该设备中存在的该分类器模型中的状况或特征并对该行为进行子分类,至少部分地基于子分类来确定与该行为相关联的风险、威胁或可疑水平,至少部分地基于所确定的风险、威胁或可疑水平在所述一系列分类器模型中选择后续分类器模型。例如,如果将行为子分类成勒索软件或间谍软件,则计算设备可以绕过所述一系列分类器模型中的中间rfm或分类器模型,以选择完整分类器模型、完整特征rfm或者更稳健的分类器模型。替代地,如果将行为子分类成勒索软件或间谍软件,则计算设备可以选择包括有以下决策节点的后续分类器模型:即,这些决策节点对于被确定为具有判断行为是勒索软件还是间谍软件的高概率的状况进行评估。

计算设备可以被配置为至少部分地基于所确定的风险、威胁或可疑水平,改变其它分析操作。例如,计算设备可以被配置为:在分析存储器中的排队的事件之前,使该应用停止,和/或关于该分类器模型没有评估的特征(例如,存储器使用情况和存储器的内容),对该应用进行更密切地监测。

计算设备可以被配置为至少部分地基于所确定的风险、威胁或可疑水平,选择和执行致动操作。例如,由于广告软件虽然是烦人的但并不呈现立即的危险,因此在确定软件应用是广告软件之后,计算设备可以允许该应用继续在该设备上进行运行/操作,并以快捷方式向用户提示卸载该应用。计算设备可以在不显示勒索消息的情况下,立即删除勒索软件(虚假消息示例:“fbi已经锁定你的电话,该电话的所有活动已被记录…”)。也就是说,在确定软件应用是勒索软件之后,计算设备可以终止该应用和其消息,向用户通知该消息是虚假的或恶意的,因此不需要担心,并建议用户应当卸载该应用。类似地,计算设备可以被配置为立即向用户通知诸如mrat之类的间谍软件。

各个实施例可以在包括片上系统(soc)的多个单处理器和多处理器计算机系统上实现。图1示出了可以在实现本公开内容的各个实施例的计算设备中使用的示例性片上系统(soc)100架构。soc100可以包括多个异构处理器,例如,数字信号处理器(dsp)103、调制解调器处理器104、图形处理器106和应用处理器108。此外,soc100还可以包括耦合(直接或间接)到异构处理器103、104、106、108中的一个或多个的一个或多个协处理器110(例如,向量协处理器)。每一个处理器103、104、106、108、110可以包括一个或多个内核,每一个处理器/内核可以独立于其它处理器/内核来执行操作。例如,soc100可以包括执行第一类型的操作系统(例如,freebsd、linux、osx等等)的处理器和执行第二类型的操作系统(例如,微软windows8)的处理器。

soc100还可以包括用于管理传感器数据、模数转换、无线数据传输,以及用于执行其它专用操作(如,对编码的音频和视频信号进行处理以在web浏览器中进行渲染)的模拟和定制电路114。此外,soc100还可以包括系统组件和资源116,例如电压调整器、振荡器、锁相环、外围桥接、数据控制器、内存控制器、系统控制器、接入端口、定时器、以及用于支持这些处理器和软件客户端(例如,web浏览器)在计算设备上运行的其它类似组件。

系统组件和资源116和/或模拟和定制电路114可以包括用于与外围设备进行交互的电路,例如,照相机、电子显示器、无线通信设备、外部存储器芯片等等。处理器103、104、106、108可以经由互连/总线模块124(其可以包括可再配置逻辑门阵列和/或实现总线架构(例如,coreconnect、amba等等))来互连到一个或多个存储器单元112、系统组件和资源116以及模拟和定制电路114。可以通过诸如高性能片上网络(noc)之类的互连来提供通信。

soc100还可以包括用于与该soc之外的资源进行通信的输入/输出模块(没有示出),例如,时钟118和电压调整器120。soc之外的资源(例如,时钟118、电压调整器120)可以由内部soc处理器/内核(例如,dsp103、调制解调器处理器104、图形处理器106、应用处理器108等等)中的两个或更多来共享。

在一个实施例中,soc100可以包括在移动设备102(例如,智能电话)中。移动设备102可以包括用于与电话网络、互联网和/或网络服务器进行通信的通信链路。可以通过电话网络、互联网、专用网或者其任意组合,来实现移动设备102和网络服务器之间的通信。

在各个实施例中,soc100可以被配置为收集移动设备中的行为状态、分类、建模、成功率和/或统计信息,向网络服务器发送所收集的信息(例如,经由电话网络)以进行分析。网络服务器可以使用从移动设备接收的信息,来生成、更新或者精练分类器或数据/行为模型,其中该分类器或数据/行为模型适合于soc100在识别和/或分类使移动设备性能下降的行为时使用。网络服务器可以向soc100发送数据/行为模型,其中soc100可以接收和使用数据/行为模型来识别可疑的或者使性能下降的移动设备行为、软件应用、进程等等。

此外,soc100还可以包括适合于从传感器收集传感器数据的硬件和/或软件组件,这些传感器包括扬声器、用户接口单元(例如,输入按键、触摸屏显示器等等)、麦克风阵列、用于监测物理状况(例如,位置、方向、运动、方位、振动、压力等等)的传感器、照相机、指南针、全球定位系统(gps)接收机、通信电路(例如,wlan、wifi等等)、以及现代电子设备的其它公知组件(例如,加速计等等)。

除了上面所讨论的移动设备102和soc100之外,可以利用各种各样的计算系统(其可以包括单一处理器、多个处理器、多核处理器或者其任意组合)来实现这些各个实施例。

图2a示出了包括基于行为的安全系统200的一个实施例计算设备102中的示例性逻辑组件和信息流,其中该基于行为的安全系统200被配置为使用行为分析技术来识别和响应非良性设备行为。在图2a所示出的例子中,该计算设备是包括设备处理器(即,移动设备处理器)的移动计算设备200,其中该设备处理器配置有可执行指令模块,后者包括行为观测器模块202、行为提取器模块204、行为分析器模块208、致动器模块210和行为白名单列表212。模块202-210中的每一个可以是利用软件、硬件或者其任意组合来实现的线程、进程、守护进程、模块、子系统或者组件。在各个实施例中,可以将模块202-210实现在操作系统的一部分中(例如,实现在内核中、实现在内核空间中、实现在用户空间中等等)、实现在单独的程序或应用中、实现在专用硬件缓冲区或处理器中、或者实现在其任意组合中。在一个实施例中,模块202-210中的一个或多个可以实现成在移动计算设备102的一个或多个处理器上执行的软件指令。

行为观测器模块202可以被配置为:在一段时间上,测量该设备的各个层级/模块处的应用程序接口(api)、计数器、硬件监测器等等,对这些各个层级/模块处的活动、状况、操作和事件(例如,系统事件、状态改变等等)进行监测。例如,行为观测器模块202可以被配置为:对移动计算设备102的各种软件和硬件组件进行监测;收集关于以下的行为信息:与移动计算设备102的活动相关联的所监测的和可测量的组件的交互、通信、事务、事件或操作。这些活动包括:硬件组件的软件应用的使用、操作或者任务的执行、移动计算设备102的处理内核中的软件应用的执行、进程的执行、任务或操作的执行、设备行为等等。

再举一个例子,行为观测器模块202可以被配置为:通过监测软件应用对于设备存储器的分配或者使用,来监测移动计算设备102的活动。在一个实施例中,这可以通过监测计算设备的存储器管理系统(例如,虚拟内存管理器、存储器管理单元等等)的操作来完成。通常,这些系统负责管理各个应用程序对于系统存储器的分配和使用,以便确保一个进程使用的存储器不会干扰另一个进程已经在使用的存储器。因此,通过监测存储器管理系统的操作,设备处理器可以收集适合用于判断两个应用是否一致地工作的行为信息,例如,两个进程是否被分配了相同的存储空间、正在向相同的存储器地址或位置读取和写入信息、或者正在执行其它可疑的与内存相关操作。

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

在一个实施例中,行为观测器模块202可以被配置为:通过按照硬件水平和/或至少部分地基于硬件事件(例如,存储器读和写操作等等),监测设备存储器的分配或使用,来监测移动计算设备102的活动。在另外的实施例中,行为观测器模块202可以利用硬件模块来实现,以便更快速、近乎实时地执行监测功能。例如,可以在包括可编程逻辑电路(plc)的硬件模块中实现行为观测器模块202,其中,这些可编程逻辑单元被配置为按照硬件水平和/或至少部分地基于硬件事件(例如,存储器读和写操作等等),监测计算设备存储器的分配或使用,并实现各个实施例。这种硬件模块可以向实现行为提取器模块204的设备处理器,输出硬件事件监测的结果。plc可以被配置为使用公知的plc编程方法,监测某个硬件和实现本文所描述的各个实施例的某些操作。此外,还可以在硬件模块中,使用用于实现这些实施例方法的某种操作的其它电路。

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

行为提取器模块204可以被配置为接收或者获取该收集的行为信息,使用该信息来生成一个或多个行为向量。在各个实施例中,行为提取器模块204可以被配置为生成行为向量,以包括所观察到的行为、关系或软件应用的交互的简明定义。例如,每一个行为向量可以利用一个值或者向量数据结构,来简洁地描述该软件应用的集体行为。该向量数据结构可以包括一系列数字,每一串数字表示该设备的一个特征、活动或行为,例如,该计算设备的照相机是否在使用(例如,零或者一),从该计算设备发送的网络业务量或者该计算设备所生成的网络业务的量(例如,20kb/秒等等),已传输的互联网消息的数量(例如,sms消息的数量等等)和/或行为观测器模块202所收集的任何其它行为信息。在一个实施例中,行为提取器模块204可以被配置为生成行为向量,使得它们充当为使计算设备系统(例如,行为分析器模块208)能够快速地认识、识别或者分析应用之间的关系的标识符。

行为分析器模块208可以被配置为向分类器模块应用行为向量,以识别两个或更多软件应用之间的关系的本质。此外,行为分析器模块208还可以被配置为向分类器模块应用行为向量,以判断集体设备行为(即,在该设备上操作的两个或多个软件应用的集体活动)是否是正在对于(或者可能对于)该设备的随时间退化具有贡献和/或可能会在该设备上导致问题的非良性行为。

行为分析器模块208可以向致动器模块210通知活动或者行为不是良性的。作为响应,致动器模块210可以执行各种动作或操作,以治疗、治愈、隔离或者以其它方式修复发现的问题。例如,致动器模块210可以被配置为:当向分类器模型应用行为向量(例如,通过分析器模块)的结果指示软件应用的集体行为不是良性的时,停止或者终止软件应用中的一个或多个。

在各个实施例中,行为观测器模块202可以被配置为:通过收集关于应用框架或运行时库中的库应用程序接口(api)调用、系统调用api、文件系统和网络化子系统操作、设备(其包括传感器设备)状态改变和其它类似事件的信息,来监测移动计算设备102的活动。此外,行为观测器模块202还可以监测文件系统活动,其可以包括:搜索文件名、文件访问的类别(个人信息或普通数据文件)、生成或删除文件(例如,类型exe、zip等等)、文件读/写/查找操作、改变文件许可等等。

此外,行为观测器模块202还可以通过对数据网络活动(其可以包括:连接的类型、协议、端口号、该设备连接到的服务器/客户端、连接的数量、通信的量或频率等等)进行监测,来监测移动计算设备102的活动。行为观测器模块202可以对电话网络活动进行监测,其可以包括:对发送出、接收到或者中间截获的呼叫或消息(例如,sms等等)的类型和数量(例如,拨打的优质呼叫的数量)进行监测。

此外,行为观测器模块202还可以通过对系统资源使用(其可以包括:对叉(fork)的数量、存储器访问操作、文件打开的数量等等)进行监测,来监测移动计算设备102的活动。行为观测器模块202可以对移动计算设备102的状态进行监测,其可以包括对诸如下面的各种因素进行监测:显示器是打开还是关闭的、该设备是锁定还是未锁的、电池的剩余电量、照相机的状态等等。此外,行为观测器模块202还可以例如通过监测关键服务(浏览器、合约提供商等等)的意图、进程间通信的程度、弹出窗等等,对进程间通信(ipc)进行监测。

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

此外,行为观测器模块202还可以通过对表示该移动计算设备102和/或移动设备子系统的状态或状况的一个或多个硬件计数器进行监测,来监测移动计算设备102的活动。硬件计数器可以包括处理器/内核的特殊用途寄存器,其被配置为存储该移动计算设备102中发生的与硬件相关活动或事件的计数值或状态。

此外,行为观测器模块202还可以通过对以下信息进行监测,来监测移动计算设备102的活动:软件应用的活动或操作、来自应用下载服务器(例如,应用商店服务器)的软件下载、软件应用使用的计算设备信息、调用信息、文本消息信息(例如,sendsms、blocksms、readsms等等)、媒体消息信息(例如,receivemms等等)、用户账户信息、位置信息、照相机信息、加速计信息、浏览器信息、基于浏览器的通信的内容、基于语音的通信的内容、短距离无线电通信(例如,蓝牙、wifi等等)、基本文本的通信的内容、记录的音频文件的内容、电话簿或联系人信息、联系人列表等等。

此外,行为观测器模块202还可以通过对移动计算设备102的传输或通信进行监测,来监测移动计算设备102的活动,其包括监测下面之类的通信:语音邮件(voicemailcomm)、设备标识符(deviceidcomm)、用户账户信息(useraccountcomm)、日历信息(calendarcomm)、位置信息(locationcomm)、记录的音频信息(recordaudiocomm)、加速计信息(accelerometercomm)等等。

此外,行为观测器模块202还可以通过下面信息的使用和更新/改变进行监测,来监测移动计算设备102的活动:指南针信息、计算设备设置、电池寿命、陀螺仪信息、压力传感器、磁传感器、屏幕活动等等。行为观测器模块202可以监测向软件应用传输和/或传输来自软件应用的通知(appnotifications)、应用更新等等。行为观测器模块202可以监测与第一软件应用有关的状况或事件,其中第一软件应用请求下载和/或安装第二软件应用。行为观测器模块202可以监测与用户验证有关的状况或事件,例如,密码的输入等等。

此外,行为观测器模块202还可以通过对移动计算设备102的多个层级(其包括应用层、无线电层和传感器层)的状况或事件进行监测,来监测移动计算设备102的活动。应用层观测可以包括:经由人脸识别软件来观测用户、观测社交流媒体、观测用户输入的笔记、观测与wallet、和其它类似应用或服务的使用有关的事件。此外,应用层观测还可以包括:观测与虚拟专用网(vpn)的使用有关的事件,以及关于以下各项的事件:同步、语音搜索、语音控制(例如,通过说一个词来锁定/解锁电话)、语言翻译器、数据的卸载以进行计算、视频流媒体、无需用户活动的照相机使用、无需用户活动的麦克风使用等等。

无线电层观测可以包括确定下面中的任何一种或多种的出现、存在或者数量:在建立无线通信链路或者发送信息之前,与移动计算设备102的用户交互、双/多用户识别模块(sim)卡、互联网无线电、移动电话系留、卸载数据以进行计算、设备状态通信、作为游戏控制器或家庭控制器的使用、车辆通信、计算设备同步等等。此外,无线电层观察还可以包括:监测无线电(wifi、wimax、蓝牙等等)的使用以进行定位、对等(p2p)通信、同步、车辆对车辆通信和/或机器对机器(m2m)。此外,无线电层观测还可以包括:对网络业务使用、统计或简档进行监测。

传感器层观测可以包括:对磁传感器或其它传感器进行监测,以确定该移动计算设备102的使用和/或外部环境。例如,计算设备处理器可以被配置为:判断该设备是处于皮套中(例如,经由配置为对皮套中的磁体进行感测的磁传感器)还是处于用户的口袋中(例如,经由照相机或光传感器所检测到的光量)。检测到移动计算设备102处于皮套之中,可以是与认识到可疑的行为有关,例如,由于当移动计算设备102在放入皮套时,与用户的活动使用有关的活动和功能(例如,拍摄照片或视频、发送消息、进行语音呼叫、记录声音等等)的发生,可能是恶意的进程在该设备上进行执行(例如,以跟踪或窥探该用户)的特征。

与使用或外部环境有关的传感器层观测的其它例子,可以包括:检测近场通信(nfc)信令、从信用卡扫描器、条形码扫描器或者移动标签读取器收集信息、检测通用串行总线(usb)充电电源的存在、检测键盘或者辅助设备已耦合到该移动计算设备102、检测到该移动计算设备102已耦合到另一个计算设备(例如,经由usb等等),判断led、闪光、闪光灯或者光源是否被修改或者禁用(例如,恶意地禁用紧急信令app等等)、检测扬声器或麦克风是否已打开或加电、检测充电或功率事件、检测到该移动计算设备102被使用成游戏控制器等等。此外,传感器层观测还可以包括:从医疗或保健传感器或者通过扫描用户的身体来收集信息,从插入到usb/音频插孔的外部传感器收集信息、从触觉或感触传感器收集信息(例如,经由振动器接口等等)、收集与移动计算设备102的热状态有关的信息等等。

为了将需要监测的因素的数量减少到一个可管理的水平,在一个实施例中,行为观测器模块202可以被配置为:通过对初始集合的行为或因素进行监测/观察,来执行粗略观测,其中该初始集合是可能对于该计算设备的性能下降具有贡献的所有因素的一个较小子集。在一个实施例中,行为观测器模块202可以从服务器和/或云服务或网络中的组件接收该初始集合的行为和/或因素。在一个实施例中,可以利用机器学习分类器模型,来指示该初始集合的行为/因素。

每一个分类器模型可以是包括能由计算设备处理器使用,以评估计算设备行为的特定特征或实施例的数据和/或信息结构(例如,特征向量、行为向量、组件列表等等)的行为模型。每一个分类器模型还可以包括用于监测该计算设备中的多种特征、因素、数据点、条目、api、状态、状况、行为、应用、进程、操作、组件等等(本文统称为“特征”)的决策标准。分类器模型可以预安装在计算设备上,从网络服务器下载或接收,在计算设备中生成或者是其任意组合。此外,还可以通过使用众包解决方案、行为建模技术、机器学习算法等等,来生成这些分类器模型。

每一个分类器模型可以被分类成完整分类器模型或者精益分类器模型。完整分类器模型可以是根据大量的训练数据集所生成的健壮数据模型,其可以包括数千特征和数十亿条目。精益分类器模型可以是根据精简数据集生成的更聚焦的数据模型,其仅仅包括、评估或者测试对判断一个特定的活动是否是正在进行的关键活动和/或特定的计算设备行为是否是良性的来说非常重要的特征/条目。举例而言,设备处理器可以被配置为从网络服务器接收完整分类器模型,至少部分地基于完整分类器来生成该计算设备中的精益分类器模型,使用本地生成的精益分类器模型,将设备的行为分类成良性的或者非良性的(例如,恶意的、使性能下降的等等)。

本地生成的精益分类器模型是在计算设备中生成的精益分类器模型。由于计算设备(例如,移动设备等等)可以是可配置和复杂系统,因此对于判断特定的设备行为是否是非良性的(例如,恶意的或者使性能下降的)来说最重要的特征,对于每个设备可能是不同的。此外,由于每个设备可能使用特征的不同组合,因此每个设备可能需要其自己的监测和/或分析,以便快速地和高效地对特定的行为进行分类(例如,分类成非良性的、良性的、或者可疑的)。此外,通常可以仅仅使用从要监测或者分析其行为的特定设备所获得的信息,来确定需要监测和分析的精确特征组合,以及每一个特征或者特征组合的相对优先级或重要性。由于这些和其它原因,在一个实施例中,可以在使用分类器模型的计算设备中,生成这些模型。这些本地分类器模型使设备处理器能够准确地识别对于判断该特定设备上的行为是否是非良性的(例如,对于该设备的性能下降具有贡献)来说最重要的特定特征。本地分类器模型还使设备处理器能够根据进行测试或者评估的特征对于分类该特定设备中的行为的相对重要性,对这些特征划分优先级。

特定于设备的分类器模型是一种包括聚焦的数据模型的分类器模型,其仅仅包括、评估或者测试具有下面特性的特定于计算设备的特征/条目:确定这些特征/条目对于分类特定的计算设备中的活动或者行为来说最相关。特定于应用的分类器模型是一种包括聚焦的数据模型的分类器模型,其仅仅包括、评估或者测试具有下面特性的特征/条目:这些特征/条目对于评估特定的软件应用来说最相关。通过在计算设备中动态地生成特定于应用的分类器模型,设备处理器能够将其监测和分析操作聚焦于很少数量的特征上,其中这些很少数量的特征对于判断特定的软件应用的操作是否对于该设备的非期望行为或者使性能下降行为具有贡献来说非常重要。

多应用分类器模型可以是包括聚焦的数据模型的本地分类器模型,其中该聚焦的数据模型包括或者优先级划分关于以下特征/条目的测试:对于判断两个或更多特定软件应用(或者特定类型的软件应用)的集体行为是否是非良性的来说最相关的特征/条目。多应用分类器模型可以包括:用于对聚合的特征集合进行测试/评估的聚合特征集和/或决策节点。设备处理器可以被配置为通过以下方式,来生成多应用分类器模型:识别对于识别在该计算设备上操作的两个或更多软件应用之间的关系、交互和/或通信来说最相关的设备特征;识别用于评估所识别的设备特征中的一个的测试条件;确定所识别的测试条件的优先级、重要性或者成功率;根据所识别的测试条件的重要性或成功率,对它们划分优先级或者排序;生成分类器模型以包括所识别的测试条件,使得它们根据所确定的优先级、重要性或者成功率来进行排序。设备处理器还可以被配置为:通过将两个或更多特定于应用的分类器模型进行组合,来生成多应用分类器模型。

在各个实施例中,设备处理器可以被配置为:响应于确定两个或更多应用正在共谋或者一致地工作,或者应当将这些应用作为一组进行分析,来生成多应用分类器模型。设备处理器可以被配置为:为每个识别的组或者应用类,生成多应用分类器模型。但是,分析每个组可能会消耗大量的设备有限的资源。因此,在一个实施例中,设备处理器可以被配置为确定一个应用参与共谋行为的概率(例如,至少部分地基于其与其它应用的交互等等),并仅仅针对包括具有较高的共谋行为概率的软件应用的组,智能地生成分类器模型。

行为分析器模块208可以被配置为:向分类器模型应用行为提取器模块204所生成的行为向量,以判断监测的活动(或者行为)是良性的还是非良性的。在一个实施例中,当行为分析器模块208的行为分析操作的结果不能提供足够的信息,将该行为分类成良性的或者非良性的时,行为分析器模块208可以将该行为分类成“可疑的”。

行为分析器模块206可以被配置为:响应于识别共谋的软件应用,确定某些应用应被评估成一组,和/或响应于确定被监测的活动或行为是可疑的,通知行为观测器模块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次或更多”的sms传输)。

增强型决策树桩是可并行化的,其意味着可以并行地/在同一时间,应用或者测试多个树桩(例如,通过计算设备中的多个内核或者处理器),从而增加效率。

在一个实施例中,设备处理器可以被配置为:生成只包括完整分类器模型中包括的分类器标准的一个子集、以及仅仅与该计算设备配置、功能和连接的/包括的硬件有关的特征相对应的那些分类器标准的精益分类器模型。设备处理器可以使用该精益分类器模型,来仅仅监测与该设备存在或者相关的那些特征和功能。随后,设备处理器可以至少部分地基于该计算设备的当前状态和配置,定期地修改或者重新生成该精益分类器模型,以包括或者删除各种特征和相应的分类器标准。

举例而言,设备处理器可以被配置为:接收一个较大的增强型决策树桩分类器模型,其包括与行为模型(例如,分类器)的完整特征集相关联的决策树桩,并通过以下方式,从较大的分类器模型中导出一个或多个精益分类器模型:仅仅从较大的分类器模型中选择与该计算设备的当前配置、功能、操作状态和/或连接的/包括的硬件相关的特征,并在精益分类器模型中包括与所选定的特征相对应的增强型决策树桩的一个子集。在该实施例中,与计算设备有关的特征相对应的分类器标准,可以是较大的分类器模型中包括的用于测试所选定的特征中的至少一个的那些增强型决策树桩。随后,设备处理器可以至少部分地基于该计算设备的当前状态和配置,定期地修改或者重新生成增强型决策树桩精益分类器模型,以包括或者删除各种特征,使得精益分类器模型继续包括特定于应用或者特定于设备的特征的增强型决策树桩。

此外,设备处理器还可以动态地生成特定于应用的分类器模型,后者标识与特定的软件应用(钱包和)和/或特定类型的软件应用(例如,游戏、导航、金融、新闻、生产力等等)有关的状况或特征。可以生成这些分类器模型以包括完整分类器模型中包括的精简并且更加聚焦的决策节点的子集(或者根据所接收的完整分类器模型所生成的精益分类器模型中包括的那些)。可以对这些分类器模型进行组合,以生成多应用分类器模型。

在各个实施例中,设备处理器可以被配置为:针对系统中的每一个软件应用和/或针对系统中的每一种类型的软件应用,生成基于应用的分类器模型。此外,设备处理器还可以被配置为:动态地识别高风险的或者容易被滥用的软件应用和/或应用类型(例如,金融应用、销售点应用、生物传感器应用等等),仅仅针对于被识别成高风险或者容易被滥用的软件应用和/或应用类型,才生成基于应用的分类器模型。在各个实施例中,设备处理器可以被配置为动态地、反应地、主动地和/或每次安装或更新新的应用时,生成基于应用的分类器模型。

通常,每一个软件应用在计算设备上执行多个任务或者活动。在计算设备中执行某些任务/活动的特定执行状态,可以是行为或者活动是否值得另外或者更仔细的审查、监测和/或分析的强指示符。因此,在各个实施例中,设备处理器可以被配置为使用识别执行某些任务/活动的实际执行状态的信息,以聚焦其行为监测和分析操作,并更好地判断活动是否是关键活动和/或该活动是否是非良性的。

在各个实施例中,设备处理器可以被配置为:将软件应用执行的活动/任务与执行这些活动/任务的执行状态进行关联。例如,设备处理器可以被配置为生成行为向量,其中该行为向量包括通过监测子向量或数据结构(其列出了该执行状态相关的软件的特征、活动或者操作(例如,位置访问、sms读操作、传感器访问等等))中的仪表部件所收集的行为信息。在一个实施例中,可以与用于识别所观察的每个特征/活动/操作的执行状态,相关联地存储该子向量/数据结构。举例而言,设备处理器可以生成包括“location_background”数据字段的行为向量,其中该“location_background”数据字段的值标识:当该软件应用以后台状态进行操作时,访问位置信息的次数或者速率。这使设备处理器能够独立于其它观测的/监测的计算设备的活动和/或与之并行地,来分析该执行状态信息。用此方式来生成行为向量,还使系统能够随着时间对信息(例如,频率或者速率)进行聚合。

在各个实施例中,设备处理器可以被配置为生成行为向量,以包括可以输入到机器学习分类器中的决策节点,以生成关于所监测的活动的查询的应答的信息。

在各个实施例中,设备处理器可以被配置为生成行为向量以包括执行信息。可以将该执行信息作为行为的一部分(例如,后台进程将三秒钟之内使用照相机五次,前台进程在三秒钟之内使用照相机三次等等)或者作为独立特征的一部分,包括在行为向量中。在一个实施例中,可以将执行状态信息作为阴影特征值子向量或者数据结构,包括在行为向量中。在一个实施例中,该行为向量可以将该阴影特征值子向量/数据结构与同该执行状态有关的特征、活动、任务,进行关联地存储。

图2b示出了基于行为的系统对设备行为进行白名单化的方法250,其中该基于行为的系统被配置为使用机器学习技术,对于可能使计算设备的性能、功率利用水平、网络使用水平、安全性和/或私密性发生下降的状况和行为进行高效地识别、分类、建模、防止和/或纠正。方法250可以由资源受限计算设备(例如,移动设备)中的处理器或者处理内核来执行。

在方框252中,处理内核可以监测在该计算设备上操作的软件应用的活动(例如,经由上面参照图2a所讨论的行为观测器模块202)。在方框254中,处理内核可以生成用于表征所监测的活动的全部或者一部分的行为向量信息结构(例如,经由行为提取器模块204)。

在方框256中,处理内核可以向机器学习分类器模型应用该行为向量信息结构,以生成分析结果(例如,经由行为分析器模块208)。在方框258中,处理内核可以使用该分析结果,对行为向量进行分类/子分类(以及因此通过行为向量信息结构所表征的活动/行为)。例如,处理内核可以将行为向量信息结构分类成良性的、可疑的或者非良性的,以及子分类成游戏、广告软件等等。在一些实施例中,处理内核还可以至少部分地基于子分类,确定该行为向量信息结构所表征的活动/行为的优先级或者相对重要性(例如,软件应用或者行为对于设备的正常运行造成的风险或威胁的严重性等等)。在本公开内容的各个实施例中,计算设备可以被配置为至少部分地基于与每个活动或者行为相关联的优先级或重要性值,来确定这些活动/行为的优先级或相对重要性。该优先级/重要性值可以是预定的值、静态值、或者至少部分地基于历史信息来动态确定的(例如,从先前的执行、行为模型的前一次应用中收集的)、新机器学习、上下文建模等等。

在判断框260中,处理内核可以判断行为向量信息结构是否被分类成良性的(或者该行为向量信息结构所表征的活动/行为是否是良性的)。响应于确定行为向量信息结构所表征的监测的活动被分类成良性的(即,判断框260=“是”),处理内核可以继续在方框252中,监测相同或者不同软件应用的活动,和/或执行本文所讨论的基于行为的操作中的任何一个或全部。

响应于确定行为向量信息结构所表征的监测的活动没有被分类成良性的(即,判断框260=“否”),在判断框262中,处理内核可以判断行为向量信息结构所表征的监测的活动或行为是否包括在白名单(例如,上面参照图2a所讨论的行为白名单212)中。

响应于确定该活动/行为包括在白名单中(即,判断框262=“是”),处理内核可以忽略行为向量信息结构所表征的行为,继续在方框252中,监测相同或者不同软件应用的活动,和/或执行本文所讨论的基于行为的操作中的任何一个或全部。也就是说,不是响应于确定该行为是非良性的,向用户显示提示或者执行致动操作,而是处理内核忽略该行为向量信息结构所表征的可疑的或者潜在的非良性行为(由于其包含在白名单中)。因此,通过对应用的行为或者监测的活动进行白名单化,系统可以不再监测该行为或者该应用的监测的活动,从而减少该系统与行为监测相关联的处理。当涉及到非常常见的行为(如位置跟踪)时,情况尤其如此。

响应于确定该活动/行为不包括在白名单中(即,判断框262=“否”),在方框264中,处理内核可以生成和显示提示,其请求用户判断/选择是否允许该软件应用继续在该设备上进行操作。此外,该提示还可以标识为何确定该行为是可疑的原因(例如,其是广告软件等等)。

在方框266中,处理内核可以接收用于指示是否允许该软件应用继续在该设备上进行操作的用户输入(例如,其对于用户的利益超过其负面特性等等),使用所接收的用户输入来判断是否将所监测的活动增加到白名单中和/或是否执行致动操作。在方框268中,处理内核可以更新该白名单,例如,当用户输入指示允许该软件应用继续在该设备上进行操作时,插入行为向量信息结构所表征的活动/行为,或者当用户输入指示该软件应用不应当继续在该设备上进行操作时,删除该软件应用和/或与该软件应用相关联的所有行为。此外,在方框268中,处理内核可以执行一个或多个致动操作(例如,终止该软件应用等等),例如,当用户输入指示该软件应用不应当继续在该设备上进行操作时。

图3a示出了在计算设备中生成精益或聚焦的分类器/行为模型的方法300。方法300可以由资源受限计算设备(例如,移动设备)中的处理器或处理内核来执行。在方法300的方框302中,处理内核可以选择或者接收完整分类器模型,其中该完整分类器模型是或者包括有限状态机、增强型决策树桩列表或者其它类似的信息结构。在一个实施例中,完整分类器模型包括有限状态机,后者包括适合于表示多个增强型决策树桩的信息和/或包括适合于由计算设备转换成多个增强型决策树桩的信息。在一个实施例中,该有限状态机可以是(或者可以包括)经排序的或者划分优先级的增强型决策树桩列表。这些增强型决策树桩中的每一个可以包括测试条件和权重值。

如上面所讨论的,增强型决策树桩是只有一个节点(因此一个测试问题或者测试条件)和一个权重值的一级决策树,因此其非常适合于在数据/行为的二元分类中使用。这意味着将特征向量或行为向量应用于增强型决策树桩导致二元应答(例如,是或否)。例如,如果增强型决策树桩所测试的问题/条件是“sms传输的频率低于每分钟x次?”,则向增强型决策树桩应用“3”的值,将导致“是”应答(对应于“小于3次”的sms传输)或者“否”应答(对应于“3次或更多”的sms传输)。

返回到图3a,在方法300的方框304中,在无需消耗过量的计算设备的处理资源、存储器或能量资源的情况下,处理内核可以确定应当进行评估,以准确地将计算设备行为分类成良性的或者非良性的多个唯一测试条件。这可以包括:确定计算设备中可用的处理资源、存储器和/或能量资源的量,对状况进行测试所需要的该计算设备的处理资源、存储器或能量资源的量;确定与计算设备通过对状况进行测试而要进行分析或者评估的行为或状况相关联的优先级和/或复杂度;选择/确定所述多个唯一测试条件,以便在该计算设备的可用处理资源、存储器或能量资源的消耗、通过测试条件将实现的行为分类的准确性、以及通过该状况测试的行为的重要性或优先级之间达到平衡。

在方框306中,处理内核可以从开始处遍历增强型决策树桩列表,以利用所确定数量的唯一测试条件来填充选定的测试条件列表。在一个实施例中,处理内核还可以确定用于所选定的测试条件中的每一个的绝对或相对优先级值,将该绝对或相对优先级值关联它们相应的测试条件来存储在选定的测试条件列表之中。

在方框308中,处理内核可以生成精益分类器模型,其中该精益分类器模型包括完整分类器模型中包括的用于对所选定测试条件里的一个进行测试的所有增强型决策树桩。在一个实施例中,处理内核可以生成精益分类器模型,以按照重要性或优先级值的顺序,来包括或者表示这些增强型决策树桩。

在可选框310中,可以通过下面操作,增加唯一测试条件的数量,以便生成另一个更加稳健的(即,不太精简的)精益分类器模型:针对方框306中的更大数量的测试条件,重复遍历增强型决策树桩列表的操作,在方框308中,生成另一个精益分类器模型。

图3b示出了在计算设备中生成数据模型的另一种实施例方法311。方法311可以由计算设备中的处理内核来执行。在方法311的方框312中,处理内核可以接收包括有限状态机的完整分类器模型。该有限状态机可以是包括有适合于转换成多个增强型决策树桩的信息的信息结构。在方框314中,处理内核可以将完整分类器模型中包括的有限状态机转换成包括测试条件和权重值的增强型决策树桩。

在一个实施例中,处理内核还可以针对根据在方框312中的有限状态机所生成的每一个增强型决策树桩,来计算或者确定其对应的优先级值。处理内核可以以平衡计算设备的处理资源、存储器或能量资源的消耗、行为分类的准确性等等之间的均衡的方式,来确定增强型决策树桩的优先级。例如,能被快速地处理并更加能量高效(例如,不需要向物理资源供电)的增强型决策树桩,可以被给予更高的优先级,因此与不太高效的增强型决策树桩相比,更有可能在精益分类器模型中实现(在方框312中)。此外,处理内核还可以至少部分地基于增强型决策树桩的相关联的权重值、测试条件的相对或者预测的重要性,确定它们的优先级,以便对行为进行准确地分类等等。

此外,在方框312中,处理内核可以生成第一列表(或者其它信息结构),其中第一列表根据通过有限状态机所生成的增强型决策树桩的优先级和/或它们的重要性的顺序,来包括、引用、标识和/或组织这些增强型决策树桩。例如,处理内核可以将第一列表生成为排序的列表,其包括:具有最高优先级的树桩作为第一项,其次是具有第二高优先级值的树桩,依此类推。通过使用优先级对列表进行排序,处理内核可以平衡用于监测和分析软件应用的活动的计算设备的处理资源、存储器或能量资源的量、与所确定的第一被监测活动的相对重要性之间的均衡。这个重要性的顺序还可以考虑从云语料库收集的信息,以及特定于执行剔除算法的设备的信息。

在方框316中,处理内核可以计算或者确定当应用精益分类器模型时,应当进行评估的多个唯一测试条件(即,可以在增强型决策树桩中测试的计算设备状态、特征、行为或者条件)。计算或者确定该多个唯一测试条件可以涉及:在应用该模型所需要的计算设备的处理资源、存储器或能量资源的消耗、与将要实现该精益分类器模型的行为分类的准确性之间取得平衡或均衡。这种确定可以包括:确定计算设备中可用的处理资源、存储器和/或能量资源的量,确定与将要分析的行为相关联的优先级和/或复杂度,以及平衡可用资源与该行为的优先级和/或的复杂性。

在方框318中,处理内核可以通过顺序地遍历增强型决策树桩的第一列表,将与每个遍历的增强型决策树桩相关联的测试条件值插入到第二列表中,来生成第二列表。处理内核可以继续遍历第一列表,将值插入到第二列表中,直到第二列表的长度等于所确定的唯一测试条件的数量为止,或者直到第二列表包括所有确定数量的唯一测试条件为止。

在方框320中,处理内核可以至少部分地基于第一列表中包括的增强型决策树桩,生成精益分类器模型。在一个实施例中,处理内核可以生成精益分类器模型,以仅仅包括对于第二列表(即,在方框318中生成的测试条件的列表)中包括的测试条件里的一个进行测试的增强型决策树桩。同样,通过使用利用至少部分地基于一些因素(例如,用于监测每个树桩所测试的特征的计算设备的处理资源、存储器或能量资源的量)来分配优先级的经排序的增强型决策树桩列表,所生成的精益分类器模型可以平衡用于监测和分析软件应用的活动的计算设备的处理资源、存储器或能量资源的量、与所确定的第一被监测活动的相对重要性之间的均衡。

在可选框322中,可以通过下面操作,增加唯一测试条件的数量,以便生成另一个更加稳健的(即,不太精简的)精益分类器模型:针对方框318中的更大数量的测试条件,重复遍历增强型决策树桩列表的操作,在方框320中,生成另一个精益分类器模型。可以重复这些操作,以生成一系列的精益分类器模型。

图3c示出了使用精益分类器模型,对计算设备的行为进行分类的实施例方法324。方法324可以由计算设备中的处理内核来执行。

在方法324的方框326中,处理内核可以执行观察,以从各个组件收集在该计算设备系统的各个层级测量的行为信息。在一个实施例中,这可以经由如上面参照图2a所讨论的行为观测器模块202来完成。在方框328中,处理内核可以生成用于表征这些观察量、所收集的行为信息和/或计算设备行为的行为向量。此外,在方框328中,处理内核可以使用完整分类器模型,来生成精益分类器模型或者不同程度的复杂性(或者“精简性”)的一系列精益分类器模型。为了实现这一点,处理内核可以挑选完整分类器模型中包括的一系列增强型决策树桩,以生成包括精简数量的增强型决策树桩和/或评估有限数量的测试条件的精益分类器模型。

在方框329中,处理内核可以选择该系列精益分类器模型(即,至少部分地基于最少数量的不同计算设备状态、特征、行为或条件的模型)中的该计算设备还没有评估或者应用的最精益分类器。在一个实施例中,这可以通过处理内核选择经排序的分类器模型列表中的第一分类器模型来完成。

在方框330中,处理内核可以向所选定的精益分类器模型中的每一个增强型决策树桩应用所收集的行为信息或者行为向量。由于增强型决策树桩是二元决策,并且精益分类器模型是通过选择多个二元决策(它们是至少部分地基于相同的测试条件)来生成的,因此可以以并行操作来执行用于向精益分类器模型中的增强型决策树桩应用行为向量的处理。替代地,可以对方框330中应用的行为向量进行截短或者过滤,以刚好包括该精益分类器模型中包括的有限数量的测试条件参数,从而进一步降低在应用该模型时的计算量。

在方框332中,处理内核可以计算或者确定向精益分类器模型中的每一个增强型决策树桩应用所收集的行为信息的结果的加权平均。在方框334中,处理内核可以将所计算的加权平均与门限值进行比较。在判断框335中,处理内核可以判断该比较的结果和/或应用所选定的精益分类器模型所产生的结果是否是可疑的。例如,处理内核可以判断是否可以使用这些结果,以较高的置信度将行为分类成良性的或者非良性的(如果没有将该行为对待成可疑的话)。

如果处理内核确定这些结果是可疑的(例如,判断框335=“是”),则处理内核可以重复方框329-334中的操作,选择和应用更强的(即,不太精简的)分类器模型对更多的设备状态、特征、行为或状况进行评估,直到以较高的置信度将该行为分类成良性的或者非良性的为止。如果处理内核确定这些结果不是可疑的(例如,判断框335=“否”)(例如,通过以较高的置信度来确定可以将该行为分类成良性的或者非良性的),则在方框336中,处理内核可以使用在方框334中产生的比较的结果,将该计算设备的行为分类成良性的或者潜在非良性的。

在图3d所示出的一个替代的实施例方法340中,上面参照方框318和320所描述的操作可以通过以下操作来完成:顺序地选择并未处于精益分类器模型之中的增强型决策树桩;根据与所选定的决策树桩相同的计算设备状态、特征、行为或状况,识别所有其它增强型决策树桩(因此可以基于一种确定结果来进行应用);在精益分类器模型中,包括所选定的以及所有识别的其它增强型决策树桩(其取决于相同的计算设备状态、特征、行为或状况);将该处理重复与所确定的测试条件的数量相等的次数。由于每一次将依赖于与所选定的增强型决策树桩相同的测试条件的所有增强型决策树桩都增加到精益分类器模型中,因此限制执行该处理的次数,将限制精益分类器模型中包括的测试条件的数量。

参见图3d,在方框342中,处理内核可以计算或者确定应当在精益分类器模型中评估的唯一测试条件(即,可以在增强型决策树桩中测试的计算设备状态、特征、行为或者条件)的数量(n)。计算或者确定唯一测试条件的该数量可以涉及:在应用该模型所需要的计算设备的处理资源、存储器或能量资源的消耗、和该精益分类器模型将实现的行为分类的准确性之间取得平衡或者均衡。这种确定可以包括:确定计算设备中可用的处理资源、存储器和/或能量资源的量,确定与将要分析的行为相关联的优先级和/或复杂度,对可用资源与该行为的优先级和/或复杂度进行平衡。

在方框344中,处理内核可以将循环计数变量的值设置为等于零(0),或者发起将执行所确定的数量n次的循环。在方框346中,处理内核可以选择包括在完整的增强型决策树桩集合中或者根据其生成,但不包括在精益分类器模型列表中的增强型决策树桩。第一次执行该循环时,在精益分类器模型列表中不存在增强型决策树桩,所以将选择第一增强型决策树桩。如本文所提及的,可以对完整分类器模型进行配置,使得完整集中的第一增强型决策树桩具有识别良性或者非良性行为的最高概率。在方框348中,处理内核可以确定与所选定的决策树桩相关联的测试条件。在方框350中,处理内核可以识别包括在完整分类器模型中的或者根据其生成的所有决策树桩,其中完整分类器模型取决于、包括或者测试与所选定的决策树桩的测试条件相同的测试条件。在方框352中,处理内核可以增加所选定的增强型决策树桩和所有识别的增强型决策树桩,其中这些识别的增强型决策树桩取决于、包括或者测试与精益分类器模型列表相同的测试条件。

在方框354中,处理内核可以对循环计数变量的值进行递增。在判断框356中,处理内核可以判断循环计数变量的值是否大于或等于在方框342中确定的唯一测试条件的数量n。当处理内核确定循环计数变量的值不大于或等于唯一测试条件的数量时(即,判断框356=“否”),处理内核可以重复方框346-354中的操作。当处理内核确定循环计数变量的值大于或等于唯一测试条件的数量时(即,判断框356=“是”),在方框358中,处理内核可以生成精益分类器模型以包括该精益分类器模型列表中的所有增强型决策树桩。

可以通过改变精益分类器模型中的唯一测试条件的数量n,使用该方法340多次,以生成具有不同程度的健壮性或精益性的一系列精益分类器模型。例如,在可选框360中,计算设备处理器可以增加在方框342中确定的唯一测试条件的数量n,以便生成合并有更多测试条件的另一种精益分类器模型。在可选判断框362中,处理器可以判断增加后的数量n是否超过测试条件的最大数量(maxn)。可以至少部分地基于最大性能损失或者评估难以分类行为所需的资源投资,来确定测试条件的最大数量(例如,由开发者、服务提供商、用户或者经由某种算法来确定)。如果增加后的数量n小于最大数量maxn(即,判断框362=“否”),则可以重复上面所描述的方框344到360的操作,以生成另一种精益分类器模型。一旦在精益分类器模型中包括了最大数量的唯一测试条件(即,判断框362=“是”),则可以结束生成精益分类器模型的处理。

虽然图3a、3b和图3d描述了通过重复遍历增强型决策树桩的完整集的整个过程来生成一系列精益分类器模型,但也可以通过下面方式来实现类似的结果:以所生成的精益分类器模型(即,在方框308、320和358中的任何一个里所生成的模型)进行开始,根据所生成的精益分类器模型中还没有包括的测试条件,针对增加到该模型增强型决策树桩的增加数量的测试条件,对增强型决策树桩的完整集进行遍历。

此外,虽然图3a、3b和图3d描述了从最精益到最稳健的一系列精益分类器模型,但也可以通过以最大数量的测试条件(例如,n=maxn)进行开始,每次对该数量进行递减,来生成从最稳健的到最精益简单的精益分类器模型。

图4a示出了生成完整分类器模型的实施例方法400。方法400可以由资源受限计算设备(例如,移动设备)中的处理器或处理内核来执行。

在方框402中,处理内核可以(例如,从很多计算设备)接收或者收集行为数据语料库,其包括很大数量的设备状态、配置和行为、以及关于是否检测到恶意行为的信息。在方框404中,处理内核可以识别能在来自该行为数据语料库的设备状态、配置和行为中测试的特定二元问题/测试条件。为了表征所有设备状态、配置和行为,通常将识别较大数量的这些二元问题/测试条件。随后,在方框406中,对于每一个识别的二元问题,处理内核可以测试该数据基础,以确定与针对该二元问题的应答中的一个或另一个相对应的恶意行为的分数或百分比次数。在方框408中,处理内核可以使用至少部分地基于相应百分比所确定的权重值,来选择与非良性行为具有最高对应性的二元问题作为第一决策树桩。在方框410中,处理内核可以提高不正确分类的样本/测试条件的权重,如下面参照图4b所描述的。

随后,处理内核可以重复扫描该二元问题的过程(假定第一问题的应答是与恶意行为不相关联的值(例如,“否”)),以使用与该情况下的恶意行为的最高对应性来识别该问题。随后,将该问题设置成模型中的第二二元问题,其中,其权重值是至少部分地基于其对应性百分比来确定的。随后,处理内核可以重复扫描该二元问题的过程(假定第一和第二问题的应答是与恶意行为不相关联的值(例如,“否”)),以使用与该情况下的恶意行为的最高对应性来识别下一个问题/测试条件。随后,该问题/测试条件是模型中的第三二元问题/测试条件,其中,其权重值是至少部分地基于其对应性百分比来确定的。继续该过程以遍历所有识别的二元问题/测试条件,从而构建完整集。

在生成二元问题/测试条件的过程中,处理内核可以评估具有某个范围的数据(例如,通信频率或者在前一时间间隔内的通信次数),以有助于分类行为的方式制定一系列的包含该范围的二元问题/测试条件。因此,一个二元问题/测试条件可能是设备是否在之前五分钟内发送了多于零的数据传输(其可能具有低相关性),第二个二元问题/测试条件可能是设备是否在之前五分钟内发送了超过10个数据传输(其可能具有中等相关性),第三个问题/测试条件可能是设备是否在之前五分钟内是否发送了超过100个数据传输(其可能具有高相关性)。

最后一组问题/测试条件的一些剔除可以由处理内核来完成,以去除其确定的权重或者与恶意行为的相关性小于门限(例如,统计学显著性地小于)的那些问题/测试条件。例如,如果与恶意行为的相关性大约为50/50,那么使用该决策树桩既不回答也不能帮助回答当前行为是否为良性或非良性的问题,可能没有什么益处。

图4b示出了适合于生成增强型决策树/分类器(其适合于根据各个实施例进行使用)的示例性增强方法420。在操作422中,处理器或处理内核可以生成和/或执行决策树/分类器,通过决策树/分类器的执行来收集训练样本,并至少部分地基于该训练样本来生成新的分类器模型(h1(x))。该训练样本可以包括:通过该设备中的设备行为、软件应用或者进程的前一次观察或分析所收集的信息。可以至少部分地基于前一分类器中包括的问题或测试条件的类型,和/或至少部分地基于通过行为分析器模块204前一数据/行为模型或者分类器模型的执行/应用所收集的准确性或性能特性,来生成该训练样本和/或新的分类器模型(h1(x))。在操作424中,处理器或者处理内核可以提升(或者增加)所生成的决策树/分类器(h1(x))所误分类的条目的权重,以生成第二新的树/分类器(h2(x))。在一个实施例中,可以至少部分地基于分类器(h1(x))的前一次执行或者使用的差错/错误率,来生成该训练样本和/或新的分类器模型(h2(x))。在一个实施例中,可以至少部分地基于确定对于该错误率或者分类器的前一次执行或使用中的数据点的误分类具有贡献的属性,来生成该训练样本和/或新的分类器模型(h2(x))。

在一个实施例中,可以至少部分地基于误分类的条目的相对准确性或者有效性,对它们进行加权。在操作426中,处理器或者处理内核可以提升(或者增加)所生成的第二决策树/分类器(h2(x))所误分类的条目的权重,以生成第三新的树/分类器(h3(x))。在操作428中,可以重复424-426的操作,以生成“t”数量的新树/分类器(ht(x))。

通过提升或者增加第一决策树/分类器(h1(x))所误分类的条目的权重,第二决策树/分类器(h2(x))可以更准确地对第一决策树/分类器(h1(x))所误分类的条目进行分类,但其也可能使第一决策树/分类器(h1(x))正确分类的一些条目发生误分类。类似地,第三决策树/分类器(h3(x))可以更准确地对第二决策树/分类器(h2(x))所误分类的条目进行分类,并可能使第二决策树/分类器(h2(x))正确分类的一些条目发生误分类。也就是说,生成该系列的树/分类器h1(x)-ht(x)并不导致系统整体地收敛,而是导致可以并行地执行多个决策树/分类器。

图5根据一个实施例,示出了对行为进行分类和子分类的方法500。方法500可以由移动或资源受限计算设备中的处理器或处理内核来执行。在方框502中,处理内核可以使用基于行为的技术和机器学习技术,将设备行为分类成良性的、可疑的或者非良性的。在方框504中,处理内核可以使用多标签分类或元分类技术,将良性的、可疑的、和非良性的行为进一步分类(例如,子分类、类别化、打标签等等)成一些类别、子类别、组或者子组。

在可选框506中,处理内核可以至少部分地基于行为的子分类(例如,至少部分地基于与该行为相关联的类别、组或者标签),确定该行为的相对重要性(例如,软件应用或者行为对于设备的正常运行造成的风险或威胁的严重性)。

在方框508中,处理内核可以至少部分地基于子分类或者所确定的该行为的相对重要性,确定、选择和/或执行分析或者致动操作(例如,至少部分地基于与行为相关联的类别、组或者标签,判断是执行稳健的分析操作还是执行轻量级分析操作)。

图6根据一个实施例,示出了用于执行动态和自适应观测的示例性方法600。在方框702中,设备处理器可以通过对可能对于该移动设备的性能下降具有贡献的很大数量的因素/行为的一个子集进行监测/观测,来执行粗略观测。在方框603中,设备处理器可以至少部分地基于该粗略观测量,生成用于表征粗略观测量和/或移动设备行为的行为向量。

在方框604中,设备处理器可以识别与这些粗略观测量相关联的可能潜在地对于该移动设备的性能下降具有贡献的子系统、进程和/或应用。例如,这可以通过将从多个源接收的信息与从移动设备的传感器接收的上下文信息进行比较来实现。在方框606中,设备处理器可以至少部分地基于粗略观测量,来执行行为分析操作。在一个实施例中,作为方框603和604的一部分,设备处理器可以执行上面参照图2-10所讨论的操作中的一个或多个。

在判断框608,设备处理器可以判断是否可以至少部分地基于该行为分析的结果,来识别和校正可疑的行为或潜在的问题。当设备处理器确定可以至少部分地基于该行为分析的结果来识别和校正可疑的行为或潜在的问题时(即,判断框608=“是”),则在方框618中,处理器可以发起用于对该行为进行校正的处理,并在方框602中执行另外的粗略观测。

当设备处理器确定不能至少部分地基于该行为分析的结果来识别和/或校正可疑的行为或潜在的问题时(即,判断框608=“否”),则在判断框609中,设备处理器可以判断存在问题的可能性。在一个实施例中,设备处理器可以通过计算该移动设备的遭遇到潜在问题和/或参与可疑行为的概率,并判断所计算的概率是否大于预定的门限,来确定存在问题的可能性。

当设备处理器确定所计算的概率不大于预定的门限,和/或不存在可疑行为或潜在问题的可能性和/或不能检测到这些情形时(即,判断框609=“否”),则在方框612中,处理器可以执行另外的粗略观测。

当设备处理器确定存在可疑行为或潜在问题的可能性和/或可检测到这些情形时(即,判断框609=“是”),则在方框610中,设备处理器可以关于所识别的子系统、进程或应用,执行更深层次的记录/观测或者最终的记录。在方框612中,设备处理器可以关于所识别的子系统、进程或应用,执行更深入和更详细的观测。在方框614中,设备处理器可以至少部分地基于更深入和更详细的观测,来执行进一步和/或更深入的行为分析。在判断框608中,设备处理器可以再次判断是否能够至少部分地基于更深入行为分析的结果,来识别和校正可疑的行为或潜在的问题。

当设备处理器确定至少部分地基于该更深入的行为分析的结果,不能识别和校正这些可疑的行为或潜在的问题时(即,判断框608=“否”),则处理器可以重复方框610-614中的操作,直到细节水平足够精细以便能够识别该问题为止,或者直到确定不能利用另外的细节来识别该问题或者不存在问题为止。

当设备处理器确定至少部分地基于该更深入的行为分析的结果,能够识别和校正这些可疑的行为或潜在的问题时(即,判断框608=“是”),则在方框618中,设备处理器可以执行操作以校正该问题/行为,处理器可以在方框602中执行另外的操作。

在一个实施例中,作为方法600的方框602-618的一部分,设备处理器可以执行该系统的行为的实时行为分析,以根据有限的粗略观测量来识别可疑的行为,动态地确定要进行更详细地观测的行为,以及动态地确定这些观测所需要的精密的细节水平。这使设备处理器能够高效地识别和防止发生问题,而无需使用该设备上的大量的处理器、存储器或电池资源。

各个实施例可以在各种各样的计算设备上实现,在图7中利用智能电话的形式来示出了其一个例子。智能电话700可以包括耦合到内部存储器704、显示器712,以及耦合到扬声器714的处理器702。另外,智能电话700还可以包括用于发送和接收电磁辐射的天线,后者可以连接到无线数据链路和/或耦合到处理器702的蜂窝电话收发机708。通常,智能电话700还包括用于接收用户输入的菜单选择按键或者摇杆开关720。

典型的智能电话700还包括声音编码/解码(codec)电路706,后者对于将从麦克风接收的声音数字化成适合于无线传输的数据分组,对接收的声音数据分组进行解码,以生成将提供给扬声器来生成声音的模拟信号。此外,处理器702、无线收发机708和codec706中的一个或多个可以包括数字信号处理器(dsp)电路(没有单独地示出)。

处理器702可以是任何可编程微处理器、微计算机或多处理器芯片或芯片集,它们可以由软件指令(应用)进行配置以执行各种各样的功能,其包括下面所描述的各个实施例的功能。在一些移动设备中,可以提供多个处理器702,例如,一个处理器专用于无线通信功能,一个处理器专用于运行其它应用。通常,在访问软件应用并将它们装载到处理器702之前,可以将这些软件应用存储在内部存储器704中。处理器702可以包括足够用于存储这些应用软件指令的内部存储器。

多种不同的蜂窝和移动通信服务和标准在未来是可用的或者是可预期的,所有这些服务和标准都可以实现本申请的各个实施例,并从各个实施例中受益。例如,这些服务和标准包括第三代合作伙伴计划(3gpp)、长期演进(lte)系统、第三代无线移动通信技术(3g)、第四代无线移动通信技术(4g)、全球移动通信系统(gsm)、通用移动通信系统(umts)、3gsm、通用分组无线服务(gprs)、码分多址(cdma)系统(例如,cdmaone、cdma1020tm)、增强型数据速率gsm演进(edge)、高级移动电话系统(amps)、数字amps(is-136/tdma)、演进-数据优化(ev-do)、数字增强型无绳通信(dect)、全球微波互通接入(wimax)、无线局域网(wlan)、wi-fi保护访问i&ii(wpa、wpa2)和综合数字增强网络(iden)。例如,这些技术中的每一种都涉及语音、数据、信令和/或内容消息的传输和接收。应当理解的是,对于术语的任何引用和/或与各个电信标准或技术有关的技术细节,只是为了说明目的,而不是旨在将本发明的保护范围限制于特定的通信系统或技术,除非在权利要求中进行了明确陈述。

本申请中使用术语“性能下降”来指代多种多样的非期望的计算设备操作和特性,例如,更长的处理时间、减慢的实时响应速度、更低的电池寿命、私人数据的丢失、恶意经济活动(例如,发送未授权的高级sms消息)、拒绝服务(dos)、与征用计算设备或者使用电话来进行窥探或僵尸活动有关的操作等等。

用于在可编程处理器上运行以执行本文的各个实施例的操作的计算机程序代码或“程序代码”,可以利用诸如c、c++、c#、smalltalk、java、javascript、visualbasic、结构化查询语言(例如,transact-sql)、perl之类的高级编程语言来编写,或者利用各种其它编程语言来编写。如本申请所使用的计算机可读存储介质上所存储的程序代码或程序,可以指代其格式是处理器可理解的机器语言代码(例如,目标代码)。

将很多移动计算设备操作系统内核组织到用户空间(非特权代码运行的空间)和内核空间(特权代码运行的空间)。这种分隔在和其它通用公共许可证(gpl)环境中具有特别的重要性,其中在这些环境中,作为内核空间的一部分的代码必须是gpl许可的,而在用户空间中运行的代码可以不是gpl许可的。应当理解的是,这里所讨论的各种软件组件/模块可以实现在内核空间中,也可以实现在用户空间中,除非另外明确指出。

上述的方法描述和处理流程图仅仅是用作为说明性例子,而不是旨在要求或者隐含着必须以所给出的顺序来执行各个实施例的操作。如本领域普通技术人员所应当理解的,可以以任何顺序来执行上述的实施例中的操作顺序。此外,诸如“其后”、“转而”、“接着”等等之类的词语,并不旨在限制这些操作的顺序;这些词语仅仅只是用于引导读者遍历该方法的描述。此外,任何对权利要求元素的单数引用(例如,使用冠词“一个(a)”、“某个(an)”或者“该(the)”),不应被解释为将该元素限制为单数形式。

如本申请中所使用的,术语“组件”、“模块”等等旨在包括与计算机相关的实体,例如但不限于:配置为执行特定的操作或功能的硬件、固件、硬件和软件的结合、软件或运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行的线程、程序和/或计算机。举例而言,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于处理和/或执行线程中,组件可以位于一个处理器或内核中和/或分布在两个或更多处理器或内核之间。此外,这些组件能够从其上存储有各种指令和/或数据结构的各种非临时性计算机可读介质中执行。组件可以通过本地和/或远程处理、函数或过程调用、电信号、数据分组、存储器读/写、以及其它已知网络、计算机、处理器和/或与处理有关的通信方法的方式进行通信。

结合本文所公开的实施例描述的各种示例性的逻辑框、模块、电路和算法操作均可以实现成电子硬件、计算机软件或二者的组合。为了清楚地表示硬件和软件之间的这种可交换性,上面对各种示例性的部件、框、模块、电路和操作均围绕其功能进行了总体描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本发明的保护范围。

用于执行本文所述功能的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件部件或者其任意组合,可以用来实现或执行结合本文所公开的实施例描述的用于实现各种示例性的逻辑、逻辑框、模块和电路的硬件。通用处理器可以是多处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,dsp和多处理器的组合、若干多处理器、一个或多个多处理器与dsp内核的结合,或者任何其它此种结构。替代地,一些操作或方法可以由特定于给定的功能的电路来执行。

在一个或多个示例性实施例,本文所述功能可以用硬件、软件、固件或它们任意组合的方式来实现。当在软件中实现时,可以将这些功能存储成非临时性计算机可读存储介质或者非临时性处理器可读存储介质上的一个或多个处理器可执行指令或代码。本文所公开的方法或算法的操作,可以体现在处理器可执行软件模块中,后者可以位于非临时性计算机可读存储介质或处理器可读存储介质上。非临时性计算机可读或处理器可读存储介质可以是计算机或处理器能够存取的任何存储介质。举例而言,但非做出限制,这种非临时性计算机可读介质或者处理器可读介质可以包括ram、rom、eeprom、闪存、cd-rom或其它光盘存储器、磁盘存储器或其它磁存储设备、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。如本申请所使用的,磁盘和光盘包括压缩光盘(cd)、激光光盘、光盘、数字通用光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述的组合也应当包括在非临时性计算机可读介质和处理器可读介质的保护范围之内。另外,一种方法或算法的操作可以作为一个代码和/或指令集或者其任意组合,位于非临时性处理器可读介质和/或计算机可读介质上,其中该非临时性处理器可读介质和/或计算机可读介质可以并入到计算机程序产品中。

为使本领域任何普通技术人员能够实现或者使用本发明,上面围绕所公开的实施例进行了描述。对于本领域普通技术人员来说,对这些实施例的各种修改是显而易见的,并且,本文定义的总体原理也可以在不脱离本发明的保护范围的基础上应用于其它实施例。因此,本公开内容并不限于本文所示出的实施例,而是与所附权利要求书和本文公开的原理和新颖性特征的最广范围相一致。

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