掌桥专利:专业的专利平台
掌桥专利
首页

基于多特征快速高效的安卓恶意软件检测方法

文献发布时间:2023-06-19 10:38:35


基于多特征快速高效的安卓恶意软件检测方法

技术领域

本发明涉及智能手机信息安全领域,具体涉及基于多特征快速高效的安卓恶意软件检测方法。

背景技术

随着智能手机和应用软件的迅速发展,针对智能手机的恶意软件对人们的生活和企业的生产造成了较大的负面影响。面对安卓恶意应用软件带来的严重安全威胁,越来越多的国内外研究者将目光放在安卓应用安全方向。现有的对安卓恶意应用检测的研究一般分为静态分析方法和动态分析方法。使用静态分析可以更好的理解程序的源代码,而动态分析则可以更好的理解程序的行为。

静态分析涉及到二进制相关的技术,其中包括反编译、逆向分析、模式匹配和静态系统调用分析等。静态分析技术有一个共同的特点:应用程序不被执行。静态分析的优点是能耗低、风险小、速度快,对实时性要求低;缺点是由于不在真实的环境下运行,恶意代码可能通过伪装、代码混淆等手段逃避检测,从而导致针对特定类型的恶意软件检测准确率较低。动态分析是一种基于应用程序运行时行为的检测技术,通常需要在沙箱等环境下实际运行软件,以监控该软件对网络、系统调用、文件和内存的访问、信息的访问模式及其处理行为等。通过分析这些行为是否正常来判断其恶意性。动态分析的优点是不受代码混淆和加密的影响,但需耗费系统资源,对分析人员的技术能力要求也较高,不利于对大规模的应用进行检测。

由于安卓恶意软件数量的快速增加,使用动态检测不能满足快速检测的需要。因此,亟需一种检测精度高、检测速度快的静态分析安卓恶意软件检测方法。

发明内容

本发明为解决现有安卓恶意软件检测中,使用单一特征的机器学习算法无法充分发挥其数据处理能力,检测效果不佳;而使用多特征的机器学习算法虽然提升了检测效果,却需要大量的时间以及高质量的检测硬件来满足检测条件等问题,提供一种基于多特征快速高效的安卓恶意软件检测方法。

基于多特征快速高效的安卓恶意软件检测方法,该方法由以下步骤实现:

步骤一、收集安卓平台的正常应用软件和恶意应用软件;

步骤二、对步骤一获得的正常应用软件和恶意应用软件进行反编译,获取每个应用软件的全部权限特征以及Dalvik操作码序列;

步骤三、对步骤二获取的Dalvik操作码序列,采用N-Gram方法,提取长度为N的操作码序列;

步骤四、将步骤二所述的全部权限特征与步骤三采用N-Gram方法提取的操作码序列相结合,作为样本特征;构造共包含m个样本特征的特征集S并为每个样本a构造原始特征向量,构造特征向量的公式为:

式中,V

步骤五、对所述特征集S进行特征选择,具体步骤为:

步骤五一、对于提取到的全部权限特征,只保留Google官方提供的权限特征,删除第三方自定义的特征;

步骤五二、对于提取到的样本特征,采用X表示,X

步骤五三、计算第i个样本特征X

