Page 279 - 《软件学报》2026年第4期
P. 279
1720 软件学报 2026 年第 37 卷第 4 期
响模型的检测结果.
针对基于序列的深度学习恶意软件分类器, Tan 等人 [47] 提出基于深度 Q 网络 (deep Q-network, DQN) 和启发
式回溯搜索的对抗攻击方法, 构造针对序列的扰动动作集, 映射修改到源代码, 生成满足实际问题空间约束的扰动
序列. 此外, Zhang 等人 [48] 提出了 SeqAdver 攻击方法, 从良性 APK 中提取 Smali 代码, 过滤用户可见 API 和 Intent,
归一化处理后, 按序列位置或启动类注入目标文件, 实现自动有效负载构造与注入, 生成对抗性安卓恶意软件. 针
对基于图结构模态 (例如控制流图、函数调用图等) 进行恶意软件检测的模型, Zhao 等人 [17] 提出了一种基于结构
化扰动生成对抗性函数调用图的攻击方法, 能够有效地绕过基于函数调用图的恶意软件检测模型. Li 等人 [49] 利用
通过向安卓恶意软件中插入不会被执行的函数调用, 生成对抗性函数调用图使恶意软件检测模型产生错误分类.
除此之外, He 等人 [50] 提出了一种通用的对抗性攻击方法, 通过扰动搜索树构建预定义的扰动操作, 并基于模型的
预测置信度变化优化搜索过程, 通过向恶意软件插入良性的组件、权限等元素构造对抗性恶意软件绕过恶意软件
检测器.
随着对抗样本攻击的快速发展, 研究人员也提出一系列的防御方法, 旨在提高人工智能模型抵御对抗样本攻
击的鲁棒性 [51,52] . 特别在图像分类、语音识别等传统领域中, 针对对抗样本攻击的防御方法主要分为数据级别的
防御方法和模型级别的防御方法两大类 [53] . 其中, 数据级别的防御方法主要通过对输入样本进行一定的处理进而
消除其中可能被添加的对抗扰动, 常见的数据处理方法包括去噪、滤波、特征预处理、特征编码 [24] 等; 而模型级
别的防御方法主要通过改进或者加强人工智能模型及其训练过程来提高针对对抗样本攻击的鲁棒性, 常见的方法
包括蒸馏防御 [54] 、梯度正则化 [55] 、对抗训练 [56] 等. 然而, 由于恶意软件通常是以二进制的形式存在, 并且具备高
度复杂的代码结构和行为逻辑, 因此上述图像分类、语音识别等领域中的防御方法或者无法直接应用到恶意软件
检测领域中, 或者应用后所取得的防御效果极其有限 [16] . 因此, 当前亟需针对恶意软件检测领域, 特别是针对安卓
恶意软件检测模型的特点, 设计相对应的可以抵御对抗性恶意软件的防御方法, 进而提高安卓恶意软件检测方法
的鲁棒性.
2 RMDroid 设计与实现
2.1 RMDroid 总览
与一般安卓恶意软件检测任务不同的是, 安卓恶意软件鲁棒检测任务不仅要求能够正确地识别善意软件和一
般性恶意软件, 而且需要能够抵御对抗攻击的干扰, 即能够正确地识别攻击者生成的对抗性恶意软件. 形式上, 给
z
定一个待测安卓软件 z, 恶意软件鲁棒检测任务的目的是预测 为恶意软件的概率 p z ∈ [0,1], 并进一步检测其是否
y z = 1 代表 为恶意软件, 既包括一般性恶意软件, 也包括对
z
为恶意软件 y z ∈ {0,1}, 其中 y z = 0 代表为善意软件, 而
抗性恶意软件.
为此, 如图 1 所示, 本文提出一种基于多模态融合学习的安卓恶意软件鲁棒检测方法 RMDroid, 在保证其具
备准确识别一般性恶意软件的有效性基础上, 大幅度提高其识别对抗性恶意软件的鲁棒性. 具体而言, 本文所提出
的 RMDroid 鲁棒检测方法主要包括 3 个核心部分.
(1) 面向安卓恶意软件的多模态特征提取: 首先, RMDroid 从待测安卓软件中提取与挖掘不同模态的特征信
息, 具体包括灰度图模态特征、API 调用序列模态特征和控制流图模态特征. 详见第 2.2 节.
(2) 基于深度学习模型的多模态特征学习: 其次, 基于上述所提取的安卓软件多种模态特征信息, RMDroid 分
别利用相应的深度学习模型, 包括卷积神经网络、循环神经网络和图神经网络, 充分地学习灰度图模态、API 调
用序列模态和控制流图模态的深层语义信息, 从而得到相应模态的特征向量. 详见第 2.3 节.
(3) 基于鲁棒融合学习的恶意软件鲁棒检测: 最后, 针对所有学习得到的多模态特征向量, 进一步提出基于鲁
棒融合学习的恶意软件鲁棒检测模型, 通过降低甚至消除多模态特征中受到对抗攻击干扰的模态特征对最终恶意
软件预测的影响, 从而提升 RMDroid 抵御对抗攻击的鲁棒性. 详见第 2.4 节.

