一种应用程序识别方法及装置、设备、存储介质与流程

文档序号:24123448发布日期:2021-03-02 12:26阅读:117来源:国知局
一种应用程序识别方法及装置、设备、存储介质与流程

[0001]
本申请涉及计算机技术,涉及但不限于一种应用程序识别方法及装置、设备、存储介质。


背景技术:

[0002]
安卓(android)操作系统的恶意软件检测根据是否运行安装包文件分为:静态检测、动态检测和动静态结合的混合检测。。
[0003]
静态检测不需要执行android软件,通过逆向分析还原java(一种计算机编程语言)源代码或者获取dalvik(用于安卓操作系统的虚拟机)字节码。分析java源码、dalvik字节码获取android软件使用的应用程序编程接口(application programming interface,api)、系统调用、权限等属性,然后通过匹配恶意软件的属性特征或者通过构造机器学习分类器实现android恶意软件检测。动态检测需要运行android软件,通过监测android软件运行时的数据流向、方法调用、电量消耗等实时状态信息收集特征,检测时,既可以定义规则匹配恶意行为,也可以采用机器学习算法识别恶意软件。
[0004]
通过动、静态分析可以提取关键特征;通过特征筛选算法(如信息增益算法、relieff算法等)可精简特征数量,甚至提高分类检测效果;通过分类检测算法(如支持向量机、随机森林算法和深度学习算法等)实现分类检测。
[0005]
目前,现有的检测方法中,存在自检测精度以及检出率不高的技术问题。


技术实现要素:

