Page 221 - 《软件学报》2026年第3期
P. 221
1184 软件学报 2026 年第 37 卷第 3 期
和 StyleTransfer) 的对抗性训练策略. 具体而言, 第 4 列 (Original 列) 的每个单元格表示对抗性攻击方法在原始模
型上的 ASR, 第 5–8 列的每个单元格均包含两个指标: DSR (↑) 和 FDR (↓). 这些指标为我们提供了 CoDefense 和对
比方法在不同对抗性攻击下的防御能力的直观衡量结果.
表 5 CoDefense 和对比方法防御对抗性攻击的效果 (%)
对抗性 Original Adv-Train
数据集 模型 CoDefense
攻击方法 (ASR) WIR-Random ALERT StyleTransfer
WIR-Random 14.69 88.97/0.12 78.97/0.12 81.72/0.48 100.00/0.00
CodeBERT ALERT 9.22 91.21/0.06 92.86/0.06 91.21/0.06 100.00/0.00
StyleTransfer 13.12 79.15/0.64 79.92/0.23 98.66/5.42 82.81/0.24
WIR-Random 11.05 92.13/0.17 87.04/0.98 68.98/5.70 100.00/0.00
Vulnerability CodeGPT ALERT 7.93 86.45/0.00 87.10/0.22 77.92/0.11 100.00/0.00
detection
StyleTransfer 6.35 58.06/0.38 49.19/1.26 94.44/3.77 36.07/1.10
WIR-Random 22.74 97.13/0.32 89.85/0.91 88.08/1.10 100.00/0.00
PLBART ALERT 23.59 93.4/0.00 98.09/0.13 90.85/0.07 100.00/0.00
StyleTransfer 21.69 83.56/0.51 62.04/1.60 98.11/17.07 64.97/2.63
WIR-Random 21.44 93.98/1.18 93.98/1.38 84.09/4.34 100.00/0.00
CodeBERT ALERT 21.13 90.22/0.79 99.27/0.33 78.00/3.14 100.00/0.00
StyleTransfer 0.20 25.00/0.83 100.00/0.16 75.00/1.55 100.00/0.00
WIR-Random 19.50 97.88/0.58 88.89/3.72 73.28/8.21 100.00/0.00
Code clone CodeGPT ALERT 9.39 93.41/0.46 96.15/0.23 64.29/0.46 100.00/0.00
detection
StyleTransfer 0.05 100.00/0.21 100.00/0.15 100.00/0.15 100.00/0.26
WIR-Random 17.14 94.29/0.87 92.19/2.05 69.07/13.23 100.00/0.00
PLBART ALERT 12.76 93.55/0.53 96.37/0.59 60.08/1.42 100.00/0.00
StyleTransfer 0.62 100.00/0.98 100.00/0.83 33.33/0.98 100.00/0.05
WIR-Random 19.24 92.07/0.81 94.33/0.40 96.03/0.54 100.00/0.00
CodeBERT ALERT 57.76 92.56/0.25 93.30/0.51 94.05/0.25 100.00/0.00
StyleTransfer 9.58 95.08/0.87 100.00/0.64 91.80/0.75 100.00/1.52
WIR-Random 8.72 81.44/1.14 83.83/1.09 84.43/0.86 100.00/0.00
Code
summarization CodeGPT ALERT 32.36 73.62/1.36 71.95/1.28 74.96/1.04 100.00/0.00
StyleTransfer 3.43 72.73/1.18 75.76/1.83 84.85/1.13 90.00/2.61
WIR-Random 21.88 94.76/0.77 94.76/0.56 94.76/0.56 100.00/0.00
PLBART ALERT 64.81 95.45/1.24 95.37/1.09 95.37/1.09 100.00/0.00
StyleTransfer 6.49 92.44/3.09 92.44/3.09 92.44/3.09 100.00/1.64
Average 16.92 86.98/0.72 88.65/0.94 82.81/2.84 95.33/0.37
在总计 27 个实验场景 (3 个对抗性攻击方法×3 个代码模型×3 个数据集) 的广泛评估中, CoDefense 在防御效
果方面展现出了显著优势. 具体而言, CoDefense 在 24 种情况下的 DSR 优于全部对比方法, 而在 21 种情况下的
FSR 优于全部对比方法, 这充分展现了 CoDefense 在防御对抗性攻击方面的有效性. 在少数特定场景下, CoDefense
未能达到最优的表现. 深入分析此现象, 可归因于两个主要原因: 其一, 这些对抗性训练策略用到了数量更多的增
强训练集 (包括原始训练集 Data train 和特定对抗性微调集 Data test-1 ), 而 CoDefense 仅利用 (与原始训练集具有相同
adv
的数据规模的) 归一化训练集 Data train 进行训练, 这种不公平的对比在一定程度上限制了 CoDefense 的性能; 其
normal
二, 当生成的对抗性样本与本文的代码质量指标保持一致时, 部分对抗性样本可能会成功欺骗 CoDefense 的防御
机制, 我们将在第 6.3 节进一步讨论. 然而, 即便面临这样的不公平对比, 从全局角度审视, CoDefense 在所有 27 个
实验场景上仍然实现了平均 95.33% 的 DSR 和仅 0.37% 的 FDR. 相比之下, 3 种对比方法的 DSR 仅为
82.81%–88.65%, FDR 则为 0.72%–2.84%. 这些数据显示, 与对比方法相比, CoDefense 不仅平均提升了 10.75% 的
DSR, 并且平均降低了 65.14% 的 FDR, 从而显著提升了代码模型的整体防御能力.
从实验结果中还可以观察到, 在面对基于变量名替换的对抗性攻击方法 (即 WIR-Random 和 ALERT) 时,

