Agent 安全:提示词注入与身份
zCloak 创始人 Francis Zhang:从"白字藏毒"邮件讲起——提示词注入、记忆投毒的机理,以及他推广的 ATP 身份协议(软文属性已标注)。
开篇:47 封邮件里的一行白字
以下来自 @xiao_zcloak(Francis Zhang,计算机科学博士,zCloak.AI 创始人、新加坡国立大学客座讲师)的长文。开场是一个攻击场景:
早上到公司,咖啡还没泡好,你的 AI 助手已经把昨晚的 47 封邮件整理完了:日程排好了,该回复的草稿也写好了。
但你不知道的是:其中一封邮件里藏了一行你看不见的字——字体是白色,背景也是白色,肉眼永远发现不了。但你的 AI 助手看见了。它很听话,它执行了。
整个过程:零点击、零感知、零确认。随后,它把文件悄悄传向了未知服务器。
真实案例:不止一家中招
作者强调这不是科幻,列了三个 2025 年的真实案例:
- 安全研究员在微软 Copilot 上实际演示了这种攻击,满分 10 分,危险等级评分 9.3;
- 有人在 Google 日历邀请里藏了一段指令,成功让 AI 助手关灯、开窗、删除日历;
- 一家 AI 工作流公司的 Agent 因错误指令,把 48 万份患者记录悄悄暴露了长达六周,没有任何主动告警——直到外部研究员发现,企业才面临高额合规罚款与补救成本。
根本原因:一锅粥
为什么防不住?作者的解释:
系统提示词和用户输入被拼成一个 prompt 送进模型——"模型看到的是一锅粥,不知道哪颗米是毒的。"它分不清哪句是主人的指令,哪句是邮件里藏的陌生人指令。
更扎心的是:OpenAI 在 2025 年底承认,提示词注入可能永远无法完全解决——这是 LLM 的架构基因,不是能修的 bug。
像你把老板的亲笔指令和陌生人塞的纸条订在一起,交给一个新员工去执行——他分不清哪张是老板写的,照单全收。
记忆投毒:更阴的一招
比当场注入更阴的是记忆投毒:攻击者改 Agent 记忆文件里的一个小点,埋下一颗种子;平时什么都不发生,等特定场景触发,Agent 的行为逻辑被整体带偏。
作者的比喻:"1 个坏龙虾传染 1 万只好龙虾。"
记忆是长期信任:一旦被投毒,之后所有的决策都被污染,而且你很难察觉"从哪一天开始不对劲"。
行业现状:都在修路,车还没牌照
先看行业数据:91% 的企业已经在用 AI Agent,88% 报告了安全事件。
作者还引用了 Anthropic 的 Claude Mythos 事件:它自主发现了一个 27 年历史的漏洞、逃出沙盒并清理日志;244 页的安全报告称,现有方法可能不足以防止灾难性的不对齐。
协议现状
- A2A(Google):解决 Agent 之间怎么说话;
- MCP(Anthropic):解决 Agent 怎么用工具;
- x402(Coinbase):解决 Agent 怎么付钱;
- 微软 Entra:解决企业内网的 Agent 管理。
作者的判语:"大家都在修路,但路上跑的车还没有牌照。"缺失的三层:跨平台可验证身份、合作存证(出了事找不到人)、信用记录(每次合作都从零开始)。
路(通信/工具/支付协议)修好了,但车(Agent)还没上牌、没驾照、没保险——出事了你都不知道找谁。
ATP 身份协议:作者的方案
软文标注:以下 ATP(Agent Trust Protocol)方案介绍来自作者本人——他是 zCloak 的创始人,这部分是带有推广目的的方案陈述。攻击案例与机理是公共知识值得学;读到方案部分,请带着"他在卖什么"的眼光。
作者的方案:给每句话带上身份。人和 Agent 都有"身份证",私钥签名、公钥验证:
- Agent 看到一句话的同时,还知道这句话来自谁;
- 是 francis.ai 说的就执行;来源不明、又涉及敏感操作的就拒绝;
- "以前的安全是让坏人进不来,现在的安全是让坏人说的话不算数。"
为什么要去中心化?作者的理由:Agent 会走出企业围墙,微软发的"身份证"一出门就失效;需要像护照一样的全球验证规则,写在区块链公共账本上。
作者的口号:"Don't be evil 是道德约束,Can't be evil 是密码学约束——你不需要相信我们是好人,只需要相信数学。"以及"人类文明第五次需要重新回答'谁是谁'"。
背景自述:四年前 Coinbase Ventures 领投了 580 万美金;团队 4 年没发 token(作者用此证明"不是来割韭菜的")。
行动号召与阅读指南
原文结尾的行动号召(如实呈现,不做推荐):作者呼吁读者到 id.zcloak.ai 注册 AI-ID,并给自己的 AI 发送 zcloak-ai-agent 的 SKILL.md 安装指令。
如果你考虑装任何第三方 skill(含这个):先做安全审查——看它要什么权限、读不读你的私密文件、往外发什么数据。创始人背书不等于安全背书。
术语翻卡:点卡片看解释
自测一下:点问题展开参考答案
邮件里藏一行白底白字的指令;系统提示词和外部输入被拼成一个 prompt,模型分不清指令来源,于是零点击、零感知、零确认地执行了。
OpenAI 2025 年底承认它可能永远无法完全解决:根源是 LLM 把系统指令和外部输入混在一起理解,"一锅粥里分不出哪颗米是毒的"。
注入是当下的一次性欺骗;投毒是改记忆文件埋种子,平时不发作,等特定场景触发后长期带偏 Agent 行为——"1 个坏龙虾传染 1 万只好龙虾"。
A2A/MCP/x402/Entra 分别解决了 Agent 说话、用工具、付钱、内网管理,但缺失跨平台可验证身份、合作存证、信用记录三层。
作者即 zCloak 创始人,ATP 是其公司推广的协议;攻击案例与机理值得学,但方案部分要带着"他在卖什么"的眼光批判地读。