Page 300 - 《软件学报》2025年第7期
P. 300
杨宏宇 等: 基于 API 聚类和调用图优化的安卓恶意软件检测 3221
● 场景 3 (Scenario C) 使用 2014–2015 年的软件进行十折交叉验证, 获得 10 个训练好的分类器, 分别对 2016–
2018 年开发的恶意软件进行检测, 取 10 次检测结果的平均值. 结果如图 6(c) 所示.
由图 6 可见, DroidSA 的衰减速度显著慢于其他方法. 场景 1 中, DroidSA 对 2014–2018 年的恶意软件的检测
平均 F1 值为 82.6%, 比 MaMaDroid 的 67.9% 提升 22%; 场景 2 中, DroidSA 对 2015–2018 年的恶意软件的检测
F1 值都高于 80%; 场景 3 中, DroidSA 对 2016–2018 年的恶意软件的检测平均 F1 值达到 90.4%. 上述结果是在没
有任何重训练的情况下实现的.
与 MaMaDroid 将 API 简单抽象为包的聚类方法相比, DroidSA 充分考虑 API 方法名和权限等特征中蕴含的
丰富语义信息, 聚类方法更为合理. 在恶意软件检测阶段, DroidSA 通过调用图优化使其能够提取到更多反映软件
行为逻辑的关键特征信息, 因此由旧软件样本训练后的 DroidSA 能有效检测进化后的恶意软件.
MalScan 基于敏感 API 的中心度信息进行恶意软件检测, 但大部分敏感 API 在 2016 年后便很少被使用, 因此
在对 2017 年软件样本检测时 MalScan 的 F1 值下降幅度明显. AE-MalScan 使用 APIGraph 生成的聚类中心在函
数调用图中的中心度信息替换敏感 API, 能有效延缓 MalScan 的衰减速度. MaMaDroid 在使用 APIGraph 进行增
强后, 衰减速度反而加快, 具体原因将在第 6.5 节中进行分析.
6.4 不同聚类方法的有效性验证
API 方法名概括了 API 的功能, 是 API 语义信息提取的关键特征. 为评估 API 方法名对聚类结果的影响, 通
过实验对比 3 种基于 API 聚类的检测方法对观念迁移样本的检测能力. 第 1 种检测方法 (DroidSA-onehot, DOH)
使用本文提出的 API 聚类方法; 第 2 种检测方法 (without method name, WMN) 的 API 聚类方法在生成 API 句子
时忽略 API 方法名, 其他步骤与本文提出的基于语义距离的 API 聚类方法相同; 第 3 种检测方法 (APIGraph-onehot,
AOH) 使用 APIGraph 聚类方法.
上述 3 种检测方法均使用代表聚类中心是否出现的独热编码生成特征向量, 在支持向量基、随机森林和 K
近邻 3 种分类算法中选择对应表现最好的分类算法, 进行恶意软件检测. 选择 Scenario A (图 7(a)) 和 Scenario B
(图 7(b)) 两个实验场景进行十折交叉验证. DroidSA 和 3 种基于 API 聚类的检测方法对观念迁移样本的检测结果
如图 7 所示.
100 100
90 90
80
80
70
70
F1 (%) 60 F1 (%)
50 60
DroidSA 50 DroidSA
40 DroidSA-onehot DroidSA-onehot
Without method name 40 Without method name
30
APIGraph-onehot APIGraph-onehot
20 30
训练集 2014 2015 2016 2017 2018 训练集 2015 2016 2017 2018
年份 年份
(a) Scenario A (b) Scenario B
图 7 3 种基于 API 聚类的检测方法对观念迁移样本的检测能力
在图 7(a) 所示的 Scenario A 中, WMN 对 2014–2018 年的恶意软件的检测平均 F1 值为 58.2%, 与 AOH 相比
提高 19.5%; DOH 对 2014–2018 年的恶意软件的检测平均 F1 值为 74.6%, 与 WMN 相比提高 28.2%; DroidSA 对
2014–2018 年的恶意软件的检测平均 F1 值为 82.6%, 与 AOH 相比提高 10.7%. 在图 7(b) 所示的 Scenario B 中,
WMN 对 2015–2018 年的恶意软件的检测平均 F1 值为 66.9%, 与 AOH 相比提高 13.4%; DOH 对 2015–2018 年的

