一种高效的基于旋转森林的Android恶意软件检测模型DroidDet的制作方法

文档序号:12803318阅读:283来源:国知局
一种高效的基于旋转森林的Android恶意软件检测模型DroidDet的制作方法与工艺

本发明基于机器学习中的旋转森林算法,并利用pca主成分分析法以及自助采样法bootstrap构建的一个用于android恶意软件的检测模型,属于信息安全技术领域。



背景技术:

国际数据公司(internationaldatacorporation,idc)在2016年第二季度的一份调查报告中显示谷歌的android操作系统已经成为一个拥有87.6%份额的智能手机操作系统市场的领导者,而苹果的ios以11.7%份额成为第二大市场主体,但ios市场份额已停止上涨并逐渐呈下降趋势。android平台为了方便开发者开发、发布应用程序以及用户下载和安装应用程序,android平台采用的是开源策略并在发布应用程序时的安全验证给与了极大的宽容。此外,android平台还建立了一个积极的反馈系统用来展示比较流行的app,从而进一步吸引更多的客户从这些平台上下载最受欢迎的app,反过来,又鼓励开发人员开发更具吸引力的app。随之而来的是android平台变得越来越受欢迎。

凡事皆有两面性,随着android平台的空前成功,因为android平台的如下特点,使其成为了恶意软件入侵的一个目标架构之一:1)第三方应用商店(非官方的)和网站允许发布和下载应用程序;2)在应用程序中使用的数字证书没有被严格管理,通过每个android应用程序的签名是无法追溯到开发人员;3)因发布前验证的宽松政策,使其恶意软件作者可以很容易的发布破解程序、木马或将恶意软件打包成一个正常的应用。

android平台上恶意软件的入侵已经引起了学术界和业界的广泛关注。由阿尔卡特朗讯给出的一份报告显示:android恶意软件样本数量在2016年第二季度进行统计,与2015年上半年相比增长两倍。其中一些比较典型的且极具破坏性的恶意软件如:kasandra.blooks,表面看来它是正常和安全的,但事实上,它可以支持自由访问用户的私人信息,被攻击的手机上存储的一些信息(例如联系人列表、银行凭证、短信、通话记录等)将会被上传到远程服务器上;smstracker,可以给黑客提供一个远程电话跟踪监控系统;spymob.a,是一种商业监控工具,用于窃取用户手机中存储的一些个人信息并将这些信息上传到服务器;notcompatible,可以使用受感染的设备支持匿名代理付费web浏览器服务。一般来说,这些恶意软件通过窃取被感染的手机上的用户信息(如监测受害者的位置、电子邮件、联系人、电话和短信等)从而做出一些破坏性的行为。

最近,android恶意软件检测已经构成了一个活跃的研究领域。研究人员提出了诸多解决方案来避免用户遭受android恶意软件带来的损害。例如,一些检测方法基于内容签名,它们将每个应用程序与已知的恶意软件签名进行比较。然而,基于签名的检测机制只能检测出那些已经被成功识别的恶意软件,但不能解决变异的恶意软件或是未被成功识别的恶意软件。因此,这种传统技术很难跟上恶意软件涌现的步伐。此外,权限也常备用于恶意软件检测,但这些方法未能达到预期的效果,具体原因如下:1)过度申请权限在android的manifest文件中是常见的;2)申请的很多权限往往不是应用程序本身使用而是广告包所需要的;3)请求权限不是恶意软件被执行的必要条件。这些方法都属于静态分析,顾名思义它在检测恶意软件的过程中不执行应用程序。

除了上面提及的静态分析方法,动态分析例如droidbox工具通过提取ip地址和动态分析android应用程序的行为实时监控应用程序也是一种恶意软件的重要检测途径。另外,cpu、电源使用、系统调用、内存使用情况等这些动态行为也被常被用于检测恶意软件。虽然动态分析通过检测应用程序的动态行为可以提供一个更全面的检测,但是在调查过程中的环境搭建以及人力干涉等等成本都是极其昂贵的。更重要的是,动态分析较静态分析更为复杂,而且往往会因为训练不足而导致准确率较低等问题。

