一种基于词向量和深度神经网络的Android恶意代码检测方法技术

技术编号:19693212 阅读:43 留言:0更新日期:2018-12-08 11:31
一种基于词向量和深度神经网络的Android恶意代码检测方法,包括如下步骤:1)利用静态分析对APK进行自动化分析,提取权限、Action、敏感API调用等特征,并使用随机森林进行特征选择工作;2)应用word2vec模型将特征转化成词向量,具体过程如下:2.1)首先将特征分成三类,将每一类的特征组成一句话,那么每个APK的特征列表可看做是包含三个句子的特征文档;2.2)使用word2vec的CBOW模型进行训练,最终生成N×(K×X)维矩阵,其中N为样本个数,K为词向量维度,X为特征数;3)使用深度置信网络进行特征训练,分类,最终可识别恶意应用。本发明专利技术精度较高,时效性较好。

【技术实现步骤摘要】
一种基于词向量和深度神经网络的Android恶意代码检测方法
本专利技术涉及恶意代码分析
,尤其是一种Android恶意应用分类方法。
技术介绍
移动互联网迅速发展,智能手机出货量激增,尤其是以生产Android系统智能手机的国内厂商,同时,移动应用的恶意代码规模也呈现指数级增长。根据汇总CVE数据的网站出具的2017年度CVEDetails报告显示,Android系统以842个漏洞位居产品漏洞数量榜首,与2016年523个相比,增长61.0%。如今在使用的恶意检测方法包括基于特征序列和基于应用行为的检测方法。恶意查杀软件多使用前者,安全厂商尽可能第一时间提取恶意应用的特征,更新特征库,从而进行匹配,误报率低,但存在更新滞后,难以抵御短时间爆发的恶意应用。恶意检测平台通常会使用后者,基于应用行为的检测方法需要提取应用的大量信息。例如,权限、函数调用等,以及沙箱动态运行的数据,对于新恶意应用的检测优于基于特征的方法,但是实现复杂,资源消耗大。亟待提出一种高效,高时效性的Android恶意检测方法。恶意代码分析中最重要的就是对特征的表征。DREBIN采用静态分析,尽可能多的提取应用特征(例如权限、API调用、网络地址等)来表征恶意应用;Maldetect从DEX文件中提取Dalvik指令,通过符号化对其进行简化,再将指令序列进行N-gram编码作为分类的输入特征;DroidSieve以资源和语义为中心提取海量特征,并对特征进行排序,寻找核心特征;FrequenSel根据特征在恶意应用和良性应用程序之间的频率差异,提出了一种特征选择算法;HinDroid,提取API构建结构化的异构信息网络,表征了API之间的关系。通过对提取的特征进行深度的解析表征使得分类的效果优于传统的检测方法。YiLuan等人在口语理解任务中,将词向量作为神经网络的输入层,缓解了过度训练的问题;EdwardRaff等人将PEheader中的字节通过word2vec转化为词向量,将特征映射到高维空间,用于深度神经网络的输入层。多项研究工作表明,通过将特征转化成词向量用作深度神经网络的输入层,对于分类任务有较好的应用。随着深度学习的发展,在Android恶意分析领域也有很好的应用。HinDroid提取API构建结构化的异构信息网络,提取多条元路径后用多核的架构来集成不同的相似度方法来构建识别能力更强的分类器;DroidDetector提取Android应用中的权限、敏感API和动态行为数据,首次使用深度学习模型——深度置信网络进行分类,取得较好的效果;MalDozer从DEX文件中提取出未经处理的API函数调用,将其离散化后,输入到卷积神经网络进行训练与分类,并且在多个公开数据集进行测试;Deep4MalDroid提取Linux系统内核调用,并构造加权有向图,使用深度置信网络进行恶意分类。
技术实现思路
为了弥补了已有Android恶意应用分类中特征提取和表征的不足,以及深度学习的效率问题,本专利技术提供一种精测精度较高、误报率较低的基于词向量和深度神经网络的Android恶意代码检测方法。本专利技术解决其技术问题所采用的技术方案是:一种基于词向量和深度神经网络的Android恶意代码检测方法,所述检测方法包括如下步骤:1)APK文件特征提取利用静态分析对APK进行自动化分析,将APK文件逆向获取smali代码和Androidmanifest.xml文件,从smali代码中解析出敏感API和字符串,从xml文件中解析出权限和Action特征,并使用随机森林进行特征选择工作;2)特征向量化应用word2vec模型将特征转化成词向量,过程如下:2.1)首先将特征分成三类,将每一类的特征组成一句话,那么每个APK的特征列表可看做是包含三个句子的特征文档;2.2)使用word2vec的CBOW模型进行训练,最终生成N×(K×X)维矩阵,其中N为样本个数,K为词向量维度,X为特征数;3)基于词向量特征的分类使用深度置信网络进行特征训练,分类,最终可识别恶意应用。本专利技术的技术构思为:首次将词向量和深度神经网络两种模型结合用于Android恶意应用分类,并根据Android应用的特点提取多类特征,特征选择,再特征词向量化后与深度神经网络模型结合,用于恶意分类,具有精度高且误报率低的特点。基本思路是从Android应用中提取4类特征,使用随机森林模型计算出平均不纯度减少用于特征选择,精简一些对模型学习意义不大的特征,然后利用word2vec将特征转化为词向量,最后送入深度置信网络中进行建模分类,通过softmax分类器输出,判断应用程序是否为恶意应用。具体流程如图1所示,使用Apktool工具将APK文件逆向,提取反编译后的smali文件和AndroidManifeast.xml。然后从这两部分中解析出敏感API、权限等特征,经过特征选择后,输入到word2vec模型中,每个特征用100维的词向量表示,最后,经过训练输出所有的特征向量,该特征向量可用于输入到深度神经网络中去。本专利技术的有益效果主要表现在:(1)可快速提取Android应用特征,生成特征向量,更好的表征恶意应用。(2)与当前业界主流的方法相比,可更有效地进行Android恶意应用分类,检测精度高、误报率低。(3)与其他深度学习方法对比,运行速度更快,效率更高。附图说明图1是基于词向量和深度神经网络的Android恶意代码检测方法的流程图。图2从APK文件中提取的特征分类图。描述了提取特征的类别。图3是特征提取的流程图。详细描述特征提取过程的步骤。图4是深度神经网络训练的流程图描述了本专利技术中用到的深度神经网络训练的步骤。图5是深度神经网络用于Android恶意检测的模型图。描述深度神经网络用于本专利技术中的具体网络图。具体实施方式下面结合附图对本专利技术作进一步描述。参照图1~图5,一种词向量和深度神经网络的Android恶意代码检测方法,包括以下步骤:1)APK文件特征提取APK文件可看做是一个压缩文件,通过Apktool工具解压、反编译后,可以看到res、smali、AndroidManifeast.xml等文件结构,其中res文件夹中包含Android应用的所有资源文件,包括字符串,图片等;smali文件夹包含的是对dex文件(Dalvik虚拟机可执行文件)反编译而来的源码文件;AndroidManifeast.xml包含的是Android应用的基本信息,例如包名,四大组件等。需要提取的特征主要来自于smali源码和AndroidManifeast.xml文件。在此之前,已经整理了一份特征列表,包含需要提取的敏感API和权限等所有特征。根据列表,首先从smali源码中提取敏感API,需要直接对所有的smali文件进行解析,匹配相关的敏感API,建立特征文档。其次,从AndroidManifeast.xml文件中提取其余特征,通过对XML文件解析,匹配到相应特征后,也添加到特征文档中。提取步骤如图3所示。提取出初始的特征文档后,输入到随机深林模型中,通过计算每个特征的平均不纯度,来进行特征选择,最终选取能够有效表征恶意应用的特征。2)特征向量化常见的特征向量化的方法有很多,可以通过样是否包含某一本文档来自技高网
...

