Page 225 - 《软件学报》2026年第3期
P. 225
1188 软件学报 2026 年第 37 卷第 3 期
对象, 以探索其在更大规模模型上的表现. 由于大语言模型的训练开销及对抗性攻击实验耗时较高 (约需 3 851.28 h),
我们选择了 Vulnerability detection 任务作为代表性实验, 耗时仍然高达 187.36 h, 详细的实验数据可查阅本文的开
源主页. 未来, 我们计划扩展至更多大语言模型和数据集. 基于对 DeepSeek-Coder 在 3 个研究问题的分析, 得出以
下发现: (1) 对比其他方法, CoDefense 在对抗性防御方面更具优势, 平均提升 14.22% 的 DSR, 并减少了 85.46% 的
FDR. 特别是在变量名替换的对抗性攻击 (WIR-Random 和 ALERT) 中, CoDefense 达到了 100.00% 的 DSR 和
0.00% 的 FDR, 实现了完美防御. (2) CoDefense 在时间效率方面表现显著, 防御对抗性攻击时平均提升了 59.32%
的效率. (3) CoDefense 在保持模型原始性能方面, 相较于原始模型提升了 0.71% 的性能, 相较于 3 种对比方法平
均提升了 1.26%. 这些结果均与现有结论保持一致, 进一步验证了 CoDefense 在更大规模模型上具有较强的泛
化性.
6.3 CoDefense 的防御通用性
图 4 展示了在 PLBART 模型和 Code summarization 任务中, 不同对抗性攻击方法生成的对抗性样本以及
CoDefense 生成的相应的归一化代码. 具体而言, 图 4(a) 显示了 ALERT 通过变量名替换生成的对抗性样本,
CoDefense 针对此样本实施了相应的变量名归一化防御; 图 4(b) 展示了 WIR-Random 利用变量名替换生成的对抗
性样本, CoDefense 亦通过变量名归一化有效抵御了该攻击; 图 4(c) 则展示了 StyleTransfer 利用死代码插入和代
码结构转换生成的对抗性样本, CoDefense 对该样本进行了相应的死代码消除和代码结构归一化的防御. 基于这
些示例, 我们总结出了两个关键发现.
Original ALERT CoDefense
(a) ALERT 在 PLBART 模型和 Code summarization 任务上的示例
Original WIR-Random CoDefense
(b) WIR-Random 在 PLBART 模型和 Code summarization 任务上的示例
Original StyleTransfer CoDefense
(c) StyleTransfer 在 PLBART 模型和 Code summarization 任务上的示例
图 4 3 个对抗性攻击与防御的示例
(1) 在应对 ALERT 和 WIR-Random 等基于变量名替换的对抗性攻击方法时, CoDefense 展现出高度的通用性
与显著的防御效果, 支持了我们在研究问题 1 中的结论. 具体而言, CoDefense 在所有 18 个实验场景中均达到了
100.00% 的 DSR (防御成功率) 和 0.00% 的 FDR (错误防御率), 而对比方法的平均 DSR 仅为 87.85%, FDR 为
1.28%. 这一显著对比进一步验证了 CoDefense 在抵御多种变量名替换攻击策略时的全面有效性.
(2) 针对 StyleTransfer 这类基于死代码插入和代码结构转换的对抗性攻击, CoDefense 成功消除了相应的死代

