面向深度代码模型的代码差异引导对抗样本生成
密码学与安全
2023-08-22 v2 软件工程
摘要
对抗样本对于测试并增强深度代码模型的鲁棒性具有重要意义。由于源代码是离散的且必须严格遵循复杂的语法与语义约束,其他领域的对抗样本生成技术难以适用。此外,专门针对深度代码模型的对抗样本生成技术仍因巨大的成分搜索空间而效果不佳。在本工作中,我们提出一种用于测试深度代码模型的新型对抗样本生成技术(即 CODA)。其关键思想是利用目标输入(即作为模型输入的给定代码片段)与参考输入(即与目标输入代码差异小但预测结果不同的输入)之间的代码差异来引导对抗样本的生成。它同时考虑结构差异与标识符差异以保留原始语义。因此,成分搜索空间可大幅缩减为由这两类代码差异构成的空间,从而可通过设计并引导相应的等价结构变换与标识符重命名变换来改进测试过程。我们在 15 个深度代码模型上的实验证明了 CODA 的有效性与高效性、其所生成样本的自然性,以及经过对抗微调后增强模型鲁棒性的能力。例如,相较于最先进技术(即 CARROT 与 ALERT),CODA 平均分别多揭示模型中 88.05% 与 72.51% 的缺陷。
引用
@article{arxiv.2301.02412,
title = {Code Difference Guided Adversarial Example Generation for Deep Code Models},
author = {Zhao Tian and Junjie Chen and Zhi Jin},
journal= {arXiv preprint arXiv:2301.02412},
year = {2023}
}
备注
Accepted by ASE 2023