一种基于卷积神经网络的Android恶意软件检测方法与流程

文档序号:11432523阅读:1970来源:国知局
一种基于卷积神经网络的Android恶意软件检测方法与流程

本发明涉及android平台上恶意代码检测研究领域,为了能够更好地保护android平台用户信息的安全性,提出一种基于卷积神经网络的android恶意代码样本分类检测方法,该方法能够准确识别恶意软件所属类别,从而有效地实现对恶意软件的检测。



背景技术:

近几年,恶意软件已经成为威胁网络和信息安全的关键因素之一。据symantec的2016年度互联网安全威胁报告透露,2015年新增恶意软件数量达4.3亿个,其中涉及隐私窃取或者泄漏的个人信息超过5亿条。由于恶意代码检测技术的局限性,有大量恶意代码无法有效查杀。特别是进行代码混淆的恶意代码及其变种的不断出现,是恶意代码检测形势日益严峻的根本原因。android平台是当前主流的两大移动终端平台之一,android移动终端恶意代码家族逐年不断增长,同时,恶意代码的变种数目也急剧增长,这表明恶意代码开发人员更多的是对原型恶意代码做稍微修改或重新打包进而衍生出新的变种进行传播。因此需要能快速有效地检测出变种病毒的检测方法。

恶意代码检测技术可以分为两类,分别为静态恶意代码检测和动态恶意代码检测。静态恶意代码检测是在不运行代码的情况下,利用反编译技术,采用控制流分析、数据流分析和语义分析等方法来识别应用程序的行为特征。这种方法具有快速、高效等优点,但是难以对抗代码混淆等保护技术。动态恶意代码检测则是关注于应用程序实际运行的行为,通过在一个可执行的环境中运行待检测应用程序并实时监控其系统调用、网络访问、文件操作和内存修改等行为,来判断该应用程序是否具有恶意行为。与静态恶意代码检测方法相比,动态恶意代码检测方法无法有效地对所有代码进行审计,因为有些代码需要在特殊条件下才会被触发。在恶意代码检测领域中,国内外许多学者已经进行了大量的研究工作。王蕊和冯登国(wangrui,fengdeng-guo,yangyi,supu-rui.anmalwaredetectionmethodbasedonthesemanticoffeatureextraction[j].journalofsoftware,2012,2:378-393)提出一种基于语义分析的静态恶意代码行为特征提取的检测方法。孔德光和谭小彬等(kongde-guang,tanxiao-bin,xihong-sheng,gongtao,shuaijian-mei.liftingmultidimensionalcharacteristicstestingconfusemaliciouscode[j].journalofsoftware,2011,3:522-533)提出从统计特性出发并结合代码中函数调用以及系统调用流程图,对家族恶意代码进行检测,这些静态检测方法有较高的检测效率,但是对使用代码混淆技术的恶意代码抵抗力不强。美国佐治亚理工学院的dinaburg提出(dinaburga,royalp,sharifm,etal.ether:malwareanalysisviahardwarevirtualizationextensions[c],proceedingsofthe15thacmconferenceoncomputerandcommunicationssecurity.acm,2008:51-62)通过建立一个虚拟的应用程序执行环境来监听待检测应用程序运行时的内存操作、涉及的特权层级、系统调用等事件,针对这些事件来识别应用程序的恶意行为。西班牙德乌斯托大学的santos提出(santosi,brezof,nievesj,etal.idea:opcode-sequence-basedmalwaredetection[c],internationalsymposiumonengineeringsecuresoftwareandsystems.springerberlinheidelberg,2010:35-43)利用信息论中方法来计算应用程序中各类特征间的关联程度,通过计算待检测应用程序与已知的恶意软件之间的联系来确定其是否具有恶意行为。西班牙蒙特拉贡大学的burguera(burguerai,zurutuzau,nadjm-tehranis.crowdroid:behavior-basedmalwaredetectionsystemforandroid[c]//proceedingsofthe1stacmworkshoponsecurityandprivacyinsmartphonesandmobiledevices.acm,2011:15-26)提出一种直接将收集器和检测器嵌入到android操作系统的方法来收集广大用户手机中应用程序的行为信息,在云端进行检测并将检测的结果及时通知用户。卢森堡大学的kevin(allixk,bissyandétf,jéromeq,etal.empiricalassessmentofmachinelearning-basedmalwaredetectorsforandroid[j].empiricalsoftwareengineering,2016,21(1):183-211)利用机器学习的方法来提取android应用程序中所使用权限的特征,并用于恶意代码检测。台湾科技大学的dong-jiewu学者(wudj,maoch,weite,etal.droidmat:androidmalwaredetectionthroughmanifestandapicallstracing[c],informationsecurity(asiajcis),2012seventhasiajointconferenceon.ieee,2012:62-69)则以大量的样本数据为基础,从中提取与已知恶意软件的特征,并利用这些特征来用于对新样本的检测。这些方法都是通过提取恶意软件的特征来对未知软件进行识别,由于实际应用中软件的多样性,容易出现误检的情况。本发明提出通过从恶意软件的变种出发,利用深度学习的思想来检测出同种类的恶意软件。



技术实现要素:

本发明针对当前android平台上恶意软件样本基数大、变种数多的现状,提出一种能够快速高效地检测出android平台中同种类型恶意软件的方法,框架图如同1所示。该方法结合卷积神经网络,通过深度学习来实现对恶意软件样本的自动分类,具有良好分类识别效果。

本发明是在拥有大量样本数据的基础上,提取出每个apk应用程序包中dex文件,并利用simhash以及djb2这两种哈希算法来生成各个apk包所对应的图像数据。再将这些已经预先分好类别的图像数据作为输入值,且以n×1的向量作为输出,利用大量已知类别样本数据来对卷积神经网络进行训练。在经过多轮迭代训练后将得到一个可用于对新恶意软件进行分类识别的分类器,记为cn。对于每一个新的未知软件,利用上面相同的方法生成对应的图像数据,记为x。再将该图像数据作为已训练好的分类cn的输入值,计算对应的输出值y=cn(x),其中y为1×n的向量,利用欧氏距离计算该向量与已知向量之间的距离,当该向量与某一类别之间的欧式距离小于阈值ε时,则表示新样本属于该类别,也表明检测到了已知类别的恶意软件。

与现有技术相比,本发明具有如下优点:

本方法利用深度学习的思想,对恶意软件进行分类,根据分类再识别,与其他检测方法相比,具有操作简单,识别准确率高且检测速度快的特点。该方法只需要将大量的恶意软件样本作为训练集合,经过多代迭代训练即可得到良好的分类器。在对新恶意软件进行识别时,直接用这一已训练的分类器就可计算得出。

附图说明

图1恶意软件分类识别系统框架图。先利用已知类别的android恶意软件样本库来训练,图中编号1所示;再用训练得到的恶意软件分类器来对未知软件进行检测,图中编号2所示。

图2apk文件转化为图像数据流程图。

图3卷积神经网络结构图。

具体实施方式

下面结合附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

参见图2,首先需要将apk包转化为图像数据,具体步骤如下:

利用反编译技术,提取出apk包中的dex文件,并将其划分为n组,每一组大小为m/n,其中m表示dex文件的长度,n为分组的数量。由每一个数据组来长生一个像素点。

计算像素点所在位置,记为(x,y)。通过利用simhash算法来产生16bit的哈希值,并将前8bit作为x值,后8bit作为y值。

计算每一个点的rgb颜色,记为(r,g,b)。通过利用djb2算法来产生32bit的哈希值,并将24~17bit作为r值,16~9bit作为g值,8~1bit作为b值。

利用2,3步骤来循环计算每一分组,即可将每一个dex文件分别转化为256×256的rgb图像数据。

在得到图像数据后,将大量的已知类别的样本数据来对卷积神经网络进行训练,如图3所示。

在训练的过程中使其满足同一种类的apk之间输出值的欧式距离尽可能小,不同种类的apk之间输出值的欧式距离尽可能大。目标函数设置为:

其中,g表示卷积神经网络中相同种类apk输出值的集合,g’表示卷积神经网络中不同种类apk输出值的集合,dis()表示两向量欧式距离。β为各部分权重值,通过实际测试结果进行调节。

最后,利用训练好的分类器cn来对未知软件进行检测,并计算该未知软件在经过分类器计算后的输出向量与各已知类别恶意软件之间的最小距离,式子如下:

其中cn表示已经训练好的分类器,p表示未知软件转化成的图像数据,表示第i类别中所有恶意应用程序在经过cn分类器计算后得到的向量的平均值,n表示已知的恶意软件的类别数量。

当e小于阈值ε时,则表示新样本属于该类别,则表示检测到已知类别的恶意软件。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

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