Page 286 - 《软件学报》2026年第4期
P. 286
凌祥 等: RMDroid: 基于多模态融合学习的安卓恶意软件鲁棒检测 1727
i=N (
1 ∑ )
⌢
L = − ⌢ y log(p z i )+(1−y )log(1− p z i ) (13)
N z i z i
i=1
⌢
其中, N 为训练集中所有安卓软件的总数量, p z i 代表第 i 个安卓软件被预测为恶意软件的概率, 而 y 代表第 个安
i
z i
卓软件的真实标签值, 即 0 代表善意软件, 1 代表恶意软件.
具体而言, 为了充分地训练本文所提出的中多模态特征学习中的深度学习子模型, 本文首先单独训练只针
对单个模态的子模型参数, 即灰度图模态特征学习模型 RMDroid(img)、API 调用序列模态特征学习模型
RMDroid(api)、控制流图模态特征学习模型 RMDroid(cfg); 然后, 将针对单个模态的子模型参数对完整的鲁棒检
测模型进行初始化, 并进一步利用公式 (13) 训练包含 F robust 在内的整个基于多模态融合学习的安卓恶意软件鲁
棒检测模型 RMDroid.
3 实验评估
首先在第 3.1 节中对本文实验评估中所用的实验数据、评价指标、对比的基线检测方法、实验环境及参数
设置等实验设置进行详细介绍, 然后在第 3.2 节中对相关实验结果进行分析.
3.1 实验设置
3.1.1 实验数据
AndroZoo 是由 Allix 等人 [69] 在 2016 年开始从谷歌官方 Google Play 应用程序市场收集并构建的包含大量安
卓软件的数据集, 每个安卓软件不仅包括应用程序 APK 本身, 而且还包括相应的哈希值、APK 大小、被 VirusTotal
杀毒引擎检测的结果列表, 被 VirusTotal 杀毒引擎检测的日期等. 由于 AndroZoo 数据集不仅数据规模巨大, 而且
包含权威杀毒引擎 VirusTotal 的检测结果, 因此 AndroZoo 及其相关数据集已经被广泛地用于评估安卓恶意软件
检测任务中 [17,18,70,71] .
为了充分地评估本文所提出的 RMDroid 检测有效性和鲁棒性, 本文采用了与经典安卓恶意软件检测方法
[18] [17]
MalScan 和最新安卓恶意软件对抗攻击 HRAT 相同的实验数据, 并且这些实验数据全部来源于 AndroZoo 数
D. 与此同时, 考虑到恶意软件检测方法的有效性评估存在概念漂移 (concept drift) 的问题 [72] , 即随着时
据集, 记为
间推移, 之前训练好的恶意软件检测方法很可能无法检测最新出现的恶意软件. 因此, 为了充分对比并进一步消除
D 进行划分, 从而
安卓软件的时间对有效性和鲁棒性的影响, 本文按照如下两种不同的数据划分方式对实验数据
分别形成随机划分的数据集 D rand 和时间划分的数据集 D time , 两者具体的数据量统计如表 3 所示.
表 3 实验数据集的统计信息
数据集 类型 训练集 验证集 测试集 总量
恶意软件 7 093 1 424 5 674 14 191
善意软件
D rand 7 129 1 433 5 703 14 265
总量 14 222 2 857 11 377 28 456
恶意软件 7 668 1 307 5 216 14 191
善意软件
D time 7 409 1 372 5 484 14 265
总量 15 077 2 679 10 700 28 456
● 随机划分的数据集 D rand : 针对数据集 D 中 2011–2018 年时间窗口内所有安卓软件, 按照训练集、验证集和
测试集为 5:1:4 的划分比例, 对 D 中的恶意软件和善意软件进行随机划分, 从而得到随机划分的数据集 D rand . 由于
D rand 中训练集的时间窗口和验证集/测试集完全重合, 因此该数据集划分方式并不符合实际场景中训练阶段数据
与部署应用后测试样本数据分布不同的现实情况.
D 中 2011–2018 年时间窗口内所有安卓应用软件, 进一步按照时间窗
● 时间划分的数据集 D time : 针对数据集
口划分, 将训练集限制在 2011–2014 年的时间窗口内, 将验证集/测试集限制在 2015–2018 年的时间窗口内, 从而
得到时间划分的数据集 D time . 由于 D time 中训练集的时间窗口全部小于验证集/测试集的时间窗口, 很大程度上符合

