收稿日期:20190909;修回日期:20191023 基金项目:国家自然科学基金资助项目(U1636208)
作者简介:李凡(1996),女,河南濮阳人,硕士,主要研究方向为网络空间安全、深度学习等(lifanwsx@163.com);易军凯(1972),男,教授,博
导,博士,主要研究方向为网络空间安全.
代码向量深度学习的恶意 Android应用检测方法
李 凡,易军凯
(北京信息科技大学 自动化学院,北京 100192)
摘 要:目前针对恶意 Android应用的静态检测方法大多基于对病毒哈希值的分析与匹配,无法迅速检测出新
型恶意 Android应用及其变种,为了降低现有静态检测的漏报率,提高对新型恶意应用的检测速度,提出一种通
过深度网络融合模型实现的恶意 Android应用检测方法。首先提取反编译得到的 Android应用核心代码中的静
态特征,随后进行代码向量化处理,最后使用深度学习网络进行分类判别。该方法实现了对恶意应用高准确度
的识别,经过与现存方法的对比分析,验证了该方法在恶意代码检测中的优越性。
关键词:代码向量化;恶意应用检测;深度学习
中图分类号:TP39304 文献标志码:A 文章编号:10013695(2021)02044054904
doi:10.19734/j.issn.10013695.2019.09.0676
CodevectordeeplearningbasedmaliciousAndroidapplicationdetectionapproach
LiFan,YiJunkai
(InstituteofAutomation,BeijingInformationScience&TechnologyUniversity,Beijing100192,China)
Abstract:Atpresent,thestaticdetectionmethodsformaliciousAndroidapplicationsaremostlybasedontheanalysisand
matchingofvirushashvalues
,whichcannotdetectnewmaliciousAndroidapplicationsandtheirvariantsimmediately.Inorder
toreducethefalsenegativerateoftheexistingstaticdetectionandimprovethedetectionspeedofnewmaliciousapplications,
thispaperproposedamaliciousAndroidapplicationdetectionmethodimplementedbyadeepnetworkfusionmodel.Thisap
proachextractedthestaticfeaturesinthecorecodeoftheAndroidapplicationobtainedbydecompiling.Thencarriedoutthe
codevectorizationprocessing
,andusedthedeeplearningnetworktoclassifyanddiscriminate.Thisapproachenabledidentifi
cationofmaliciousapplicationswithhighaccuracy,andthecomparativeanalysiswiththeexistingapproachesvalidatesthesu
periorityofthisapproachinmaliciouscodedetection.
Keywords:codevectorization;maliciousapplicationdetection;deeplearning
0 引言
近年来随着 Android智能手机迅速普及,用户量节节攀
升,使用者享受着信息社会带来的便捷。
Android平台独具的
开源性、系统廉价性给用户带来各种功能的应用软件的同时,
新型恶意 Android应用也层出不穷,Android源码安全检测技
术的创新需要得到极大重视
[1,2]
。
目前对象为恶意 Android应用的主流检测方法主要有静
态分析和动态分析。其中,静态分析着重于通过分析软件的源
码文件来进行恶意特征码匹配
[3~5]
,动态分析则利用软件在运
行过程中的操作行为进行分析,分析对象主要是软件产生的执
行信息(文件操作、权限调用等)。近年来,深度学习与机器学
习技术成为了数据科学中一个非常活跃的分支,被广泛应用于
文本、图像等对象的检测、识别与分类任务中,在恶意
Android
应用检 测 方 面 也 不 例 外。McLaughin等人
[6]
用 DCNN(deep
convolutionalneuralnetwork)对文本中的词向量以特定尺寸的
卷积窗口进行卷积抽象,提取词向量序列中的特征信息,卷积
神经网络在抽取局部特征信息时能起到较好的效果,但是会忽
略文本上下文信息。Yuan等人
[7]
使用了一个主要基于受限玻
尔兹曼机的 DBN(deepbeliefnetwork),首先人工定义部分特
征,再使用 DBN学习深层次的特征,其模型效果过于依赖人工
预定义的特征。Pascanu等人
[8]
研究采用 RNN(recurrentneu
ralnetwork)来处理输入的 API(applicationprogramminginter
face)序列,并加入最大池化层,达到从不定长的输入序列中提
取定长短特征序列的目的,
RNN的结构使其常用于处理具有
逻辑顺序的短文本对象,但恶意 Android应用具有较长的 API
序列。Kolosnjaji等人
[9]
同样采用卷积网络和长短期记忆网络
分析系统调用序列,但他们仅对恶意调用序列进行建模分类,
特征信息不够全面。
McWilliams等人
[10]
实现了一种基于主动
贝叶斯分类的机器学习方法来实现可疑 Android应用的分类。
Caviglione等人
[11]
成功地通过深度学习算法检测可疑软件的
信息数据交流,但只使用交流信息进行实际检测会有较高的误
判概率。赵炳麟等人
[12]
选择 CNN对处理后的 API调用图进
行恶意代码同源性分析,此方法对大规模数据的适用性仍待验
证。崔弘等人
[13]
对二进制文件和反编汇操作码进行特征融合
和深度处理,提高了检测准确性,但此方法只适合少量样本的
场景。以 上 通 过 各 种 深 度 学 习 与 机 器 学 习 方 法 进 行 恶 意
Android应用检测的研究说明检测模型正在向多技术融合方向
发展,CNN、RNN、DBN等神经网络不单在文本或图像检测中
发挥重要作用,在恶意 Android应用检测方面也有巨大潜力。
本文在模型构架、隐层配置、输入数据结构等方面进行改进,使
用多维度优化以显著提高模型的整体性能。
针对以往学界研究的不足,本文提出了一种针对代码向量
分类的卷积网络结构 DTCNN(deeptextconvolutionalneuralnet
work),并建立一种 DTCNN与 LSTM(longshorttermmemory)相
结合的混合模型,利用与其他模型对比的纵向实验验证该模型
在恶意 Android应用检测上的优越性,包括以下内容:
a)抽 取 海 量 样 本 数 据 的 代 码 向 量 化 描 述 作 为 模 型 的
第 38卷第 2期
2021年 2月
计 算 机 应 用 研 究
ApplicationResearchofComputers
Vol38No2
Feb.2021