这篇文章用马尔可夫链建模API序列,依据恶意和正常的APP虽然可能调用相同的API序列,但是调用顺序不同。文章用的是纯静态分析的方法.
《MAMADROID: Detecting Android Malware by Building Markov Chains of Behavioral Models》NDSS 2017
方法:四步走
overview
文章其实用的并不是API,而是用的API所属的family或者package,如上图,一个API,属于一个类;类属于package;package属于family。作者也是有苦衷的,静态分析得到的API太多了,下面详细说。
第一步拿到apk用soot等工具反编译出Call Graph;第二步从Call Graph中遍历出API序列,同时抽象成package/family序列;第三步马尔可夫链建模;第四步二分类。