安卓应用特征提取与恶意检测技术解析
1. 特征提取概述
在分析安卓应用时,我们可以为意图定义和提取二进制特征与统计特征。这些特征有助于我们更好地理解应用的行为,进而判断其是否为恶意应用。主要的特征提取方向可分为静态特征和动态特征。
2. 静态特征提取
2.1 API调用特征
安卓平台提供了一系列API包,开发者可利用这些包构建应用。我们可以基于以下规则为API包和类创建特征:
- 为每个API包创建二进制特征,依据其是否被调用。
- 为每个API包内的类创建二进制特征,依据该类是否被调用。
- 为API包创建数值特征,追踪应用调用包内类或类内函数的次数。
例如,在分析某个应用时,我们可以统计其对各个API包的调用情况,构建特征向量。
2.2 网络元素特征
安卓应用的源代码可能包含众多网络元素,如IP地址、URL和主机名。我们可以收集这些元素来生成二进制特征和统计特征,例如文件中列出的主机名数量,或者代码中引用的外部URL数量。
同时,恶意软件作者可能会采用各种手段使静态分析变得困难,如使用难以理解的变量名、加密部分代码以及采用反射等混淆方法。我们可以定义静态特征来描述应用代码中是否存在这些现象以及它们的出现频率。
3. 动态特征提取
动态分析侧重于观察应用的运行时属性和行为,我们可以将动态分析的结果转化为机器学习特征。为了生成这些特征,我们需要向应用提供一组输入,例如应用与用户的交互(如monkey命令),多次运行应用并分析结果。此外,还可以通过分析应用运行时产生的网络流量(如使用tcpdump和
超级会员免费看
订阅专栏 解锁全文
5321

被折叠的 条评论
为什么被折叠?



