BadCS:一种面向代码搜索的后门攻击框架
软件工程
2023-05-10 v1
摘要
随着深度学习(DL)的发展,基于 DL 的代码搜索模型已取得了最先进的性能,并被开发人员在软件开发过程中广泛使用。然而,诸如推荐存在漏洞的代码等安全问题尚未受到足够重视,这将给软件开发带来潜在危害。基于投毒的后门攻击已被证明可通过向训练数据集中注入投毒样本来有效攻击基于 DL 的模型。然而,已有研究表明,该攻击技术并非在所有基于 DL 的代码搜索模型上都能成功,且往往对基于 Transformer 的模型(尤其是预训练模型)失效。此外,被感染的模型通常表现不如良性模型,使得攻击不够隐蔽,从而阻碍了开发人员的采用。为解决这两个问题,我们提出了一种新颖的面向代码搜索模型的后门攻击框架,名为 BadCS。BadCS 主要包含两个组件,即投毒样本生成与重加权知识蒸馏。投毒样本生成组件旨在提供筛选出的投毒样本。重加权知识蒸馏组件通过知识蒸馏保持模型有效性,并通过为投毒样本分配更大权重来进一步增强攻击。在四个流行的基于 DL 的模型和两个基准数据集上的实验表明,现有代码搜索系统易被 BadCS 攻击。例如,在 Python 和 Java 数据集上,BadCS 分别将最先进的基于投毒的方法提升了 83.03%–99.98% 和 75.98%–99.90%。同时,BadCS 也取得了相对优于良性模型的性能,分别在平均意义上将基线模型提升了 0.49% 和 0.46%。
引用
@article{arxiv.2305.05503,
title = {BadCS: A Backdoor Attack Framework for Code search},
author = {Shiyi Qi and Yuanhang Yang and Shuzhzeng Gao and Cuiyun Gao and Zenglin Xu},
journal= {arXiv preprint arXiv:2305.05503},
year = {2023}
}