扫描器成为威胁
Trivy是一种安全工具。各组织使用它来通过扫描容器镜像和代码存储库中的已知漏洞和硬编码密钥来保护其软件开发管道。Trivy在GitHub上有33,200颗星,是DevSecOps生态系统中部署最广泛的安全扫描工具之一。这样的覆盖范围使其成为一个格外高价值的目标。
Aqua Security的Trivy维护者Itay Shakury证实,威胁行为者使用被盗凭证强制推送恶意依赖项到trivy-action和setup-trivy这两个核心GitHub Actions组件的几乎所有标记版本。攻击始于周四凌晨,在被发现前数小时内,全世界自动化CI/CD管道可能已拉取并执行了受损代码。
强制推送的含义
强制推送是一种git操作,它覆盖保护现有提交免被覆盖的安全机制。对于GitHub Actions,这尤其危险。当开发人员将其CI/CD工作流程固定到特定的Trivy操作标签(一种旨在确保可重现性的常见安全实践)时,他们相信该标签指向的是一直以来相同的代码。强制推送恶意提交到这些标签会无声地破坏这一假设:管道配置看起来没有变化,但现在执行的是攻击者控制的代码,具有CI/CD环境提供的任何权限。
恶意代码的作用
对受损标签的分析表明,攻击者用设计用于在CI/CD运行程序环境内执行代码的恶意替代品取代了Trivy的合法依赖项。目标是访问密钥——API令牌、云凭证、签名密钥和开发人员经常传递到管道的其他敏感值。
在GitHub Actions工作流程中运行的受损Trivy操作可以访问工作流程能访问的任何东西,在许多组织中包括生产部署凭证、云提供商身份验证、工件签名密钥和源代码存储库。单次渗透的潜在影响范围可以级联到云基础架构妥协、数据泄露和将恶意代码注入生产软件。
响应和更广泛背景
Aqua Security在确认妥协后迅速采取行动,轮换凭证并恢复所有受影响标签的合法代码。团队建议所有用户将在妥协窗口期间运行Trivy操作的任何管道视为可能受影响,并立即轮换所有可访问的密钥。
安全社区的共识是:将GitHub Actions固定到特定的提交SHA哈希值,而不是可变的标签名称。标签可以被强制推送;提交哈希不能被无声替换而不被检测到。这种已知的最佳实践一直采纳不足,此事件可能会加速组织CI/CD政策的变更。这次攻击是针对支撑现代软件开发的开源工具的供应链妥协越来越多的最新案例——这一趋势没有放缓的迹象。
本文基于Ars Technica的报道。阅读原文。
Originally published on arstechnica.com


