基于图的安卓恶意软件检测方法综述
此篇文章只总结已开源或能够找到复现源码的工作。
这些方法之间的区别主要是图嵌入方式。
MalScan
MamaDroid
阅读主要关注于算法如何实现的,分为四个阶段:调用图提取、序列提取、构建马尔可夫链和特征向量、分类器。
MaMaDROID不使用原始API调用序列,而是将每个调用抽象为其包或其族。
调用图提取
Soot工具用于提取函数调用图,FlowDroid工具用于确保上下文和流是被保留的。
序列提取
有了调用图之后从调用图中提取API调用序列。
首先,标识调用图中的一组入口节点,即没有传入边的节点(例如,如果app中没有来自任何其他调用的传入边,则图2中代码段中的执行方法是入口节点)。然后,它枚举从每个入口节点可以到达的路径。在此阶段确定的所有路径集构成API调用序列,用于构建马尔可夫链行为模型和提取特征(参见第II-D节)。
构建马尔可夫链和特征向量
分类器
随机森林、1近邻(1-NN)、3近邻(3-NN)和支持向量机(SVM)