该论文提出 CodeSentinel,一种针对代码大语言模型(Code LLM)中间接提示注入攻击的三层推理时防御系统。研究背景:代码大语言模型在编程辅助中常从外部仓库、文档、问题线程和编码智能体环境检索代码上下文,攻击者可利用此过程在注释、字符串、标识符或诱饵代码中隐藏恶意指令,实现间接提示注入。核心问题:现有防御方法如输入过滤、输出检测或整体提示净化,难以同时兼顾准确性和低开销。方法:CodeSentinel 通过三层架构进行实时净化。第一层利用 Tree-sitter 解析代码的 Concret e Syntax Tree (CST),提取高风险节点(如字符串、注释等可能携带注入的节点)。第二层包括语法引导预过滤(移除明显无关节点)和 CST 引导动态 Min-K% 评分(利用语言模型对节点的困惑度差异识别异常)。第三层进行节点扰动分析,通过轻微修改节点并观察模型输出变化来确认攻击触发器。检测到的恶意节点被移除或中和后,再将纯净代码送入下游 Code LLM。实验:在六个最新攻击家族(包括对抗性和自然语言样式)上评估,CodeSentinel 实现平均节点级 F1 得分为 0.80,显著优于现有工具 CodeGarrison、DePA 和 KillBadCode。主要贡献:首次针对代码上下文的间接提示注入提出结构化防御,集成多种检测技术,具备高准确率和较低计算开销。适合读者:安全研究人员、开发安全工程师、LLM 应用开发者。
💡 推荐理由: 代码大语言模型在编程场景中广泛应用,间接提示注入可导致模型执行恶意代码或泄露敏感信息。CodeSentinel 提供了一种实用的实时防御方案,能有效净化代码上下文,降低攻击风险,对保障基于LLM的编码助手的供应链安全具有重要价值。
🎯 建议动作: 研究跟进