式中,H(X

步骤五四、将相关性SU(X

步骤五五、将所述初始特征子集S

步骤五六、依次删除SU(X

步骤五七、在所述初始特征子集S

步骤六、重新构造特征向量,并训练分类器;对每个样本a,按照最终特征子集S

式中,k为最终特征子集S

步骤七、将待检测的安卓软件样本的特征矩阵,输入到训练好的CatBoost分类器中,对每个待检测样本进行分类,输出样本所属类别的预测值。

本发明的有益效果:本发明所述的检测方法,涉及一种轻量级、高精度的安卓恶意软件检测方法。其主要思想是以CatBoost算法作为基础,使用基于信息熵的对称不确定度衡量一个特征是否与分类相关或者是否冗余,能够有效减少特征的数量,减少了存储空间需求和检测计算资源需求,能够快速且精确的检测出安卓恶意软件,并对检测出的恶意软件进行恶意软件家族分类。具体存在以下优点:

一、将CatBoost算法应用到安卓恶意软件检测与分类领域,CatBoost可以解决梯度偏置和预测移位的问题,从而减少过拟合的发生,提高了模型的分类精度和泛化能力,填补了该算法在安卓恶意软件检测与分类中应用的空白。

二、将权限与Dalvik操作码特征相结合,利用N-Gram方法对特征进行处理,能够更全面地表现安卓应用信息,以便更精确地建立特征模型。

三、本发明的特征评价和降维算法,与原始数据相比,大幅度减少数据的存储空间,降低了检测的计算复杂度,能够快速且精确的检测安卓恶意软件。

附图说明

图1为本发明所述的基于多特征快速高效的安卓恶意软件检测方法流程图;

图2为本发明所述的基于多特征快速高效的安卓恶意软件检测方法的精确度随着阈值变化分布图;

图3为本发明所述的基于多特征快速高效的安卓恶意软件检测方法对TOP-20恶意软件家族检测效果图,家族1-家族20的具体名称为(FakeInstaller,BaseBridge,DroidKungFu,FakeDoc,Geinimi,GinMaster,Kmin,Opfake,Iconosys,Plankton,Adrd,DroidDream,ExploitLinuxLotoor,Glodream,MobileTx,FakeRun,SendPay,Gappusin,Imlog,SMSreg);

具体实施方式

具体实施方式一、结合图1说明本实施方式,基于多特征快速高效的安卓恶意软件检测方法,如图1所示,具体包括以下步骤:

步骤一、利用爬虫从国内外第三方市场中搜集正常软件,利用VirusTotal扫描工具在线检测搜集到的正常软件中是否存在恶意软件,确保正常软件数据集的纯净度;

步骤二、对步骤一获得的正常应用软件和恶意应用软件进行反编译,利用反编译工具Androguard从AndroidManifest.xml文件以及classes.dex文件中提取每个应用的全部权限以及Dalvik操作码序列;

步骤三、对步骤二获取的Dalvik操作码序列,利用N-Gram方法提取出长度为N(N=2,3,4,5……)的操作码序列;

步骤四、将步骤二所述的全部权限特征与步骤三采用N-Gram方法提取的操作码序列相结合,作为样本特征;构造共包含m个样本特征的特征集S并为每个样本a构造原始特征向量,构造特征向量的公式为

式中,V

步骤五、对所述特征集S进行特征选择,具体步骤为:

步骤五一、对于提取到的全部权限特征,只保留Google官方提供的权限特征,删除第三方自定义的特征;

步骤五二、对于提取到的样本特征,采用X表示,X

步骤五三、计算第i个样本特征X

式中,H(X

步骤五四、将相关性SU(X

步骤五五、将所述初始特征子集S

步骤五六、依次删除SU(X

步骤五七、在所述初始特征子集S

步骤六、重新构造特征向量,并训练分类器;对每个样本a,按照最终特征子集S

式中,k为最终特征子集S

步骤七、将待检测的安卓软件样本的特征矩阵,输入到训练好的CatBoost分类器中,对每个待检测样本进行分类,输出样本所属类别的预测值。

具体实施方式二、结合图2和图3说明本实施方式,本实施方式为采用具体实施方式一所述的基于多特征快速高效的安卓恶意软件检测方法的进行仿真效果验证:

1、仿真条件:本实施例中,仿真实验的硬件测试平台是:Dell Power Edge 720服务器,CPU为Intel Xeon E5-2603,内存64GB;软件平台是:Ubuntu 18.04;编程语言:Python3.7.6;

2、仿真内容与结果分析:本实施例中,仿真实验所使用的正常安卓样本来源于2017年Google Play应用商店,恶意软件样本来源于VirusShare数据集;本次仿真实验中训练集与测试集的比例为7:3,正常样本12748个,恶意样本12989个。

结合图2可知,当阈值δ设定为0.005时,本仿真实验效果最好。

结合图3可知,本实施例中对被检测到的恶意软件进行家族分类效果同样优秀。

通过上述实验证明了本实施例所述的方法能有效的检测安卓恶意软件,并对检测到的恶意软件进行家族分类。

相关技术
  • 基于多特征快速高效的安卓恶意软件检测方法
  • 基于胶囊网络的安卓恶意软件检测方法及装置
技术分类

06120112623593