应用检测的方法及装置技术领域
本发明涉及软件领域,具体涉及一种应用检测的方法及装置。
背景技术
目前搭载在智能操作系统上的终端设备已经得到了广泛的应用。随着终端设备的
发展,基于终端设备运行平台上的安全问题也日益突出,恶意应用程序的数量出现爆发式
的增长。目前主流的安全检测方法都无法有效的遏制恶意应用程序的大范围传播,这使得
终端设备用户面临着越来越大的安全威胁。
目前对恶意应用程序的检测方法主要有两种:一种是按照静态方式进行检测。例
如,将恶意应用程序当作病毒,按照特征签名的方式进行检测,但这种检测方式对于新型的
恶意应用程序没有明显的效果。另一种是采用动态监控的方式,将应用程序应用在“沙箱”
中运行,通过动态的实时监控恶意应用程序的执行及其与外部环境的交互。采用动态分析
的方法,自动的生成输入内容,并在应用程序执行过程中记录执行过程日志。通过分析记录
的日志信息来检测应用程序中是否存在安全问题。这种方式依赖于特定的触发条件,但对
于触发逻辑较为复杂的应用程序,存在明显的不足。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上
述问题的应用检测的方法及装置。
根据本发明的一个方面,提供了一种应用检测的方法,包括:
提取目标应用的属性;
将目标应用的属性输入模型集对应的多个模型中,获取对应的多个应用检测结
果;
分别计算多个应用检测结果的加权,合计得到目标应用检测结果的权重值;
若权重值大于预设的恶意应用值,判定目标应用为恶意应用。
根据本发明的另一方面,提供了一种应用检测的装置,包括:
提取模块,用于提取目标应用的属性;
结果获取模块,用于将目标应用的属性输入模型集对应的多个模型中,获取对应
的多个应用检测结果;
计算模块,用于分别计算多个应用检测结果的加权,合计得到目标应用检测结果
的权重值;
判定模块,用于若权重值大于预设的恶意应用值,判定目标应用为恶意应用。
根据本发明的应用检测的方法及装置,提取目标应用的属性;将目标应用的属性
输入模型集对应的多个模型中,获取对应的多个应用检测结果;分别计算多个应用检测结
果的加权,合计得到目标应用检测结果的权重值;若权重值大于预设的恶意应用值,判定目
标应用为恶意应用。通过提取应用的属性,将目标应用的属性输入模型集对应的多个模型
中,可以有效对应用进行检测。根据应用检测结果进行权重计算,判断应用是否为恶意应
用。整个检测过程简单,与现有的基于模式匹配方式的查杀技术相比,更加快速以及在提高
检测效率的同时具有较高的准确率。且动静结合方式提取应用的属性,可以更全面的获取
应用的行为和特征。还可以根据需求不断扩展提取方式,使得检测的准确性可以更加准确。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,
而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够
更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通
技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明
的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的应用检测的方法的流程示意图;
图2示出了根据本发明另一个实施例的应用检测的方法的流程示意图;
图3示出了根据本发明一个实施例的应用检测的装置的功能结构示意图;
图4示出了根据本发明另一个实施例的应用检测的装置的功能结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开
的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例
所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围
完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的应用检测的方法的流程示意图,如图1所示,
该方法具体包括如下步骤:
步骤S101,提取目标应用的属性。
其中,本文中所述的应用可以是移动应用,例如IOS应用,安卓应用,也可以是非移
动应用,例如windows系统应用等。
提取目标应用的属性可以基于静态检测、动态检测或动静检测结合的方式对目标
应用进行分析,进而提取应用的属性。动静结合主要通过动态和静态两方面对应用进行分
析,提取应用的各种属性。动态分析应用包括如将应用设置在虚拟机上进行执行,或采用
“沙盒”方式执行,并对执行后的结果进行分析,如污点分析(Taint Analysis)、内存分析
(Memory Analysis)、数据流分析(Dataflow Analysis)等,提取应用的属性。静态分析应用
时不对应用进行执行,而采用对应用中的程序代码等内容进行检测的方式,如使用Loader
工具读取、信息检索(Information Retrieval)、抽象语法树AST、符号执行(Symbolic
Execution)等方式,提取应用的属性。
提取应用的属性包括提取应用的API序列、权限列表、行为序列、应用体量等属性。
API序列包括了应用中引用或调用的API,通过静态分析应用的程序代码和动态的执行应
用,可以提取到引用或调用的API。进一步,通过静态检测、动态检测或动静检测结合的方
式,还可以得到API具体的引用或调用的顺序,综合得到API序列。权限列表包括了应用在执
行过程中所涉及的要使用、修改或要求被授权等多方面的权限。权限包括了如访问登记、获
取位置信息、获取网络状态、使用蓝牙、账户管理、读取短信、发送短信等等各种内容。通过
静态分析应用的程序代码和动态的执行应用,可以提取到应用中涉及的权限,得到权限列
表。行为序列包括应用中涉及的各种行为。行为包括如发短信行为、通话行为、文件读取、类
动态加载、网络数据通信、服务启动、数据泄露行为等。行为序列记载了应用在执行过程中
所做的动作。通过静态分析应用的程序代码和动态的执行应用,可以提取到应用中包含的
行为。进一步,不同的行为执行的顺序不同,或多个行为组合在一起顺序执行都实现了不同
的功能。通过静态检测、动态检测或动静检测结合的方式,获取行为的执行顺序,得到行为
序列。应用体量即应用的大小,应用的大小包括如应用包含的代码大小、应用引用的多个
API的大小等。
API序列中的API及其顺序反应了应用实现的功能,权限列表反应了应用对终端设
备的权限的大小,行为序列中的行为及其顺序反应了应用的具体的动作,应用体量结合以
上各属性可以反应应用的大小是否合理,是否包含如病毒或其他不必要的代码等。目前阶
段,可以提取以上几项应用的属性。当应用的编写或执行方式发生变化,应用的属性还可以
为其他应用的属性。提取应用的属性时,可以对以上各属性均进行提取,或提取其中的一项
或多项属性。以上均为举例说明,实施时根据具体情况进行设置,此处不做具体限定。
步骤S102,将目标应用的属性输入模型集对应的多个模型中,获取对应的多个应
用检测结果。
模型集中的多个模型是通过对应用样本的训练后获取的。其中,模型包含了不同
的分类算法。将目标应用的属性输入模型集对应的多个模型中,获取对应的多个应用检测
结果。若判定目标应用为恶意应用,对应的应用检测结果为1;否则,为0。即使用不同分类算
法对提取的应用的属性进行检测。分类算法包括如决策树算法、随机森林算法、贝叶斯算
法、逻辑回归算法、支持向量机(SVM)算法、k近邻(kNN)算法等。训练时,可以使用分类算法
对提取的某一项应用的属性进行检测,也可以对多项应用的属性综合进行检测。如使用决
策树算法对API序列进行检测,或使用决策树算法对API序列和权限列表进行检测,或使用
决策树算法对API序列、权限列表和行为序列进行检测,或使用决策树算法对API序列、权限
列表、行为序列和应用体量进行检测。同理,也可以使用其他几种分类算法对一项应用的属
性进行检测或对多项应用的属性综合进行检测,得到对应的应用检测结果。在检测时,不同
分类算法均对应用的属性进行检测。根据对应用的属性的检测结果,可以判定应用是否为
恶意应用。若判定应用为恶意应用,对应的应用检测结果为1。否则,对应的应用检测结果为
0。多个不同分类算法分别对应用的属性进行检测,得到对应的应用检测结果。
具体使用的多个模型和模型对应的分类算法可以根据实施情况进行设置,此处不
做具体限定。
步骤S103,分别计算多个应用检测结果的加权,合计得到目标应用检测结果的权
重值。
对模型集中的多个模型分别设置相同或不同的权重。具体权重的设置可以根据模
型中对应的分类算法所进行的大量的实际数据的验证结果进行设置。如各种不同的分类算
法的预测准确率大体相同时,可以将各种分类算法的权重均视为0.25;或某一分类算法如
随机森林的预测准确率较高,可将其权重设置为0.3或更高,其他分类算法如贝叶斯的预测
准确率较低,设置其权重为0.2或更低。设置权重时需要综合考量各种分类算法的预测准确
率、误检率、检出率等情况,设置合适的权重。以上设置以不同分类算法对大量的应用样本
进行检测获取的预测准确率、误检率、检出率等数据为基础。
将多个应用检测结果与对应的权重相乘,计算多个应用检测结果的加权。如随机
森林的应用检测结果为1,随机森林的权重为0.25,计算得到随机森林的应用检测结果的加
权为0.25。
将计算的多个应用检测结果的加权进行合计,得到目标应用检测结果的权重值。
如随机森林的应用检测结果为1,随机森林的权重为0.3,计算得到随机森林的应用检测结
果的加权为0.3;贝叶斯的应用检测结果为0,贝叶斯的权重为0.2,计算得到贝叶斯的应用
检测结果的加权为0;决策树的应用检测结果为0,决策树的权重为0.25,计算得到决策树的
应用检测结果的加权为0;逻辑回归的应用检测结果为1,逻辑回归的权重为0.25,计算得到
逻辑回归的应用检测结果的加权为0.25;将以上各加权相加0.3+0+0+0.25=0.55,0.55即
应用检测结果的权重值。
以上均为举例说明,具体实施时根据实际情况进行设置,此处不做具体限定。
步骤S104,判断权重值是否大于预设的恶意应用值。
将得到的目标应用检测结果的权重值与预设的恶意应用值进行相比,判断目标应
用检测结果的权重值是否大于预设的恶意应用值,若目标应用检测结果的权重值大于预设
的恶意应用值,执行步骤S105。如目标应用检测结果的权重值为0.55,预设的恶意应用值为
0.5,目标应用检测结果的权重值大于预设的恶意应用值,执行步骤S105。
需要说明的是,预设的恶意应用值基于大量数据检测的基础进行预设。
步骤S105,判定目标应用为恶意应用。
根据本发明的应用检测的方法,提取目标应用的属性;将目标应用的属性输入模
型集对应的多个模型中,获取对应的多个应用检测结果;分别计算多个应用检测结果的加
权,合计得到目标应用检测结果的权重值;若权重值大于预设的恶意应用值,判定目标应用
为恶意应用。通过提取应用的属性,将目标应用的属性输入模型集对应的多个模型中,可以
有效对应用进行检测。根据应用检测结果进行权重计算,判断应用是否为恶意应用。整个检
测过程简单,与现有的基于模式匹配方式的查杀技术相比,更加快速以及在提高检测效率
的同时具有较高的准确率。进一步,动静结合方式提取应用的属性,可以更全面的获取应用
的行为和特征。还可以根据需求不断扩展提取方式,使得检测的准确性可以更加准确。
图2示出了根据本发明另一个实施例的应用检测的方法的流程示意图,如图2所
示,该方法具体包括如下步骤:
步骤S201,使用不同分类算法对恶意应用样本和正常应用样本进行训练,获取不
同分类算法对应的模型集。
在将目标应用的属性输入模型集对应的多个模型前,需要先确定模型集中的各个
模型,即确定需要使用的分类算法。
使用分类算法对已知的恶意应用的样本和正常应用的样本进行训练。训练过程
中,得到不同分类算法对应的对已知的恶意应用的样本和正常应用的样本的分类模型。将
不同分类算法对应用样本的训练结果和与训练集互不包含的应用集合(已知每个应用是否
为恶意应用)进行对比,获取不同分类算法的预测准确率、误检率、检出率等情况。如下列各
表所示:
表1:逻辑回归的检测结果
表2:随机森林的检测结果
表3:SVM的检测结果
表4:kNN的检测结果
表5:贝叶斯的检测结果
以上数据为使用决策树算法、随机森林算法、贝叶斯算法、逻辑回归算法、支持向
量机(SVM)算法、k近邻(kNN)算法等算法,对大量的恶意应用样本和正常应用样本进行训练
后,根据已知的应用样本与训练后的结果,得出的如预测准确率、误检率、检出率等信息。进
一步,通过如预测准确率、误检率、检出率等信息,可以获知分类算法在对应用进行检测时
的准确度。分类算法检测应用是否为恶意应用的检测结果,在其预测准确率越高、检出率越
高、误检率越低的情况下,其检测的准确度越高。根据以上数据对其中的分类算法进行选
择,得到模型集中的多个模型。
根据这些数据还可以在后续步骤的如将目标应用的属性输入模型集对应的多个
模型中时,选择准确度高的对应的应用的属性输入模型集对应的多个模型中;或在设置模
型集中的多个模型的权重时,根据这些数据设置对应的权重等。
步骤S202,提取目标应用的属性。
步骤S203,将目标应用的属性输入模型集对应的多个模型中,获取对应的多个应
用检测结果。
步骤S204,分别计算多个应用检测结果的加权,合计得到目标应用检测结果的权
重值。
步骤S205,判断权重值是否大于预设的恶意应用值。
步骤S206,判定目标应用为恶意应用。
以上步骤可参考图1实施例中步骤S101-S105的描述,在此不再赘述。
表6中给出了一种综合算法的结果,从结果可以看出,综合了SVM,kNN和随机森林
三种模型的加权结果比单独使用一种模型准确率和检出率更高,误检率更低。当然表6仅是
举例,本发明实施例不限于表6中的算法种类、权重和阈值。
表6:综合算法结果(算法:SVM,kNN,随机森林)
根据本发明的应用检测的方法,提取目标应用的属性;将目标应用的属性输入模
型集对应的多个模型中,获取对应的多个应用检测结果;分别计算多个应用检测结果的加
权,合计得到目标应用检测结果的权重值;若权重值大于预设的恶意应用值,判定目标应用
为恶意应用。通过提取应用的属性,将目标应用的属性输入模型集对应的多个模型中,可以
有效对应用进行检测。根据应用检测结果进行权重计算,判断应用是否为恶意应用。整个检
测过程简单,与现有的基于模式匹配方式的查杀技术相比,更加快速以及在提高检测效率
的同时具有较高的准确率进一步,动静结合的方式提取应用的属性,可以更全面的获取应
用的行为和特征。还可以根据需求不断扩展提取方式,使得检测的准确性可以更加准确。同
时,通过对应用样本的训练,得到训练结果,进而确定模型集中的模型。根据这些结果数据,
可以更有效的对应用是否为恶意应用进行判断。
图3示出了根据本发明一个实施例的应用检测的装置的功能结构示意图,如图3所
示,该装置包括如下模块:
提取模块310,用于提取目标应用的属性。
其中,本文中所述的应用可以是移动应用,例如IOS应用,安卓应用,也可以是非移
动应用,例如windows系统应用等。提取模块310提取目标应用的属性可以基于静态检测、动
态检测或动静检测结合的方式对目标应用进行分析,进而提取应用的属性。动静结合主要
通过动态和静态两方面对应用进行分析,提取应用的各种属性。动态分析应用包括如提取
模块310将应用设置在虚拟机上进行执行,或采用“沙盒”方式执行,并对执行后的结果进行
分析,如污点分析(Taint Analysis)、内存分析(Memory Analysis)、数据流分析(Dataflow
Analysis)等,提取应用的属性。静态分析应用时提取模块310不对应用进行执行,而采用对
应用中的程序代码等内容进行检测的方式,如提取模块310使用Loader工具读取、信息检索
(Information Retrieval)、抽象语法树AST、符号执行(Symbolic Execution)等方式,提取
应用的属性。
提取模块310提取应用的属性包括提取应用的API序列、权限列表、行为序列、应用
体量等属性。API序列包括了应用中引用或调用的API,提取模块310通过静态分析应用的程
序代码和动态的执行应用,可以提取到引用或调用的API。进一步,提取模块310通过静态检
测、动态检测或动静检测结合的方式,还可以得到API具体的引用或调用的顺序,综合得到
API序列。权限列表包括了应用在执行过程中所涉及的要使用、修改或要求被授权等多方面
的权限。权限包括了如访问登记、获取位置信息、获取网络状态、使用蓝牙、账户管理、读取
短信、发送短信等等各种内容。提取模块310通过静态分析应用的程序代码和动态的执行应
用,可以提取到应用中涉及的权限,得到权限列表。行为序列包括应用中涉及的各种行为。
行为包括如发短信行为、通话行为、文件读取、类动态加载、网络数据通信、服务启动、数据
泄露行为等。行为序列记载了应用在执行过程中所做的动作。提取模块310通过静态分析应
用的程序代码和动态的执行应用,可以提取到应用中包含的行为。进一步,不同的行为执行
的顺序不同,或多个行为组合在一起顺序执行都实现了不同的功能。提取模块310通过静态
检测、动态检测或动静检测结合的方式,获取行为的执行顺序,得到行为序列。应用体量即
应用的大小,应用的大小包括如应用包含的代码大小、应用引用的多个API的大小等。
API序列中的API及其顺序反应了应用实现的功能,权限列表反应了应用对终端设
备的权限的大小,行为序列中的行为及其顺序反应了应用的具体的动作,应用体量结合以
上各属性可以反应应用的大小是否合理,是否包含如病毒或其他不必要的代码等。目前阶
段,提取模块310可以提取以上几项应用的属性。当应用的编写或执行方式发生变化,提取
模块310提取的应用的属性还可以为其他应用的属性。提取模块310提取应用的属性时,可
以对以上各属性均进行提取,或提取其中的一项或多项属性。以上均为举例说明,实施时根
据具体情况进行设置,此处不做具体限定。
结果获取模块320,用于将目标应用的属性输入模型集对应的多个模型中,获取对
应的多个应用检测结果。
模型集中的多个模型是通过对应用样本的训练后获取的。其中,模型包含了不同
的分类算法。结果获取模块320将目标应用的属性输入模型集对应的多个模型中,获取对应
的多个应用检测结果。若判定目标应用为恶意应用,对应的应用检测结果为1;否则,为0。即
结果获取模块320使用不同分类算法对提取的应用的属性进行检测。分类算法包括如决策
树算法、随机森林算法、贝叶斯算法、逻辑回归算法、支持向量机(SVM)算法、k近邻(kNN)算
法等。结果获取模块320检测时,可以使用分类算法对提取的某一项应用的属性进行检测,
也可以对多项应用的属性综合进行检测。如结果获取模块320使用决策树算法对API序列进
行检测,或结果获取模块320使用决策树算法对API序列和权限列表进行检测,或结果获取
模块320使用决策树算法对API序列、权限列表和行为序列进行检测,或结果获取模块320使
用决策树算法对API序列、权限列表、行为序列和应用体量进行检测。同理,结果获取模块
320也可以使用其他几种分类算法对一项应用的属性进行检测或对多项应用的属性综合进
行检测,得到对应的应用检测结果。结果获取模块320在检测时,不同分类算法均对应用的
属性进行检测。结果获取模块320根据对应用的属性的检测结果,可以判定应用是否为恶意
应用。若判定应用为恶意应用,对应的应用检测结果为1。否则,对应的应用检测结果为0。结
果获取模块320使用多个不同分类算法分别对应用的属性进行检测,得到对应的应用检测
结果。
具体使用的多个模型和模型对应的分类算法可以根据实施情况进行设置,此处不
做具体限定。
计算模块330,用于分别计算多个应用检测结果的加权,合计得到目标应用检测结
果的权重值。
计算模块330对模型集中的多个模型分别设置相同或不同的权重。具体权重的设
置可以根据模型中对应的分类算法所进行的大量的实际数据的验证结果进行设置。如各种
不同的分类算法的预测准确率大体相同时,计算模块330可以将各种分类算法的权重均视
为0.25;或某一分类算法如随机森林的预测准确率较高,计算模块330可将其权重设置为
0.3或更高,其他分类算法如贝叶斯的预测准确率较低,计算模块330设置其权重为0.2或更
低。计算模块330设置权重时需要综合考量各种分类算法的预测准确率、误检率、检出率等
情况,设置合适的权重。以上设置以不同分类算法对大量的应用样本进行检测获取的预测
准确率、误检率、检出率等数据为基础。
计算模块330再将多个应用检测结果与对应的权重相乘,计算多个应用检测结果
的加权。如随机森林的应用检测结果为1,随机森林的权重为0.25,计算模块330计算得到随
机森林的应用检测结果的加权为0.25。
计算模块330将计算的多个应用检测结果的加权进行合计,得到目标应用检测结
果的权重值。如随机森林的应用检测结果为1,随机森林的权重为0.3,计算模块330计算得
到随机森林的应用检测结果的加权为0.3;贝叶斯的应用检测结果为0,贝叶斯的权重为
0.2,计算模块330计算得到贝叶斯的应用检测结果的加权为0;决策树的应用检测结果为0,
决策树的权重为0.25,计算模块330计算得到决策树的应用检测结果的加权为0;逻辑回归
的应用检测结果为1,逻辑回归的权重为0.25,计算模块330计算得到逻辑回归的应用检测
结果的加权为0.25;计算模块330将以上各加权相加0.3+0+0+0.25=0.55,0.55即综合的应
用检测结果的权重值。
以上均为举例说明,具体实施时根据实际情况进行设置,此处不做具体限定。
判定模块340,用于若权重值大于预设的恶意应用值,判定目标应用为恶意应用。
判定模块340将计算模块330得到的目标应用检测结果的权重值与预设的恶意应
用值进行相比,判断目标应用检测结果的权重值是否大于预设的恶意应用值,若目标应用
检测结果的权重值大于预设的恶意应用值,判定模块340判定应用为恶意应用。如目标应用
检测结果的权重值为0.55,预设的恶意应用值为0.5,目标应用检测结果的权重值大于预设
的恶意应用值,判定模块340判定应用为恶意应用。
需要说明的是,预设的恶意应用值基于大量数据检测的基础进行预设。
根据本发明的应用检测的装置,提取目标应用的属性;将目标应用的属性输入模
型集对应的多个模型中,获取对应的多个应用检测结果;分别计算多个应用检测结果的加
权,合计得到目标应用检测结果的权重值;若权重值大于预设的恶意应用值,判定目标应用
为恶意应用。通过提取应用的属性,将目标应用的属性输入模型集对应的多个模型中,可以
有效对应用进行检测。根据应用检测结果进行权重计算,判断应用是否为恶意应用。整个检
测过程简单,与现有的基于模式匹配方式的查杀技术相比,更加快速以及在提高检测效率
的同时具有较高的准确率。进一步,动静结合方式提取应用的属性,可以更全面的获取应用
的行为和特征。还可以根据需求不断扩展提取方式,使得检测的准确性可以更加准确。
图4示出了根据本发明另一个实施例的应用检测的装置的功能结构示意图,如图4
所示,与图3相比,装置还包括了如下模块:
样本训练模块350,用于使用不同分类算法对恶意应用样本和正常应用样本进行
训练,获取不同分类算法对应的模型集。
在结果获取模块320将目标应用的属性输入模型集对应的多个模型前,需要先通
过样本训练模块350确定模型集中的各个模型,即确定需要使用的分类算法。
样本训练模块350使用分类算法对已知的恶意应用的样本和正常应用的样本进行
训练。训练过程中,得到不同分类算法对应的对已知的恶意应用的样本和正常应用的样本
的模型集。样本训练模块350将不同分类算法对应用样本的训练结果和与训练集互不包含
的应用集合(已知每个应用是否为恶意应用)进行对比,获取不同分类算法的预测准确率、
误检率、检出率等情况。如表1-表4所示的数据。表中的数据为样本训练模块350使用决策树
算法、随机森林算法、贝叶斯算法、逻辑回归算法、kNN算法以及SVM算法等算法,对大量的恶
意应用样本和正常应用样本进行训练后,样本训练模块350根据已知的应用样本与训练后
的结果,得出的如预测准确率、误检率、检出率等信息。进一步,样本训练模块350通过如预
测准确率、误检率、检出率等信息,可以获知分类算法在对应用进行检测时的准确度。分类
算法检测应用是否为恶意应用的检测结果,在其预测准确率越高、检出率越高、误检率越低
的情况下,其检测的准确度越高。样本训练模块350根据以上数据对其中的分类算法进行选
择,得到模型集中的多个模型。
根据这些数据可以在如结果获取模块320将目标应用的属性输入模型集对应的多
个模型中时,选择准确度高的对应的应用的属性输入模型集对应的多个模型中;或计算模
块330在设置模型集中的多个模型的权重时,根据这些数据设置对应的权重等。
具体的,提取模块310可包括静态提取子模块3101和/或动态提取子模块3102。静
态提取子模块3101用于对应用中的程序代码等内容进行静态检测,例如可使用Loader工具
读取、信息检索(Information Retrieval)、抽象语法树AST、符号执行(Symbolic
Execution)等方式,提取应用的属性。动态提取子模块3102用于将应用设置在虚拟机上进
行执行,或采用“沙盒”方式执行,并对执行后的结果进行分析,如污点分析(Taint
Analysis)、内存分析(Memory Analysis)、数据流分析(Dataflow Analysis)等,提取应用
的属性。此外,提取模块310还可包括处理子模块3103,用于对提取的属性进行选择、清洗和
抽象。
根据本发明的应用检测的装置,提取目标应用的属性;将目标应用的属性输入模
型集对应的多个模型中,获取对应的多个应用检测结果;分别计算多个应用检测结果的加
权,合计得到目标应用检测结果的权重值;若权重值大于预设的恶意应用值,判定目标应用
为恶意应用。通过提取应用的属性,将目标应用的属性输入模型集对应的多个模型中,可以
有效对应用进行检测。根据应用检测结果进行权重计算,判断应用是否为恶意应用。整个检
测过程简单,与现有的基于模式匹配方式的查杀技术相比,更加快速以及在提高检测效率
的同时具有较高的准确率。进一步,动静结合方式提取应用的属性,可以更全面的获取应用
的行为和特征。还可以根据需求不断扩展提取方式,使得检测的准确性可以更加准确。同
时,通过对应用样本的训练,得到不同分类算法的训练结果,进而确定模型集中的模型。根
据这些结果数据,可以更有效的对应用是否为恶意应用进行判断。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示
例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据发明公开的内容直接确
定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应该被理解和认
定为覆盖了所有这些其他变型或修改。
本领域技术人员应当理解,本发明的实施方式可以实现为一种系统、装置、设备、
方法或计算机程序产品。此外,本发明也不针对任何特定编程语言,应当明白,可以利用各
种编程语言实现本发明描述的内容,并且上面对特定语言所做的描述是为了披露本发明的
最佳实施方式。
需要注意的是,尽管在上面的说明中详细描述了应用检测装置的若干模块,但是
这种划分仅仅是示例性的,并非是强制性的。本领域的技术人员可以理解,实际上,可以对
实施例中的模块进行自适应性地改变,将实施例中的多个模块组合成一个模块,也可将一
个模块划分成多个模块。
此外,尽管在附图中以特定顺序描述了本发明实施操作,但是,这并非要求或者暗
示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结
果。可以省略某些步骤,将多个步骤合并为一个步骤执行,或者将一个步骤分成多个步骤执
行。
综上所述,应用本发明所述的应用检测的方法及装置,基于静态检测、动态检测或
动静检测结合的方式分析应用,提取应用的属性。使用不同分类算法对提取的应用的属性
进行训练,得到对应的应用检测结果的模型集。计算模型集中不同分类算法对应的应用检
测结果的加权,合计得到应用检测结果的权重值。若权重值大于预设的恶意应用值,判定应
用为恶意应用。通过提取应用的属性,使用不同分类算法,对应用的属性进行训练,可以有
效检测出应用中是否存在恶意行为,根据应用检测结果进行权重计算,判断应用是否为恶
意应用。整个检测过程简单,与现有的基于模式匹配方式的查杀技术相比,更加快速,以及
在提高检测效率的同时具有较高的准确率且动静结合方式提取应用的属性,可以更全面的
获取应用的行为和特征。还可以根据需求不断扩展提取方式,使得检测的准确性可以更加
准确。进一步,通过对应用样本的训练,得到不同分类算法的检测的结果。根据这些结果数
据,可以更有效的对应用是否为恶意应用进行判断。
以上对本发明的方法和具体实施方法进行了详细的介绍,并给出了相应的实施
例。当然,除上述实施例外,本发明还可以有其它实施方式,凡采用等同替换或等效变换形
成的技术方案,均落在本发明所要保护的范围之内。
本发明公开了:A1、一种应用检测的方法,其中,包括:
提取目标应用的属性;
将所述目标应用的属性输入模型集对应的多个模型中,获取对应的多个应用检测
结果;
分别计算所述多个应用检测结果的加权,合计得到目标应用检测结果的权重值;
若所述权重值大于预设的恶意应用值,判定所述目标应用为恶意应用。
A2、根据A1所述的方法,其中,所述应用的属性为API序列、权限列表、行为序列和/
或应用体量。
A3、根据A1所述的方法,其中,所述提取目标应用的属性进一步包括:
基于静态检测、动态检测或动静检测结合的方式分析目标应用,提取目标应用的
属性。
A4、根据A1所述的方法,其中,所述方法还包括:
使用不同分类算法对恶意应用样本和正常应用样本进行训练,获取不同分类算法
对应的模型集。
A5、根据A4所述的方法,其中,所述分类算法为决策树算法、随机森林算法、贝叶斯
算法、支持向量机算法、k近邻算法和/或逻辑回归算法。
A6、根据A1所述的方法,其中,所述将所述目标应用的属性输入模型集对应的多个
模型中,获取对应的多个应用检测结果进一步包括:
将所述目标应用的属性输入模型集对应的多个模型中,获取对应的多个应用检测
结果;若判定所述目标应用为恶意应用,对应的应用检测结果为1;否则,为0。
A7、根据A1所述的方法,其中,所述分别计算所述多个应用检测结果的加权,合计
得到目标应用检测结果的权重值进一步包括:
对模型集中的多个模型分别设置相同或不同的权重;将所述多个应用检测结果与
对应的所述权重相乘,计算所述多个应用检测结果的加权;将计算的所述多个应用检测结
果的加权进行合计,得到目标应用检测结果的权重值。
A8、根据A1-A7任一项所述的方法,其中,所述应用为移动应用或非移动应用。
本发明还公开了:B9、一种应用检测的装置,其中,包括:
提取模块,用于提取目标应用的属性;
结果获取模块,用于将所述目标应用的属性输入模型集对应的多个模型中,获取
对应的多个应用检测结果;
计算模块,用于分别计算所述多个应用检测结果的加权,合计得到目标应用检测
结果的权重值;
判定模块,用于若所述权重值大于预设的恶意应用值,判定所述目标应用为恶意
应用。
B10、根据B9所述的装置,其中,所述应用的属性为API序列、权限列表、行为序列
和/或应用体量。
B11、根据B9所述的装置,其中,所述提取模块进一步用于:
基于静态检测、动态检测或动静检测结合的方式分析目标应用,提取目标应用的
属性。
B12、根据B9所述的装置,其中,所述装置还包括:
样本训练模块,用于使用不同分类算法对恶意应用样本和正常应用样本进行训
练,获取不同分类算法对应的模型集。
B13、根据B12所述的装置,其中,所述分类算法为决策树算法、随机森林算法、贝叶
斯算法、支持向量机算法、k近邻算法和/或逻辑回归算法。
B14、根据B9所述的装置,其中,所述结果获取模块进一步用于:
将所述目标应用的属性输入模型集对应的多个模型中,获取对应的多个应用检测
结果;若判定所述目标应用为恶意应用,对应的应用检测结果为1;否则,为0。
B15、根据B9所述的装置,其中,所述计算模块进一步用于:
对模型集中的多个模型分别设置相同或不同的权重;将所述多个应用检测结果与
对应的所述权重相乘,计算所述多个应用检测结果的加权;将计算的所述多个应用检测结
果的加权进行合计,得到目标应用检测结果的权重值。
B16、根据B9-B15任一项所述的装置,其中,所述应用为移动应用或非移动应用。