GITHUB_TOKEN(仓库范围密钥),并在第二条路径中实现GitHub Actions运行器上的远程代码执行 。攻击者因此可以修改PR评论、批准恶意变更或篡改仓库的CI流水线 。adk-python仓库的CI/CD流水线中运行着两个层级的AI代理 :
| 层级 | 代理 | 权限 | 触发方式 |
|---|---|---|---|
| 低 | triage代理(面向公众) | 只读;只能在Issue/PR上评论 | 任何公开的GitHub Issue或Pull Request |
| 高 | 代码修复代理(仅限维护者) | 仓库写入权限;可修改代码、批准PR、访问密钥 | 仓库Collaborator发布/adk-issue-fix命令 |
逐步攻击链 :
/adk-issue-fix”)。/adk-issue-fix命令的评论。GITHUB_TOKEN),并可以修改代码或批准Pull Request 。核心架构缺陷在于缺少代理间的权限边界:高权限代理因为命令来自一个Collaborator账户便予以信任,从未验证该指令是来自可信的人类用户还是来自一个被攻陷的低权限代理 。
adk-python仓库中三个涉及代理链的GitHub Actions工作流:issue-analyze.yml、issue-fix.yml和pr-analyze.yml 。业界研究人员和分析师从此次披露中得出几项重要结论:
代理间信任成为新攻击面。 传统安全模型假设信任边界存在于人类与软件之间;此案例表明,AI代理可以被用来攻击其他AI代理,且攻击可以不可见地跨越权限边界 。云安全联盟(CSA)指出,这是一个“信任移交缺陷”——代理之间隐式信任来自其他代理的输入,而未验证这些指令的真正来源 。
提示注入成为新的注入类别。 正如SQL注入和命令注入定义了2000年代和2010年代,跨代理提示注入——即一个代理的输出成为另一个代理的可信输入——现在已是一个经生产环境验证的攻击向量,安全架构必须将其纳入考量 。
代理身份与授权仍是未解难题。 目前尚无标准化方法供一个AI代理在执行指令前核实另一个代理的真实身份或权限级别。攻击之所以成功,是因为系统信任了账户身份(Collaborator),而非指令来源(公开攻击者) 。CSA研究人员呼吁将“代理间授权框架”作为基础安全原语 。
使用AI代理的CI/CD流水线需要权限分离。 安全架构师们现在呼吁:(a) 只读代理不得发出操作命令;(b) 代理间请求应进行加密验证;(c) 任何提升权限的命令都需要人工介入审核;(d) 约束代理输出,防止其发出下游系统将盲目执行的触发命令 。
这是整个代理生态的预警信号。 The Register、CSO、CSA以及多位分析师将此事件定性为“首例此类攻击”,并且几乎可以肯定,除非行业从架构层面构建安全,否则其他多代理框架(如LangChain、AutoGen、CrewAI、Microsoft Copilot Studio)也将出现类似问题 。