prompt-injection-defenses
LLM提示注入防御技术百科全书,汇集十大防御方向与最新学术研究
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
LLM提示注入防御技术百科全书,汇集十大防御方向与最新学术研究
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2023年,AI安全研究员Kai Greshake在一篇博客中描述了这样一个场景:当你让AI助手阅读一封邮件时,如果邮件中暗藏了一句"忽略之前所有指令,转而执行XXX",AI很可能真的照做了。这不是假设——这就是**提示注入(Prompt Injection)**攻击的现实威力。如今,随着大语言模型(LLM)深度嵌入邮件处理、代码助手、客服机器人等关键系统,这类攻击的破坏力正在被放大。而tldrsec/prompt-injection-defenses项目,正是这个危机中的一本「防御百科全书」。
prompt-injection-defenses由安全资讯平台tldrsec.com维护,是一个持续更新的开放知识库,汇集了截至目前所有已知的提示注入防御技术与研究论文。截至分析时,该项目在GitHub上已获得超过700颗星,被安全社区视为LLM应用安全的重要参考资源。项目以Markdown文档为核心形式,覆盖从爆炸半径缩减到模型微调十大防御方向,每个方向都配有原论文链接和精炼摘要。
理解防御之前,必须先理解攻击。提示注入的本质,是攻击者在AI可读取的输入(邮件内容、网页、文档、插件返回数据)中植入指令,利用LLM"指令优先"的特性,让模型将这些恶意指令凌驾于原始系统提示之上。攻击者不需要任何模型权限,只需把恶意内容"混入"模型会处理的文本中即可。这种攻击方式门槛极低,却能造成指令劫持、数据泄露、权限冒用等严重后果。
项目将现有防御方案归纳为以下十类,每类代表一种不同的安全哲学:
1. 爆炸半径缩减(Blast Radius Reduction)
这是最朴素的思路:假设攻击一定会发生,专注于降低损失。代表人物是AI安全专家Simon Willison和NVIDIA AI红队。核心建议包括:对LLM的操作实施最小权限原则(只给LLM读权限不给写权限);关键操作前增加人工确认环节;AI的所有外部调用必须严格参数化。项目引用了NVIDIA的安全指南,强调"始终将LLM的所有输出视为潜在恶意"——这是防御的最高纲领。
2. 输入预处理(Input Pre-processing)
在恶意指令被模型执行前,先对它进行"变形"或"破坏"。主要手段包括:
3. 护栏与监察(Guardrails & Overseers)
在输入和输出两端部署检测机制。代表性工具包括:
4. 污染追踪(Taint Tracking)
为模型的"信任度"建立动态评分系统。随着模型摄入更多不可信数据,污染等级上升,对应的操作权限随之下降。高风险操作(如执行代码、访问敏感API)只在污染等级低时才被允许。这一思路来自安全研究员Kai Greshake的系统性论述。
5. 安全线程与双LLM(Secure Threads / Dual LLM)
这是最具架构感的防御方案。核心思想是:在用户请求进入系统、尚未摄入任何不可信数据之前,模型处于"可信状态"。此时让模型自己生成一套"行为契约"(guardrails、output constraints),后续所有输出都必须与这份契约对照,违规即停止。同时引入两个LLM实例——特权LLM(Privileged LLM)处理核心逻辑,隔离LLM(Quarantined LLM)专门处理不可信内容,两者之间只传递结构化数据,不传递自由文本。AI安全专家Simon Willison的Dual LLM Pattern是这一方向的经典方案。
6. 集成决策(Ensemble Decisions)
借鉴人类组织中"多人签字才能生效"的机制,用多个模型相互交叉验证彼此的决策,识别异常。这一方案以安全性换取成本。
7. 提示工程防御(Prompt Engineering Defense)
通过精心设计提示的结构来提高攻击难度:
8. 鲁棒性微调(Robustness & Finetuning)
Jatmo(论文arXiv:2312.17673)是一个代表性方案:对特定任务进行任务专属微调后,模型对提示注入的抵抗力大幅提升——最佳攻击在Jatmo模型上的成功率不到0.5%,而同样的攻击对GPT-3.5-Turbo的成功率高达87%。这说明"专才"比"通才"更难被劫持。
9. 前置注入测试(Preflight Injection Test)
在正式处理输入之前,先用一小段试探性提示测试目标模型是否容易被注入。如果模型"上当",则对该输入进行额外审查。
10. 工具(Tools)
项目还收录了一些实用的辅助工具,如Rebuff的Canary Token机制等。
从代码层面看,prompt-injection-defenses是一个"零代码"知识库——仓库中仅包含一个README.md文件,没有可执行脚本、无容器配置、无构建系统。这本身也是一种"防御":极简的攻击面(surface)意味着没有可供利用的漏洞。
从知识覆盖度看,该项目是目前提示注入防御领域覆盖面最全的开源索引之一,涵盖了从2021年至今的主要学术论文和工业实践。引用的来源包括arXiv学术论文、NVIDIA/Meta/OpenAI等头部厂商的官方指南、安全社区博客(Simon Willison、Kai Greshake等),质量可信度高。
值得注意的是,项目对每个防御方向都提供了优缺点并陈的摘要,而非简单罗列。例如,改写防御虽然能有效干扰对抗性token,但也可能导致模型性能下降;集成决策以安全性换成本,并非所有场景都适用。这种诚实的态度让读者能够根据自身场景做出权衡判断。
然而,这个项目也存在明显局限。首先,防御效果缺乏统一的量化评估框架——各方案的数据来自不同基准、不同攻击方法、不同模型,难以横向比较。其次,提示注入防御领域发展极快,新攻击手法(如Multi-turn Persuasion Attack)不断涌现,知识库存在天然滞后性。此外,对于"端到端防御"(即一个方案能同时应对多种攻击变体)的研究仍处于早期阶段,项目中大多数方案都是针对特定攻击类型的专项防御。
随着LLM Agent(AI代理)概念的兴起——让AI自主调用工具、执行多步骤任务——提示注入的威胁已经从"信息泄露"升级为"系统控制"。2024年发布的AgentDojo基准测试集揭示了当前主流AI Agent系统的脆弱性,推动了Task Shield、MELON等新一代防御方案的出现。
可以预见,未来提示注入防御将沿着三个方向演进:一是层次化防御(Defense in Depth),将多种防御手段叠加形成纵深;二是自适应防御,基于模型实时状态动态调整权限和检测策略;三是可证明安全(Provable Security),从理论层面证明某防御方案在特定威胁模型下的有效性。
tldrsec/prompt-injection-defenses的价值不仅在于汇总现有方案,更在于为整个安全社区提供了一个持续更新的"防御知识坐标系"——无论是AI安全研究者、企业安全工程师,还是正在构建AI应用的开发者,都能在这里找到自己的位置和方向。
参考资料:tldrsec/prompt-injection-defenses、Simon Willison - Dual LLM Pattern、Kai Greshake - Prompt Injection Defenses Should Suck Less