增强和报告智能代码理解的神经代码模型的鲁棒性边界
Enhancing and Reporting Robustness Boundary of Neural Code Models for Intelligent Code Understanding
摘要
随着深度学习的发展,CodeBERT和CodeLlama等神经代码模型(NCM)被广泛用于代码理解任务,包括缺陷检测和代码分类。然而,最近的研究表明,NCM 很容易受到对抗性示例的影响,这些输入具有微妙的扰动,会导致错误的预测,同时仍然难以检测。现有的防御措施通过数据增强来解决这个问题,以凭经验提高鲁棒性,但它们成本高昂,不提供理论上的鲁棒性保证,并且通常需要白盒访问模型内部结构,例如梯度。为了解决上述挑战,我们提出 ENBECOME,一种新颖的黑盒 无需训练 和轻量级对抗防御。 ENBECOME 旨在增强 NCM 的经验稳健性并报告经认证的稳健性边界。 ENBECOME 仅在推理期间运行,向输入代码片段引入随机的、保留语义的扰动,以平滑 NCM 的决策边界。这种平滑使 ENBECOME 能够正式证明鲁棒性半径,在该半径内,对抗性示例永远不会导致错误分类,这种属性称为经过认证的鲁棒性。我们在多个 NCM 架构和任务中进行了全面的实验。结果表明,ENBECOME 在保持高精度的同时显着降低了攻击成功率。例如,在缺陷检测中,它将平均 ASR 从 42.43% 降低到 9.74%,而准确率仅下降 0.29%。结果表明,ENBECOME 在保持高精度的同时显着降低了攻击成功率。例如,在缺陷检测中,它将平均 ASR 从 42.43% 降低到 9.74%,而准确率仅下降 0.29%。此外,ENBECOME 的平均认证稳健性半径为 1.63,这意味着对不超过 1.63 个标识符的对抗性修改被证明是无效的。