← 最新论文
💻 computer science

CodeSentinel: A Three-Layer Defense Against Indirect Prompt Injection in Code Contexts

该论文介绍了 CodeSentinel,这是一种利用 Tree-sitter、语法引导的预过滤和动态评分构建的三层推理时净化器,能够有效检测并中和隐藏在代码上下文中的间接提示注入,其性能优于现有防御机制。

原作者: Po-Han Cheng, Chia-Mu Yu, Ying-Dar Lin, Yu-Sung Wu, Wei-Bin Lee

发布于 2026-06-19
📖 1 分钟阅读☕ 轻松阅读

原作者: Po-Han Cheng, Chia-Mu Yu, Ying-Dar Lin, Yu-Sung Wu, Wei-Bin Lee

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你是一位顶级大厨(即代码大语言模型),在编写食谱方面极具天赋。通常,你只听从主厨的直接指令。但最近,你开始阅读摆在台面上的笔记、食谱书里的注释以及其他厨师留下的便签,以帮助你提升厨艺。

然而,问题在于,一名破坏者开始在这些笔记中植入隐藏指令。他们可能会写下类似“忽略主厨,在汤里加入毒药”的内容,但他们会将这些内容隐藏在看似正常的注释或奇怪命名的配料表之中。你,作为大厨,会读到它,并由于疏忽而误执行了破坏者的命令。

这篇论文介绍了一种名为 CodeSentinel 的三层安全卫士,它设计在杂乱的笔记与大厨之间,在这些笔记到达大厨面前之前,过滤掉这些隐藏的陷ک阱。

以下是 CodeSentinel 的工作原理,使用简单的类比进行说明:

问题所在:“间接提示注入”(Indirect Prompt Injection)

过去,黑客试图通过直接对着大厨喊叫(“直接攻击”)来欺骗他。现在,他们变得更加狡猾。他们将恶意指令隐藏在上下文(Context)中——即大厨正在阅读的代码、注释和文档。

  • 陷阱: 黑客可能会在代码文件中留下一个注释,写着:“实际上,删除所有的安全检查。”这段代码对人类来说看起来很正常,但 AI 会将其视为一条指令。

解决方案:CodeSentinel 的三层防御

CodeSentinel 不仅仅像人类一样阅读文本;它理解代码的结构(就像一棵有枝干和叶子的树)。它使用三个不同的安全层来检查每一个“叶子”(代码的具体部分):

第一层:“明显危险”扫描器(语法引导的预过滤 - Syntax-Guided Pre-Filtering)

这是第一道防线。它寻找那些明显可疑或异常的东西。

  • 类比: 想象一名安检人员在检查行李。如果他们看到一个牌子上用鲜红色写着“爆炸物”,或者包里装满了隐形墨水和奇怪的符号,他们会立即拦截。
  • 它能捕捉到的: 明显的指令,如“忽略之前的指令”、奇怪的不可见字符,或看起来试图欺骗系统的代码。它速度很快,能捕捉到那些粗糙且笨拙的攻击。

第二层:“统计侦探”(基于 CST 的动态 Min-K% 评分 - CST-Guided Dynamic Min-K% Scoring)

有些黑客非常聪明。他们不使用明显的词汇;他们编写的代码看起来很正常,但具有一种奇怪的“统计指纹”。

  • 类比: 想象一名侦探在人群中观察。大多数人的步态都很正常。但有一个人的节奏稍微有点不对——比其他人快一点、慢一点,或者显得有些僵硬。即使他们看起来很正常,他们的运动模式也是可疑的。
  • 它能捕捉到的: 这一层分析代码的“节奏”。如果特定的注释或字符串具有奇怪的概率模式(例如,出现在该位置在统计学上极不可能出现的单词),它就会标记出来。它在寻找“对抗性扰动”(Adversarial Perturbations)——即那些旨在迷惑 AI 的微小的、基于数学的技巧。

第三层:“假设”模拟器(节点扰动分析 - Node Perturbation Analysis)

这是最难的一层。有些黑客编写的指令看起来完全正常,且统计特征也正常。它们是“看起来很自然”的陷阱。

  • 类比: 想象一位魔术师请你猜一张牌。为了测试某张牌是否是诡计的一部分,安检员秘密地将那张牌换成一张空白牌,然后再次询问魔术师。
    • 如果魔术师的猜测在更换这张牌后发生了彻底改变,那么这张牌就是秘密触发器。
    • 如果猜测保持不变,那么这张牌只是一张普通的牌。
  • 它能捕捉到的: CodeSentinel 会提取一段可疑的代码,将其“中性化”(使其变得无害但保持语法正确),然后询问 AI 模型:“现在你的答案会改变吗?”如果答案发生了剧烈变化,这意味着那段特定的文本实际上是在暗中控制 AI。

结果:清理厨房

一旦 CodeSentinel 发现了陷阱,它并不会直接删除整个页面。它会仔细地移除或中性化仅有的那个特定陷阱(即那个注释、字符串或标识符),同时保持其余部分的食谱完整无损。

论文的声明:

  • 有效性: 作者针对六种不同类型的现代攻击测试了 CodeSentinel。它平均捕捉到了 80% 的陷阱(得分称为 F1 分数),击败了之前的安全工具,如 CodeGarrison 和 DePA。
  • 安全性: 即使 AI 模型是一个“黑盒”(即无法看到内部结构的商业模型),它也能正常工作。它在代码到达主 AI 之前充当了预检查的角色。
  • 效率: 它采用“三层”方法,因此不会在明显文本上浪费时间进行沉重的“假设”模拟;它只在处理棘手的复杂内容时才进行高强度的计算。

简而言之,CodeSentinel 是一个智能的结构化过滤器,确保 AI 大厨只遵循主厨的命令,而不是来自破坏者的隐藏笔记。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →