本申请要求享受2015年5月11日提交的、标题为“methodsandsystemsforbehavior-specificactuationforreal-timewhitelisting”的美国临时专利申请no.62/159,433的优先权,故以引用方式将其全部内容明确地并入本文。
背景技术:
由于这些和其它方面的提高,越来越多的移动和无线设备用户现在使用他们的设备来存储敏感信息(例如,信用卡信息、联系人等等),和/或完成安全具有重要性的任务。例如,移动设备用户频繁地使用他们的设备来购买商品,发送和接收敏感通信,支付帐单,管理银行帐户和进行其它敏感交易。由于这些趋势,移动设备正在迅速成为恶意软件和网络攻击的下一个前沿。因此,用于更好地识别和响应资源受限的计算设备(例如,移动设备和无线设备)中的恶意软件和其它非良性设备行为的新的和改进的安全解决方案,对于消费者来说是有益的。
技术实现要素:
在一些实施例中,该方法还可以包括:使用多标签分类或者元分类技术,将第一被监测活动分类成一个或多个子类别。在一些实现中,该方法还可以包括:停止对添加到白名单的活动进行监测。
在一些实施例中,该方法还可以包括:继续监测所述软件应用的活动,至少部分地基于所监测的活动,生成第二行为向量信息结构。可以向第二机器学习分类器模型应用第二行为向量信息结构以生成另外的分析结果。可以使用该另外的分析结果将第二被监测活动分类成良性的、可疑的、和非良性的中的一种,判断是否将第二被监测活动子分类成与第一被监测活动相同的子类别。响应于确定没有将第二被监测活动子分类成与第一被监测活动相同的子类别,可以显示用于请求用户选择是否对所述软件应用进行白名单化的另外提示。在一些实施例中,该方法还可以包括:接收响应于显示所述另外提示的另外用户输入。在一些实施例中,响应于接收到所述另外用户输入,该方法可以包括:从白名单中删除第一被监测活动,终止所述软件应用和/或将第二被监测活动增加到白名单中。
此外,一些实施例还可以包括:确定第一被监测活动的相对重要性,其中,该相对重要性通过行为向量信息结构来表征。在一些实施例中,用于标识第一被监测活动的相对重要性的信息,可以包括在用于请求用户选择是否对所述软件应用进行白名单化的提示中。此外,一些实施例还可以包括:在用于监测和分析所述软件应用的活动的处理资源、存储器或能量资源、与所确定的第一被监测活动的相对重要性之间进行平衡。在一些实施例中,该平衡可以包括:至少部分地基于所确定的第一被监测活动的相对重要性,选择致动操作。在一些实施例中,选择所述致动操作可以包括:至少部分地基于行为的子分类,判断是执行稳健的分析操作还是执行轻量级分析操作。
另外的实施例包括一种具有存储器、显示器和的处理器的计算设备,其中该处理器配置有处理器可执行指令,以执行上面所描述的方法的操作。另外的实施例包括一种其上存储有处理器可执行指令的非临时性处理器可读介质,其中所述处理器可执行指令被配置为使计算设备执行上面所描述的方法的操作。另外的实施例包括一种计算设备,其中该计算设备具有用于执行上面所描述的方法的功能的单元。
附图说明
被并入本文并且构成本说明书一部分的附图,描绘了本发明的示例性实施例,并且连同上面给出的概括描述以及下面给出的详细描述一起来解释本发明的特征。
图1是根据本公开内容的各个实施例,可以包括在计算设备中的示例性片上系统的组件的框图,其中该计算设备被配置为使用多标签分类或元分类技术将良性、可疑的、和非良性行为分类到类别、子类别、组或者子组中。
图2a是根据本公开内容的各个实施例,示出一种移动设备中的示例性逻辑组件和信息流的框图,其中该移动设备被配置为对行为进行分类和子分类。
图2b是根据本公开内容的一个实施例,示出用于选择性地对各个行为进行白名单化的方法的处理流程图。
图3a是根据本公开内容的一个实施例,示出生成精益(lean)分类器模型的方法的处理流程图,其中该精益分类器模型包括完整分类器模型中包括的特征和数据点的一个子集。
图3b是根据本公开内容的另一个实施例,示出在计算设备中本地地生成精益分类器模型的另一种方法的处理流程图。
图3c是根据本公开内容的一个实施例,示出使用本地生成的精益分类器模型,对计算设备的行为进行分类的方法的处理流程图。
图3d是示出在计算设备中生成和使用精益分类器模型的另一种方法的处理流程图。
图4a是示出生成完整分类器模型的方法的处理流程图,其中该完整分类器模型包括适合于计算设备在生成更加聚焦和精益分类器模型时使用的增强型决策树桩(boosteddecisionstumps)。
图4b是根据本公开内容的各个实施例,示出适合于生成增强型决策树桩分类器的示例性方法的处理流程图。
图5是根据本公开内容的一个实施例,示出用于对行为进行分类和子分类的方法的处理流程图。
图6是根据本公开内容的一个实施例,示出执行自适应观测的方法的处理流程图。
图7是适合于在本公开内容的实施例中使用的移动设备的组件框图。
具体实施方式
现在参照附图来详细地描述各个方面。在可以的地方,贯穿附图使用相同的附图标记来指代相同或者类似的部件。对于特定示例和实现的引用只是用于说明目的,而不是旨在限制本发明的保护范围。
如本文所使用的,术语“白名单化”指代:将被评估为可疑或非良性行为的软件应用所展示的行为,添加到“白名单”或者“白名单数据库”,以便该应用可以继续在设备上运行的过程。
为了对于稍后呈现非良性行为的已经白名单化的应用进行监测,计算设备可以继续监测和分析该软件应用的活动或行为,将另一个或不同的行为分类成可疑的或者非良性的,并且确定该行为不包括在白名单中(例如,不将该第二行为子分类成与该应用中包括在白名单的任何行为相同的子类别中等等)。响应于该确定,计算设备可以显示第二提示,其中第二提示向用户指示先前白名单化的应用参与了可疑的或者非良性的另外的或者不同的行为。响应于接收到响应该提示的用户输入,计算设备可以使用所接收的用户输入来判断是否对新检测到的行为进行白名单化,或者终止(或者以其它方式响应)该软件应用。
通过将单个行为(与整个软件应用相对)列入白名单,可以防止对于列为白名单软件应用的非期望行为的检测进行有意或者无意地规避。通过下面所提供的实施例的详细描述,对于计算设备的功能、功能性和/或功能化的另外改进将会显而易见。
本文所使用的“示例性的”一词意味着“用作例子、例证或说明”。本文中描述为“示例性”的任何实现不应被解释为比其它实现更优选或更具优势。
在各个实施例中,该行为监测和分析系统可以包括:观测器进程、守护进程、模块或子系统(本文统称为“模块”)、行为提取器模块、分析器模块和致动器模块。观测器模块可以被配置为测量或协调该计算设备系统的各个层级的各个应用程序接口(api)、寄存器、计数器或其它设备部件(本文统称为“仪表部件”),从仪表部件收集行为信息,(例如,经由存储器写操作、函数调用等等)将所收集的行为信息发送给行为提取器模块。
行为提取器模块可以将行为向量传输给分析器模块(例如,经由存储器写操作、函数调用等等),其中分析器模块可以将这些行为向量应用于分类器模型以生成分析结果,其中可以使用该分析结果来判断软件应用或设备行为是良性的,还是非良性的。分类器模型可以是一种行为模型,其包括能由计算设备处理器进行使用,以评估该设备的行为的特定因素、特征或者实施例的数据和/或信息结构(例如,决策节点、特征向量、组件列表等等)。分类器模型还可以包括用于监测或者分析该计算设备中的多个特征、因素、数据点、条目、api、状态、状况、行为、软件应用、进程、操作、组件等等(本文统称为“特征”)的决策标准。
完整分类器模型可以是根据较大的训练数据集来生成的健壮数据模型,其中该较大的训练数据集可以包括数千个特征和数亿个条目。精益分类器模型可以是根据精简的数据集来生成的更聚焦的数据模型,其中该精简的数据集包括或者优先级划分关于以下的特征/条目的测试:与判断特定的移动设备行为是否是良性的最有关的特征/条目。本地生成的精益分类器模型是在计算设备中生成的精益分类器模型。精简特征模型(rfm)可以是至少部分地基于更稳健的分类器模型来生成的精益分类器模型,以便包括对于判断该设备的行为是良性还是非良性来说最重要的特征的决策节点。
为了减少当判断一个行为是良性的、可疑的或非良性的时需要评估的特征、因素和数据点的数量,行为监测和分析系统可以执行渐进式、动态的和自适应的操作。例如,系统可以被配置为使用具有不同复杂程度(或者“精益性”)的分类器模型,来逐步分阶段地评估设备行为。这使设备能够放弃执行虚假操作,并减少系统所生成或者使用的行为向量的数量。
例如,在一些实施例中,系统可以被配置为生成一系列分类器模型,其包括初始分类器和模型以及一个或多个后续分类器模型。该初始分类器模型可以是精益分类器模型(或者减少的特征模型),其聚焦于评估在对移动设备行为进行分类时需要分析的所有功能、因素和数据点的一个目标子集。换言之,初始分类器模型可以包括用于评估初始集合的因素/特征的决策节点,其中该初始集合的因素/特征被确定为具有使系统能够以较高置信度来判断设备行为是良性还是非良性的高概率。每个后续分类器模型可以是更稳健的分类器,其与先前的分类器模型相比,包括更多数量的决策节点和/或评估更大子集的特征、因素和数据点。
网络钓鱼是一种网络攻击技术和一种类型的恶意软件,其尝试欺骗用户获取敏感信息(例如,用户名、密码、信用卡信息等等),通常经由欺骗另一个应用/网站或者伪装成成为一个值得信赖的实体。例如,网络钓鱼应用可能会尝试欺骗用户将个人信息输入到与合法网站/应用几乎相同的假网站或应用,或者可能包含指向受到恶意软件感染的网站的链接。网络钓鱼应用可能对设备构成适度的重大风险,特别是当用户是小孩、老年人或者不熟悉此类网络攻击技术时。
[0.1,0.9,0.9,0.2,0.2]。
除了并且独立于设备行为是良性的、可疑的还是非良性的其分类判定/确定,计算设备还可以被配置为进行这些子分类判定/确定。例如,计算设备可以向多分类分类器模型应用行为向量以生成分类分析结果和标签分析结果,至少部分地基于分类分析结果将行为分类成可疑的,至少部分地基于标签分析结果将行为子分类成间谍软件和密钥记录器类别,增加其审查级别(例如,通过使用更稳健的分类器模型等等)以生成更全面的分析结果,并使用该更全面的分析结果来判断该行为是良性的还是非良性的。如果该行为被分类成非良性的,则计算设备可以至少部分地基于子分类(例如,间谍软件、密钥记录器等等)来选择或者确定适当的致动操作(例如,提示用户、将应用列入白名单、终止进程等等)。
在一个实施例中,计算设备可以被配置为通过使用元分类器模型来确定子分类。元分类器模型可以是一种分类器模型,其包括有用于测试或评估适合于确定用于行为的子分类的条件或特征的决策节点。计算设备可以被配置为向元分类器模型应用行为向量和分析结果或分类输出,以生成可以用于将行为子分类成一个或多个类别的信息。例如,元分类器模型可以包括用于评估位置特征的决策节点,可以将其结果增加到间谍值中。类似地,元分类器模型可以评估与记录和传输加速计读数有关的状况,可以将其结果增加到密钥记录器值和间谍值中。元分类器模型还可以评估用于判断该行为是否是未知类型的恶意软件(即,未落入到现有的或者已知类别的恶意软件)的条件。
计算设备可以被配置为至少部分地基于所确定的风险、威胁或可疑水平,改变其它分析操作。例如,计算设备可以被配置为:在分析存储器中的排队的事件之前,使该应用停止,和/或关于该分类器模型没有评估的特征(例如,存储器使用情况和存储器的内容),对该应用进行更密切地监测。
各个实施例可以在包括片上系统(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还可以包括适合于从传感器收集传感器数据的硬件和/或软件组件,这些传感器包括扬声器、用户接口单元(例如,输入按键、触摸屏显示器等等)、麦克风阵列、用于监测物理状况(例如,位置、方向、运动、方位、振动、压力等等)的传感器、照相机、指南针、全球定位系统(gps)接收机、通信电路(例如,wlan、wifi等等)、以及现代电子设备的其它公知组件(例如,加速计等等)。
除了上面所讨论的移动设备102和soc100之外,可以利用各种各样的计算系统(其可以包括单一处理器、多个处理器、多核处理器或者其任意组合)来实现这些各个实施例。
图2a示出了包括基于行为的安全系统200的一个实施例计算设备102中的示例性逻辑组件和信息流,其中该基于行为的安全系统200被配置为使用行为分析技术来识别和响应非良性设备行为。在图2a所示出的例子中,该计算设备是包括设备处理器(即,移动设备处理器)的移动计算设备200,其中该设备处理器配置有可执行指令模块,后者包括行为观测器模块202、行为提取器模块204、行为分析器模块208、致动器模块210和行为白名单列表212。模块202-210中的每一个可以是利用软件、硬件或者其任意组合来实现的线程、进程、守护进程、模块、子系统或者组件。在各个实施例中,可以将模块202-210实现在操作系统的一部分中(例如,实现在内核中、实现在内核空间中、实现在用户空间中等等)、实现在单独的程序或应用中、实现在专用硬件缓冲区或处理器中、或者实现在其任意组合中。在一个实施例中,模块202-210中的一个或多个可以实现成在移动计算设备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可以向致动器模块210通知活动或者行为不是良性的。作为响应,致动器模块210可以执行各种动作或操作,以治疗、治愈、隔离或者以其它方式修复发现的问题。例如,致动器模块210可以被配置为:当向分类器模型应用行为向量(例如,通过分析器模块)的结果指示软件应用的集体行为不是良性的时,停止或者终止软件应用中的一个或多个。
在各个实施例中,行为观测器模块202可以被配置为:通过收集关于应用框架或运行时库中的库应用程序接口(api)调用、系统调用api、文件系统和网络化子系统操作、设备(其包括传感器设备)状态改变和其它类似事件的信息,来监测移动计算设备102的活动。此外,行为观测器模块202还可以监测文件系统活动,其可以包括:搜索文件名、文件访问的类别(个人信息或普通数据文件)、生成或删除文件(例如,类型exe、zip等等)、文件读/写/查找操作、改变文件许可等等。
此外,行为观测器模块202还可以通过对系统资源使用(其可以包括:对叉(fork)的数量、存储器访问操作、文件打开的数量等等)进行监测,来监测移动计算设备102的活动。行为观测器模块202可以对移动计算设备102的状态进行监测,其可以包括对诸如下面的各种因素进行监测:显示器是打开还是关闭的、该设备是锁定还是未锁的、电池的剩余电量、照相机的状态等等。此外,行为观测器模块202还可以例如通过监测关键服务(浏览器、合约提供商等等)的意图、进程间通信的程度、弹出窗等等,对进程间通信(ipc)进行监测。
此外,行为观测器模块202还可以通过一个或多个硬件组件的驱动器统计和/或状态进行监测,来监测移动计算设备102的活动,其中这些硬件组件可以包括:照相机、传感器、电子显示器、wifi通信组件、数据控制器、内存控制器、系统控制器、接入端口、定时器、外围设备、无线通信组件、外部存储器芯片、电压调整器、振荡器、锁相环、外围桥接、以及用于支持这些处理器和客户端在上移动计算设备102上运行的其它类似组件。
此外,行为观测器模块202还可以通过对移动计算设备102的传输或通信进行监测,来监测移动计算设备102的活动,其包括监测下面之类的通信:语音邮件(voicemailcomm)、设备标识符(deviceidcomm)、用户账户信息(useraccountcomm)、日历信息(calendarcomm)、位置信息(locationcomm)、记录的音频信息(recordaudiocomm)、加速计信息(accelerometercomm)等等。
此外,行为观测器模块202还可以通过下面信息的使用和更新/改变进行监测,来监测移动计算设备102的活动:指南针信息、计算设备设置、电池寿命、陀螺仪信息、压力传感器、磁传感器、屏幕活动等等。行为观测器模块202可以监测向软件应用传输和/或传输来自软件应用的通知(appnotifications)、应用更新等等。行为观测器模块202可以监测与第一软件应用有关的状况或事件,其中第一软件应用请求下载和/或安装第二软件应用。行为观测器模块202可以监测与用户验证有关的状况或事件,例如,密码的输入等等。
传感器层观测可以包括:对磁传感器或其它传感器进行监测,以确定该移动计算设备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)在访问该关键数据资源时由软件应用执行的api调用,将api调用的模式识别成指示两个或更多的软件应用的非良性行为,至少部分地基于所识别的api调用的模式和资源使用来生成行为向量,使用该行为向量来执行行为分析操作(例如,经由行为分析器模块208),并且至少部分地基于行为分析操作来判断软件应用中的一个或多个是否是非良性的。
在一个实施例中,设备处理器可以被配置为:识别由在该计算设备上操作的软件应用最频繁地使用的api,将关于所识别的热api的使用的信息存储在该设备的存储器中的api日志中,并且至少部分地基于存储在api日志中的信息来执行行为分析操作以识别非良性行为。
在各个实施例中,设备处理器可以被配置为:通过将完整分类器模型中包括的有限状态机表示/表达转换成增强型决策树桩,来生成精益分类器模型。设备处理器可以至少部分地基于特定于设备的特征、状况或者配置,来修剪或剔除该完全集合的增强型决策树桩,以生成包括有该完整分类器模型中所包括的增强型决策树桩的一个子集的分类器模型。随后,设备处理器可以使用该精益分类器模型,对计算设备行为进行智能地监测、分析和/或分类。
增强型决策树桩是只有一个节点(因此一个测试问题或者测试条件)和一个权重值的一级决策树,因此其非常适合于在数据/行为的二元分类中使用。也就是说,在二元应答(例如,是或否)中,将行为向量应用于增强型决策树桩。例如,如果增强型决策树桩所测试的问题/条件是“短消息服务(sms)传输的频率低于每分钟x次?”,则向增强型决策树桩应用“3”的值,将导致“是”应答(对应于“小于3次”的sms传输)或者“否”应答(对应于“3次或更多”的sms传输)。
此外,设备处理器还可以动态地生成特定于应用的分类器模型,后者标识与特定的软件应用(钱包和)和/或特定类型的软件应用(例如,游戏、导航、金融、新闻、生产力等等)有关的状况或特征。可以生成这些分类器模型以包括完整分类器模型中包括的精简并且更加聚焦的决策节点的子集(或者根据所接收的完整分类器模型所生成的精益分类器模型中包括的那些)。可以对这些分类器模型进行组合,以生成多应用分类器模型。
在各个实施例中,设备处理器可以被配置为:针对系统中的每一个软件应用和/或针对系统中的每一种类型的软件应用,生成基于应用的分类器模型。此外,设备处理器还可以被配置为:动态地识别高风险的或者容易被滥用的软件应用和/或应用类型(例如,金融应用、销售点应用、生物传感器应用等等),仅仅针对于被识别成高风险或者容易被滥用的软件应用和/或应用类型,才生成基于应用的分类器模型。在各个实施例中,设备处理器可以被配置为动态地、反应地、主动地和/或每次安装或更新新的应用时,生成基于应用的分类器模型。
通常,每一个软件应用在计算设备上执行多个任务或者活动。在计算设备中执行某些任务/活动的特定执行状态,可以是行为或者活动是否值得另外或者更仔细的审查、监测和/或分析的强指示符。因此,在各个实施例中,设备处理器可以被配置为使用识别执行某些任务/活动的实际执行状态的信息,以聚焦其行为监测和分析操作,并更好地判断活动是否是关键活动和/或该活动是否是非良性的。
在各个实施例中,设备处理器可以被配置为生成行为向量,以包括可以输入到机器学习分类器中的决策节点,以生成关于所监测的活动的查询的应答的信息。
在各个实施例中,设备处理器可以被配置为生成行为向量以包括执行信息。可以将该执行信息作为行为的一部分(例如,后台进程将三秒钟之内使用照相机五次,前台进程在三秒钟之内使用照相机三次等等)或者作为独立特征的一部分,包括在行为向量中。在一个实施例中,可以将执行状态信息作为阴影特征值子向量或者数据结构,包括在行为向量中。在一个实施例中,该行为向量可以将该阴影特征值子向量/数据结构与同该执行状态有关的特征、活动、任务,进行关联地存储。
图2b示出了基于行为的系统对设备行为进行白名单化的方法250,其中该基于行为的系统被配置为使用机器学习技术,对于可能使计算设备的性能、功率利用水平、网络使用水平、安全性和/或私密性发生下降的状况和行为进行高效地识别、分类、建模、防止和/或纠正。方法250可以由资源受限计算设备(例如,移动设备)中的处理器或者处理内核来执行。
在方框252中,处理内核可以监测在该计算设备上操作的软件应用的活动(例如,经由上面参照图2a所讨论的行为观测器模块202)。在方框254中,处理内核可以生成用于表征所监测的活动的全部或者一部分的行为向量信息结构(例如,经由行为提取器模块204)。
在判断框260中,处理内核可以判断行为向量信息结构是否被分类成良性的(或者该行为向量信息结构所表征的活动/行为是否是良性的)。响应于确定行为向量信息结构所表征的监测的活动被分类成良性的(即,判断框260=“是”),处理内核可以继续在方框252中,监测相同或者不同软件应用的活动,和/或执行本文所讨论的基于行为的操作中的任何一个或全部。
响应于确定行为向量信息结构所表征的监测的活动没有被分类成良性的(即,判断框260=“否”),在判断框262中,处理内核可以判断行为向量信息结构所表征的监测的活动或行为是否包括在白名单(例如,上面参照图2a所讨论的行为白名单212)中。
图3a示出了在计算设备中生成精益或聚焦的分类器/行为模型的方法300。方法300可以由资源受限计算设备(例如,移动设备)中的处理器或处理内核来执行。在方法300的方框302中,处理内核可以选择或者接收完整分类器模型,其中该完整分类器模型是或者包括有限状态机、增强型决策树桩列表或者其它类似的信息结构。在一个实施例中,完整分类器模型包括有限状态机,后者包括适合于表示多个增强型决策树桩的信息和/或包括适合于由计算设备转换成多个增强型决策树桩的信息。在一个实施例中,该有限状态机可以是(或者可以包括)经排序的或者划分优先级的增强型决策树桩列表。这些增强型决策树桩中的每一个可以包括测试条件和权重值。
如上面所讨论的,增强型决策树桩是只有一个节点(因此一个测试问题或者测试条件)和一个权重值的一级决策树,因此其非常适合于在数据/行为的二元分类中使用。这意味着将特征向量或行为向量应用于增强型决策树桩导致二元应答(例如,是或否)。例如,如果增强型决策树桩所测试的问题/条件是“sms传输的频率低于每分钟x次?”,则向增强型决策树桩应用“3”的值,将导致“是”应答(对应于“小于3次”的sms传输)或者“否”应答(对应于“3次或更多”的sms传输)。
在方框306中,处理内核可以从开始处遍历增强型决策树桩列表,以利用所确定数量的唯一测试条件来填充选定的测试条件列表。在一个实施例中,处理内核还可以确定用于所选定的测试条件中的每一个的绝对或相对优先级值,将该绝对或相对优先级值关联它们相应的测试条件来存储在选定的测试条件列表之中。
在方框308中,处理内核可以生成精益分类器模型,其中该精益分类器模型包括完整分类器模型中包括的用于对所选定测试条件里的一个进行测试的所有增强型决策树桩。在一个实施例中,处理内核可以生成精益分类器模型,以按照重要性或优先级值的顺序,来包括或者表示这些增强型决策树桩。
在可选框310中,可以通过下面操作,增加唯一测试条件的数量,以便生成另一个更加稳健的(即,不太精简的)精益分类器模型:针对方框306中的更大数量的测试条件,重复遍历增强型决策树桩列表的操作,在方框308中,生成另一个精益分类器模型。
图3b示出了在计算设备中生成数据模型的另一种实施例方法311。方法311可以由计算设备中的处理内核来执行。在方法311的方框312中,处理内核可以接收包括有限状态机的完整分类器模型。该有限状态机可以是包括有适合于转换成多个增强型决策树桩的信息的信息结构。在方框314中,处理内核可以将完整分类器模型中包括的有限状态机转换成包括测试条件和权重值的增强型决策树桩。
此外,在方框312中,处理内核可以生成第一列表(或者其它信息结构),其中第一列表根据通过有限状态机所生成的增强型决策树桩的优先级和/或它们的重要性的顺序,来包括、引用、标识和/或组织这些增强型决策树桩。例如,处理内核可以将第一列表生成为排序的列表,其包括:具有最高优先级的树桩作为第一项,其次是具有第二高优先级值的树桩,依此类推。通过使用优先级对列表进行排序,处理内核可以平衡用于监测和分析软件应用的活动的计算设备的处理资源、存储器或能量资源的量、与所确定的第一被监测活动的相对重要性之间的均衡。这个重要性的顺序还可以考虑从云语料库收集的信息,以及特定于执行剔除算法的设备的信息。
在方框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所描述的操作可以通过以下操作来完成:顺序地选择并未处于精益分类器模型之中的增强型决策树桩;根据与所选定的决策树桩相同的计算设备状态、特征、行为或状况,识别所有其它增强型决策树桩(因此可以基于一种确定结果来进行应用);在精益分类器模型中,包括所选定的以及所有识别的其它增强型决策树桩(其取决于相同的计算设备状态、特征、行为或状况);将该处理重复与所确定的测试条件的数量相等的次数。由于每一次将依赖于与所选定的增强型决策树桩相同的测试条件的所有增强型决策树桩都增加到精益分类器模型中,因此限制执行该处理的次数,将限制精益分类器模型中包括的测试条件的数量。
在方框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所描述的。
图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中,处理内核可以使用多标签分类或元分类技术,将良性的、可疑的、和非良性的行为进一步分类(例如,子分类、类别化、打标签等等)成一些类别、子类别、组或者子组。
图6根据一个实施例,示出了用于执行动态和自适应观测的示例性方法600。在方框702中,设备处理器可以通过对可能对于该移动设备的性能下降具有贡献的很大数量的因素/行为的一个子集进行监测/观测,来执行粗略观测。在方框603中,设备处理器可以至少部分地基于该粗略观测量,生成用于表征粗略观测量和/或移动设备行为的行为向量。
在判断框608,设备处理器可以判断是否可以至少部分地基于该行为分析的结果,来识别和校正可疑的行为或潜在的问题。当设备处理器确定可以至少部分地基于该行为分析的结果来识别和校正可疑的行为或潜在的问题时(即,判断框608=“是”),则在方框618中,处理器可以发起用于对该行为进行校正的处理,并在方框602中执行另外的粗略观测。
当设备处理器确定不能至少部分地基于该行为分析的结果来识别和/或校正可疑的行为或潜在的问题时(即,判断框608=“否”),则在判断框609中,设备处理器可以判断存在问题的可能性。在一个实施例中,设备处理器可以通过计算该移动设备的遭遇到潜在问题和/或参与可疑行为的概率,并判断所计算的概率是否大于预定的门限,来确定存在问题的可能性。
当设备处理器确定所计算的概率不大于预定的门限,和/或不存在可疑行为或潜在问题的可能性和/或不能检测到这些情形时(即,判断框609=“否”),则在方框612中,处理器可以执行另外的粗略观测。
当设备处理器确定存在可疑行为或潜在问题的可能性和/或可检测到这些情形时(即,判断框609=“是”),则在方框610中,设备处理器可以关于所识别的子系统、进程或应用,执行更深层次的记录/观测或者最终的记录。在方框612中,设备处理器可以关于所识别的子系统、进程或应用,执行更深入和更详细的观测。在方框614中,设备处理器可以至少部分地基于更深入和更详细的观测,来执行进一步和/或更深入的行为分析。在判断框608中,设备处理器可以再次判断是否能够至少部分地基于更深入行为分析的结果,来识别和校正可疑的行为或潜在的问题。
当设备处理器确定至少部分地基于该更深入的行为分析的结果,不能识别和校正这些可疑的行为或潜在的问题时(即,判断框608=“否”),则处理器可以重复方框610-614中的操作,直到细节水平足够精细以便能够识别该问题为止,或者直到确定不能利用另外的细节来识别该问题或者不存在问题为止。
当设备处理器确定至少部分地基于该更深入的行为分析的结果,能够识别和校正这些可疑的行为或潜在的问题时(即,判断框608=“是”),则在方框618中,设备处理器可以执行操作以校正该问题/行为,处理器可以在方框602中执行另外的操作。
在一个实施例中,作为方法600的方框602-618的一部分,设备处理器可以执行该系统的行为的实时行为分析,以根据有限的粗略观测量来识别可疑的行为,动态地确定要进行更详细地观测的行为,以及动态地确定这些观测所需要的精密的细节水平。这使设备处理器能够高效地识别和防止发生问题,而无需使用该设备上的大量的处理器、存储器或电池资源。
处理器702可以是任何可编程微处理器、微计算机或多处理器芯片或芯片集,它们可以由软件指令(应用)进行配置以执行各种各样的功能,其包括下面所描述的各个实施例的功能。在一些移动设备中,可以提供多个处理器702,例如,一个处理器专用于无线通信功能,一个处理器专用于运行其它应用。通常,在访问软件应用并将它们装载到处理器702之前,可以将这些软件应用存储在内部存储器704中。处理器702可以包括足够用于存储这些应用软件指令的内部存储器。
用于在可编程处理器上运行以执行本文的各个实施例的操作的计算机程序代码或“程序代码”,可以利用诸如c、c++、c#、smalltalk、java、javascript、visualbasic、结构化查询语言(例如,transact-sql)、perl之类的高级编程语言来编写,或者利用各种其它编程语言来编写。如本申请所使用的计算机可读存储介质上所存储的程序代码或程序,可以指代其格式是处理器可理解的机器语言代码(例如,目标代码)。
将很多移动计算设备操作系统内核组织到用户空间(非特权代码运行的空间)和内核空间(特权代码运行的空间)。这种分隔在和其它通用公共许可证(gpl)环境中具有特别的重要性,其中在这些环境中,作为内核空间的一部分的代码必须是gpl许可的,而在用户空间中运行的代码可以不是gpl许可的。应当理解的是,这里所讨论的各种软件组件/模块可以实现在内核空间中,也可以实现在用户空间中,除非另外明确指出。
上述的方法描述和处理流程图仅仅是用作为说明性例子,而不是旨在要求或者隐含着必须以所给出的顺序来执行各个实施例的操作。如本领域普通技术人员所应当理解的,可以以任何顺序来执行上述的实施例中的操作顺序。此外,诸如“其后”、“转而”、“接着”等等之类的词语,并不旨在限制这些操作的顺序;这些词语仅仅只是用于引导读者遍历该方法的描述。此外,任何对权利要求元素的单数引用(例如,使用冠词“一个(a)”、“某个(an)”或者“该(the)”),不应被解释为将该元素限制为单数形式。
结合本文所公开的实施例描述的各种示例性的逻辑框、模块、电路和算法操作均可以实现成电子硬件、计算机软件或二者的组合。为了清楚地表示硬件和软件之间的这种可交换性,上面对各种示例性的部件、框、模块、电路和操作均围绕其功能进行了总体描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本发明的保护范围。
用于执行本文所述功能的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件部件或者其任意组合,可以用来实现或执行结合本文所公开的实施例描述的用于实现各种示例性的逻辑、逻辑框、模块和电路的硬件。通用处理器可以是多处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,dsp和多处理器的组合、若干多处理器、一个或多个多处理器与dsp内核的结合,或者任何其它此种结构。替代地,一些操作或方法可以由特定于给定的功能的电路来执行。
为使本领域任何普通技术人员能够实现或者使用本发明,上面围绕所公开的实施例进行了描述。对于本领域普通技术人员来说,对这些实施例的各种修改是显而易见的,并且,本文定义的总体原理也可以在不脱离本发明的保护范围的基础上应用于其它实施例。因此,本公开内容并不限于本文所示出的实施例,而是与所附权利要求书和本文公开的原理和新颖性特征的最广范围相一致。