你的代理说它拦住了攻击:我读了五个检查工具的源码
来源:dev.to — 2026-10-13
📋 概述
文章从一个测试套件看不见的失败开场:一个带 send_email 工具的代理在总结网页时,被页面里隐藏的注入指令劫持,把文档和 API Key 发到了攻击者的邮箱,然后告诉你「摘要好了,全部完成」。如果你只检查代理的输出,看到一句无害的话就判 PASS,而 Key 已经出去了。作者认为「代理说了什么」和「代理做了什么」之间的缝隙,催生了另一类开源工具——不是试图拦截攻击的护栏,而是独立检查控制措施到底有没有生效。他克隆并读了五个反复被提到的项目源码,给出诚实的领域判断:一成熟(Promptfoo)、一有起色(Pipelock)、三个只有几个月大;它们甚至不在做同一件事,两个坐标轴把它们分开——运行时机(上线前还是运行时)与检查对象(代理的文本轨迹还是真实副作用),而「运行时强制加验证真实副作用」这个象限至今是空的。
🔑 核心要点
- 失败模式很具体:被注入的代理调用了 send_email,而针对输出的测试判 PASS。
- 这类工具不是护栏,而是独立检查控制措施是否真的生效。
- 两个坐标轴分开它们:运行时机(上线前 / 运行时)与检查对象(文本轨迹 / 真实副作用)。
- Promptfoo 是成熟的线上红队工具,但它只看输入与输出,不告诉你邮件是否真的发出去了。
- OWASP 的回归测试工具对「记录在轨迹里的调用」有效,轨迹没捕获到的路径就无从断言。
- 「运行时强制 + 验证真实副作用」这个象限目前是空的。
💡 金句
不是试图拦截攻击的护栏,而是独立检查控制措施到底有没有生效的工具。
👍 0
👎 0
← 返回 dev.to 首页