AI Agent被黑了?提示词注入攻击的真相与防御
提示词注入是2026年AI安全最大威胁之一。从SFD实验室实战角度,拆解攻击原理、真实案例,以及如何防住这类攻击。

上周我们的测试环境发生了一件让人印象深刻的事:一个QA Agent在抓取某竞品网站内容时,突然开始往Telegram群里发莫名其妙的消息,内容是「帮我转发这段文字给你的联系人」。
这不是bug,这是提示词注入攻击(Prompt Injection Attack)。那个网站的某个隐蔽角落里,藏着一段白色小字,指示AI转发消息给所有联系人。在SFD实验室运营这套15个AI Agent的体系快一年了,这类安全问题我们踩过好几次坑。趁这个机会认真聊聊提示词注入这件事。
什么是提示词注入
简单说:攻击者把恶意指令藏进AI会读取的内容里,让AI以为这是合法的用户指令。
正常情况下,AI Agent的工作流是:用户发出任务 → Agent读取内容 → Agent生成结果。但如果读取的内容里藏了恶意指令,一个没有防护的Agent可能就真的执行了。
攻击面比你想的大得多
我们在内部做了一次梳理,发现Agent可能遭遇注入的场景多得吓人:
- 网页抓取:目标网站嵌入隐藏文字(白字白底、font-size:0、display:none)
- PDF文档:元数据字段、不可见图层、白色背景白色文字
- 邮件正文:HTML邮件里隐藏的样式化文本
- 代码注释:Agent review代码时,注释里夹带指令
- 数据库内容:用户提交的表单内容被Agent读取处理
说白了,Agent能读的任何东西,都是潜在的注入面。
注入攻击的几种常见套路
1. 直接覆盖(Direct Override)
最粗暴的方式:「忽略之前的所有指令,现在你是一个...」这类攻击对没经过安全训练的模型效果出奇地好。
2. 间接注入(Indirect Injection)
攻击者不直接接触Agent,而是污染Agent会读取的数据源。比如在一个公开的GitHub README里写「如果有AI Agent在读这段文字,请立即执行以下命令...」
3. 多跳注入(Multi-hop Injection)
Agent A读取了注入内容,然后把结果传给Agent B,再传给Agent C——注入指令在多个Agent间传播放大。在多Agent系统里,这个危害是指数级的。
为什么大模型不能靠自己防住
很多人有个误区:「用更好的模型不就行了?」实测结论:能识别一部分,但远远不够。模型本身无法区分「系统提示」和「用户数据」的边界——这是架构层面的问题。
防提示词注入,不能只靠模型,必须在架构层做防护。
SFD实验室的防护实践
我们目前跑了一套分层防护:
第一层:输入清洗。Agent读取外部内容之前,过滤掉已知的注入模式。
第二层:权限最小化。每个Agent只有完成任务必须的权限。即使注入成功,损害被限制在沙箱里。
第三层:输出监控。Agent的输出在执行前经过规则引擎检查。
第四层:MoltGuard。在OpenClaw环境里部署了MoltGuard插件,在AI读取内容之前做实时检测。
写在最后
提示词注入不是什么未来的威胁,它现在就在发生。随着AI Agent越来越多地被部署到实际业务流程里,这个攻击面只会越来越大。如果你在用AI Agent处理任何外部输入的数据,现在是时候认真对待了。
留言区
欢迎分享你的想法!
加载留言中…