中文

面向代码预训练模型的自然攻击

软件工程 2022-03-01 v2

摘要

代码预训练模型已在许多重要的软件工程任务中取得成功。然而,这些强大的模型易受对抗攻击的影响,即通过对模型输入进行轻微扰动使受害模型产生错误输出。当前工作主要使用保持程序操作语义的样例攻击代码模型,却忽略了对抗样例生成的一项基本要求:扰动对于人类评判者应是自然的,我们称之为自然性要求。本文提出 ALERT(nAturaLnEss AwaRe ATtack,自然性感知攻击),一种黑盒攻击方法,通过对输入进行对抗性变换使受害模型产生错误输出。与先前工作不同,本文在保持原始输入操作语义的同时考虑生成样例的自然语义。我们的用户研究表明,人类开发者一致认为 ALERT 生成的对抗样例比 Zhang 等人忽略自然性要求的最先进工作生成的样例更自然。在攻击 CodeBERT 时,我们的方法在漏洞预测、克隆检测和代码作者归属三个下游任务上分别达到 53.62%、27.79% 和 35.78% 的攻击成功率。在 GraphCodeBERT 上,我们的方法在三个任务上平均成功率分别为 76.95%、7.96% 和 61.47%。上述结果平均在两个预训练模型上比基线分别高出 14.07% 和 18.56%。最后,我们研究了通过对抗微调过程生成的对抗样例对加固受害模型的价值,并证明 CodeBERT 和 GraphCodeBERT 针对 ALERT 生成的对抗样例的准确率分别提升了 87.59% 和 92.32%。

关键词

引用

@article{arxiv.2201.08698,
  title  = {Natural Attack for Pre-trained Models of Code},
  author = {Zhou Yang and Jieke Shi and Junda He and David Lo},
  journal= {arXiv preprint arXiv:2201.08698},
  year   = {2022}
}

备注

To appear in the Technical Track of ICSE 2022