Page 65 - 《软件学报》2025年第4期
P. 65
孙伟松 等: 深度代码模型安全综述 1471
2.3 小 结
本节分别详细介绍了针对深度代码模型的后门攻击和后门防御方法. 后门攻击使攻击者能够将后门植入到模
型当中, 后门可以无限期地存在于神经网络当中并保持隐藏, 直到被带有特定触发器的样本激活. 因此后门攻击具
有极强的隐匿性. 根据攻击者的攻击手段不同后门攻击可以分为数据投毒和模型投毒. 在数据投毒中, 攻击者直接
将精心制作的带有触发器的有毒数据样本发布至开源数据平台, 在用户下载并使用这些有毒数据训练下游任务模
型的过程中悄无声息地植入后门. 针对代码特征的触发器一般被设计为修改方法名/变量名或插入死代码. 在模型
投毒攻击手段下, 攻击者可以使用带有触发器的数据对模型进行预训练, 并将有毒的预训练模型发布到开源代码
平台. 后门在用户下载并使用该有毒预训练模型微调下游任务模型的过程被植入. 针对上述的后门攻击, 相关的后
门防御方法被提出. 但是相比于后门攻击在深度代码模型安全中的广泛研究, 后门防御的研究工作尤为缺失. 目前
仅有基于有毒数据检测的后门防御方法被提出.
3 深度代码模型的对抗攻击与防御
3.1 对抗攻击
如前面所述, 针对深度代码模型的对抗攻击发生在模型应用阶段. 攻击者故意向输入样本引入微小但恶意的
扰动, 以极高的概率导致分类器错误地对样本进行分类 [69] . 图 5 展示了针对深度代码模型的对抗攻击技术的一般
框架. 对抗攻击的核心为构造能够引导深度代码模型产生错误分类的对抗样本. 对抗样本构造完成后便如正常样
本一般被输入到目标攻击模型, 以误导模型的决策过程, 从而实现欺骗目标攻击模型.
迭代优化
(原始)对 对抗样
抗样本 输入 输出 对抗样
本标签
生成
估计梯度
黑盒模型 对抗样本
目标样
目标样本
本标签
输入 输出
(a) 黑盒对抗攻击
迭代优化
(原始)对
抗样本 输入 输出 本标签 计算损失 生成
白盒模型 对抗样本
目标样
目标样本
本标签
输入 输出
(b) 白盒对抗攻击
图 5 深度代码模型对抗攻击框架图