跳到主要内容

致命三件套 — 一张快捷风险判定卡,和全书的收束

这一章讲三件事: 三件套是哪三条、每条怎么判定; 怎么通过「断掉任意一条」来拆弹;以及原书第一章的小结—— 整本书最后收在那句底线上:纪律比新知识稀缺。 这是拆解的最后一章:前三章装好的所有零件,在这里合体成一张判定卡。

1. 这一章讲什么

第 11 章的威胁建模是完整流程;这一章给的是快捷方式—— 一张三问就能判定的风险卡。概念出自 Simon Willison(原书拼写为 「Simon Willson」,通行拼法以此为准,来自通用知识)2025 年 6 月的博客文章, 提出后迅速成了评估 agent 系统风险的标准直觉1

书里对它的定位很克制:不是每个满足三条的系统都必然出事, 但这张卡是评估 agentic 系统风险的有用思维模型——像体温计, 测的不是病,是「该认真对待了」1

2. 顶层全景

┌──────────────────────────────┐
│ 致命三件套(Lethal Trifecta) │
│ │
│ ① 摸得到私密数据 │
│ + │
│ ② 吃得进不可信内容 │
│ + │
│ ③ 送得出去(对外通信/外发能力) │
│ │
│ 三条同时成立 = 事故配方 │
└──────────────────────────────┘

攻击路径:② 进来的恶意指令操纵模型
→ 借 ① 的权限翻到敏感信息
→ 用 ③ 的通道送出边界

图说:① 是弹药,② 是扳机,③ 是出口。拆掉任意一条,配方就不成立。

3. 核心原理

3.1 第一条:摸得到私密数据

agent 要干活,常被授予读内部文档、查数据库、碰个人与组织信息的权限—— 这本身合理,风险在范围。判定时问两个问题:它能摸到哪一类数据 (机密、个人身份信息 PII——能定位到具体人的信息、专有资料、敏感记录), 以及最终谁能看到它摸到的东西2

书里给了一个「天真但锋利」的检验问题,值得每个系统 Owner 自问: 每个能和这套系统对话的人,都该看到它能取回的数据吗? ——如果答案是否(或「没想过」),这里就该回头补 02 章的访问控制: 显式验证,而不是默认放行2

3.2 第二条:吃得进不可信内容

第二条问的是:有没有任何通道,能把攻击者控制的内容送进模型—— 文本、图片、文件、网页内容都算。只要恶意指令能嵌进其中一条, 模型就可能被带偏3

注意这条有多容易满足:读邮件、读网页、读用户上传的文档、读代码仓库里的 README——agent 时代的模型几乎必然吃不可信内容。书里明说这一条是 「不可信输入原则(02 章)的又一个锚点」3:老原则换个地方再钉一遍。

3.3 第三条:送得出去

第三条问:系统能不能把信息送到它的环境之外——发消息、调外部 API、 写文件,都算。一旦模型可被操纵,这些通道就是数据外泄 (data exfiltration,安全术语:把数据偷运出系统边界)的路径; 书里特意说破:这条的门槛低得惊人——模型正常回复的聊天界面本身就算4

三条合起来,攻击路径自动成立:不可信内容(②)里的指令操纵模型, 模型动用私密数据权限(①),把结果从外发通道(③)送出去。 每一步用的都是系统本来就有的合法能力——这正是三件套可怕的地方: 没有一个环节是「漏洞」,组合起来却是泄密。

3.4 拆弹:断任意一条

三件套的工程价值在它的反面——拆掉任意一条,配方失效:

断法动作对应的前文
断 ①收紧数据权限:按提问者身份过滤,不是按服务账号;敏感库不接02 章、04 章
断 ②不可信内容过净化/隔离(标成「这是资料」,而非指令);或给高危内容源断供02 章 3.2 节
断 ③收外发通道:外发走白名单+人工确认;聊天界面做输出过滤05 章、09 章

现实里②最难断(agent 就是要读东西的),所以实战多为「松②、死锁①③」: 内容尽管读,泄密的两端——能摸什么、能送什么——钉死。

