Page 67 - 《软件学报》2025年第4期
P. 67
孙伟松 等: 深度代码模型安全综述 1473
击者可以引导模型做出错误的决策, 这可能使模型在实际应用中产生严重危害. 接下来, 我们将详细介绍针对深度
代码模型的白盒对抗攻击的研究工作.
表 4 深度代码模型对抗攻击方法对比
发表年份 发表会议/期刊 攻击方法 攻击手段 目标模型 目标任务
2019 USENIX Security Quiring等人 [23] 黑盒攻击 Random Forest、LSTM 源代码作者归属
2020 OOPSLA DAMP [17] 白盒攻击 Code2Vec、GGNN、GNN-FiLM 方法名预测、变量名预测
2020 arXiv STRATA [34] 黑盒攻击 Code2Seq 方法名预测
2020 AAAI MHM [29] 黑盒攻击 BiLSTM、ASTNN 代码功能分类
2021 ICLR Srikant等人 [27] 白盒攻击 Seq2Seq 方法名预测
Code2Vec、Code2Seq、 代码方法名预测、代码描述、
[18]
2021 ICST Pour等人 黑盒攻击
CodeBERT 代码检索、代码摘要
GRU、LSTM、ASTNN、
[21] 代码功能分类、代码克隆检测、
2022 TOSEM CARROT A 白盒攻击 LSCNN、TBCNN、CodeBERT、 代码漏洞检测
CDLH
的攻击成功率, 非目标攻击下具有
LSTM、Transformer、GNN、
2022 TOSEM ACCENT [22] 黑盒攻击 代码摘要
CSCG、Rencos
代码漏洞检测、代码克隆检测、
[15]
2022 ICSE ALERT 黑盒攻击 CodeBERT、GraphCodeBERT
源代码作者归属
2022 ICSE Li等人 [16] 黑盒攻击 DL-CAIS、PbNN 源代码作者归属
2023 SANER M-CGA [20] 白盒攻击 GPT-2 自动代码生成
CodeBERT、GraphCodeBERT、
2023 AAAI CodeAttack [30] 黑盒攻击 代码转换、代码修复、代码摘要
CodeT5
[9]
2023 PLDI DaK 黑盒攻击 Code2Vec、GGNN、CodeBERT 语义一致性属性
源代码作者归属、代码漏洞检测、
[39]
2023 arXiv GraphCodeAttack 黑盒攻击 CodeBERT、GraphCodeBERT
代码克隆检测
[32]
2023 Electronics AdVulCode 黑盒攻击 BGRU、BiLSTM、GGNN 代码漏洞检测
CodeBERT、GraphCodeBERT、 代码克隆检测、代码漏洞检测、
[12]
2023 ACL DIP 黑盒攻击
CodeT5 源代码作者归属
CodeBERT、GraphCodeBERT、 代码克隆检测、代码漏洞检测、
[40]
2023 arXiv RNNS 黑盒攻击
CodeT5 源代码作者归属、代码功能分类
2020 年, Yefet 等人 [17] 提出了一种新颖的针对程序的离散对抗攻击方法 DAMP. DAMP 通过模型的输入导出
模型的输出分布, 并沿着梯度修改输入, 同时保持模型权重不变, 以选择语义保持的扰动. 给定一个期望的对抗标
签和一个现有的变量名, DAMP 计算模型的损失. 然后, 从导出的梯度中选择变化最大值以选择替代变量名, 将原
始变量重命名为替代名, 检查此修改是否将输出标签更改为期望的对抗标签, 进而继续迭代. 这个迭代过程允许
DAMP 以一种保持语义但会导致模型做出对抗性预测的方式修改程序. 作者分别在 Code2Vec [71] 、GGNN 和
GNN-FiLM [72] 这 3 种深度代码模型和在 Java 和 C#这 2 种编程语言证明 DAMP 的有效性. 实验表明, DAMP 在目
标攻击下具有 89% 94% 的攻击成功率.
2021 年, Srikant 等人 [27] 提出了一种对程序进行混淆变换来生成对抗扰动的攻击方法, 可以在保留程序语义的
同时干扰模型判断. 作者提出一组一阶优化算法和一个对抗攻击通用公式, 将对抗性攻击生成转换为约束组合优
化问题. 作者使用一阶优化算法来确定程序中应用扰动的位置和选择的特定扰动, 包括对现有的标记进行替换或
插入新的标记. 同时, 作者使用对抗攻击通用公式对任何编程语言的程序进行混淆转换. 此外, 作者还提出了一种
随机平滑算法以提升优化性能. 他们在 Seq2Seq 模型和 Code2Seq 模型上对 Java 和 Python 的函数名预测任务进
行评估. 结果表明, 攻击成功率比 Henkel 等人 [19] 的攻击生成算法提高了 1.5 倍, 并且可以用于对抗训练来提升模
型的对抗鲁棒性.
2022 年, Zhang 等人 [21] 提出了一种基于优化的对抗攻击技术 CARROT A , 针对基于梯度制导的深度学习源代