Leveraging Large Language Models to Obscure Code Stylometry: A Comparative Study of GPT-3.5 and GPT-4
本研究评估了 GPT-3.5 和 GPT-4 在掩盖代码风格特征以规避作者身份识别分类器方面的有效性,结果表明,多样本提示(multi-shot prompting)和详细指令能显著增强风格模糊化效果,同时也凸显了在进行此类修改时保持代码功能性的内在挑战。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你是一名试图通过“笔迹”而非面孔来识别嫌疑人的侦探。在计算机编程的世界里,这种“笔迹”被称为代码风格识别(code stylometry)。每位程序员都有独特的习惯:他们如何对行进行空格处理、他们给变量起什么名字,以及他们构建逻辑的具体方式。就像侦探可以将笔记与嫌疑人匹配一样,网络安全专家利用这些数字指纹来确定谁编写了某段软件,这对于抓捕恶意程序的作者至关重要。
然而,一个新玩家进入了这场游戏:大语言模型(LLMs),例如 GPT-3.5 和 GPT-4。你可以将这些 AI 模型看作是极具天赋的代笔作家。它们能够阅读一段代码,准确理解其功能,然后用完全不同的“笔迹”从头开始重写代码,同时保持机器指令完全一致。
这篇研究论文本质上是在测试这些 AI 代笔作家在隐藏原始作者身份方面表现如何,且不破坏代码的功能。
实验:“风格转换”挑战赛
研究人员设置了一场竞赛,由两个主要团队组成:
- 侦探队: 一个经过训练的计算机程序(随机森林分类器),旨在识别不同程序员独特的“笔迹”。
- 代笔队: 尝试伪装代码的 AI 模型(GPT-3.5 和 GPT-4)。
研究人员给了 AI 10 段不同的 Java 代码,并要求它使用四种不同的策略进行重写:
- “直接做”法: 一个简单的命令:“改变这段代码的风格。”
- “模仿者”法: “重写这段代码,使其看起来像是 [著名程序员 X] 或来自 [特定地区] 的作品。”
- “模仿”法: “这里有一个特定风格的示例;请重写代码以匹配这个示例。”
- “翻译器”法: “将这段 Java 代码翻译成 C++,然后再翻译回 Java。”其核心思想是,翻译过程会迫使 AI 做出新的风格选择。
他们使用两种方法测试了这些策略:
- 单次尝试(Single-Shot): 要求 AI 一次性完成整个工作。
- 多次尝试(Multi-Shot): 将任务分解为细小的、分步骤的指令(例如:“首先分析代码,然后列出变更,然后重写”)。
结果:谁赢得了比赛?
1. AI 更擅长隐藏身份
研究发现,AI 模型在改变“笔迹”方面表现得非常出色。
- GPT-4 是更好的代笔人: 与 GPT-3.5 相比,它通常能更好地隐藏原始作者的身份。
- 分步骤指令效果最好: 当研究人员给出详细的、多步骤的指令(Multi-Shot)时,它在伪装代码方面的成功率远高于仅给出一个简单的单行命令(Single-Shot)。这就像是告诉学生“写个故事”与“先构思情节,再塑造角色,最后编写对话”的区别。第二种方法产生了更好的结果。
- “翻译”技巧是最强的手段: 将代码翻译成另一种语言再翻译回来的策略(策略 4)是混淆风格指纹最有效的方法。
2. “代码损坏”问题
但也存在一个问题。虽然 AI 在改变风格方面表现出色,但它并不完美,无法保证代码始终可用。
- 想象一下,你要求一名代笔人重写一部小说,但要保持情节完全不变。有时,他们会对角色名字改动过大,以至于故事不再通顺。
- 在研究中,当尝试运行重写后的代码时,41% 的代码无法编译(甚至无法启动)。另有 1% 虽然启动了但在测试中失败。
- 只有 58% 的重写代码能够完美运行。
- 在那些确实能运行的代码中,只有 17% 成功骗过了侦探程序。这意味着,在每 100 次尝试中,大约只有 10 次能同时实现代码功能完好且成功伪装。
核心结论
这篇论文得出结论:虽然像 GPT-4 这样的 AI 模型是改变代码风格的强大工具,并且可以成功隐藏作者身份,但它们尚未成为完美的“隐身斗篷”。
- 它们需要辅助: 相比于简单的命令,当给予详细的分步指令时,它们的效果更好。
- 它们会破坏东西: 在改变风格的过程中,AI 存在着意外破坏代码功能的风险。
- 猫鼠游戏仍在继续: 随着 AI 变得越来越擅长隐藏代码风格,作为“侦探”的网络安全工具也需要变得更加聪明,才能捕捉到它们。
研究人员强调,这项研究只是当前能力的缩影。他们发现,虽然 AI 可以模糊“笔迹”,但要在不破坏“故事”(代码功能)的前提下做到这一点,仍然是一个巨大的挑战。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。