Page 121 - 《软件学报》2020年第11期
P. 121
汪洁 等:子图相似性的恶意程序检测方法 3437
Key words: malware detection; neural network; subgraph distributed representation; graph similar function
当今,恶意程序仍是信息安全的最大威胁之一,每年政府和企业因恶意攻击造成的损失就高达数百万元,甚
至可以说,恶意程序已成为一种可以盈利的商业模式 [1,2] .高额的利润聚集着大量的非法人员,使得恶意程序愈
发复杂,与之对应各种分析技术也相继出现,目前,恶意程序的分析方法可以分为静态特征分析方法和动态行为
分析.
• 静态特征分析方法主要是利用恶意程序二进制文件进行分析和检测,通过反编译恶意程序,提取指令
序列或系统调用等信息,并以此为特征建立恶意程序分析模型.然而,静态分析方法容易受到混淆技术
的干扰 [3,4] ,造成检测精度的下降.
• 动态行为分析方法弥补了静态特征分析方法的不足.动态行为分析方法是通过捕获恶意程序运行时
[7]
的行为特征,主流方式是使用系统调用 [5,6] 或资源依赖 来表示行为特征,并以此构建行为分析图,之后
再使用图挖掘算法提取出恶意样本中的恶意特征或子图,这些恶意特征能够有效地区分出恶意和正
[8]
常程序.如:Christodorescu 等人 率先提出了挖掘存在于恶意程序而非正常程序图的特有行为子
[9]
图;Park 等人 提出了基于 HotPath 如最大公共子图来捕获恶意程序行为特征.
移动平台上同样存在着静态 [4,10] 和动态分析 [7,11] .Fan 等人 [12] 通过构建频繁子图来表示同一家族的常见行
为,并将其用于安卓恶意程序家族分类.上述动态分析方法在挖掘特征子图过程中大多以频率 [12,13] 来确定子图
的效用,这意味着特征子图的效用取决于该子图出现在恶意程序样本中的次数.然而这些方法过多地强调了特
征子图出现的频率,而忽视了子图本身的属性.在这个问题上,Wuchner 等人 [14] 提出了基于压缩的恶意程序行为
检测,子图的效用不仅考虑了子图出现在恶意样本中频率,同时还考虑子图本身结构复杂性.作者在文中使用
Scoring 函数 MDC(maximum data compression)来计算子图的效用,即:当一个特征子图上的数据流在恶意程序
总数据流中所占的比重大,而在正常程序的总数据流中所占的比重小时,则认为该特征子图在检测恶意程序时
越有用.
然而,基于图的动态行为分析方法存在两个问题:(1) 这些方法大都依赖于图匹配,图匹配是一个 NP 完全问
题,不可避免地计算缓慢;(2) 方法中将挖掘出来的特征子图作为检测依据,却忽视了子图间的关系.子图作为分
类属性并不能等同于一般的属性,这是因为子图间存在着联系,例如,子图添加一个节点和一条边就可以变成另
一个子图.
针对这两个问题,本文提出了基于子图相似性的恶意程序检测方法,即 DMBSS.我们采用“逆拓扑标识”方
法将特征子图表示成字符串,子图的结构信息蕴含子符串内,使用字符串代替图的匹配.同时也将子图间的相似
性考虑进模型,这有利于提高模型的检测效果.子图间的相似性借鉴于神经语言模型,将图视作一种特殊的语
言,类似于词组成句子而子图组成图,然后利用神经网络将子图结构映射成高维空间的向量,并使得相似子图所
映射的向量在其向量空间距离也相近.这种映射主要是利用子图的“上下文”信息构建子图 Skip-Gram 模型,同
时,本文使用子图向量构建图相似函数,结合 SVM 分类器可以恶意程序进行检测.
本文的贡献如下.
• 本文使用“逆拓扑标识”将特征子图表示成字符串,子图的结构信息蕴含在字符串内,字符串间的匹配
比图更迅速.
• 本文基于神经网络实现了子图相似性的学习,使得相似子图在向量空间距离也相近.
• 实验结果表明,我们的方法精度与效率优于 MDC 方法.
本文第 1 节描述恶意程序检测方法的框架.第 2 节介绍恶意程序特征提取过程.第 3 节介绍特征子图嵌入
即子图的向量化.第 4 节介绍恶意程序检测模型构建.第 5 节展示实验结果.第 6 节陈述结论.
1 方法框架
本节主要介绍基于子图相似性的恶意程序检测的框架.如图 1 所示,整个框架分成 3 部分,即特征子图库构