据我们所知,到目前为止本发明是首次采用旋转森林算法来检测android恶意软件。旋转森林算法是一种新的集成算法,在集成算法中基分类器之间的差异性以及精度是是影响算法表现的两个至关重要的因素。也就是说一个集成分类器想取得满意结果,其基分类器应用具有较高的精度,同时各基分类器之间的差异性也要尽可能的大。

本发明通过静态分析方法,采用多种特征组合快捷、高效、低成本以及多角度地从每个应用程序里提取更多的特征(有可能表征应用程序恶意行为的)。我们通过真实数据集(2136个样本)结合十折交叉验证法来验证该发明的有效性,实验结果表明,该发明可以实现准确率高达88.26%。我们相信该发明是一种可靠的方法用来保护移动用户免受恶意软件的破坏行为。为了使我们的发明方法更具说服力,在同等实验条件下将本发明所创建模型与支持向量机(svm)做比较。比较结果表明,该发明所创建旋转森林模型的性能明显优于svm模型。



技术实现要素:

针对目前存在的问题,本发明提出了一种高效的基于旋转森林的android恶意软件检测模型droiddet,该新的检测模型是基于权限、系统检测事件、敏感api和权限率并结合机器学习方法中旋转森林算法构建的一个android恶意软件检测模型。

本发明作为自动化的android系统安全评估工具,考虑android平台在移动用户信息方面的安全威胁,帮助android用户来完成常用应用程序的自动、综合且高效的检测,并且保证对一个新的android应用程序预测结果的客观性和准确性。

实现本发明目的的技术解决方案为:一种高效的基于旋转森林的android恶意软件检测模型droiddet,其检测步骤如下:

步骤1):从android应用商店和国外的一个专门用于研究的病毒样本库http://virusshare.com/来获取正常android应用程序和恶意应用程序各1068个;

步骤2):使用apktool.jar反编译这些样本的apk文件,正常软件和恶意软件各选取600个作为研究对象进行统计分析构成训练集,其余apk文件构成测试集;

步骤3):抽取所有在恶意app和正常app中出现的权限、系统事件、请求的api作为特征,使用tf-idf或余弦相似度等方法计算每个特征的出现频次并计算某个特征在600恶意软件中出现的次数和在600个正常软件中出现的频次的比值,挑选高比值的特征作为构建预测模型时使用,共计抽取权限、系统检测事件、敏感api和权限率作四组特征,其中本发明所提及的权限率定义如下:其中pr为定义的权限率,pn为该apk申请的权限数目,ss为该apk经过反编译后smali文件夹的大小(单位为mb),权限率的提出是基于如下假设,第一恶意软件通常存在权限滥用,第二通常一个正常的软件申请的权限越多,相应的功能也就越多,反编译后smali文件夹也就越大,因此一个软件的权限率也是一个检测恶意软件的典型特征;

步骤4):旋转森林模型的建立与检验,本发明通过第3)步确定了特征向量的格式后,对600个正常软件和600个恶意软件的反编译后的文件进行搜索,存在上述特征的,该维度即为1,不存在的即为0,再计算每个apk的权限率,将每个apk抽取出一个28维度的特征向量,共计1400个特征向量;

步骤5):使用matlab语言、pca算法实现和旋转森林算法实现来建立模型,对剩下的样本采用同样的方法组成测试集,进行模型验证。

作为本发明一优选技术方案,本发明步骤4)中所述的旋转森林模型由如下方法实现:

假设x=(x1,x2,...,xn)t表示一个具有d个特征的训练样本集,用y=(y1,y2,...,yn)t表示训练样本集x中对应的样本类标号,f表示特征集,{t1,t2,...,tl}表示l个基分类器;旋转森林模型构建步骤如下:

步骤1):将特征集f随机划分为s个子特征集fi,j(j=1,2,...,s),则每个子属性集包含约m=d/s个特征;

