用以检测恶意软件的计算装置制造方法

文档序号:6533340阅读:129来源:国知局
用以检测恶意软件的计算装置制造方法
【专利摘要】本发明揭示一种用于计算装置以确定应用程序是否为恶意软件的设备和方法。所述计算装置可包含:查询记录器,其记录所述计算装置上的所述应用程序的行为以产生日志;行为分析引擎,其分析来自所述查询记录器的所述日志以产生特性化所述应用程序的所述行为的行为向量;和分类器,其将所述应用程序的所述行为向量分类为良性或恶意软件。
【专利说明】用以检测恶意软件的计算装置

【技术领域】
[0001]本发明一般来说涉及一种能够检测应用程序是否为恶意软件的计算装置。

【背景技术】
[0002]计算装置常常用以执行起源于许多源的相异应用程序。不幸的是,常常将具有恶意意图的应用程序(例如,恶意软件)安装到用户的计算装置上。用户通常未意识到此情形,这是因为恶意应用程序常常伪装为众所熟知的应用程序。另外,这些恶意应用程序更多地利用对于其功能来说必要的许可。
[0003]保护计算装置免受安全威胁(例如,恶意软件)为现代计算装置的关注点。恶意软件包含试图损害计算装置或用户的不希望的应用程序。不同类型的恶意软件包含特洛伊、蠕虫、键盘记录器、病毒、后门和间谍软件。恶意软件创作者可能受搜集个人信息(例如,信用卡号码和银行账户号码)或致使蜂窝电话连接到付费服务的需要而促动。因此,存在促动恶意软件创作者开发用于规避检测的更复杂方法的财务奖励。
[0004]传统的恶意软件签名检测方法从目标应用程序的实际可执行部分的不变部分提取签名。基于签名的恶意软件检测需要用于每一恶意软件变体的签名(例如,恶意软件的代码中的独特样式)。因此,不可能利用基于签名的恶意软件检测来检测未知的恶意软件。另外,甚至对于已知的恶意软件,在检测到签名与实际上在计算装置上更新签名之间往往也会存在延迟。另外,使用签名进行的恶意软件检查常常为处理器和存储器密集的。对于移动计算装置来说,此情形尤其更困难。而且,因为移动装置(例如,蜂窝电话)上的签名检查昂贵,所以许多检测器仅检查应用程序文件名以查找众所熟知的恶意应用程序。
[0005]由于这些问题,因此以下情形将为有益的:利用行为分析来实现特性化、比较及分类计算装置上的应用程序以确定应用程序是否为恶意软件的目的,-所述操作为处理器和存储器较不密集的且可以更迅速方式发生。


【发明内容】

[0006]本发明的方面可涉及一种用于计算装置以确定应用程序是否为恶意软件的设备和方法。所述计算装置可包含:查询记录器,其记录所述计算装置上的所述应用程序的行为以产生日志;行为分析引擎,其分析来自所述查询记录器的所述日志以产生特性化所述应用程序的所述行为的行为向量;和分类器,其将所述应用程序的所述行为向量分类为良性或恶意软件。
[0007]本发明的方面还可涉及一种用于服务器以确定对于计算装置来说应用程序是否为恶意软件的设备和方法。所述服务器可包含:处理电路,其从多个计算装置接收多个行为向量集,其中每一行为向量集可特性化应用程序的行为;和行为分析引擎。所述行为分析引擎可基于所述所接收行为向量集将全局分类器更新为良性或恶意软件。

【专利附图】

【附图说明】
[0008]图1为可在其中实践本发明的方面的系统的框图。
[0009]图2为说明可基于行为分析引擎和对日志的一组查询而产生的行为向量的框图。
[0010]图3为说明查询、动作和动作属性的实例的表格。
[0011]图4为说明利用应用程序代码和原生代码在计算装置上操作的应用程序的框图。
[0012]图5为说明利用行为分析引擎分析来自查询记录器的日志以便产生特性化应用程序的行为的行为向量以便将应用程序识别为良性或恶意软件的结果的表格。
[0013]图6为说明可用以聚集来自众多计算装置的行为报告的服务器的图。

