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) 时,
   216   217   218   219   220   221   222   223   224   225   226