[0006]
有鉴于此,本申请实施例提供一种应用程序识别方法及装置、设备、存储介质,如此,能够提升应用程序的安全属性类别的识别率。
[0007]
本申请实施例的技术方案是这样实现的:
[0008]
本申请实施例提供一种应用程序识别方法,所述方法包括:
[0009]
对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;
[0010]
获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0011]
根据排序结果进行特征选择,以确定目标特征集;
[0012]
对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别。
[0013]
上述方案中,所述根据排序结果进行特征选择,以确定目标特征集,包括:
[0014]
根据排序结果多次特征选择,以形成包括不同数量特征的多个特征子集;
[0015]
利用所述特征子集训练分类器,根据训练结果确定目标特征集。
[0016]
上述方案中,所述根据排序结果多次特征选择,包括:
[0017]
根据排序结果的降序多次选择排序在前的特征,且每次选择均从所述排序结果的首位开始。
[0018]
上述方案中,所述获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序,包括:
[0019]
利用不同的特征评分方法,对所述安装包特征集中的特征进行评分;
[0020]
将每一特征评分方法对应的评分进行排序,得到对应的排序结果。
[0021]
上述方案中,所述根据排序结果多次特征选择,包括:
[0022]
根据排序结果的降序,对每一排序结果多次选择排序在前的设定数量的特征;
[0023]
对所述每一排序结果对应的设定数量的特征取交集。
[0024]
上述方案中,所述利用所述特征子集训练分类器,根据训练结果确定目标特征集,包括:
[0025]
所述特征子集与分类器一一对应,利用所述特征子集训练对应的分类器;
[0026]
确定不同特征子集训练结果的调和平均值;
[0027]
根据多个所述调和平均值的大小,确定目标特征集。
[0028]
上述方案中,所述对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别,包括:
[0029]
利用训练后的集成分类器中的多个基分类器,对所述目标特征集分别进行多次分类;
[0030]
根据多次分类结果中不同安全属性类别的数量,确定所述待识别应用程序的安全属性类别。
[0031]
上述方案中,所述对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别,包括:
[0032]
确定所述待识别应用程序的应用类别;
[0033]
根据所述待识别应用程序的应用类别,确定对应的集成分类器;
[0034]
利用所述集成分类器中的多个基分类器,对所述目标特征集分别进行多次分类;
[0035]
根据多次分类的结果确定所述待识别应用程序的安全属性类别。
[0036]
上述方案中,所述安装包特征集中特征的类型包括以下至少之一:
[0037]
安装包权限类型;安装包意图类型;安装包组件的类型;安装包组件的个数。
[0038]
上述方案中,所述方法还包括:
[0039]
获取有标记信息的应用程序作为训练样本;
[0040]
确定多个训练样本子集,每一训练样本子集中具有相同标记信息的应用程序的数量相同;
[0041]
所述训练特征子集与基分类器一一对应,利用所述训练特征子集训练对应的基分类器;
[0042]
将多个所述基分类器组成集成分类器。
[0043]
上述方案中,所述训练样本中的应用程序所属的应用类别相同。
[0044]
上述方案中,所述利用所述训练特征子集训练对应的基分类器,包括:
[0045]
对训练样本子集进行特征提取,以确定所述训练样本子集中应用程序的安装包特征集;
[0046]
根据所述安装包特征集,确定应用程序的预测信息;
[0047]
将所述应用程序的标记信息与预测信息进行比较,得到所述基分类器的损失函
数;
[0048]
利用所述损失函数对所述基分类器进行训练。
[0049]
上述方案中,所述根据所述安装包特征集,确定应用程序的预测信息,包括:
[0050]
获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0051]
根据排序结果进行特征选择,以确定所述训练样本子集的目标特征集;
[0052]
根据所述训练样本子集的目标特征集,确定所述训练样本子集中应用程序的预测信息。
[0053]
本申请实施例提供一种应用程序识别装置,所述装置包括:
[0054]
特征提取单元,用于对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;
[0055]
评分单元,用于获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0056]
特征选择单元,用于根据排序结果进行特征选择,以确定目标特征集;
[0057]
识别单元,用于对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别。
[0058]
本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述应用程序识别方法。
[0059]
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述应用程序识别方法。
[0060]
本申请实施例中,在特征提取、特征筛选和分类检测三个关键阶段进行优化,能够避免非可信应用程序检出率低的问题,进而提升了应用程序的安全属性类别的识别率。
附图说明
[0061]
图1a为本申请实施例应用程序识别方法的实现流程示意图一;
[0062]
图1b为本申请实施例应用程序识别方法的实现流程示意图二;
[0063]
图1c为本申请实施例应用程序识别方法的实现流程示意图三;
[0064]
图1d为本申请实施例应用程序识别方法的实现流程示意图四;
[0065]
图2为本申请实施例特征提取模型示意图;
[0066]
图3为本申请实施例特征筛选方法的实现流程示意图;
[0067]
图4为本申请实施例软件检测方法的实现流程示意图;
[0068]
图5为本申请实施例软件静态检测模型架构图;
[0069]
图6为本申请实施例应用程序识别装置的组成结构示意图;
[0070]
图7为本申请实施例计算机设备的一种硬件实体示意图。
具体实施方式
[0071]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0072]
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0073]
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
[0074]
目前,针对android恶意软件的动态和静态检测研究已经取得一定进展,同时越来越多的研究者通过使用特征筛选算法和机器学习算法提高分类检测效果,但检测效果仍然不理想。本申请实施例针对相关技术中存在的如下不足:(1)当前研究中提取的特征有限,缺少针对应用类别信息的研究。(2)在分类检测中,没有考虑android软件样本不平衡的问题,所选取的分类算法默认样本均衡,即没有考虑恶意样本数量少对分类检测结果的影响。(3)特征筛选算法存在时间复杂度高或者特征筛选过程复杂等问题。提出了一种应用程序识别的方法及装置、设备和存储介质。
[0075]
本申请实施例提供一种应用程序识别方法,该方法应用于计算机设备,该方法所实现的功能可以通过服务器中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该服务器至少包括处理器和存储介质。图1a为本申请实施例应用程序识别方法的实现流程示意图一,如图1a所示,所述方法包括:
[0076]
步骤s101、对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;
[0077]
这里,针对安卓应用系统,可以提取安卓应用系统中应用程序安装时的权限、意图和组件个数等信息。而安卓应用系统中应用程序的权限、意图、组件个数等信息,通常存在于应用程序的安装包中,因此,特征提取分三个阶段,分别是对应用程序的安装包进行反编译、解析对应的可扩展标记语言(extensible markup language,xml)文件和构造特征集。通过对安装包的反编译获取安装时的清单文件,在所述清单文件中提取相关的信息,将不同类型的信息组成不同类型的特征,根据不同类型的特征构造特征集。
[0078]
当然,本申请对应用程序所属的应用系统类型并不做限制,可以是安卓应用系统,也可以是其他类型的应用系统。
[0079]
本申请实施例中,所述计算机设备可以为各种类型的具有信息处理能力的设备,例如手机、个人数字助理(personal digital assistant,pda)、导航仪、数字电话、视频电话、智能手表、智能手环、可穿戴设备、平板电脑、一体机等。所述服务器在实现的过程中可以是电子设备,如手机、平板电脑、笔记本电脑,固定终端如个人计算机和服务器集群等具有信息处理能力的计算设备。
[0080]
步骤s102、获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0081]
步骤s103、根据排序结果进行特征选择,以确定目标特征集;
[0082]
这里,步骤s102和步骤s103主要的作用是进行特征选择,特征选择是数据预处理中的关键一步,其目的是消除特征冗余同时筛选相关度较大的特征,其作用是提高后续分类检测的精度和效率。
[0083]
目前,相关技术中有很多对特征进行评分的方法,可以对提取出的每个特征分别
进行评分,以此来进行特征选择,从而减少冗余特征,提高特征的分类效果。
[0084]
步骤s104、对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别。
[0085]
这里,获取所述安装包特征集中的特征的评分后,将评分后的特征进行排序,再根据排序结果进行特征选择,确定出一个目标特征集。最后利用所述目标特征集进行多次分类,每次分类,都确定出一个分类结果。结合多次分类的结果,确定所述待识别应用程序的安全属性类别。
[0086]
本申请实施例中,所述待识别应用程序的安全属性类别,指的是所述待识别应用程序属于可信的应用程序,还是非可信的应用程序(即异常的应用程序)。本申请实施例中的应用程序识别方法,可以帮助用户在进行应用程序的安装前,识别所述应用程序的安全属性类别,当识别结果表明所述应用程序为可信的应用程序时,继续进行安装。当识别结果表明所述应用程序为非可信的应用程序时,提示用户此应用程序存在风险。
[0087]
本申请实施例中,通过对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;根据排序结果进行特征选择,以确定目标特征集;对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别,如此,能够避免非可信应用程序检出率低的问题,进而提升了应用程序的安全属性类别的识别率。
[0088]
基于前述的实施例,本申请实施例再提供一种应用程序识别方法,图1b为本申请实施例应用程序识别方法的实现流程示意图二,如图1b所示,该方法包括:
[0089]
步骤s111、对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;
[0090]
本申请实施例中,采用静态检测方法来识别所述待识别应用程序的安全属性类别。通过逆向分析安卓安装包(android package,apk)文件,提取安卓软件安装时的权限、意图和组件个数等信息,来实现待识别应用程序的特征提取,以得到所述待识别应用程序的安装包特征集。所述安装包特征集中包括多个特征,且每一特征的属性都是不相同的。
[0091]
步骤s112、获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0092]
这里,获取所述安装包特征集中的特征的评分,可以是获取所述安装包特征集中每一特征的评分,并将所有特征按其评分从高到低进行排序。
[0093]
步骤s113、根据排序结果多次特征选择,以形成包括不同数量特征的多个特征子集;
[0094]
本申请实施例中,所述根据排序结果多次特征选择,以形成包括不同数量特征的多个特征子集,可以是根据排序结果进行多次特征选择,每次特征选择都将选出一个特征子集,并且每一特征子集中的特征数量是不同的。所有特征子集中可以包含相同的特征,也可以包含不同的特征。
[0095]
举例来说,提取的安装包特征集为[f1,f2,f3],获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序,排序结果为[f2,f1,f3],对所述排序结果进行三次特征选择:第一次选择排序在前的一个特征,构成特征子集为[f2]。第二次选择排序在
前的两个特征,构成特征子集为[f2,f1]。第三次选择排序在前的三个特征,构成特征子集为[f2,f1,f3]。
[0096]
又如,提取的安装包特征集为[f1,f2,f3,f4],获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序,排序结果为[f2,f4,f1,f3],对所述排序结果进行两次特征选择:第一次选择的特征子集为[f2]。第二次选择的特征子集为[f4,f1,f3]。
[0097]
步骤s114、利用所述特征子集训练分类器,根据训练结果确定目标特征集;
[0098]
本申请实施例中,所述利用所述特征子集训练分类器,根据训练结果确定目标特征集,可以是利用所述多个特征子集中的每一个特征子集训练一个分类器,然后将各个分类器中,分类效果最好的那个分类器对应的特征子集,确定为目标特征集。
[0099]
步骤s115、对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别。
[0100]
这里,可以将所述目标特征集应用到多个不同的分类器中,所述多个不同的分类器分别对所述目标特征集进行分类,每一分类器都得到一个分类结果,根据多个分类器的多个分类结果,利用多数投票的方式,确定所述待识别应用程序的安全属性类别。或者,也可以根据多个分类器的多个分类结果,根据每个分类器的权重,确定所述待识别应用程序的安全属性类别。
[0101]
在一些实施例中,所述步骤s114、利用所述特征子集训练分类器,根据训练结果确定目标特征集,可以通过以下方式实现:
[0102]
步骤s1141、所述特征子集与分类器一一对应,利用所述特征子集训练对应的分类器;
[0103]
本申请实施例中,对于一个特征子集,可以将其中的特征数据分成多份,取其中的一份作为测试集,剩余的作为训练集;然后利用所述训练集训练对应的分类器,利用测试集对训练好的分类器进行测试。其中,每一份都轮换作为测试集。可以将每一测试集的测试结果的平均值,作为所述分类器的评分。
[0104]
步骤s1142、确定不同特征子集训练结果的调和平均值;
[0105]
这里,可以利用每一特征子集训练一个分类器,然后分类器的测试结果的调和平均值,作为所述分类器的评分,每一分类器都对应一个评分。然后,根据评分结果,将评分结果最高的分类器对应的特征子集,确定为目标特征集。
[0106]
步骤s1143、根据多个所述调和平均值的大小,确定目标特征集。
[0107]
本申请实施例中,通过对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;根根据排序结果多次特征选择,以形成包括不同数量特征的多个特征子集;利用所述特征子集训练分类器,根据训练结果确定目标特征集;对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别,如此,能够避免非可信应用程序检出率低的问题,进而提升了应用程序的安全属性类别的识别率。
[0108]
基于前述的实施例,本申请实施例再提供一种应用程序识别方法,该方法包括:
[0109]
步骤s121、对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;
[0110]
步骤s122、获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0111]
步骤s123、根据排序结果的降序多次选择排序在前的特征,且每次选择均从所述排序结果的首位开始,以形成包括不同数量特征的多个特征子集;
[0112]
本申请实施例中,可以将评分后的特征按降序进行排列,即评分越高的特征,排位越靠前。然后对所述排序结果进行多次特征选择,每次都选择排序在前的特征,且每次选择都是从第一个特征开始。有多少次特征选择,就有多少个特征子集。如此,每个特征子集中的特征的数量是不同的,且每个特征子集中的特征,都存在交集。例如,按降序排序后的结果为[f2,f1,f3],对所述排序结果进行三次特征选择:第一次选择排序在前的一个特征,构成特征子集为[f2]。第二次选择排序在前的两个特征,构成特征子集为[f2,f1]。第三次选择排序在前的三个特征,构成特征子集为[f2,f1,f3],进行了三次特征选择,共选择出三个特征子集,且每个特征子集中特征的数量是不同的,且每个特征子集中,都存在特征的交集。
[0113]
步骤s124、利用所述特征子集训练分类器,根据训练结果确定目标特征集;
[0114]
步骤s125、对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别。
[0115]
在一些实施例中,所述步骤s124、利用所述特征子集训练分类器,根据训练结果确定目标特征集,可以通过以下步骤实现:
[0116]
步骤s1241、所述特征子集与分类器一一对应,利用所述特征子集训练对应的分类器;
[0117]
步骤s1242、确定不同特征子集训练结果的调和平均值;
[0118]
步骤s1243、根据多个所述调和平均值的大小,确定目标特征集。
[0119]
本申请实施例中,通过对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;根据排序结果的降序多次选择排序在前的特征,且每次选择均从所述排序结果的首位开始,以形成包括不同数量特征的多个特征子集;利用所述特征子集训练分类器,根据训练结果确定目标特征集;对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别,如此,能够避免非可信应用程序检出率低的问题,进而提升了应用程序的安全属性类别的识别率。
[0120]
基于前述的实施例,本申请实施例再提供一种应用程序识别方法,图1c为本申请实施例应用程序识别方法的实现流程示意图三,如图1c所示,该方法包括:
[0121]
步骤s131、对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;
[0122]
步骤s132、利用不同的特征评分方法,对所述安装包特征集中的特征进行评分;
[0123]
目前,有很多种特征评分方法,且每一种特征评分方法的评分原理、评分效果、评分耗时等参数指标都是不同的。比如说,有的特征评分方法具有较高的执行效率,可以快速完成对所有特征的评分,但是无法保证筛选出分类效果最优的特征子集,而且无法确定一个规模较小的特征子集。有的特征评分方法能够选择出分类效果接近最佳的特征子集,但是随着特征规模的增加,特征筛选的时间复杂度呈指数级增加。因此,本申请实施例中利用多种不同的特征评分方法,对所述安装包特征集中的特征进行评分。
[0124]
步骤s133、将每一特征评分方法对应的评分进行排序,得到对应的排序结果;
[0125]
这里,将每一特征评分方法对应的评分进行排序,得到对应的特征排序结果,每个特征评分方法对应的排序结果相互独立。
[0126]
步骤s134、根据排序结果的降序,对每一排序结果多次选择排序在前的设定数量的特征;
[0127]
步骤s135、对所述每一排序结果对应的设定数量的特征取交集,以形成包括不同数量特征的多个特征子集;
[0128]
这里,可以对每一排序结果,都将其按照降序排列,并且进行多次特征选择,每次选择排序在前的设定数量的特征。并且对每一排序结果对应的设定数量的特征取交集,以形成包括不同数量特征的多个特征子集。
[0129]
举例来说,利用两种特征评分方法对安装包特征集进行评分,第一种评分方法对应的降序结果为:[f1,f2,f3],第二种评分方法对应的降序结果为[f2,f1,f3],对所述第一种评分方法对应的降序结果进行三次特征选择:第一次选择排序在前的一个特征,构成预设数量的特征为[f1],第二次选择排序在前的两个特征,构成预设数量的特征为[f1,f2]。第三次选择排序在前的三个特征,构成预设数量的特征为[f1,f2,f3]。同样地,对所述第二种评分方法对应的降序结果进行三次特征选择:第一次选择排序在前的一个特征,构成预设数量的特征为[f2],第二次选择排序在前的两个特征,构成预设数量的特征为[f2,f1]。第三次选择排序在前的三个特征,构成预设数量的特征为[f2,f1,f3]。然后将两种不同评分方法对应的预设数量相同的特征取交集,得到多个特征子集包括:[f1,f2]和[f1,f2,f3]。
[0130]
步骤s136、利用所述特征子集训练分类器,根据训练结果确定目标特征集;
[0131]
步骤s137、对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别。
[0132]
在一些实施例中,所述步骤s136、利用所述特征子集训练分类器,根据训练结果确定目标特征集,可以通过以下步骤实现:
[0133]
步骤s1361、所述特征子集与分类器一一对应,利用所述特征子集训练对应的分类器;
[0134]
步骤s1362、确定不同特征子集训练结果的调和平均值;
[0135]
步骤s1363、根据多个所述调和平均值的大小,确定目标特征集。
[0136]
本申请实施例中,通过对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;利用不同的特征评分方法,对所述安装包特征集中的特征进行评分;将每一特征评分方法对应的评分进行排序,得到对应的排序结果;根据排序结果的降序,对每一排序结果多次选择排序在前的设定数量的特征;对所述每一排序结果对应的设定数量的特征取交集,以形成包括不同数量特征的多个特征子集;利用所述特征子集训练分类器,根据训练结果确定目标特征集;对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别,如此,能够避免非可信应用程序检出率低的问题,进而提升了应用程序的安全属性类别的识别率。
[0137]
基于前述的实施例,本申请实施例再提供一种应用程序识别方法,图1d为本申请实施例应用程序识别方法的实现流程示意图四,如图1d所示,该方法包括:
[0138]
步骤s141、对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别
应用程序的安装包特征集;
[0139]
步骤s142、获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0140]
步骤s143、根据排序结果进行特征选择,以确定目标特征集;
[0141]
步骤s144、利用训练后的集成分类器中的多个基分类器,对所述目标特征集分别进行多次分类;
[0142]
步骤s145、根据多次分类结果中不同安全属性类别的数量,确定所述待识别应用程序的安全属性类别。
[0143]
例如,训练后的集成分类器中包括五个训练后的基分类器,利用每个基分类器对目标特征进行分类,得到五个分类结果,其中,四个基分类器的分类结果都是所述待识别应用程序为异常应用程序,一个基分类器的分类结果是所述待识别应用程序为可信应用程序,则通过多数投票方式,确定所述待识别应用程序的安全属性类别为异常应用程序。
[0144]
本申请实施例中,通过对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;根据排序结果进行特征选择,以确定目标特征集;利用训练后的集成分类器中的多个基分类器,对所述目标特征集分别进行多次分类;根据多次分类结果中不同安全属性类别的数量,确定所述待识别应用程序的安全属性类别,如此,能够避免非可信应用程序检出率低的问题,进而提升了应用程序的安全属性类别的识别率。
[0145]
基于前述的实施例,本申请实施例再提供一种应用程序识别方法,该方法包括:
[0146]
步骤s151、对获取的待识别应用程序的安装包进行特征提取,以得到所述待识别应用程序的安装包特征集;
[0147]
步骤s152、获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0148]
步骤s153、根据排序结果进行特征选择,以确定目标特征集;
[0149]
步骤s154、确定所述待识别应用程序的应用类别;
[0150]
本申请实施例中,在进行分类检测前,可以先确定所述待识别应用的应用类别,根据所述待识别应用程序的应用类别,确定对应类别的集成分类器,利用同类别的集成分类器对所述应用程序进行识别。
[0151]
当然,所述同类别的集成分类器,指的是所述集成分类器对应的训练样本和测试样本中应用程序的应用类别是单一的应用类别,且所述单一的应用类别为所述待识别应用程序的应用类别。
[0152]
例如,所述待识别应用程序的应用类别为娱乐类,则对应的集成分类器的样本集中的应用程序都为娱乐类别的应用程序。所述待识别应用程序的应用类别为工具类,则对应的集成分类器的样本集中的应用程序都为工具类别的应用程序。
[0153]
步骤s155、根据所述待识别应用程序的应用类别,确定对应的集成分类器;
[0154]
步骤s156、利用所述集成分类器中的多个基分类器,对所述目标特征集分别进行多次分类;
[0155]
步骤s157、根据多次分类的结果确定所述待识别应用程序的安全属性类别。
[0156]
在一些实施例中,所述安装包特征集中特征的类型包括以下至少之一:
[0157]
安装包权限类型;安装包意图类型;安装包组件的类型;安装包组件的个数。
[0158]
在一些实施例中,所述方法还包括:
[0159]
步骤s11a、获取有标记信息的应用程序作为训练样本;
[0160]
步骤s12a、确定多个训练样本子集,每一训练样本子集中具有相同标记信息的应用程序的数量相同;
[0161]
这里,一般情况下异常应用程序训练样本数量较少,为了达到更好的训练效果,因此本申请中将训练样本进行拆分,拆分成多个训练样本子集,且保证每个训练样本子集中具有相同标记信息的应用程序的数量相同。
[0162]
步骤s13a、所述训练特征子集与基分类器一一对应,利用所述训练特征子集训练对应的基分类器;
[0163]
步骤s14a、将多个所述基分类器组成集成分类器。
[0164]
这里,所述步骤s11a至步骤s14a为集成分类器的训练过程,此过程将用多个平衡样本数据分别训练多个基分类器,再利用多数投票的方式,将所述多个基分类器合成为一个集成分类器。
[0165]
本申请实施例中,所述训练样本中的应用程序所属的应用类别相同。
[0166]
举例来说,所述应用程序所属的应用类别可以为娱乐类、工具类、通信类等等。
[0167]
在一些实施例中,所述步骤s13a中的部分技术特征“利用所述训练特征子集训练对应的基分类器”,可以通过以下方式实现:
[0168]
步骤s11b、对训练样本子集进行特征提取,以确定所述训练样本子集中应用程序的安装包特征集;
[0169]
步骤s12b、根据所述安装包特征集,确定应用程序的预测信息;
[0170]
步骤s13b、将所述应用程序的标记信息与预测信息进行比较,得到所述基分类器的损失函数;
[0171]
步骤s14b、利用所述损失函数对所述基分类器进行训练。
[0172]
在一些实施例中,所述步骤s12b、根据所述安装包特征集,确定应用程序的预测信息,包括:
[0173]
步骤s121b、获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0174]
步骤s122b、根据排序结果进行特征选择,以确定所述训练样本子集的目标特征集;
[0175]
步骤s123b、根据所述训练样本子集的目标特征集,确定所述训练样本子集中应用程序的预测信息。
[0176]
针对android恶意软件检测研究中分类精度和检出率低的问题,基于前述的实施例,本申请实施例提出一种基于应用分类的android恶意软件静态检测模型。本申请实施例提出的模型研究基于应用分类的android恶意软件静态检测模型,即在单一应用类别下完成分类检测,不涉及应用分类的方法。本申请实施例包含四个部分:
[0177]
第一部分,分析国内外主流的android应用市场在应用分类上的工作,研究应用分类的必要性,下载本申请使用的android软件样本,保留android软件样本类别信息。
[0178]
第二部分,分析android系统架构,分析android系统的安全机制和模型,在此基础
上总结android恶意软件静态检测和动态检测的优缺点,结合当前研究的背景,提取android软件安装时的权限、意图和组件使用等静态属性,构造android软件样本数据集。
[0179]
第三部分,分析特征筛选过程中常用的filter和wrapper两类特征筛选算法的优势和不足,借鉴当前android软件检测方法中特征筛选的经验,提出一种简单高效的ig-relieff混合特征筛选算法,并完成特征筛选。
[0180]
第四部分,在android软件样本数据不平衡的条件下,为提高分类检测的检出率,本申请实施例提出一种bagging算法和支持向量机(support vector machine,svm)结合的算法,即bagging-svm算法应用于分类器的构造,在此基础上实现基于应用分类的android恶意软件静态检测模型。
[0181]
其中:第一部分,可以通过以下方式实现:
[0182]
针对android恶意软件的静态检测方法具有处理量级小、易大规模扩展等优点,得到广泛应用。机器学习算法可显著提高分类检测的效果,因此结合机器学习的android恶意软件静态检测方法是目前研究的热点。研究者通常改进机器学习算法提高分类检测效果,但如果没有加入更多的关键特征,仅改进机器学习算法对分类检测效果的提高比较有限,分类检测效果对所选特征依赖程度高,因此加入更多关键特征可显著提高分类检测效果。
[0183]
应用程序的类别信息是一类关键信息,同一类别下的应用程序功能相似,实现功能需要申请的权限、调用的组件和执行的方法一致;恶意软件为实现恶意功能,在同一应用类别下申请的权限和调用的组件等具有较大可能存在异常。另外使用应用分类信息检测恶意软件可降低android软件分类检测误报率。例如一款壁纸软件申请读取通讯录的权限,则说明可能存在隐私泄露的风险。同样针对读取通讯录的权限,对于一款通讯社交类软件,则是实现通讯社交功能的正常权限。
[0184]
主流android软件分发平台谷歌支付(google play)、360应用商店、豌豆荚应用商店以及各大手机厂商的应用商店都对android手机软件进行分类。开发者提交软件时,会向应用商店提交应用类别,应用商店需要根据应用的属性,对软件进行资格和类别审查,最后才会向用户发布。依据用户的实际需要,android软件按软件类别分系统安全类、通讯社交类、影音视听类、主题壁纸类和游戏娱乐类等,豌豆荚应用市场中,在此基础上对应用软件又进一步细分,如系统工具类又可以分为无线上网(wireless fidelity,wifi)、浏览器、输入法、省电和安全等。
[0185]
本申请实施例从应用市场收集用户下载量大且评分高的软件,并将软件按应用市场的类别信息进行划分,成为单一类别的软件样本集。软件样本集可以同时经过双重扫描确保为良性软件,恶意软件样本来自于android软件基因组计划,由于恶意软件较少,因此通过在模拟器上运行,人工划分软件应用类别。
[0186]
其中,第二部分,可以通过以下方式实现:
[0187]
静态检测的优势是轻量级和便于大规模扩展等,因此本申请实施例采用静态检测。针对提取的软件样本,通过逆向分析apk文件,提取android软件安装时的权限、意图和组件个数信息。特征提取分为三个阶段,分别是反编译、解析xml文件和构造特征向量。图2为本申请实施例特征提取模型示意图,如图2所示,所述特征提取模型包括三个部分:(1)在反编译阶段,可以采用谷歌(google)开发的apk工具,完成反编译,即可获取android应用程序安装时的清单文件androidmanifest.xml。(2)androidmanifest.xml文件中有android应
用程序安装时必须申请的权限、意图和组件等信息,在第二个阶段调用python(一种计算机程序设计语言)中的xml.etree.elementtree包解析xml文件,提取其中的“uses-permission”标签获取应用程序申请的系统权限,提取“action”和“category”标签获取意图相关的属性,提取“activity”、“receiver”、“service”和“provider”标签获取组件相关信息。(3)对androidmanifest.xml文件解析之后,需要对相应的信息进行量化,并根据量化后的信息构造特征向量。由于权限信息和意图信息是标量,因此本申请实施例将其量化为“0”和“1”,“0”表示不包含该意图或权限,“1”表示包含该意图或权限。关于组件信息,本申请实施例将每个apk文件中包含的组件个数作为量化结果。
[0188]
其中:第三部分,可以通过以下方式实现:
[0189]
特征筛选是数据预处理中的关键一步,其目的是消除特征冗余同时筛选相关度较大的特征,其作用是提高后续分类检测的精度和效率。
[0190]
filter类特征筛选算法的优势是较高的执行效率,可以快速完成对所有特征的评分。局限性在于无法保证筛选出分类效果最优的特征子集,而且无法确定一个规模较小的特征子集。而wrapper类特征筛选算法通常借助于启发式搜索和随机搜索等策略,筛选出分类效果接近最佳的特征子集,缺点是随着特征规模的增加,特征筛选的时间复杂度呈指数级增加,因此wrapper算法适应于特征规模较小的数据集。针对filter和wrapper算法在筛选特征时固有的问题,本申请实施例提出一种新的特征筛选算法,即将filter和wrapper混合的特征筛选算法,即ig-relieff混合特征筛选算法(简称为ig-relieff算法),依据ig和relieff两种算法的评分结果,优先搜索两种算法评分高的特征,从而实现快速筛选。
[0191]
为最大限度降低特征维度和提高后续分类检测精度,特征筛选阶段采用一种ig-relieff混合筛选算法。ig和relieff算法均是依据特征的评价指标筛选最优特征子集,但评价标准不同。针对特定的特征,ig算法的评分值为该特征的熵值与其条件熵的差,主要考量特征对于分类系统信息熵的影响,而relieff算法的评分值为该特征与同类近邻样本间的距离和其与异类近邻样本间距离的差,反映特征间的相关关系对分类结果的影响。ig-relieff算法结合二者的优点并根据分类器的分类结果实现特征筛选。
[0192]
本申请实施例中的特征筛选算法可以分为三个阶段,分别为初步评分阶段、特征搜索阶段和特征子集评估阶段。
[0193]
(1)初步评分阶段:初步评分阶段中,分别采用ig和relieff两种特征筛选算法对所有的特征进行评分,以评分的结果作为后续特征搜索的依据。
[0194]
ig算法采用信息增益来量化特征的评分。针对由android软件样本提取的数据集s(所述数据集s为对多个软件样本提取特征后的特征向量合集),设s中某个特征f(即如图2所示的特征提取模型中提取的特征向量的一列)共有n个取值f1,f2,...f
n
(例如样本1中某个组件的个数为5,样本2中所述组件的个数为1,样本3中所述组件的个数为10,则所述组件个数特征共有3个取值,分别为5、1、10),类别标签c有2个取值“0”或“1”,分别代表良性样本(即可信应用程序)和恶意样本(即非可信应用程序),对每一个类别c
i
(i表示类别的种类,例如良性样本为c0,恶意样本为c1)而言,其出现的概率为p(c=c
i
),则整个分类检测系统的信息熵可以用公式(1)表示:
[0195]
machine,lsvm),具有训练时间短和分类检测效率高的特点,同时考虑到后续分类算法采用基于lsvm算法的集成分类器,因此选择lsvm分类器完成特征筛选。
[0213]
在android恶意软件检测中,通过混淆矩阵可以求得准确率、召回率(检出率)、分类精度等评估指标。在android恶意软件检测中,所述混淆矩阵如表1所示:
[0214]
表1混淆矩阵
[0215][0216]
其中四个基本指标量分别定义为:tp表示良性软件被正确识别的数量。fp表示恶意软件被错误识别为良性软件的数量。tn表示恶意软件被正确识别的数量。fn表示良性软件被错误识别的数量。
[0217]
基于混淆矩阵,定义以下四个度量指标:
[0218]
指标1,即准确率表示被正确识别的恶意软件和被识别为恶意软件的数量比,可以用公式(7)表示:
[0219][0220]
指标2,即检出率表示被正确识别的恶意软件和实际恶意软件的数量比,也称作召回率,可以用公式(8)表示:
[0221][0222]
指标3,即分类精度表示被正确识别的软件和所有样本软件的数量比,可以用公式(9)表示:
[0223][0224]
指标4,即f1为准确率和检出率的调和平均值,可以用公式(10)表示:
[0225][0226]
指标3是常用的评估指标,但是该指标未考虑数据的不平衡性而不能客观评估分类结果,即在android恶意软件样本集中,恶意样本因不易收集而数量较少,即使分类精度很高仍存在检出率低的情形。相比较而言,指标f1综合考虑准确率和检出率,适用于数据不平衡下的分类效果评估,因此在特征筛选阶段本申请实施例采用f1作为分类检测的评估指标。
[0227]
图3为本申请实施例特征筛选方法的实现流程示意图,如图3所示,本申请实施例中的特征筛选算法分为三个阶段:初步评分阶段、特征搜索阶段和特征子集评估阶段,所述初步评分阶段包括步骤s301至步骤s302,所述特征搜索阶段包括步骤s303至步骤s304,所
述特征子集评估阶段包括步骤s305至步骤s308。
[0228]
步骤s301、ig算法搜索评分最高的n(初始值为1)个特征;
[0229]
步骤s302、relief算法搜索评分最高的n(初始值为1)个特征;
[0230]
本申请实施例中,运用ig和relieff两种特征筛选算法对所有的特征进行评分,评分的结果分别保存为g={g1,g2,

,g
p
}和r={r1,r2,...,r
p
}。
[0231]
步骤s303、将两种算法搜索到的特征子集取并集;
[0232]
步骤s304、由搜索到的特征构造数据集;
[0233]
本申请实施例中,优先搜索g和r中分值高的n个特征,分别为g
n
和r
n
,并根据g
n
和r
n
确定搜索到的特征子集fs。
[0234]
步骤s305、训练分类器,获取分类结果;
[0235]
步骤s306、记录搜索到的特征子集和分类结果;
[0236]
步骤s307、是否搜索完所有的特征;
[0237]
这里,当步骤s307中确定已经搜索完所有的特征后,执行步骤s308。若没有搜索完所有的特征,则继续搜索评分最高的n+1个特征。
[0238]
步骤s308、获取评分最高的特征子集。
[0239]
本申请实施例中,使用fs构造数据集,将数据集拆分成训练集和测试集,训练lsvm分类器,使用lsvm分类器完成对测试集的分类检测,根据检测结果计算f1值作为fs的评分,通过n的递增,筛选出分值最高的特征子集从而完成分类检测。
[0240]
也就是说,本申请实施例特征筛选算法的筛选流程,可以通过以下步骤实现:
[0241]
步骤s311、采用ig和relielff算法对数据集s中的p个特征评分,评分结果保存为g和r,sf(初始值为空集)表示当前评分最高的特征子集,fbest(初始值为0)表示当前最高评分值;
[0242]
步骤s312、依据n(初始值为1)的值由公式(6)计算特征子集fs,基于fs组成筛选后的数据集d;
[0243]
步骤s313、将d中的数据随机均分5份,其中4份作为分类器的训练集,剩余1份作为分类器的测试集。执行训练和测试过程,保存对测试集的分类结果,并计算f1作为fs的评分值;
[0244]
步骤s314、轮换步骤313中的1份数据作为测试集,重复执行5次,计算f1的平均值。若所述平均值>fbest,则将所述平均值赋给fbest,fs中的元素赋给sf;否则,跳过fbest和sf的赋值阶段;
[0245]
步骤s315、n自增1,重复步骤s312至步骤s314,当n达到最大迭代次数p时,迭代停止,输出d。
[0246]
其中:第四部分,可以通过以下方式实现:
[0247]
在android恶意软件检测过程中,采用单一svm算法分类检测存在两个问题:由于android恶意软件的样本收集困难,使得数据集中良性软件和恶意软件的数量比不平衡,使得训练后的svm分类器分类结果偏向良性软件,导致android恶意软件的检出率较低。svm算法对小样本分类效果较好,但是对样本敏感,尤其是临近分类边界的样本,若分类边界上存在错分的样本,则会严重影响分类器的准确性。
[0248]
因此,本申请实施例分别对良性数据集和恶意数据集bootstrap抽样,构造平衡数
据集,降低不平衡数据对分类结果的影响。所述bootstrap抽样是非参数统计中一种重要的估计统计量变异性,并可进行统计量区间估计的统计方法。由于bagging算法(一种用来提高学习算法准确度的方法)可以显著提高分类效果不稳定算法的分类性能,因此考虑通过bagging算法构造基于svm的集成分类器,提高分类器的稳定性和检测精度。
[0249]
本申请实施例提出一种基于bagging-svm的android恶意软件检测算法。首先,采用bootstrap抽样构造k个平衡数据集。然后,训练k个基于平衡数据集的svm基分类器c。最后k个svm基分类器以多数投票的方式组成svm集成分类器c*。分类检测时,以svm集成分类器c*的输出作为测试样本的分类结果。
[0250]
为提高分类检测的执行效率,本申请实施例采用线性支持向量机设计基于bagging-svm算法的分类检测流程,流程设计如下:
[0251]
步骤s401、随机从d中抽取80%的数据组成训练集d_train,剩余的20%组成测试集d_test,根据数据类别拆分d_train为良性数据集d
b
和恶意数据集d
m
,即d_train={d
b
,d
m
};
[0252]
步骤s402、设m和b分别表示d
m
和d
b
中样本的个数。为实现bootstrap抽样,采用随机数发生器产生两组m个可重复的正整数imi(i=1,2,...,m)和ibi(i=1,2,...,m),其中0<0<imi,ibi≤m;
[0253]
步骤s403、以imi作为待抽取的恶意样本的序号,以ibi作为待抽取的良性样本的序号,执行抽取过程得到m个良性数据和m个恶意数据,合并组成新的待训练数据集d
i