步骤2):forj=1,2,...,s令xi,j表示训练样本集x在对应的特征子集fi,j中的样本;对xi,j进行自助采样,采样数据量为原始数据集的75%,并用x'来表示采样出的数据集;用pca对数据集x'进行特征提取。

步骤3):重复步骤2)可以获取到系数矩阵di,j,并可获得稀疏旋转矩阵ri如下:

根据对原始特征集的顺序按列重排该矩阵,得到旋转矩阵对应地分类器ti的训练集为

在预测阶段,对于每一个样本x,设表示分类器ti预测x属于类yi的可能性,则x属于某类的置信度为:

用置信度最大的类别μmax(x)作为x的类别。

本发明与现有技术相比,其显著优点:

1)高效率:通过静态分析技术提取权限、系统监听事件、敏感的api和权限率等多组特征,可以综合表征一个恶意软件,结合机器学习方法中旋转森林算法以及主成分分析算法从而高效的检测android恶意软件;

2)易扩展:在支持android平台的环境下,对于新出现的任意应用程序均可检测;

3)智能化:克服了传统的静态检测技术的对未知软件进行检测时准确率较低(即恶意软件特征的普适性较差)、提取信息较少以及提取特征中包含噪音等问题,且弥补了动态检测技术过程相对复杂、消耗资源较多以及训练不足导致高误报率等缺陷。

附图说明

图1是本发明的整体框架示意图。

图2是本发明中旋转森林模型的特征子集个数调参过程。

图3是本发明中旋转森林模型中基分类器个数调参过程。

图4是本发明创建的旋转森林模型的roc曲线。

图5是本发明中作为参照模型的svm模型的roc曲线。

具体实施方式

下面结合附图对本发明做进一步地描述。

从图1本发明的整体框架可知本发明主要是两部分工作,一部分是特征提取另一部分是分类器。在特征提取部分,通过apktool.jar反编译工具对所有训练集中app的apk文件进行反编译,然后进行分析和提取权限、系统监听事件、敏感api以及权限率等特征,对这些提取的特征进行pca处理从而达到特征的规范化以及保留特征中的最强主成分从而避免所提取特征中噪音的干扰,另外采用bootstrap自助采样法来进行样本干扰从而达到基学习器的最大多样性。在分类器部分,通过旋转森森算法构建android恶意软件预测模型。

一种高效的基于旋转森林的android恶意软件检测模型droiddet,其检测步骤如下:

步骤1):从android应用商店和国外的一个专门用于研究的病毒样本库http://virusshare.com/来获取正常android应用程序和恶意应用程序各1068个;

步骤2):使用apktool.jar反编译这些样本的apk文件,正常软件和恶意软件各选取600个作为研究对象进行统计分析构成训练集,其余apk文件构成测试集;

步骤3):抽取所有在恶意app和正常app中出现的权限、系统事件、请求的api作为特征,使用tf-idf或余弦相似度等方法计算每个特征的出现频次并计算某个特征在600恶意软件中出现的次数和在600个正常软件中出现的频次的比值,挑选高比值的特征作为构建预测模型时使用,共计抽取权限、系统检测事件、敏感api和权限率作四组特征。

表1是本发明所提取的四组特征中的部分特征。

表1

其中,本发明所提及的权限率定义如下:其中pr为定义的权限率,pn为该apk申请的权限数目,ss为该apk经过反编译后smali文件夹的大小(单位为mb),权限率的提出是基于如下假设,第一恶意软件通常存在权限滥用,第二通常一个正常的软件申请的权限越多,相应的功能也就越多,反编译后smali文件夹也就越大,因此一个软件的权限率也是一个检测恶意软件的典型特征;