【技术保护点】
1.一种基于词向量和深度神经网络的Android恶意代码检测方法,其特征在于,所述检测方法包括如下步骤:1)APK文件特征提取利用静态分析对APK进行自动化分析,将APK文件逆向获取smali代码和Androidmanifest.xml文件,从smali代码中解析出敏感API和字符串,从xml文件中解析出权限和Action特征,并使用随机森林进行特征选择工作;2)特征向量化应用word2vec模型将特征转化成词向量,过程如下:2.1)首先将特征分成三类,将每一类的特征组成一句话,那么每个APK的特征列表可看做是包含三个句子的特征文档;2.2)使用word2vec的CBOW模型进行训练,最终生成N×(K×X)维矩阵,其中N为样本个数,K为词向量维度,X为特征数;3)基于词向量特征的分类使用深度置信网络进行特征训练,分类,最终可识别恶意应用。

【技术特征摘要】
1.一种基于词向量和深度神经网络的Android恶意代码检测方法,其特征在于,所述检测方法包括如下步骤:1)APK文件特征提取利用静态分析对APK进行自动化分析,将APK文件逆向获取smali代码和Androidmanifest.xml文件,从smali代码中解析出敏感API和字符串,从xml文件中解析出权限和Action特征,并使用随机森林进行特征选择工作;2)特征向量...

【专利技术属性】
技术研发人员:陈铁明毛青于
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1