
论文地址:# CodeWMBench: An Automated Benchmark for Code Watermarking Evaluation
在 GitHub Copilot、ChatGPT 和 CodeLlama 深度介入开发流程的今天,代码创作正经历一场从“逐行敲击”到“意图生成”的范式转移。然而,这种生产力的飞跃也释放了一个阴影中的幽灵:代码抄袭与学术诚信危机的门槛被降至冰点。 作为开发者,我们曾寄希望于“数字水印”——那层不可见的指纹,来识别并追踪 AI 生成的内容。但问题是,这些所谓的“指纹”真的能经受住 AI 自身的挑战吗?中国科学技术大学的研究团队发布了 CodeWMBench,这项针对代码水印技术的深度“体检”揭示了一个令整个安全圈警醒的现状:在不断进化的 LLM 面前,现有的代码水印防御体系可能只是一层一戳就破的纸外壳。
读论文之前首先要问几个问题:
长期以来,检测 AI 生成内容主要依赖于 ZeroGPT 等“被动检测”工具。但在代码领域,这类工具的表现只能用“灾难”来形容。
为了建立严谨的评估标准,CodeWMBench 团队在 CodeNet (cn) 、CodeSearchNet (csn) 以及 MBXP 等大规模数据集上进行了详尽测试。实验证明,由于代码语法具有极高的严谨性和结构化特征,人与 AI 在实现标准逻辑时往往会产生高度重合。
“代码语法的僵化和结构化性质意味着传统方法在代码领域面临重大局限,由于通用人机文本检查的被动检测特征与代码不匹配,往往会导致误报。”
这种低熵的本质让被动检测沦为一场猜谜游戏。相比之下,基于代码水印(Code Watermarking)的“主动检测”——即在生成阶段嵌入可验证信号——成为了目前公认最可靠的替代方案。
CodeWMBench 研究中最令人不安的发现是:LLM 天生具备抹除水印的能力。研究提出了两种杀伤力巨大的“去除攻击”:
这里涉及到一个深刻的 双通道理论 :代码由“正式通道”(Formal Channel,如逻辑结构、AST)和“自然通道”(Natural Channel,如变量名、注释、代码风格)组成。
LLM 的训练目标是最大化自然通道的概率,即让代码看起来更符合人类最通用的编写模式。换句话说,LLM 在对抗自然通道的平庸时,会自然而然地将作为“非自然噪声”的水印特征作为冗余优化掉。这种“无意识”的优化,让即便是不懂代码的初学者也能轻松摧毁复杂的防御系统。
在安全研究中,我们必须权衡“安全性”与“可用性”。CodeWMBench 引入了无害性(Harmlessness)指标,并从粗粒度(语法检查)和细粒度(单元测试运行结果)两个维度进行了量化。
根据 Table 2 的实验数据,现有技术的代价大得惊人:
然而,即便是最强的 SrcMarker 也并非坚不可摧。在 Retranslate 攻击下,其多位准确率(BitAcc/MsgAcc)从 0.931/0.812 显著下降至 0.867/0.667。这证明了在 LLM 的跨语言重构面前,即使是深度的特征嵌入也会受到严重侵蚀。
过去,代码水印的评估高度依赖人工且维度单一。CodeWMBench 的贡献在于它建立了一套全自动化的体检中心。它通过三个核心维度对水印进行“全方位扫描”:
目前,这套基准测试已在 GitHub 开源,旨在填补行业在自动化、标准化评估手段上的空白。
作为安全研究员,我们必须面对一个残酷的事实:大多数现有的代码水印都寄生在“自然通道”中,而这正是 LLM 的强项。如果我们继续在变量命名、空格或注释上做文章,这些指纹将在 LLM 的优化浪潮中迅速消亡。
未来的突破点在于正式通道(Formal Channel)。我们需要一种静默的、深植于 AST 逻辑结构之中的水印技术。这种水印不依赖于人类可读的风格,而是像基因一样编码在算法的逻辑顺序中。
如果行业不能尽快转向这种更深层次的结构化保护,那么到 2030 年,随着模型优化能力的进一步飞跃,“AI 生成代码检测”这一概念或许将彻底走入历史。当 AI 能够完美优化掉所有“多余”的指纹时,我们该如何证明一段代码的灵魂归属?
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。