### 基于卷积神经网络的恶意安卓应用行为模式挖掘
#### 一、引言与背景
近年来,随着智能手机的普及,安卓操作系统因其开放性和灵活性成为全球最受欢迎的移动平台之一。然而,这也使得安卓成为了恶意软件攻击的主要目标。根据谷歌最新发布的安卓生态安全报告,截至2019年10月,至少有1470万台安卓设备受到潜在有害应用程序(PHA)的威胁。为了保护用户数据安全,谷歌每天需扫描和验证的应用程序数量达到惊人的500亿次。
面对日益复杂的恶意应用,传统的检测手段面临着诸多挑战。一方面,基于签名、敏感权限的机器学习检测方法和基于字节码、操作码的深度学习检测方法容易受到基于Jacobian的攻击及混淆技术的影响,导致系统的鲁棒性较差。另一方面,虽然基于图匹配(控制流图和调用图)的检测系统在一定程度上提高了检测精度,但由于图相似性计算是NP难题,随着移动应用规模的增长,这种方法产生了难以接受的性能开销。此外,过度追求特征维度不仅增加了计算负担,还导致特征底层抽象,无法在高级语义层面上反映恶意应用的行为模式,这限制了研究人员对恶意特征行为模式的理解。
针对上述问题,本研究提出了一种新的解决方案:结合社交网络检测和卷积神经网络(CNN)技术,快速分析API调用图提取特征,输入CNN进行分类,同时保留恶意应用的高级语义信息,为后续的恶意应用特征行为模式研究提供支持。
#### 二、相关工作概述
为了对抗不断演变的恶意软件,研究人员提出了多种安卓恶意应用检测方法。早期的方法主要依赖于基于机器学习的技术,例如Drebin[4]使用多种静态分析技术从应用程序中提取尽可能多的特征,并将其嵌入到联合特征向量中以实现分类。然而,这类方法容易受到混淆技术的影响。随后,基于图的方法被提出,例如DroidSIFT[5]和Apposcopy[6],这些方法虽然提高了检测精度,但运行时开销巨大。MaMaDroid[7]利用调用图获得的抽象函数调用序列来构建行为模型,但由于庞大的功能集和调用图的提取过程,导致了较高的资源消耗。
基于深度学习的方法也被广泛研究,例如文献[8]和[9]通过将二进制应用程序转换为灰度或RGB图像,利用图像上的纹理布局或字节码映射来进行分类。尽管这些方法取得了一定成果,但提取的特征向量仍然是底层抽象信息,缺乏高级语义信息,不利于研究人员理解恶意应用的行为模式。
#### 三、系统设计与实现
##### 3.1 系统架构
本文提出的系统旨在利用卷积神经网络对未知安卓应用进行检测分类,并通过训练的模型理解恶意应用的行为模式。整个系统的操作流程可以分为五个主要步骤:
1. **API调用图提取**:通过静态分析从应用程序中提取API调用图,并标记出敏感API调用。
2. **社交网络检测**:采用高效的社交网络检测算法将调用图划分为不同的社区。
3. **敏感API统计与排序**:在良性和恶意数据集上进行统计计算,得到每个敏感API的敏感度,并按社区敏感度进行排序,构建规则尺寸的图像。
4. **卷积神经网络训练**:使用构建好的图像训练卷积神经网络模型,实现恶意应用的高效检测。
5. **行为模式理解**:运用卷积层梯度权重类激活映射(Grad-CAM)可视化算法来理解恶意应用的行为模式。
##### 3.2 关键技术与算法
1. **社交网络检测**:选择低开销的社交网络检测算法,快速将调用图划分为不同的社区,以减少混淆攻击的可能性并降低处理开销。
2. **敏感API排序**:通过对良性和恶意数据集的统计计算,得到每个敏感API的敏感度,并按社区敏感度进行紧凑排列,构建规则尺寸的图像,以便输入到卷积神经网络中。
3. **卷积神经网络(CNN)**:设计适合特定图像尺寸的卷积神经网络模型,并对其进行训练,以实现恶意应用的高效检测。
4. **Grad-CAM可视化**:利用卷积层梯度权重类激活映射(Grad-CAM)可视化算法,通过训练好的模型提供恶意应用的可疑API调用信息,为后续的研究提供支持。
#### 四、实验结果与分析
本研究使用了包含13365个良性应用和13514个恶意应用的数据集进行全面评估。实验结果显示,该系统能够在平均23秒内以高达93%的准确率完成应用检测,并且能够准确找到恶意应用中最可疑的API调用组合。这不仅证明了该方法的有效性,也为后续的研究提供了宝贵的信息。
#### 五、结论
本文提出了一种新颖的安卓恶意应用检测系统,该系统结合了社交网络检测技术和卷积神经网络,不仅提高了检测效率和准确性,还能保留恶意应用的高级语义信息。通过利用训练好的模型和Grad-CAM可视化算法,该系统能够帮助研究人员更好地理解恶意应用的行为模式,为未来的恶意软件防御研究提供了有力的支持。