Bedrock Converse 框架不检查工具结果,间接注入可绕过护栏

rahulladumor · reddit · 2026-11-03

作者查阅 Bedrock Guardrails 文档后发现一个关键盲区:在 Converse API 的工具调用模式下,guardrailConfig 中的护栏只评估用户输入提示词和模型的文本响应,而三个关键字段完全不做任何护栏过滤(包括 prompt attack 检测):代码返回的工具结果(toolResult)、工具定义(toolSpec 的 description/inputSchema)、以及模型生成的工具调用参数(toolUse.input)。文档原文明确写着「prompt attack 过滤器不评估工具结果」。

对照 MITRE ATLAS:间接提示注入(AML.T0051.001)正是通过文档、邮件、数据库等数据通道进入 agent——在 Converse 工具循环里,这个通道就是工具结果;而攻击的出口(AML.T0086,通过工具参数写入数据,如发邮件)恰好是 toolUse.input。进和出都落在护栏读不到的字段里。

作者给出的防御建议:

局限:规则需要结构化参数,自由文本邮件正文无法用白名单/上限检查,只能退回减少工具+人工确认,代价是牺牲自主性。结论是缩小单次注入的破坏面,而非指望彻底解决。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →