传统蜜罐利用攻击者的目标:想拿云权限的人很难无视一枚 API Key,想摸清网络的人也会打开看似重要的架构目录。Thinkst 的判断是,攻击 Agent 同样目标明确,而且比人类更愿意系统性探索,因此也更容易被诱饵吸引。
他们把这个思路做成了 Agent Provocateur:一个伪装成有用内部服务的无状态端点。Agent 在网络中发现它后,会收到看似能帮助完成任务的回应;交互一旦开始,防守方就能触发高置信度告警,并继续观察其目标和下一步动作。
图:诱捕端点不需要真正运行模型,只需持续提供足以让 Agent 相信“这里能帮我”的反馈。来源:Thinkst。
#利用的不是单个 Prompt 漏洞
这套方法依赖 Agent 的两种基础属性。
第一,Agent 只能根据系统呈现给它的环境建立世界模型。防守方既然能控制它看到的文件、服务和工具描述,就能把检测点直接放进它的决策回路。第二,Agent 即使没有遭遇显式 Prompt Injection,也会受到社会工程影响:只要一个服务表现得足够合作,它就可能继续透露计划、运行身份或系统信息。
这与试图让模型永远拒绝恶意指令不同。Guardrail 约束的是守规矩的模型;蜜罐检测的是实际行为。 无论对方使用的模型是否带安全训练,行为信号都不会消失。
#从“发现入侵”推进到“审问入侵者”
诱捕服务可以逐步询问 Agent 正准备访问哪些系统、当前进程使用什么身份、设备网络信息是什么,甚至诱导它执行一个所谓的注册步骤。Thinkst 观察到,Agent 有时会编造答案,但这不妨碍检测价值:一个未经授权的进程正在与诱饵交互,本身已经是高信号事件。
Agent Provocateur 捕获攻击 Agent 并触发告警
图:攻击 Agent 探索诱饵服务时,安全团队立即获得告警。来源:Thinkst。
部署时还可以在文件共享、内部 Wiki 或配置目录中放置 Breadcrumb,引导探索者找到诱饵服务。它们不直接阻止攻击,而是提高对方经过检测点的概率。
Thinkst 表示,在包含多台服务器和多个目标的内部靶场中,使用多种开源与前沿模型的 Agent 都触发了 Canary,命中率为 100%。不过文章没有公开测试规模、模型清单和误报率,完整 A2A 实现与测试方法要等后续文章,因此这个数字应被看作内部验证结果,而不是通用基准。
#防御目标从阻止变成可观测
Agent 安全经常把全部希望放在执行前拦截:权限、审批、沙箱和内容过滤当然必要,但任何边界都可能被错误配置或绕过。Agent Provocateur 增加的是另一层控制:一旦有 Agent 开始越界探索,让它尽快撞上一个不会伤害真实系统、却能暴露行为的目标。
它把 Agent 的目标坚持性和可暗示性从攻击面翻转为检测面。更成熟的实现还可以测量交互持续时间、诱饵路径与动作序列,把一次告警扩展成对攻击策略的观测数据。