步骤4):旋转森林模型的建立与检验,本发明通过第3)步确定了特征向量的格式后,对600个正常软件和600个恶意软件的反编译后的文件进行搜索,存在上述特征的,该维度即为1,不存在的即为0,再计算每个apk的权限率,将每个apk抽取出一个28维度的特征向量,共计1400个特征向量。使用matlab语言、pca算法实现和旋转森林算法实现来建立模型,对剩下的样本采用同样的方法组成测试集,进行模型验证,得到模型检测的正确率为88.26%。

表2是本发明所创建模型的预测效果与svm模型预测效果的比较。

表2

本发明所述的旋转森林模型,由如下方法实现:

假设x=(x1,x2,...,xn)t表示一个具有d个特征的训练样本集,用y=(y1,y2,...,yn)t表示训练样本集x中对应的样本类标号,f表示特征集,{t1,t2,...,tl}表示l个基分类器。其中在基分类器个数的情况如图3所示,当l=23时准确率接近90%,因此本发明采用的基分类器个数得l=23,旋转森林模型构建步骤如下:

步骤1):将特征集f随机划分为s个子特征集fi,j(j=1,2,...,s),则每个子属性集包含约m=d/s个特征,具体的特征集选择情况如图2所示,根据图2可知,当特征子集个数为4,7,14,28时差别不大,综合考虑计算成本和准确率等情况本发明采用的特征子集个数是7;

步骤2):forj=1,2,...,s令xi,j表示训练样本集x在对应的特征子集fi,j中的样本;对xi,j进行自助采样,采样数据量为原始数据集的75%,并用x'来表示采样出的数据集;用pca对x'进行特征提取。

步骤3):重复步骤2可以获取到系数矩阵di,j,并可获得稀疏旋转矩阵ri如下:

根据对原始特征集的顺序按列重排这个矩阵,可以得到旋转矩阵对应地分类器ti的训练集为

在预测阶段,对于每一个样本x,设表示分类器ti预测x属于类yi的可能性,则x属于某类的置信度为:

用置信度最大的类别μmax(x)作为x的类别。

置信评估标准:

为了评估本发明所创建的随机森林模型对android恶意软件的高预测性能,我们引入的评估标准分别是:敏感度(sensitivity),精度(precision),准确率(accuracy),马修斯相关性系数(matthewscorrelationcoefficient,mcc)和曲线下面积(areaundercurve,auc),它们的定义如下:

其中,tp(truepositive):真正例,是被分类器正确分类的正样本;tn(truenegative):真负例,是指被分类器正确分类的负样本;fp(falsepositive):指被错误地标记为正样本的负样本;fn(falsenegative):被错误地标记为负样本的正样本。另外auc和roc(receiveroperatingcharacteristic)曲线通常结合一起被用来评价一个二值分类器(binaryclassifier)的优劣,因为roc曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,roc曲线能够保持不变。在实际的数据集中经常会出现类不平衡(classimbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。通过图4本发明提出的旋转森林模型的roc曲线以及图5中经典的svm模型的roc曲线图可知,本发明优于svm模型,本发明所提出模型的auc可达88.85%,而svm模型的auc为85.96%,即本发明对auc提升了2.89%。

本发明在旋转森林集成算法中,通过对样本特征集的随机分割,采用特征变换策略(主成分分析法)有效地增大基分类器的差异性以及准确性,以获得更好的集成效果。虽然旋转森林算法尚未被应用于android恶意软件检测,但是该算法具有如下特点使其成为恶意软件检测的理想算法之一,1)当观测特征较多时旋转森林算法及其pca主成分分析相结合可以达到良好效果;2)旋转森林算法具有较好的预测能力,即使测试集包含大量的噪声数据;3)旋转森林算法不容易导致过拟合问题;4)旋转森林算法可以很好地处理多分类问题以及做出连续预测;5)旋转森林算法具有高准确性、容易实现和计算开销小等特点;6)旋转森林算法通过采用pca主成分分析(principalcomponentanalysis,pca)和自助采样法(bootstrap)并使用全部训练集来训练每一个基学习器,使其基分类器“好而不同”;7)旋转森林算法具备选择“最优特征”的特点从而避免噪音数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1