事件概述
供应链攻击活动 GhostAction 在沉寂一年后大规模复活。安全厂商 StepSecurity 与 Socket 披露,攻击者攻陷两名高知名度开源项目维护者的 GitHub 账号,把恶意 GitHub Actions 工作流推送到上游仓库及其下游 fork,累计波及数万个仓库。该活动首次曝光于 2025 年 9 月,当时影响 817 个仓库,本轮规模大了一个数量级以上。
技术细节
16 分钟刷 318 个仓库
StepSecurity 还原的注入时间线十分紧凑:UTC 13:20 起,攻击者使用 1.84 万星标开源游戏引擎 pyxel 作者 Takashi Kitao 的账号,向其名下 27 个仓库推送恶意工作流;8 小时后,使用 Uber 开源工具 athenadriver 原作者 Henry Wu(henrywoo)的账号,在 21:10 至 21:26 的 16 分钟窗口内向 318 个仓库推送同款工作流,折合约每分钟 20 个仓库,明显是脚本化注入。
截至 2026 年 10 月 9 日,Socket 已确认自 10 月 7 日以来有超过 500 个 GitHub 账号提交了同一恶意工作流;GitGuardian 统计 8 月 31 日至 9 月 30 日期间共注入 772 个公开仓库,目标指向 2577 条密钥。
伪装成「安全审计」的四步窃密链
恶意工作流命名为 security-audit.yml 或 github_actions_security.yml,提交者显示为维护者本人。其执行逻辑为:同时监听 workflow_dispatch 与不过滤分支、tag 的 push;检出时以 fetch-depth: 0 拉取完整历史;随后由单一 Audit 步骤完成四项动作——追加侦察到的具名 Secrets、扫描工作区 13 类凭证特征、扫描整个 git 历史中的同类特征、配对 AWS Access Key ID 与 Secret Key,全部经 curl 以明文 HTTP 回传 193.32.204[.]199。
被窃数据覆盖仓库配置的 Actions Secrets 与整个 git 历史中的云、AI、SaaS 凭证,典型项包括 AWS 密钥、Anthropic / OpenAI / OpenRouter 的 API Key 与 GitHub、GitLab 令牌。历史扫描是最需警惕的一环:把泄露的密钥从当前文件树删掉,并不等于从历史里删掉。
影响评估
本活动不含软件漏洞,因此没有 CVE、也没有补丁。研究者的判断是:凡自 2026 年 8 月 31 日以来出现过上述两个文件名之一的仓库,都应视作已失陷;攻击链起点很可能是从信息窃取木马日志中流出的 Personal Access Token(PAT)。
风险最高的资产是私有 fork 与下游镜像——真正被提交进仓库的凭证通常就在私有仓库里。Socket 指出,henrywoo 命名空间下 279 个 fork 各自带有该文件,只要启用 Actions,后续 push 都可能再次触发凭证采集。
修复建议
- 检索全部仓库(含分支、tag 与 fork)是否存在上述两个文件名,出现即按失陷处理;
- 立即吊销相关 GitHub 凭证并轮换全部关联密钥,重点为 AWS、AI 服务与包仓库发布令牌;
- 在所有分支删除该工作流,并检查下游 fork 与镜像仓库;
- 在边界与出口封禁回传地址,监测 CI Runner 向 193.32.204[.]199 的明文 HTTP 外连;
- 为 CI/CD 引入 OIDC 短期凭证与最小权限工作流,第三方工作流固定到 commit SHA,替代长期静态 Secret。