随着机器学习和深度学习的快速发展,Android恶意软件检测方法不断涌现。研究人员在检测Android恶意软件方面取得了许多成果。然而,基于学习的检测方法也面临着对抗性样本的严峻挑战。例如,黑客会使用精心制作的对抗性扰动植入恶意软件中,形成对抗性恶意软件以逃避检测器的检测,这会严重影响整个系统模型的安全性和准确性。
Szegedy等人(2015年;2014年)提出,对抗性样本位于数据流形的低概率区域。由于分类器在训练过程中仅学习局部子区域,因此位于学习区域之外的对抗性样本会导致深度神经网络中的分类错误。对抗性样本的概念最初应用于计算机视觉领域。随着对抗性样本技术的进一步发展,不仅计算机视觉领域,其他应用场景也出现了更多的对抗性样本。许多研究证实,恶意软件检测模型也受到对抗性样本的威胁。
一些生成对抗性扰动的方法(Dong等人,2018年;2019年;Fan等人(2023年);Kurakin等人(2018年);Moosavi-Dezfooli等人(2016年);Papernot等人(2016年);Shi等人(2019年);Xie等人(2019年)通过理解目标模型的结构参数并使用梯度求解等方法生成对抗性恶意软件。然而,在实际应用场景中,我们并不知道目标模型的结构参数,处于黑箱环境中(Papernot等人,2017年)。如果需要生成对抗性扰动,通过白箱模型来实现是不合理的(Goodfellow等人,2015年)。为了更好地适应现实世界场景,我们将威胁模型设定为黑箱模型,不依赖于模型参数或特定模型。根据白箱和黑箱场景,对抗性扰动方法分为特征空间攻击和问题空间攻击。特征空间攻击使用恶意软件特征生成对抗性扰动。换句话说,初始的对抗性输入是基于提取特征的扰动。这种方法更容易处理,只需向特征添加扰动,但不考虑生成的扰动特征是否保证完整性或保留恶意性。问题空间攻击比特征空间攻击能更好地解决问题。对抗性恶意软件要求生成的恶意文件不仅要被目标恶意软件检测器误分类为良性文件,而且其行为必须与原始恶意软件完全相同。我们需要找到一种能够保留与原始恶意软件相同格式、可执行性和恶意性的对抗性恶意文件。
Madry等人(2017年)提出了通用对抗性扰动(Universal Adversarial Perturbations,UAP)的概念,这是一种特殊的对抗性攻击类型。在测试阶段,相同的单一扰动可以应用于大量输入,以误分类目标模型。然而,在某些情况下,通用对抗性扰动可能受到限制。通常,为不同模型生成的对抗性扰动并不完全相同,即研究人员不应生成通用对抗性扰动(UAP),而应生成差异化对抗性扰动(Differentiated Adversarial Perturbations,DAP)。DAP强调扰动模式在不同情况下表现出明显差异,而不是具有统一的通用模式。
在本文中,我们提出了一种在问题空间生成对抗性样本的新方法,以评估现有检测模型的鲁棒性和有效性。我们的方法与传统混淆或打包Android恶意软件的方法有显著不同。首先,我们的方法使用深度学习模型策略生成扰动,这与基于专家规则的传统混淆或打包方法形成鲜明对比。传统混淆或打包方法主要依赖预定义规则来转换样本,而我们的策略使用模型动态生成有针对性的对抗性扰动。其次,在扰动评估和优化方面,我们的方法根据目标攻击模型进行动态自适应计算,以实现最佳的对抗效果。这种动态自适应过程使生成的对抗性样本能够更有效地对抗特定的检测模型,而传统混淆或打包方法没有考虑这种针对性和动态调整能力,因此在面对高级攻击时,其防御效果可能不理想。从攻击学习模型的角度来看,我们设计了一种生成恶意软件对抗性样本的新方法,而不仅仅是关注恶意软件检测的准确性。
主要贡献如下:
•我们为良性Android应用程序设计了一种新的代码切片策略,可以随机将良性应用程序切片,同时保留代码上下文,这些切片将作为扰动添加到Android恶意软件中以生成对抗性样本。生成的对抗性恶意软件可以逃避基于学习的恶意软件检测器的检测。此外,为了验证生成恶意软件的有效性,我们重新打包并签名对抗性恶意软件,并在沙箱中运行它以确保完整性。
•为了提高生成效率,在寻找最佳切片的过程中,我们提出了一种基于层次注意力网络(Hierarchical Attention Network,HAN-m)的新方法来捕获最佳代码扰动。我们将恶意软件文件视为文档,方法调用链(Method Call Chain,MCC)视为句子,每个方法视为一个单词。最终输出是一个加权MCC分数,用于判断APK中的重要性,从而快速找到最优链。
•我们将该方法与其他现有的对抗性攻击方法在多个数据集上进行了比较。实验表明,DapAdv在逃避各种目标模型方面比其他方法更有效。DapAdv揭示了现有方法在处理对抗性样本攻击时的脆弱性。我们还讨论了针对这种类型对抗性恶意软件的防御策略。