Trivy 安全扫描器 GitHub Actions 遭入侵,75 个标签被劫持以窃取 CI/CD 机密
HackerNews 编译,转载请注明出处: Trivy,这款由 Aqua Security 维护的热门开源漏洞扫描器,在短短一个月内再次遭到攻击,被用于传播恶意软件以窃取敏感的 CI/CD 机密信息。 最新这次事件影响了 GitHub Actions 中的 “aquasecurity/trivy – action” 和 “aquasecurity/setup – trivy”。其中,“aquasecurity/trivy – action” 用于扫描 Docker 容器镜像中的漏洞,而 “aquasecurity/setup – trivy” 则用于使用特定版本的扫描器设置 GitHub Actions 工作流程。 Socket 安全研究员 Philipp Burckhardt 表示:“我们发现,攻击者对 aquasecurity/trivy – action 存储库中的 76 个版本标签中的 75 个进行了强制推送。该存储库是用于在 CI/CD 管道中运行 Trivy 漏洞扫描的官方 GitHub Action。这些标签被修改以提供恶意有效载荷,实际上将受信任的版本引用变成了信息窃取程序的分发机制。” 该有效载荷会在 GitHub Actions 运行器内执行,目的是从 CI/CD 环境中提取有价值的开发者机密,如 SSH 密钥、云服务提供商的凭证、数据库信息、Git 信息、Docker 配置、Kubernetes 令牌以及加密货币钱包信息等。 这是涉及 Trivy 的第二起供应链事件。在 2026 年 2 月底到 3 月初,一个名为 hackerbot – claw 的自动机器人利用 “pull_request_target” 工作流程窃取了个人访问令牌(PAT),随后该令牌被用于控制 GitHub 存储库,删除了多个发布版本,并将其 Visual Studio Code(VS Code)扩展的两个恶意版本推送到 Open VSX。 安全研究员 Paul McCarty 在 “aquasecurity/trivy”GitHub 存储库发布了一个新的受感染版本(0.69.4 版)后,首先发现了入侵迹象。该恶意版本随后已被删除。据 Wiz 称,0.69.4 版本会同时启动合法的 Trivy 服务和负责一系列任务的恶意代码: 通过扫描系统中的环境变量和凭证进行数据窃取,加密数据,并通过 HTTP POST 请求将其泄露到 scan.aquasecurtiy [.] org。 在确认运行在开发者机器上后,通过使用 systemd 服务设置持久性。该 systemd 服务被配置为运行一个 Python 脚本(“sysmon.py”),该脚本会轮询外部服务器以检索有效载荷并执行。 Aqua Security 开源副总裁 Itay Shakury 在一份声明中表示,攻击者滥用了一个被泄露的凭证来发布恶意的 trivy、trivy – action 和 setup – trivy 版本。就 “aquasecurity/trivy – action” 而言,攻击者强制推送了 75 个版本标签,使其指向包含 Python 信息窃取有效载荷的恶意提交,而没有像标准做法那样创建新的版本发布或推送到分支。同样,“aquasecurity/setup – trivy” 的 7 个标签也被以相同方式强制推送。 Burckhardt 告诉《黑客新闻》:“在这种情况下,攻击者无需利用 Git 本身的漏洞。他们拥有具有足够权限的有效凭证来推送代码和重写标签,这就是我们所看到的标签中毒得以实现的原因。目前尚不清楚在这一特定步骤中使用的确切凭证(例如维护者的 PAT 还是自动化令牌),但根本原因现已明确是早期事件遗留的凭证泄露问题。” 这家安全供应商也承认,最新的攻击源于对 hackerbot – claw 事件的不完全遏制。Shakury 说:“我们轮换了机密和令牌,但这个过程不是原子性的,攻击者可能知晓了新刷新的令牌。我们现在正在采取更严格的方法,锁定所有自动化操作和任何令牌,以彻底消除该问题。” 该窃取程序分三个阶段运行:从运行器进程内存和文件系统中收集环境变量,加密数据,然后将其泄露到攻击者控制的服务器(“scan.aquasecurtiy [.] org”)。 如果数据泄露尝试失败,受害者自己的 GitHub 账户会被滥用,利用捕获的 INPUT_GITHUB_PAT(这是 GitHub Actions 中用于通过 GitHub PAT 进行 GitHub API 身份验证的环境变量),将窃取的数据存储在一个名为 “tpcp – docs” 的公共存储库中。 目前尚不清楚此次攻击的幕后黑手是谁,不过有迹象表明,被称为 TeamPCP 的威胁行为者可能与此有关。这一判断基于以下事实:该凭证窃取程序在源代码中自称是 “TeamPCP Cloud stealer”。该组织也被称为 DeadCatx3、PCPcat、PersyPCP、ShellForce 和 CipherForce,以作为一个云原生网络犯罪平台而闻名,其目的是入侵现代云基础设施,以便进行数据盗窃和勒索。 Socket 表示:“此有效载荷中的凭证目标与该组织更广泛的云原生盗窃和货币化特征相符。对 Solana 验证器密钥对和加密货币钱包的高度关注,虽然较少被记录为 TeamPCP 的标志,但与该组织已知的财务动机相符。这种自我标识可能是一种误导,但与 TeamPCP 先前工具的技术重叠使得这种归因具有一定合理性。” 建议用户确保使用以下最新的安全版本: trivy 0.69.3 trivy – action 0.35.0 setup – trivy 0.2.6 Shakury 说:“如果您怀疑自己运行的是受感染版本,请将所有管道机密视为已泄露并立即轮换。” 其他缓解措施包括在网络层面阻止数据泄露域及其关联的 IP 地址(45.148.10 [.] 212),并检查 GitHub 账户中是否有名为 “tpcp – docs” 的存储库,这可能表明通过备用机制成功进行了数据泄露。 Wiz 研究员 Rami McCarthy 说:“将 GitHub Actions 固定到完整的 SHA 哈希值,而不是版本标签。正如这次攻击所展示的,版本标签可以被移动以指向恶意提交。” 消息来源:thehackernews.com; 本文由 HackerNews.cc 翻译整理,封面来源于网络; 转载请注明“转自 HackerNews.cc”并附上原文