知名安全工具Trivy再遭供应链攻击:GitHub Actions被入侵,75个标签被劫持

导语:开源安全工具领域再次发生重大供应链安全事件。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流水线
GitHub Actions供应链攻击

二、攻击技术分析

2.1 攻击手法

安全研究员Philipp Burckhardt描述了此次攻击的关键步骤:

  1. 凭证获取:攻击者持有有效的GitHub凭据(可能是之前事件中窃取的PAT)
  2. 标签篡改:攻击者force-pushed 75个版本标签到恶意提交
  3. 恶意载荷:这些标签指向包含Python infostealer的恶意代码
  4. 静默分发:开发者使用正常版本号即可触发恶意代码

关键点:攻击者无需利用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已发布安全版本:

组件安全版本
trivy0.69.3
trivy-action0.35.0
setup-trivy0.2.6

5.2 缓解措施

安全专家建议:

  1. 立即更新:升级到上述安全版本
  2. 凭据轮换:如果运行过受影响版本,立即轮换所有流水线密钥
  3. 网络封锁:在网络层封锁外传域名(scan.aquasecurtiy[.]org)和IP(45.148.10[.]212)
  4. 仓库检查:检查GitHub账户是否存在名为”tpcp-docs”的公开仓库,这可能表明数据已被窃取

5.3 最佳实践

Wiz研究员Rami McCarthy建议:

“Pin GitHub Actions to full SHA hashes, not version tags.”

(使用完整的SHA哈希引用GitHub Actions,而非版本标签)

版本标签可以被移动到恶意提交,而SHA哈希则无法篡改。


六、供应链安全启示

6.1 攻击趋势

此次事件反映了供应链攻击的几个显著趋势:

  1. 二次攻击:首次入侵后凭据清理不彻底导致持续控制
  2. 标签篡改:force-push是供应链攻击的高效手段
  3. 凭证收集:CI/CD环境成为高价值目标
  4. 攻击自动化:攻击者使用机器人实现持续渗透

6.2 防御策略

蓝队视角的建议

  1. 强化凭据管理
  • 使用短生命周期令牌
  • 实施凭据轮换策略
  • 最小权限原则
  1. GitHub Actions安全
  • 始终使用SHA哈希引用Actions
  • 限制工作流权限
  • 启用细粒度PAT
  1. 运行时监控
  • 监控异常的Git操作
  • 检测可疑的凭据访问
  • 告警未授权的force-push
  1. 事件响应预案
  • 预设供应链安全事件响应流程
  • 定期演练
  • 准备rollback方案

七、总结

Trivy供应链攻击事件是开源生态系统中供应链安全的又一个警示案例。它提醒我们:

  • 安全不是一次性的:首次攻击后的凭据清理必须彻底
  • CI/CD是黄金目标:现代开发流程中的每个环节都可能被利用
  • 标签不可信:使用SHA哈希是基本功
  • 纵深防御:技术、流程、人员缺一不可

对于安全团队而言,这次事件再次证明了供应链安全的复杂性和重要性。每一个依赖项都可能成为攻击者的入口,每一个自动化流程都值得仔细审查。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容