导语:开源安全工具领域再次发生重大供应链安全事件。Aqua Security维护的知名漏洞扫描器Trivy的GitHub Actions在一个月内第二次遭到入侵。攻击者通过force-push方式篡改75个版本标签,将恶意代码注入到可信的发布流程中,目标直指开发者环境中的CI/CD密钥和敏感凭证。
一、事件概述
1.1 受影响组件
此次攻击影响了Trivy项目的以下官方GitHub Actions:
- aquasecurity/trivy-action:用于在CI/CD流水线中运行Trivy漏洞扫描
- aquasecurity/setup-trivy:用于在GitHub Actions工作流中设置Trivy
这是继2026年2月底Trivy主仓库遭入侵后的第二次供应链攻击。
1.2 攻击规模
- trivy-action:75个版本标签被force-push
- setup-trivy:7个版本标签被force-push
- 影响范围:所有使用受影响版本的CI/CD流水线

二、攻击技术分析
2.1 攻击手法
安全研究员Philipp Burckhardt描述了此次攻击的关键步骤:
- 凭证获取:攻击者持有有效的GitHub凭据(可能是之前事件中窃取的PAT)
- 标签篡改:攻击者force-pushed 75个版本标签到恶意提交
- 恶意载荷:这些标签指向包含Python infostealer的恶意代码
- 静默分发:开发者使用正常版本号即可触发恶意代码
关键点:攻击者无需利用Git本身的安全漏洞,而是直接使用合法凭据进行恶意操作。
2.2 恶意代码功能
恶意载荷具备以下功能:
第一阶段:凭证收集
- 扫描环境变量
- 读取文件系统中的凭据文件
- 提取CI/CD运行时内存中的敏感信息
第二阶段:数据处理
- 对窃取数据进行加密
- 准备外传数据
第三阶段:数据外传
- 通过HTTP POST发送到攻击者控制的服务器(scan.aquasecurtiy[.]org)
- 如外传失败,滥用受害者的GitHub账户将数据上传到公开仓库”tpcp-docs”
2.3 目标凭证类型
攻击者重点窃取的凭证包括:
- SSH密钥
- 云服务提供商凭据(AWS、Azure、GCP)
- 数据库连接信息
- Git凭据
- Docker配置
- Kubernetes令牌
- 加密货币钱包(尤其是Solana)
三、事件关联分析
3.1 第一次攻击(2026年2月)
2月底3月初,自主攻击机器人hackerbot-claw利用pull_request_target工作流漏洞:
- 窃取Personal Access Token(PAT)
- 获取Trivy仓库控制权
- 删除多个发布版本
- 推送恶意VS Code扩展
3.2 Containment失败
Aqua Security副总裁Itay Shakury承认:
“我们轮换了秘密和令牌,但这个过程不是原子性的,攻击者可能已经获取了新轮换的令牌。”
这解释了为什么第一次攻击的凭据清理不彻底,攻击者能够利用残留权限发动第二次攻击。
3.3 威胁组织 attribution
安全社区分析认为此次攻击与TeamPCP(又称DeadCatx3、PCPcat、PersyPCP、ShellForce、CipherForce)有关:
- 代码中自称为”TeamPCP Cloud stealer”
- 技术手段与该组织历史攻击工具重叠
- 以云原生环境为目标的犯罪平台
- 专注于数据窃取和勒索
注意:自命名可能是假旗(False Flag)操作,但技术分析倾向于真实归因。
四、影响范围评估
4.1 直接影响
- 所有使用aquasecurity/trivy-action的CI/CD流水线
- 所有使用aquasecurity/setup-trivy的GitHub Actions工作流
- 任何引用了被篡改版本标签的项目
4.2 涟漪效应
根据The Hacker News的后续报道,此次供应链攻击产生了级联影响:
- 多个npm包被攻击者利用窃取的凭证 compromise
- 包含自传播蠕虫的恶意版本被推送
- 影响进一步扩大
五、应急响应
5.1 安全版本
Aqua Security已发布安全版本:
| 组件 | 安全版本 |
|---|---|
| trivy | 0.69.3 |
| trivy-action | 0.35.0 |
| setup-trivy | 0.2.6 |
5.2 缓解措施
安全专家建议:
- 立即更新:升级到上述安全版本
- 凭据轮换:如果运行过受影响版本,立即轮换所有流水线密钥
- 网络封锁:在网络层封锁外传域名(scan.aquasecurtiy[.]org)和IP(45.148.10[.]212)
- 仓库检查:检查GitHub账户是否存在名为”tpcp-docs”的公开仓库,这可能表明数据已被窃取
5.3 最佳实践
Wiz研究员Rami McCarthy建议:
“Pin GitHub Actions to full SHA hashes, not version tags.”
(使用完整的SHA哈希引用GitHub Actions,而非版本标签)
版本标签可以被移动到恶意提交,而SHA哈希则无法篡改。
六、供应链安全启示
6.1 攻击趋势
此次事件反映了供应链攻击的几个显著趋势:
- 二次攻击:首次入侵后凭据清理不彻底导致持续控制
- 标签篡改:force-push是供应链攻击的高效手段
- 凭证收集:CI/CD环境成为高价值目标
- 攻击自动化:攻击者使用机器人实现持续渗透
6.2 防御策略
蓝队视角的建议:
- 强化凭据管理
- 使用短生命周期令牌
- 实施凭据轮换策略
- 最小权限原则
- GitHub Actions安全
- 始终使用SHA哈希引用Actions
- 限制工作流权限
- 启用细粒度PAT
- 运行时监控
- 监控异常的Git操作
- 检测可疑的凭据访问
- 告警未授权的force-push
- 事件响应预案
- 预设供应链安全事件响应流程
- 定期演练
- 准备rollback方案
七、总结
Trivy供应链攻击事件是开源生态系统中供应链安全的又一个警示案例。它提醒我们:
- 安全不是一次性的:首次攻击后的凭据清理必须彻底
- CI/CD是黄金目标:现代开发流程中的每个环节都可能被利用
- 标签不可信:使用SHA哈希是基本功
- 纵深防御:技术、流程、人员缺一不可
对于安全团队而言,这次事件再次证明了供应链安全的复杂性和重要性。每一个依赖项都可能成为攻击者的入口,每一个自动化流程都值得仔细审查。













暂无评论内容