Zenity在10月8日公开的AgentCorruption研究,描述了一条从可公开访问的Amazon Bedrock AgentCore智能体进入相邻运行时和持久记忆的历史路径。关键条件是同一AWS账户、同一区域中的过宽执行角色,并非侵入其他AWS客户账户,也不是窃取管理员密码。
提示诱导网络请求,暴露临时工作负载凭证,IAM再放大其权限。公开前,研究者已发现AWS大幅收紧默认角色。因此它证明的是早期受测默认配置的缺陷,而不是当前每个AgentCore部署仍能被完整攻击链利用。
提示跨入可信工作负载身份
AgentCore于2025年10月正式可用,结合隔离运行时、身份、记忆、网关、浏览器自动化、代码执行和可观测性。它们解决真实运维问题,但服务集成也产生超出微虚拟机边界的授权依赖。
Zenity测试中,能发HTTP请求的工具服从不可信指令,访问本地工作负载元数据。AWS使用链路本地元数据服务;AgentCore的Firecracker微虚拟机提供相关的MMDS服务。执行角色的临时凭证原本让程序访问获准资源,避免把永久密钥写进镜像。
据研究,请求在微虚拟机内执行,被当作本地访问,返回临时访问密钥、秘密密钥及会话令牌。这属于SSRF:攻击者诱使服务端组件访问自己无法直接到达的目标。提示注入提供意图,工具提供网络能力,元数据再提供云身份。
只有不安全文本并不会形成这条链。限制工具不必要地访问元数据可中断路径,即便凭证泄漏,窄权限角色也可限制后果。AWS凭证说明明确指出,微虚拟机中的代码或行为主体可以访问可用凭证,因此要求最小化权限。
Zenity于2025年12月25日首次报告元数据暴露,AWS在2026年4月12日以信息性问题关闭,称2月14日起新部署已使用IMDSv2。其令牌机制能阻挡许多传统SSRF,但灵活自主工具也可能完成前置请求。Zenity认为它增加阻力,却未解决信任问题。
现行运行时指引称,自2026年6月30日起拒绝未启用MMDSv2的运行时。客户仍应核实实际元数据设置,包括requireMMDSV2,而不能假设所有历史配置已变更。元数据加固是一层防护,不是合法程序可访问凭证权限过大的理由。
过宽权限让初始落点扩展到邻近资源
1月12日的第二份报告聚焦角色范围。Zenity称,区域CloudWatch日志组列表及AgentCore命名模式暴露运行时、记忆标识,无需预先掌握资产清单。区域ECR权限与可预测仓库名,又把运行时关联到容器镜像,可能暴露代码和嵌入配置。
受测通配调用权限可触及同账户同区域的私有智能体。公开客服机器人于是可能到达更敏感的账单智能体。研究者通过合法API读取测试账单智能体的工具及billing.json文件,演示的是横向移动,不是第二个无关软件漏洞。
记忆权限据称可列举其他智能体、用户的参与者与会话,并读取事件。内容可能包含个人信息、代码、计划、客户资料或排障时粘贴的凭证。秘密本不该进入会话,与无关工作负载是否有权读取,是两个不同问题。
创建、删除事件权限还影响完整性,而非仅保密性。虚假上下文可进入活跃会话,真实工具结果可被移除。计算隔离并未阻止一个身份调用或修改其他资源,授权隔离必须另行建立。
AWS于2月25日表示正处理根本问题。研究者称6月22日默认角色仍未改变,但9月29日发现大幅收紧:跨运行时调用、私有会话读取、Secrets Manager取值等权限被移除,其他权限也缩小。
修订显著限制了对当前风险的判断。自建角色、复制策略、旧部署仍需检查,但历史演示不证明今天默认角色权限相同。研究发生在受控部署;所引公开证据未证明客户环境被广泛利用,AWS当时也未针对完整链发布专门安全公告。
凭证过期后,记忆仍可能保留影响
AgentCore短期记忆保存会话事件,长期策略抽取事实、偏好、摘要与经验。这让智能体记住未完成工单或格式偏好,也把历史变成未来决策输入,而不只是事故后的证据。
Zenity称通过日志发现记忆ID,枚举参与者、会话和策略,加入恶意事件;抽取机制再把部分内容转为长期记录,后续会话可能把它们当可信上下文读取。因此每次未来交互不必重新进行最初的提示注入。
研究者把测试中的效果称为持久命令与控制。真实行为仍取决于记忆配置、检索、模型、工具和权限。虚假目的地址、伪造批准或受污染摘要说明完整性风险,并不证明每条记忆都会控制所有智能体。
插入的助手历史可能看似此前已作出的决定,删除工具结果则可能移走相反证据。临时凭证过期或轮换能停止后续API访问,却不能抹去已复制代码、秘密或受污染状态。恢复必须追踪被访问的会话、事件、摘要与抽取记忆。
AWS记忆指引建议输入校验、保存前防护、定期注入测试和最小权限。来源记录应标明用户、智能体、会话与抽取过程,便于隔离审查。文风偏好的后果不同于付款地址或访问授权,后者应有更严格的创建、保留和审阅规则。
记忆本身不能授权高风险操作。记住首选银行账户,也不能替代当前独立批准。除读取外还应监控写入、删除,尤其异常数量和跨智能体模式,并结合CloudTrail、应用日志及AgentCore观测数据发现完整性滥用。
授权边界必须放在模型判断之外
AWS运行时指引警告,不要把CLI生成的宽泛开发策略用于生产,应使用具体运行时ARN而非通配。它还要求执行角色权限不超过能够调用运行时的主体权限。因此公开可达智能体尤其需要缩小权限。
这并不意味着每个公开智能体都不安全,而是接受的语言必须视为不可信,包括已认证客户提交的恶意提示,或页面、文件中的间接指令。认证识别调用者,却不能让其提供的所有语义都变安全。
网关、防护和拦截器可验证、限制请求,但若存在其他获准入口可以绕过,策略就失去作用。网关应是入口时,直接调用运行时应限制为网关执行角色。用户身份必须来自已验证主体,不能信任模型生成或调用者自称的标签。
资源级IAM可阻止调用无关智能体、拉取无关镜像、枚举区域日志或读取其他记忆。公开与内部负载不应只因配置方便就共享角色;敏感功能可通过账户或区域分离形成更清楚边界。
工具是特权接口,模型决定调用不等于获得许可。授权应独立考虑已认证用户、资源和操作。工程知识记录可以连接运行时归属、策略、威胁模型与处置流程,却不能替代真正强制拒绝。
当前检查需要兼顾历史与持久状态
有范围的检查应覆盖执行角色、元数据设置、公开/IAM/JWT入口、网关绕行、跨运行时权限、ECR与日志、跨用户记忆、事件写删,以及令牌或Secrets Manager读取。身份与资源策略应共同测试预期拒绝,不能凭原型运行成功就认定安全。
排查历史暴露需看相关时段的CloudTrail、运行时调用、元数据活动、镜像拉取、记忆与秘密访问,而不只是当前策略快照。临时凭证能留下长期影响,轮换凭证与验证记忆状态因此相互补充。
后续有用证据包括AWS正式公告或迁移指引、更强的工具与凭证端点隔离,以及客户可见的记忆来源、受限写入、告警和批量隔离能力。这些是待观察信息,不应假设已交付。
AgentCorruption提出的更大问题是:模型服从恶意指令后,还能做什么?托管基础设施可降低复杂度,却不能把工具、身份与持久记忆安全地合并为一个宽泛可信角色。即使模型防护失效,确定性权限范围也应阻止一次被操纵的回答升级成账户范围事故。
来源与延伸阅读
Zenity攻击链研究 · AWS凭证说明 · Zenity执行角色分析 · AWS运行时安全指引 · 延伸:工程知识库 · Zenity记忆污染研究 · AWS记忆实践 · AgentCorruption报道