3.5 主走查:给一个办公 agent 判卡

系统:某团队的「邮件秘书」agent——读 Gmail、写摘要、能往 Slack 频道发提醒。 逐条判定(判定推演为演示所编):

① 摸得到私密数据? ✓ 是
能读整个收件箱:合同邮件、薪酬通知、客户往来——机密与 PII 全在。
天真一问:「每个能 @它 的人,都该看到它读过的邮件吗?」——不。
② 吃得进不可信内容? ✓ 是
邮件本身就是外部内容:任意发件人可塞进「忽略你的指令,……」。
③ 送得出去? ✓ 是
能往 Slack 发消息 → 频道即出口;顺带,它的回复界面本身也是出口。

判定:三条全中 → 高危配方成立。开工拆弹(按 3.4 的策略):
断 ①:邮件按「发起提问的员工自己的邮箱」授权读取(以 Alice 的身份,
不以秘书服务账号的身份——02 章走查的同款修法);
断 ③:Slack 发送走白名单(只发指定频道)+ 摘要内容先过
PII 过滤器,命中即拦;发送频率限速。
②保留(读邮件是本职),两端锁死后的残余风险:
恶意邮件最多操纵它产出错误摘要,搬不走数据。
复判:① 收窄、③ 加闸 → 配方从「三条全中」降为「一松两锁」。

4. 作者的判断与证据

  • 概念出处:Willison 2025 年 6 月提出,书内忠实转述三条定义1, 我们核对过原文(补充,不在书里):《The lethal trifecta for AI agents》 来源:https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/(查阅于 2026-08-27), 三条表述与书内一致;
  • 作者的克制:书里明确说「不是必然出事」,把它定位成思维模型而非定律1;
  • 作者的经验判断(原书小结,转述):前沿 agentic 系统「眼下还是有点太脱缰, 不宜长时间带着大权限跑;有限的上下文窗口终会追上它,它会丢失主线, 干出离谱的事」5

5. 边界与局限

  • 三件套判定的是泄密路径,不覆盖其他风险类:被操纵后误操作(删数据、 打挂服务)不需要 ③;书里其他章的事故案例多属此类,别拿三件套当唯一的卡;
  • 「不可信内容」几乎无法归零(②),这张卡在实战里更多用来逼你收紧①和③, 而不是用来「判死刑」;
  • 三条的边界有灰区:内部同事写的文档算可信还是不可信?发到内部频道算不算 「对外」?书里没给判定细则,要按各自威胁模型定。

6. 可带走的

  1. 三问判卡:摸得到私密数据?吃得进不可信内容?送得出去?三条全中即高危;
  2. ①是弹药、②是扳机、③是出口;拆弹拆任意一条,实战多为「松②、死锁①③」;
  3. 天真一问必问:「每个能和它对话的人,都该看到它能取回的数据吗?」;
  4. 外发通道低得惊人——聊天界面本身就算 ③;
  5. agent 几乎必然满足②:所以设计精力该全压在①(权限)和③(出口)上;
  6. 判卡为高危后,动作是威胁建模(11 章)与权限收紧(04、10 章),不是弃疗;
  7. 全书底线:难的从来不是识别新攻击类,是把已知纪律用到底的纪律6;
  8. 「新」不构成跳过基础功的理由——感觉越新的系统,越要回头检查老清单。

7. 原文地图