[0254]
步骤s404、d
i
中的任意一个样本表示为(x
i
,y
i
)(i=1,2,...,m),其中x
i
=(x
i1
,x
i2
,...,x
ip
)
t
对应第i个训练样本的属性集,y
i
∈{0,1}表示该android样本的类别,则svm模型可以用公式(11)表示:
[0255][0256]
其中,α为惩罚项,采用二次规划法求解该模型得到拉格朗日乘子λ
i
,则lsvm基分类器c的参数w和c可由式公式(12)和公式(13)求解:
[0257][0258][0259]
对应地,基分类器c可以用公式(14)表示:
[0260][0261]
步骤s405、重复执行k次步骤s402至步骤s404得到k个lsvm基分类器c,将k个基分类器c组合成svm集成分类器c*。
[0262]
步骤s406、针对d_test中的每个测试样本x,将x输入svm集成分类器c*中的k个基分类器中,计算k个基分类器的投票结果。其中,投票公式(15)为:
[0263]
c
*
(x)=vote(c1(x),c2(x),...,c
k
(x))=δ(∑
i
sign(c
i
(x)=y))
ꢀꢀꢀꢀ
(15)
[0264]
当判别条件c
i
(x)=y成立时,sign(c
i
(x)=y)=1;反之,sign(c
i
(x)=y)=-1。当判别条件∑
i
sign(c
i
(x)=y)>0成立时,δ(∑
i
sign(c
i
(x)=y)>0)=1,表示恶意软件;反之,δ(∑
i
sign(c
i
(x)=y)>0)=0,即为良性软件。
[0265]
图4为本申请实施例软件检测方法的实现流程示意图,如图4所示,所述方法包括:
[0266]
步骤s411、将数据集进行随机拆分,拆分为测试数据集和训练数据集;
[0267]
步骤s412、将svm分类器的个数k的初值设置为1;
[0268]
步骤s413、判断训练数据集中的软件是否为恶意软件;
[0269]
这里,是恶意软件的话,执行步骤s414;不是恶意软件的话,执行步骤s415。
[0270]
步骤s414、将所述软件加入恶意数据集,并进行bootstrap抽样;
[0271]
步骤s415、将所述软件加入良性数据集,并进行bootstrap抽样;
[0272]
步骤s416、根据抽样结果构造平衡数据集,并训练svm分类器;
[0273]
步骤s417、k是否满足停止条件;
[0274]
这里,当k满足停止条件时,执行步骤s418。当k不满足停止条件时,k=k+1执行步骤s412。
[0275]
步骤s418、对得到的k个svm分类器进行多数投票,构成svm集成分类器;
[0276]
步骤s419、根据所述集成分类器对所述测试数据集进行分类检测。
[0277]
本申请实施例中,针对现有分类检测模型检测精度和检出率低的问题,本申请实施例收集android应用市场中不同软件类别下的软件样本,提取android软件样本的静态特征,提出一种ig-relieff特征筛选算法和一种bagging-svm分类检测算法,在此基础上提出基于应用分类的android恶意软件静态检测模型,图5为本申请实施例软件静态检测模型架构图,如图5所示:所述检测模型包含四个阶段:应用分类501、特征提取502、特征筛选503和分类检测504。应用分类501阶段,依据应用市场中的软件类别将软件样本划分为不同的样本集,后续三个阶段均在特定的软件类别下完成。特征提取502阶段,通过提取具有良好区分度的静态特征,作为分类检测的依据。特征筛选503阶段,通过对提取到的数据集的优化,提高模型的分类检测效果。分类检测504阶段,训练机器学习分类器,完成对android恶意软件的分类检测。
[0278]
本申请实施例中,相比于目前的动静态检测方法检测精度更高,且通过应用分类、特征提取、特征筛选和分类检测四个阶段的处理,将最终的结果与传统的动静态检测方法相比分类精度提高了8%。相比于现有的方法检出率更高。
[0279]
基于前述的实施例,本申请实施例提供一种应用程序识别装置,该装置包括所包括的各单元、以及各单元所包括的各模块、以及各模块所包括的各部件,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(central processing unit,cpu)、微处理器(microprocessor unit,mpu)、数字信号处理器(digital signal processing,dsp)或现场可编程门阵列(field programmable gate array,fpga)等。
[0280]
图6为本申请实施例应用程序识别装置的组成结构示意图,如图6所示,所述装置600包括:
[0281]
特征提取单元601,用于对获取的待识别应用程序的安装包进行特征提取,以得到
所述待识别应用程序的安装包特征集;
[0282]
评分单元602,用于获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0283]
特征选择单元603,用于根据排序结果进行特征选择,以确定目标特征集;
[0284]
识别单元604,用于对所述目标特征集进行多次分类,根据多次分类的结果确定所述待识别应用程序的安全属性类别。
[0285]
在一些实施例中,所述特征选择单元603,包括:
[0286]
特征选择模块,用于根据排序结果多次特征选择,以形成包括不同数量特征的多个特征子集;
[0287]
特征子集训练模块,用于利用所述特征子集训练分类器,根据训练结果确定目标特征集。
[0288]
在一些实施例中,所述特征选择模块,包括:
[0289]
第一特征选择部件,用于根据排序结果的降序多次选择排序在前的特征,且每次选择均从所述排序结果的首位开始。
[0290]
在一些实施例中,所述评分单元602,包括:
[0291]
评分模块,用于利用不同的特征评分方法,对所述安装包特征集中的特征进行评分;
[0292]
排序模块,用于将每一特征评分方法对应的评分进行排序,得到对应的排序结果。
[0293]
在一些实施例中,所述特征选择模块,包括:
[0294]
第二特征选择模块,用于根据排序结果的降序,对每一排序结果多次选择排序在前的设定数量的特征;
[0295]
处理模块,用于对所述每一排序结果对应的设定数量的特征取交集。
[0296]
在一些实施例中,所述特征子集训练模块,包括:
[0297]
特征子集训练部件,用于在所述特征子集与分类器一一对应时,利用所述特征子集训练对应的分类器;
[0298]
第一确定部件,用于确定不同特征子集训练结果的调和平均值;
[0299]
第二确定部件,用于根据多个所述调和平均值的大小,确定目标特征集。
[0300]
在一些实施例中,所述识别单元604,包括:
[0301]
第一分类模块,用于利用训练后的集成分类器中的多个基分类器,对所述目标特征集分别进行多次分类;
[0302]
第一确定模块,用于根据多次分类结果中不同安全属性类别的数量,确定所述待识别应用程序的安全属性类别。
[0303]
在一些实施例中,所述识别单元604,包括:
[0304]
第二确定模块,用于确定所述待识别应用程序的应用类别;
[0305]
第三确定模块,用于根据所述待识别应用程序的应用类别,确定对应的集成分类器;
[0306]
第二分类模块,用于利用所述集成分类器中的多个基分类器,对所述目标特征集分别进行多次分类;
[0307]
第四确定模块,用于根据多次分类的结果确定所述待识别应用程序的安全属性类
别。
[0308]
在一些实施例中,所述安装包特征集中特征的类型包括以下至少之一:
[0309]
安装包权限类型;安装包意图类型;安装包组件的类型;安装包组件的个数。
[0310]
在一些实施例中,所述装置还包括:
[0311]
获取单元,用于获取有标记信息的应用程序作为训练样本;
[0312]
确定单元,用于确定多个训练样本子集,每一训练样本子集中具有相同标记信息的应用程序的数量相同;
[0313]
训练单元,用于所述训练特征子集与基分类器一一对应,利用所述训练特征子集训练对应的基分类器;
[0314]
组合单元,用于将多个所述基分类器组成集成分类器。
[0315]
在一些实施例中,所述训练样本中的应用程序所属的应用类别相同。
[0316]
在一些实施例中,所述训练单元,包括:
[0317]
第一训练确定模块,用于对训练样本子集进行特征提取,以确定所述训练样本子集中应用程序的安装包特征集;
[0318]
第二训练确定模块,用于根据所述安装包特征集,确定应用程序的预测信息;
[0319]
比较模块,用于将所述应用程序的标记信息与预测信息进行比较,得到所述基分类器的损失函数;
[0320]
基分类器训练模块,用于利用所述损失函数对所述基分类器进行训练。
[0321]
在一些实施例中,所述第二训练确定模块,包括:
[0322]
训练排序部件,用于获取所述安装包特征集中的特征的评分,将评分后的特征按评分结果进行排序;
[0323]
第一训练确定部件,用于根据排序结果进行特征选择,以确定所述训练样本子集的目标特征集;
[0324]
第二训练确定部件,用于根据所述训练样本子集的目标特征集,确定所述训练样本子集中应用程序的预测信息。
[0325]
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
[0326]
对应地,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的应用程序识别方法。
[0327]
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述应用程序识别方法。
[0328]
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
[0329]
需要说明的是,图7为本申请实施例计算机设备的一种硬件实体示意图,如图7所示,该计算机设备700的硬件实体包括:处理器701、通信接口702和存储器703,其中
[0330]
处理器701通常控制计算机设备700的总体操作。
[0331]
通信接口702可以使计算机设备通过网络与其他终端或服务器通信。
[0332]
存储器703配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及计算机设备700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
[0333]
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0334]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0335]
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0336]
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0337]
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0338]
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0339]
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1