⚠️ 本教程仅供安全研究与防御学习。所有渗透测试必须在有书面授权的测试环境中进行,未经授权对任何系统发起测试都可能触犯法律。文中的攻击链用于理解原理,请勿复现到真实系统。
8 月 18 日,Wiz 披露了一个极具冲击力的事件:它的自主 AI 安全 Agent「Red Agent」在五天内独立发现并利用 Snowflake 的一个 GitHub Actions 注入漏洞,一路攻入内部 Jira 系统。更戏剧性的是——涉事的脆弱代码,本身是经 GitHub Copilot 辅助编写并批准的。AI 攻击、AI 防守、AI 写漏洞,三方第一次真正同台。
先搞懂:Red Agent 是什么?
Red Agent 是 Wiz 开发的自主安全测试 Agent,它把红队的工作流程自动化了。与传统渗透工具不同,它能自主决策:
| 传统红队 | Red Agent |
|---|---|
| 人工读漏洞情报,手动规划攻击 | Agent 读取情报自动生成攻击计划 |
| 人编写利用脚本、手动验证 | Agent 自动写利用代码并执行验证 |
| 发现漏洞后人工写报告 | Agent 自动产出利用报告与修复建议 |
| 按天计费、按人排期 | 7×24 自主循环,5 天完成整条链路 |
核心警示:Red Agent 攻入的链条里,涉事代码由 Copilot 辅助编写且被人工批准——AI 不只是攻击者,还是漏洞的「生产者」。防御方必须同时盯住这两个入口。
Step 1:明确授权边界(先于一切)
做任何 AI 红队项目之前,先回答四个问题并留书面记录:
1. 授权范围:哪些系统/域名/账号可以测?(写清单)
2. 测试时段:允许在几点到几点执行攻击动作?
3. 影响边界:允许做什么?(读数据?提权?不许删数据)
4. 应急联络人:触发告警时找谁、怎么证明是测试?
建议用隔离的测试环境复现本教程的攻击链,
不要在真实生产系统上演练。
Step 2:搭一个「规划器 + 执行器」双 Agent 骨架
Red Agent 的架构可以简化成两个角色分工协作:
规划器 Planner:
- 输入:漏洞情报、目标资产清单
- 输出:攻击路径图(先做什么、后做什么、条件分支)
- 原则:每一步只做「授权范围内」的动作
执行器 Executor:
- 接收规划器下发的单步指令
- 调用工具:HTTP 请求、代码执行、凭据尝试
- 把结果回报给规划器,形成「发现→利用→验证」闭环
# 提示词要点(安全场景)
规划器提示词必须包含:授权边界声明、禁删数据、
超时上限、失败重试次数上限、触发条件自动停止
护栏设计:给 Agent 加「停止条件」和「白名单」,例如只允许访问 *.test.example 域、禁止写操作。参考《多 Agent 安全五道护栏》里的思路做框架级约束。
Step 3:复现 GitHub Actions 注入链
Red Agent 攻破的链路本质是一条CI/CD 注入链,原理可拆成四步(请在隔离环境复现):
1. 注入点:GitHub Actions 工作流中,存在未清理的输入
(如 issue 标题 / PR 描述)被拼进 run: 命令
2. 触发:攻击者提交一个恶意命名的 issue/PR,注入命令执行
3. 横向:注入的命令拿到 GITHUB_TOKEN,向内部系统发请求
(如调用内部 API、写 Jira 工单)
4. 放大:利用 CI 环境的网络权限,向更深的内网渗透
关键教训:
- Actions 中任何外部输入都要按「不可信」处理
- GITHUB_TOKEN 默认权限要收紧,按最小权限授予
Step 4:跑通「自主渗透」闭环
Red Agent 的自主性体现在它把渗透测试做成了一个可循环的工程流程:
阶段一 情报收集:扫描资产、枚举暴露面、拉取漏洞库
阶段二 攻击规划:基于情报生成候选攻击路径(规划器)
阶段三 执行验证:执行器逐条尝试,记录成功/失败
阶段四 报告沉淀:成功的路径自动产出 PoC 报告
+ 修复建议 + 影响评级
循环:阶段四的结果回到阶段一,尝试下一跳目标,
直到达成授权目标或触发停止条件。
成本与失控风险:自主 Agent 的每一步都可能产生真实流量和日志,测试环境要按「可随时整体断电」设计;生产环境别让自主 Agent 直接开跑。
Step 5:防守侧——给自家 CI/CD 上护栏
Red Agent 事件给所有团队的提醒:AI 时代防御要同时防「AI 攻击」和「AI 写的漏洞」。落地清单:
1. Actions 输入净化:所有外部输入先过滤再进 run 命令
2. 最小权限令牌:GITHUB_TOKEN 按 job 粒度授权,禁默认读写全部
3. 出站网络白名单:CI 运行环境的网络按需放行,禁全开
4. AI 生成代码审查:Copilot/Codex 生成的代码过安全扫描
(这正是 Copilot 辅助编写 + 人工批准翻车的教训)
5. 审计日志与告警:CI 环境异常出站/异常令牌调用必须告警
6. 定期用「白帽 Agent」自查:用同类工具在授权范围主动找洞
Step 6:报告与修复闭环
一次成功的红队行动(无论人工还是 AI),收尾比开场更重要:
1. 产出利用报告:漏洞描述 / 复现步骤 / 影响范围 / 证据截图
2. 给出修复建议:按优先级排序(P0 立即修 / P1 本周修)
3. 登记漏洞跟踪:进工单系统,绑定负责人与截止日
4. 回归验证:修复后跑一遍同款攻击确认封堵
5. 沉淀到知识库:攻击手法入库,下次防御/红队直接复用
常见问题速查
| 你遇到的现象 | 大概率原因 & 解决 |
|---|---|
| Agent 越权访问了未授权系统 | 规划器提示词缺少边界声明,加白名单 + 停止条件并重跑授权流程 |
| Actions 注入测试误伤生产 | 务必在隔离仓库复现,生产仓库禁止直接跑注入脚本 |
| AI 生成代码混入漏洞 | 加安全扫描门禁(Semgrep/CodeQL),人工审查时重点看输入处理 |
| 想用 AI 做防守自查 | 从最小授权范围开始,先跑非敏感系统,逐步建立信任 |