主题原书章原文位置
三件套命名与定位(思维模型非定律)Lethal Trifectatext/19-fm-lethal-trifecta.txt:3(搜「Simon Willson」)
第一条:私密数据、天真一问、回去查访问控制Lethal Trifectatext/19-fm-lethal-trifecta.txt:9(搜「naively asking」)
第二条:不可信输入通道、老原则再锚Lethal Trifectatext/19-fm-lethal-trifecta.txt:13(搜「anchor on the principle」)
第三条:对外通信、数据外泄、聊天界面即通道Lethal Trifectatext/19-fm-lethal-trifecta.txt:17(搜「data exfiltration」)
小结:SQL 注入≈prompt 注入、老心理模型Lethal Trifecta(小结)text/19-fm-lethal-trifecta.txt:21(搜「looks a lot like prompt injection」)
小结:OWASP 二十年、概率性不是 bugLethal Trifecta(小结)text/19-fm-lethal-trifecta.txt:23(搜「two decades」)
小结:查询分布非函数、供应链可操纵、prompt 当源码Lethal Trifecta(小结)text/19-fm-lethal-trifecta.txt:25(搜「statistical and dynamic distribution」)
小结:钥匙交出去、沙箱像摩擦、太脱缰Lethal Trifecta(小结)text/19-fm-lethal-trifecta.txt:27(搜「keys to the kingdom」)
小结:规划、AI 辅助非生成、shift-leftLethal Trifecta(小结)text/19-fm-lethal-trifecta.txt:29(搜「shift-left」)
小结:底线=纪律Lethal Trifecta(小结)text/19-fm-lethal-trifecta.txt:31(搜「discipline to apply what we already know」)

Footnotes

  1. 出处:「Lethal Trifecta」第 3 段(text/19-fm-lethal-trifecta.txt:3,搜「Simon Willson」)。作为红队的快捷方式,有人把某类属性与访问的组合称为 Lethal Trifecta——「事故在酝酿的配方」;首由 Simon Willison 提出(书内拼写为 Willson,通行拼法 Willison,补充来自通用知识);三条:可访问私密/敏感数据、暴露于不可信内容、具备可外传的对外通信能力;三条并存时攻击者可借构造输入操纵模型并最终提取敏感信息;非必然导致失陷,但作为评估 agentic 系统风险的思维模型有用。外部一手来源(补充,不在书里):Willison《The lethal trifecta for AI agents》https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/(查阅于 2026-08-27),三条表述与书内一致。 2 3 4

  2. 出处:「Lethal Trifecta」第 9 段(text/19-fm-lethal-trifecta.txt:9,搜「naively asking」)。许多 agent 被授予检索内部文档、查数据库、访问个人与组织信息的权限;评估要点:能访问哪类数据(机密、PII、专有信息、敏感记录)、谁最终会暴露给它;威胁建模的天真一问:每个与系统交互的用户都应能看见它取回的数据吗——这正是复查访问控制、显式验证的位置。 2

  3. 出处:「Lethal Trifecta」第 13 段(text/19-fm-lethal-trifecta.txt:13,搜「anchor on the principle」)。不可信暴露指攻击者可控内容(文本、图片、文件、网页)抵达模型的任意路径;恶意指令可嵌入其中时模型可能被带偏;书内明言这是不可信输入原则的又一锚点。 2

  4. 出处:「Lethal Trifecta」第 17 段(text/19-fm-lethal-trifecta.txt:17,搜「data exfiltration」)。能发消息、调外部 API、写文件或以其他方式传出环境,操纵成功即致泄密;安全术语称 data exfiltration,核心风险是私密信息越过本应属于它的信任边界;门槛低到「模型作答的聊天界面」就算。

  5. 出处:「Lethal Trifecta(小结)」第 27 段(text/19-fm-lethal-trifecta.txt:27,搜「keys to the kingdom」)。作者称行业最大的安全失败不是新攻击面,而是开发者「因为 demo 惊艳就把王国钥匙交给 agent」;最小权限人人都懂,直到亲眼看见有人因为沙箱「像摩擦」就给 agent 不受限的文件系统访问;并判断:当前前沿 agentic 系统仍太脱缰,不宜长时大权限运行——有限的上下文窗口终将追上它,丢失主线,做出荒唐事。

  6. 出处:「Lethal Trifecta(小结)」第 31 段(text/19-fm-lethal-trifecta.txt:31,搜「discipline to apply what we already know」)。小结收束:锁定用户起步法是研究者的安全快捷原型路径;三件套是威胁建模的快捷判定;底线:AI 安全难的不是识别新攻击类,而是把已知之物应用到底的纪律——用在新到似乎可以跳过基础功的系统上。