【具体实施方式】
[0014]词语“示范性”在本文中用于意味着“充当实例、例子或说明”。本文中描述为“示范性”或描述为“实例”的任何方面或实施例未必应被解释为比其它方面或实施例优选或有利。
[0015]参看图1,图1为可在其中实践本发明的方面的系统100的框图。明确地说,系统100说明可用以确定应用程序是否为恶意软件的计算装置102。计算装置102可包括查询记录器108、行为分析引擎122和分类器132。在一个方面中,查询记录器108可记录计算装置上的应用程序的行为以产生日志120。日志120可为由应用程序执行或与应用程序相关联的动作的日志。动作日志120因此展示应用程序的行为。行为分析引擎122可分析来自查询记录器的日志120以产生特性化应用程序的行为的行为向量130。分类器132可将应用程序的行为向量130分类为良性140或恶意软件150。如果行为向量130经分类为恶意软件150,那么可将与行为向量130相关联的应用程序删除或限制其使用。如将描述的,可产生许多不同的行为向量130以特性化应用程序的行为且基于这些行为,分类器132可将应用程序分类为良性140或恶意软件150。
[0016]计算装置102可包含处理器104、存储器106和接口 110。应了解,计算装置102可包含显示装置、用户接口(例如,键盘、触摸屏等)、供电装置(例如,电池),以及通常与计算装置相关联的其它组件。计算装置102可为移动装置或非移动装置。举例来说,接口110可为无线收发器以通过无线链路将呼叫和数据发射到无线网络/从无线网络接收呼叫和数据,或可为用于直接连接到网络(例如,因特网)的有线接口。因此,计算装置102可为:移动装置、无线装置、蜂窝电话、个人数字助理、移动计算机、平板计算机、个人计算机、膝上型计算机、服务器计算机或任何类型的计算装置。
[0017]计算装置102可包含处理器104,其经配置以执行指令以用于实施查询记录器108、行为分析引擎122和分类器132。存储器106可耦合到处理器104以存储供处理器104执行的指令。在一个方面中,计算装置102可包含处理器104,其经配置以执行指令以用于实施以下各者:查询记录器108,其可记录计算装置102上的应用程序的行为以产生动作日志120 ;行为分析引擎122,其可分析来自查询记录器108的动作日志120以产生特性化应用程序的行为的行为向量130 ;和分类器132,其可将应用程序的行为向量130分类为良性140或恶意软件150。如果行为向量130经分类为恶意软件150,那么可将与行为向量130相关联的应用程序删除或限制其由计算装置102使用。
[0018]应了解,如下文将描述的本发明的方面可结合由计算装置102的处理器104和/或计算装置102的其它电路和/或其它装置进行的指令的执行来实施。明确地说,计算装置102的电路(包含但不限于处理器104)可在程序、例行程序或指令的执行的控制下操作以执行根据本发明的实施例的方法或过程。举例来说,此程序可在固件或软件中加以实施(例如,存储在存储器106和/或其它地点)且可由处理器来实施,例如,处理器104和/或计算装置102的其它电路。另外,应了解,术语“处理器”、“微处理器”、“电路”、“控制器”等是指能够执行逻辑、命令、指令、软件、固件、功能性等的任何类型的逻辑或电路。
[0019]另外,应了解,查询记录器108、行为分析引擎122和分类器132的一些或所有功能可由计算装置102自身来执行及/或一些或所有功能可由经由接口 110(以无线方式或有线方式)连接到计算装置102的另一计算装置来执行。因此,一些和/或所有功能可由另一计算装置来执行且将结果传送回到计算装置102。而且,根据特定方面,分类器132可为机器学习分类器且计算装置102可为移动装置。
[0020]考虑特定实例,如图1中所展示,可将四个应用程序加载(具有或不具有用户的同意)到计算装置102:新闻应用程序160 (例如,CNN)、游戏(例如,保龄球戏)162、游戏(例如,蛇)164和游戏(例如,鸟)166。计算装置102可自动地确定这些应用程序为良性还是恶意软件。明确地说,查询记录器108可记录计算装置上的应用程序160、162、164和166的动作或行为以产生动作日志120。行为分析引擎122可分析所述应用程序中的每一者的动作日志120以产生所述应用程序中的每一者的行为向量130,所述行为向量特性化每一应用程序160、162、164和166的行为。分类器132可将应用程序160、162、164和166中的每一者的行为向量130分类为良性140或恶意软件150。在此实例中,基于新闻应用程序160和游戏应用程序166的行为向量130将新闻应用程序160和游戏应用程序166分类为良性140且允许其由计算装置102使用。另一方面,基于游戏应用程序162和164的行为向量130将游戏应用程序162和164分类为恶意软件150且将其删除或限制其由计算装置102使用。下文将更详细描述查询记录器、动作日志、行为分析引擎和行为向量的各方面。
[0021]额外参看图2,可基于对动作日志120的一组查询210产生行为向量130。行为分析引擎122可基于查询210分析通过日志120记录的动作以产生特性化应用程序的行为的行为向量130,以使得分类器可将应用程序的行为向量130确定及分类为良性或恶意软件。还参看图3,展示图表300,其提供可供行为分析引擎122利用的查询310、动作320和动作属性330的实例。
[0022]举例来说,一组查询310可至少包含存在查询、量查询、次序查询或类别查询中的一或多者(框312)。查询310可为所观测到的行为或期望的行为。作为另一描述,行为分析引擎122可分析相依于装置的动作220和独立于装置的动作222。作为实例,如图3中所展示,动作320可包含应用程序安装、装置信息、通信和用户交互。其它动作320可包含:存取装置信息、启动时开始、用户数据、包安装、传感器、地点、媒体、摄像机、SMS、电话呼叫、电话信息(框322)。而且,动作属性330可供行为分析引擎122利用,例如:开始时间、结束时间、之前、之后、存在(框332)。应了解,这些仅为可供行为分析引擎122利用的查询、动作和动作属性的数个实例且可利用许多其它类型。
[0023]如先前所描述,可利用三个组件:1)查询记录器108,其实施用以记录计算装置102上的应用程序的行为以产生动作日志120的机制;2)行为分析引擎122,其分析动作日志120且产生描述正在计算装置102上执行的应用程序的行为的行为向量130 ;和3)分类器132,其将行为向量130分类为良性或恶意类别。
[0024]以此方式,可在行为分析框架中使用行为向量130以检测计算装置上的恶意软件。所得行为向量130包含从记录提取的目标观测。作为实例,行为分析引擎122回答关于动作的查询210(例如,“应用程序安装无用户的同意? ”、“应用程序表现得像游戏? ”、“网站看上去像新闻网站? ”、“应用程序正处理SMS消息? ”、“应用程序正处理电话呼叫? ”等等)。对这些查询210的回答产生行为向量130。
[0025]作为实例,每一动作可与四种类型的查询310中的一或多者相关联:存在查询、量查询、次序查询和类别查询。举例来说,存在查询310可指动作集的存在。作为此查询的实例,查询可为确定应用程序是否存取装置信息(例如,已存取电话信息,已存取地点信息等)。行为分析引擎122可确定动作日志120是否包含由应用程序进行的装置存取的任何日志且可基于此来设置行为向量130。举例来说,可设置行为向量130从而指示已存取电话信息。
[0026]另外,量查询310可指动作的出现次数。作为此查询的实例,查询可为确定由应用程序进行的动作的出现次数。作为实例,此情形可为所发送的SMS的次数(例如,经由SMS的去话通信)。因此,行为分析引擎122可从动作日志120确定所发送的SMS的次数。此查询可用以产生指示已发送多少次SMS的行为向量130。
[0027]作为另一实例,次序查询310可指一序列动作的出现次数。作为此查询的实例,查询可为确定在安装应用程序之前(例如,在安装之前30秒内)出现的用户交互的次数。因此,行为分析引擎122可从动作日志120确定在安装应用程序之前出现的用户交互(例如,Π事件)的次数。此查询可用以产生指示在应用程序安装之前的Π事件的量的行为向量130。
[0028]作为另一实例,类别查询310可指应用程序是否属于一类别。作为此查询的实例,查询可为确定应用程序是否为基于地点的服务。因此,行为分析引擎122可从动作日志120确定应用程序是否为基于地点的服务及应用程序是否属于地点信息正被存取的类别(基于日志)。作为实例,当正检索关于地点信息的次数的行为向量130时,可使用此查询。
[0029]另外,行为分析引擎122可利用以下广泛多种不同类型的动作320来产生行为向量130:应用程序安装、装置信息、通信、用户交互、存取装置信息、启动时开始、用户数据、包安装、传感器、地点、媒体、摄像机、SMS、电话呼叫和电话信息(框322)。可行为分析引擎122利用如通过动作日志120记录的这些动作中的每一者来产生特性化应用程序的行为的行为向量130。此外,行为分析引擎122可利用以下广泛多种不同类型的动作属性330来产生行为向量130:开始时间、结束时间、之前、之后和存在(框332)。行为分析引擎122可利用如通过动作日志120记录的这些动作属性中的每一者来辅助产生特性化应用程序的行为的行为向量130。
[0030]明确地说,如图2中所展示,行为分析引擎122可基于如通过动作日志120记录的查询、动作、动作属性等产生行为向量130[1,0,0.207,0,2,5,...]以特性化应用程序的行为。作为实例,对于不同类型的动作,大约为5的行为向量可表明频繁使用,大约为I到2的行为向量可表明罕见使用,且大约为O的行为向量可表明无用。下文将描述广泛多种不同类型的应用程序、受监视的动作和由行为分析引擎122对其进行的用以产生行为向量130的分析。
[0031]关于基于如通过动作日志102记录及如通过行为分析引擎122分析的所观测到的动作进行的行为向量130的产生,欲观测或监视的这些动作可基于识别应进行监视的行为或动作的类型,这是因为其表示识别恶意软件的较高概率。举例来说,系统专家可识别哪一组系统事件是关于具有为恶意软件的较高概率的高层次行为或动作。
[0032]简要地参看图4,应用程序可能利用应用程序代码402和原生代码404在计算装置102上操作。应用程序代码402可与计算装置102的系统接口的应用程序库412交互且原生代码404可与原生库414和内核416交互。原生代码404可允许应用程序和应用程序代码402利用原生库414和内核416的基础功能。明确地说,基础功能可允许应用程序与计算装置102的一些或所有资源交互,例如:传感器420 (例如,加速度计、压力传感器等)、SMS电话呼叫422、联系人列表424、地点传感器426、网络接口 428等。程序库(应用程序库412和原生库414)和内核416中的每一者可通过查询记录器108来监视。以此方式,查询记录器108可监视并记录计算装置上的应用程序的动作以产生动作日志120。另外,行为分析引擎122可接着分析来自查询记录器108的应用程序的动作日志120以产生应用程序的特性化应用程序的行为的行为向量130。
[0033]作为实例,对于游戏应用程序,查询记录器108可产生以下动作的日志:关于网络428使用情况(例如,与网站进行网络通信)、用户接口事件和传感器使用情况420(例如,触摸传感器,其中用户在播放游戏时握持计算装置)的应用程序库412和原生库414的实质使用情况的动作,以及例如实质媒体动作等其它动作。以此方式,行为分析引擎122可分析来自查询记录器108的应用程序的动作日志120以产生应用程序的特性化应用程序的行为的行为向量130,所述行为例如:频繁网络使用情况、传感器使用情况和媒体使用情况。下文将描述广泛多种不同类型的应用程序、受监视的动作和由行为分析引擎122对其进行的用以产生行为向量130的分析。
[0034]参看图5,图5为说明利用行为分析引擎122分析来自查询记录器108的动作日志120以便产生特性化应用程序的行为的行为向量130以使得分类器132可将应用程序分类为良性或恶意软件的结果的表格500。
[0035]如表格500中所展示,利用行为分析引擎分析多个应用程序。明确地说,将以下应用程序分类为良性538或恶意软件536:游戏502、视频网站(youtube) 504、记事本506、健身506、新闻510、假视频网站(fake youtube) 520、假酒店搜索522、间谍软件524、假游戏526和假影片播放器528。
[0036]对于这些应用程序中的每一者,由行为分析引擎基于分析来自查询记录器的动作日志产生行为向量529。将行为向量简化为频繁使用530、罕见使用532和无用534。作为数值实例,大约为5的行为向量可表明频繁使用,大约为I到2的行为向量可表明罕见使用,且大约为O的行为向量可表明无用。当然,可利用任何数值名称。行为向量是基于用户接口(UI)动作550、通信动作552、传感器动作554、地点556、媒体动作558、摄像机动作560、SMS动作562、电话呼叫动作564和电话信息566来产生。基于此情形,将应用程序表明为恶意软件应用程序536或良性应用程序538。
[0037]现在将描述展示利用行为分析引擎分析来自查询记录器的动作日志以产生特性化应用程序的行为的行为向量以使得可将应用程序分类为良性或恶意软件的结果的各种实例。举例来说,将具有指示以下各动作的行为向量529的游戏应用程序502分类为良性538:频繁530Π动作550、频繁530通信动作552、频繁530媒体动作558和无534或罕见532电话、SMS、摄像机、地点等动作。将具有指示以下各动作的行为向量529的视频网站应用程序504分类为良性538:频繁530Π动作550、频繁530通信动作552和频繁530媒体动作558和无534电话、SMS、摄像机、地点等动作。将具有指示以下各动作的行为向量529的记事本应用程序506分类为良性538:频繁530Π动作550和无534电话、SMS、摄像机、地点等动作。将具有指示以下各动作的行为向量529的健身应用程序508分类为良性538:频繁530Π动作550、频繁530通信动作552、频繁530传感器动作554和无534或罕见532电话、SMS、摄像机、地点等动作。将具有指示以下各动作的行为向量529的新闻应用程序510分类为良性538:频繁530Π动作550、频繁530通信动作552、频繁530传感器动作554和频繁媒体动作558,和无534或罕见532电话、SMS、摄像机、地点等动作。
[0038]另一方面,将具有指示以下各动作的行为向量529的假视频网站应用程序520分类为恶意软件536:罕见532UI动作550和罕见SMS动作562,但频繁530通信动作552、频繁530地点动作556和频繁530电话信息566。将具有指示以下各动作的行为向量529的假酒店搜索应用程序522分类为恶意软件536:罕见532Π动作550和罕见SMS动作562,但频繁530通信动作552、频繁530地点动作556和频繁530电话信息566。将具有指示以下各动作的行为向量529的间谍软件应用程序524分类为恶意软件536:罕见532Π动作550,但频繁530通信动作552、频繁530地点动作556、频繁530电话呼叫564和频繁530电话信息566。将具有指示以下各动作的行为向量529的假游戏应用程序526分类为恶意软件536 --无534UI动作550,但频繁530通信动作552、频繁530SMS动作562和频繁530电话信息566。将具有指示以下各动作的行为向量529的假影片播放器应用程序528分类为恶意软件536 --无534Π动作550和媒体动作558,但频繁530SMS动作562。
[0039]已发现,通过具有由行为分析引擎122根据来自查询记录器120的动作日志120分析以便产生一组广泛行为向量130的一组广泛动作,因此,可分析足够区分特性以确定应将应用程序分类为恶意软件还是良性。已观测到,许多恶意应用程序试图窃取用户信息及/或进行错误收费以收取金钱(例如,假SMS收费)。此外,通过利用行为分析来实现特性化、比较及分类计算装置102上的应用程序以便确定应用程序为恶意软件还是良性的目的,利用有限处理器和存储器功能性(与基于签名的恶意软件检测形成对比)且可立即发生而不必等待来自服务器的关于新恶意软件或新的所需签名的更新。
[0040]额外参看图6,根据本发明的另一方面,可利用包含服务器620的系统600来聚集来自众多计算装置602的行为报告。尽管仅展示一个计算装置602,但下文中所描述的方面涉及多个或众多计算装置602。计算装置602的组件和功能以与先前参考计算装置102所描述的方式相同的方式操作,因此为了简洁起见,将不再详细重复这些组件和功能。在一个方面中,服务器620包括组件622,所述组件622包含至少一处理电路624、行为分析引擎626和全局分类器628。处理电路624可包含发射器和接收器。先前已详细描述行为分析引擎、查询记录器、行为向量、分类器等以及其它组件和功能的使用。处理电路624可经配置以基于存储于耦合到处理电路624的存储器或其它组件中的指令执行指令以用于用接收器、发射器实施及操作行为分析引擎626、全局分类器628以及其它组件。所属领域的技术人员应了解,利用处理器和存储器的服务器为所属领域中众所熟知的。
[0041]在一个方面中,服务器620的处理电路624的接收器可接收来自多个不同计算装置602的多个行为向量集610 (例如,当计算装置602通过其行为分析引擎608确定应用程序的行为可能为可疑的或偶然的行为向量集更新时(参见决策框612))。如先前所描述,行为向量集610特性化应用程序的行为。服务器620的行为分析引擎626可基于来自计算装置602的所接收行为向量集610更新全局分类器628。另外,如将描述的,全局分类器628可将来自计算装置602的关于应用程序的识别应用程序具有可疑行为(例如,框612)的所接收行为向量集分类为良性或恶意软件。
[0042]在一个特定方面中,计算装置602可确定应用程序的行为为可疑的且可将应用程序的行为向量集610发射到服务器620以使服务器620分析行为向量集610。服务器620的全局分类器628可将所发射的行为向量集610分类为良性或恶意软件。如果应用程序的行为向量集610经分类为恶意软件,那么可将恶意软件指示符发射到所述多个计算装置602且计算装置602可删除632所述应用程序。
[0043]另外,服务器620可经由处理电路624的发射器将更新发射到所述多个计算装置602,其中所述更新用以更新所述多个计算装置602的行为分析引擎608。以此方式,基于从众多计算装置602接收的所有行为向量集和其它数据,服务器620可周期性地更新由计算装置自身执行的行为分析。
[0044]因此,服务器620通过聚集来自众多计算装置602的行为报告而作为众包服务器操作。通过随着时间收集大输入集,以加速方式产生更准确且经更新的行为模型且可将所述模型传递到所有操作计算装置602上。而且,当确定应用程序为恶意软件时,可向所有计算装置602通知此情形。
[0045]作为操作的实例,如图6中所展示,计算装置602的查询记录器604可记录应用程序的行为以产生动作日志606。接下来,计算装置602的行为分析引擎608可分析动作日志608以产生特性化应用程序的行为的行为向量集610。作为实例,行为向量集610可包含至少一个数值。在决策框612处,如果计算装置602的分类器并未发现行为向量集指示关于应用程序的任何可疑处(例如,应用程序具有为恶意软件的较低可能性),那么删除日志(框616)且过程结束(框618)。先前已详细描述许多这些功能。
[0046]然而,如果计算装置602确定行为为可疑的(决策框612),那么计算装置602可阻止对应用程序的使用(框614)且可将行为向量集610发射到服务器620。服务器620可经由处理电路624接收行为向量集610且可检查行为向量集610以确定应用程序为良性还是恶意软件。而且,从计算装置602发射到服务器620的行为向量集610还可包含关于应用程序已被阻止的指示符。另外,计算装置602可将日志以及其它数据发射到服务器620。应注意,此步骤可实时地发生(即,在分类行为时)或可在稍后时间发生(例如,在装置能够更好地接入带宽或电力时)。
[0047]基于所接收的行为向量集610,服务器620的全局分类器628可将应用程序分类为良性或恶意软件。如果应用程序的行为向量集610经分类为恶意软件,那么可将恶意软件指示符发射到所述多个计算装置602。基于此情形,如果计算装置602接收到恶意软件指示(决策框630),那么计算装置602可删除所述应用程序(框632)。然而,如果应用程序并非恶意软件,那么可删除日志(框616)且过程完成或结束(框618),因此计算装置602维持正常操作,包含利用应用程序。
[0048]在另一方面中,当计算装置602确定应用程序的行为并非可疑时(框612),计算装置602偶尔将其关于应用程序的行为向量集610 (以及日志、查询,和其它信息)发射到服务器620,以使得服务器620的行为分析引擎626和全局分类器628接收关于由计算装置602利用的应用程序的广泛范围的信息。以此方式,所有计算装置602合作以使服务器620在其行为模型化中保持经更新。
[0049]类似地,服务器620偶尔经由处理电路624将更新发射到所述多个计算装置602,其中所述更新可供计算装置602使用以更新其行为分析引擎608和分类器且一般更新其对应用程序的行为模型化和分析。而且,服务器620偶尔可经由处理电路624将经更新的查询发射到所述多个计算装置602,使得所述计算装置可利用所述更新查询其动作日志606,更新其查询记录器604,且可结合其行为分析引擎608和分类器来利用以更新对应用程序的行为模型化和分析。以此方式,基于行为更新、行为向量集、查询以及从服务器620接收的其它数据,服务器620可周期性地更新由计算装置602自身执行的行为分析。
[0050]因此,服务器620通过聚集来自众多计算装置602的行为报告而作为众包服务器操作。本质上,服务器620可对照根据来自众多计算装置602的合作上传获得的良性和恶意行为的模型评估应用程序的行为。通过随着时间收集大输入集,以加速方式产生更准确且经更新的行为模型且可将所述模型传递到所有操作计算装置602上。可考虑对个别计算装置的偏爱。此外,个别计算装置602可利用基于来自其它计算装置的众多报告产生的行为模型。而且,当确定应用程序为恶意软件时,可向所有计算装置602通知此情形。另外,可通过利用基于群的服务器620来减少个别计算装置602上的监视和计算开销(用于恶意软件检测的目的)。明确地说,通过利用合作分析,可由服务器620来累积来自众多计算装置602的大量行为向量和日志以用于进行及时的恶意软件检测。因此,所得行为模型可为准确的(低的错误肯定和错误否定)及通用的(可俘获广泛多种不同类型的恶意软件)。应注意,每一计算装置602处的行为分析引擎608的行为模型为独特的。另外,从服务器620接收的总特性经独特地修改以用于计算装置602。
[0051]作为一个实例,可在使众多计算装置602与服务器620合作中利用三个不同步骤:初始化;合作行为模型化和恶意软件检测;和行为模型更新。关于初始化,可通过一组已知的不良应用程序或恶意软件和一组已知的良好应用程序来训练行为分析引擎和分类器(例如,用于计算装置602)。可使用标准监督机器学习技术来实现训练过程。在将计算装置602提供给用户之前,可能需要计算装置602从服务器620获得其行为分析引擎608的最新的行为模型。另外,服务器620可为计算装置602提供应记录的API列表和关于如何利用行为分析引擎根据API产生行为向量(例如,应用程序的行为的简明表示)的指令。
[0052]关于合作行为监视和恶意软件检测,如先前所描述,当用户利用其计算装置602时,计算装置602针对每一执行中的应用程序周期性地利用行为分析引擎608监视及计算行为向量610且通过利用分类器,可确定此应用程序表现得类似于恶意软件还是良性应用程序。由计算装置602分类为恶意的应用程序可通过服务器620来确认,且应将其从计算装置602中去除(例如,框632)或拒绝其安装。经分类为良性的应用程序可全面许可地执行。对于经确定为可疑的应用程序(决策框612),例如,由计算装置602自身局部地检测到可疑但需要进一步调查,在这些情况下,计算装置602可将应用程序置于受约束环境中且可仅允许受限访问。可接着将此应用程序报告给服务器620以用于进一步调查,如先前所描述。
[0053]关于行为模型更新,为了实现合作,计算装置602周期性地将其行为向量610和其它数据上传到服务器620,如先前所描述。服务器620另外还可向计算装置602请求原始日志。服务器620 (其可为资源丰富的机器(或群集))可执行深入分析且接着经由行为分析引擎626和全局分类器628更新行为模型。如果模型在更新之后显著地改变,那么服务器620可将经更新的行为模型推送到计算装置602的行为分析引擎608和分类器。当收集更多数据且模型变得稳定时,改变可为不频繁的。
[0054]因此,先前所描述的系统可充当额外保护层,作为对静态分析和基于签名的反病毒途径的补充。关于一个特定益处,可检测未被添加到反病毒数据库中的恶意软件或在安装时伪装为良性的恶意软件。明确地说,服务器620通过聚集来自众多计算装置602的行为报告而作为众包服务器操作。本质上,服务器620可对照根据来自众多计算装置602的合作上传获得的良性和恶意行为的模型评估应用程序的行为。通过随着时间收集大输入集,以加速方式产生更准确且经更新的行为模型且可将所述模型传递到所有操作计算装置602上。
[0055]应了解,当计算装置或服务器为移动或无线装置时,其可经由无线网络中的基于或以其它方式支持任何合适的无线通信技术的一或多个无线通信链路通信。举例来说,在一些方面中,计算装置或服务器可与包含无线网络的网络相关联。在一些方面中,网络可包括人体区域网络或个人局域网(例如,超宽带网络)。在一些方面中,网络可包括局域网或广域网。无线装置可支持或以其它方式使用多种无线通信技术、协议或标准(例如,CDMA、TDMA、0FDM、0FDMA、WiMAX和W1-Fi)中的一或多者。类似地,无线装置可支持或以其它方式使用多种对应调制或多路复用方案中的一或多者。无线装置因此可包含适当组件(例如,空中接口)以使用上文或其它无线通信技术建立一或多个无线通信链路及经由一或多个无线通信链路来通信。举例来说,装置可包括具有相关联的发射器和接收器组件(例如,发射器和接收器)的无线收发器,其可包含促进无线介质上的通信的各种组件(例如,信号产生器和信号处理器)。如众所熟知的,移动无线装置因此可以无线方式与其它移动装置、蜂窝电话、其它有线和无线计算机、因特网网站等通信。
[0056]本文中所描述的技术可用于各种无线通信系统,例如码分多址(CDMA)、时分多址(TDMA)、频分多址(FDMA)、正交频分多址(OFDMA)、单载波FDMA(SC-FDMA)及其它系统。术语“系统”与“网络”常常可互换地使用。CDMA系统可实施例如通用陆地无线接入(UTRA)、CDMA2000等无线电技术。UTRA包含宽带CDMA (W-CDMA)和CDMA的其它变体。CDMA2000涵盖暂定标准(IS)-2000、IS-95和IS-856标准。TDMA系统可实施例如全球移动通信系统(GSM)等无线电技术。OFDMA系统可实施例如以下各者等无线电技术:演进型通用陆地无线接入(演进型UTRA或E-UTRA)、超移动宽带(UMB)、电气电子工程师学会(IEEE) 802.11 (W1-Fi)、IEEE 802.16 (WiMAX)、IEEE 802.20、闪存-OFDM.RTM 等。通用陆地无线接入(UTRA)和E-UTRA为通用移动电信系统(UMTS)的部分。3GPP长期演进(LTE)为UMTS的使用E-UTRA的即将到来的版本,其在下行链路上使用OFDMA且在上行链路上使用SC-FDMA。UTRA、E_UTRA、UMTS,LTE和GSM描述于来自名为“第三代合作伙伴计划”(3GPP)的组织的文献中。CDMA2000和UMB描述于来自名为“第三代合作伙伴计划2” (3GPP2)的组织的文献中。
[0057]可将本文中的教示并入到多种设备(例如,装置)内(例如,实施于多种设备内或由多种设备执行)。举例来说,可将本文中所教示的一或多个方面并入到以下各者中:电话(例如,蜂窝电话)、个人数据助理(“PDA”)、平板计算机、移动计算机、膝上型计算机、平板计算机、娱乐装置(例如,音乐或视频装置)、耳机(例如,头戴式耳机、听筒等)、医疗装置(例如,生物测定传感器、心率监视器、步数计、EKG装置等)、用户I/O装置、计算机、服务器、销售点装置、娱乐装置、机顶盒或任何其它合适的装置。这些装置可具有不同的功率和数据要求。
[0058]在一些方面中,无线装置可包括用于通信系统的接入装置(例如,W1-Fi接入点)。此接入装置可提供(例如)经由有线或无线通信链路到另一网络(例如,广域网,例如因特网或蜂窝式网络)的连接性。因此,接入装置可使得另一装置(例如,W1-Fi站)能够接入另一网络或一些其它功能性。另外,应了解,所述装置中的一者或两者可为便携式,或在一些情况下,相对非便携式。
[0059]所属领域的技术人员将理解,可使用多种不同技术和技艺中的任一者来表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在以上描述中始终参考的数据、指令、命令、信息、信号、位、符号及码片。
[0060]所属领域的技术人员将进一步了解,可将结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路和算法步骤实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。所述功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此类实施方案决策不应被解释为会导致脱离本发明的范围。
[0061]可使用经设计以执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块和电路。通用处理器可为微处理器,但在替代例中,处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心的联合,或任何其它此配置。
[0062]可直接以硬件、以由处理器执行的软件模块或以上述两者的组合来体现结合本文所揭示的实施例而描述的方法或算法的步骤。软件模块可驻留于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可卸除式磁盘、CD-ROM或所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,以使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代例中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留于ASIC中。ASIC可驻留于用户终端中。在替代例中,处理器和存储媒体可作为离散组件驻留于用户终端中。
[0063]在一或多个示范性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实施。如果以软件实施为计算机程序产品,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体予以传输。计算机可读媒体包含计算机存储媒体与包含促进计算机程序从一处传送到另一处的任何媒体的通信媒体两者。存储媒体可为可由计算机存取的任何可用媒体。以实例说明而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROMXD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于载送或存储呈指令或数据结构的形式的所要程序码且可由计算机存取的任何其它媒体。而且,可恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘及光盘包含紧密光盘(CD)、激光光盘、光学光盘、数字影音光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常磁性地复制数据,而光盘使用激光光学地复制数据。上述各者的组合也应包含在计算机可读媒体的范围内。
[0064]提供所揭示实施例的先前描述以使得任何所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将容易显而易见对这些实施例的各种修改,且在不脱离本发明的精神或范围的情况下,本文所界定的一般原理可应用于其它实施例。因此,本发明并不既定限于本文中所展示的实施例,而应符合与本文中所揭示的原理及新颖特征一致的最广范围。
【权利要求】
1.一种计算装置,其包括: 查询记录器,其记录所述计算装置上的应用程序的行为以产生日志; 行为分析引擎,其分析来自所述查询记录器的所述日志以产生特性化所述应用程序的所述行为的行为向量;以及 分类器,其将所述应用程序的所述行为向量分类为良性或恶意软件。
2.根据权利要求1所述的计算装置,其中,如果所述行为向量经分类为恶意软件,那么将与所述行为向量相关联的所述应用程序删除或限制其使用。
3.根据权利要求1所述的计算装置,其中,所述行为向量是基于所述日志的一组查询而产生。
4.根据权利要求3所述的计算装置,其中所述行为向量包含基于针对特定应用程序的所述日志的查询的结果的数值。
5.根据权利要求3所述的计算装置,其中,所述组查询包含存在查询、量查询、次序查询或类别查询中的至少一者。
6.根据权利要求5所述的计算装置,其中,查询包含所观测到的行为或期望的行为。
7.根据权利要求1所述的计算装置,其中,所述行为分析引擎分析独立于装置的动作。
8.根据权利要求1所述的计算装置,其中,所述行为分析引擎分析相依于装置的动作。
9.根据权利要求8所述的计算装置,其中,相依于装置的动作包含应用程序安装、装置信息、通信或用户交互中的至少一者。
10.根据权利要求1所述的计算装置,其中,所述分类器为机器学习分类器。
11.根据权利要求1所述的计算装置,其中,所述计算装置为移动装置。
12.—种用以确定计算装置处的应用程序是否为恶意软件的方法,其包括: 记录所述应用程序的行为以产生日志; 分析所述日志以产生特性化所述应用程序的所述行为的行为向量;以及 将所述应用程序的所述行为向量分类为良性或恶意软件。
13.根据权利要求12所述的方法,其中,如果所述行为向量经分类为恶意软件,那么将与所述行为向量相关联的所述应用程序删除或限制其使用。
14.根据权利要求12所述的方法,其中,基于所述日志的一组查询而产生所述行为向量。
15.根据权利要求14所述的方法,其中所述行为向量包含基于针对特定应用程序的所述日志的查询的结果的数值。
16.根据权利要求14所述的方法,其中,所述组查询包含存在查询、量查询、次序查询或类别查询中的至少一者。
17.根据权利要求16所述的方法,其中,查询包含所观测到的行为或期望的行为。
18.根据权利要求12所述的方法,其中,针对独立于装置的动作而分析所述日志。
19.根据权利要求12所述的方法,其中,针对相依于装置的动作而分析所述日志。
20.根据权利要求19所述的方法,其中,相依于装置的动作包含应用程序安装、装置信息、通信或用户交互中的至少一者。
21.一种在计算装置处执行的计算机程序产品,其包括: 计算机可读媒体,其包括用于进行以下操作的代码: 记录应用程序的行为以产生日志; 分析所述日志以产生特性化所述应用程序的所述行为的行为向量;以及 将所述应用程序的所述行为向量分类为良性或恶意软件。
22.根据权利要求21所述的计算机程序产品,其中,如果所述行为向量经分类为恶意软件,那么将与所述行为向量相关联的所述应用程序删除或限制其使用。
23.根据权利要求21所述的计算机程序产品,其进一步包括用于基于所述日志的一组查询产生所述行为向量的代码。
24.根据权利要求23所述的计算机程序产品,其中,所述组查询包含存在查询、量查询、次序查询或类别查询中的至少一者。
25.根据权利要求24所述的计算机程序产品,其中,查询包含所观测到的行为或期望的行为。
26.根据权利要求21所述的计算机程序产品,其进一步包括用于针对独立于装置的动作分析所述日志的代码。
27.根据权利要求21所述的计算机程序产品,其进一步包括用于针对相依于装置的动作分析所述日志的代码。
28.根据权利要求27所述的计算机程序产品,其中,相依于装置的动作包含应用程序安装、装置信息、通信或用户交互中的至少一者。
29.一种计算装置,其包括: 用于记录应用程序的行为以产生日志的装置; 用于分析所述日志以产生特性化所述应用程序的所述行为的行为向量的装置;以及 用于将所述应用程序的所述行为向量分类为良性或恶意软件的装置。
30.根据权利要求29所述的计算装置,其中,如果所述行为向量经分类为恶意软件,那么将与所述行为向量相关联的所述应用程序删除或限制其使用。
31.根据权利要求29所述的计算装置,其中,所述行为向量是基于所述日志的一组查询而产生。
32.根据权利要求31所述的计算装置,其中,所述组查询包含存在查询、量查询、次序查询或类别查询中的至少一者。
33.根据权利要求32所述的计算装置,其中,查询包含所观测到的行为或期望的行为。
34.根据权利要求29所述的计算装置,其中,所述记录是针对独立于装置的动作而分析。
35.根据权利要求29所述的计算装置,其中,所述记录是针对相依于装置的动作而分析。
36.根据权利要求35所述的计算装置,其中,相依于装置的动作包含应用程序安装、装置信息、通信或用户交互中的至少一者。
37.一种服务器,其包括: 处理电路,其接收来自多个计算装置的多个行为向量集,其中每一行为向量集特性化应用程序的行为;以及 行为分析引擎,其基于所述所接收行为向量集将全局分类器更新为良性或恶意软件。
38.根据权利要求37所述的服务器,其中所述处理电路在与所述所接收行为向量集相同的时间或在稍后时间进一步接收来自所述计算装置的日志数据和其它数据。
39.根据权利要求37所述的服务器,其中所述处理电路将更新发射到所述多个计算装置,且其中所述更新用以更新所述多个计算装置的行为分析引擎。
40.根据权利要求37所述的服务器,其中来自计算装置的行为向量集进一步包括关于已在所述计算装置处阻止所述应用程序的指示符。
41.根据权利要求37所述的服务器,其中所述处理电路进一步将经更新的查询发射到所述多个计算装置。
42.—种在服务器处实施的方法,其包括: 接收来自多个计算装置的多个行为向量集,其中每一行为向量集特性化应用程序的行为;以及 将来自所述计算装置的应用程序的所接收行为向量集分类为良性或恶意软件。
43.根据权利要求42所述的方法,其进一步包括在与所述所接收行为向量集相同的时间或在稍后时间接收来自所述计算装置的日志数据和其它数据。
44.根据权利要求42所述的方法,其进一步包括将更新发射到所述多个计算装置,其中所述更新用以更新所述多个计算装置的行为分析引擎。
45.根据权利要求42所述的方法,其中来自计算装置的行为向量集进一步包括关于已在所述计算装置处阻止所述应用程序的指示符。
46.根据权利要求42所述的方法,其进一步包括将经更新的查询发射到所述多个计算>j-U ρ?α装直。
47.一种在服务器处执行的计算机程序产品,其包括: 计算机可读媒体,其包括用于进行以下操作的代码: 接收来自多个计算装置的多个行为向量集,其中每一行为向量集特性化应用程序的行为;以及 将来自所述计算装置的应用程序的所接收行为向量集分类为良性或恶意软件。
48.根据权利要求47所述的计算机程序产品,其进一步包括用于在与所述所接收行为向量集相同的时间或在稍后时间接收来自所述计算装置的日志数据和其它数据的代码。
49.根据权利要求47所述的计算机程序产品,其进一步包括用于将更新发射到所述多个计算装置的代码,其中所述更新用以更新所述多个计算装置的行为分析引擎。
50.根据权利要求47所述的计算机程序产品,其中来自计算装置的行为向量集进一步包括关于已在所述计算装置处阻止所述应用程序的指示符。
51.根据权利要求47所述的计算机程序产品,其进一步包括用于将经更新的查询发射到所述多个计算装置的代码。
52.—种服务器,其包括: 用于接收来自多个计算装置的多个行为向量集的装置,其中每一行为向量集特性化应用程序的行为;以及 用于将来自所述计算装置的应用程序的所接收行为向量集分类为良性或恶意软件的>j-U ρ?α装直。
53.根据权利要求52所述的服务器,其进一步包括用于在与所述所接收行为向量集相同的时间或在稍后时间接收来自所述计算装置的日志数据和其它数据的装置。
54.根据权利要求52所述的服务器,其进一步包括用于将更新发射到所述多个计算装置的装置,其中所述更新用以更新所述多个计算装置的行为分析引擎。
55.根据权利要求52所述的服务器,其中来自计算装置的行为向量集进一步包括关于已在所述计算装置处阻止所述应用程序的指示符。
56.根据权利要求52所述的服务器,其进一步包括用于将经更新的查询发射到所述多个计算装置的装置。
【文档编号】G06F21/56GK104205111SQ201380015079
【公开日】2014年12月10日 申请日期:2013年3月14日 优先权日:2012年3月19日
【发明者】肖徐春, 邓朔, 巴巴克·萨拉马特, 拉贾什·古普塔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1