2026年5月18日,一场代号“巨齿鲨”(Megalodon)的大规模自动化供应链攻击席卷了 GitHub 平台。在短短不到6小时内,超过5500个代码库被注入恶意 CI/CD 后门,刷新了 GitHub Actions 投毒攻击的最快扩散纪录。
攻击时间线与手法
安全公司 SafeDep 的调查显示,攻击行动发生在2026年5月18日 UTC 时间约11:36至17:48期间。在此期间,“巨齿鲨”操控着一批用户名为随机八字符的临时账户,向多达5561个 GitHub 仓库推送了5718个恶意提交。
为了掩人耳目,攻击者精心伪造了身份和提交信息。作者署名被伪装成 build-bot、auto-ci、ci-bot、pipeline-bot 等常见的 CI 机器人,邮箱则使用了 build-system@noreply.dev 和 ci-bot@automated.dev,与常规的自动化维护行为无异。提交信息如 “ci: add build optimization step” 和 “chore: optimize pipeline runtime” 也是精心设计,目标直指绕过常规的代码审查。
恶意负载变体分析
此次攻击部署了两种共享相同 C2 服务器(216.126.225.129:8443)的 GitHub Actions 工作流变体,以实现大规模扩散和定点潜伏:
- SysDiag(大规模变体):向仓库新增
.github/workflows/ci.yml 文件。其触发条件设置为 push 和 pull_request_target,意味着任何分支的提交都会自动触发恶意脚本执行。
- Optimize-Build(定向变体):替换仓库现有的合法工作流文件,将触发方式改为
workflow_dispatch。这相当于创建了一个静默后门,攻击者可以随时通过 GitHub API 手动激活,且不易产生可见的 CI 运行记录。
两种变体均请求了 id-token: write 和 actions: read 的高权限,目的是窃取 OIDC 令牌来冒充云身份。一旦被触发,一段经过 Base64 编码的 bash 脚本(共111行)便会执行多阶段的凭证窃取任务:
- 收集所有 CI 环境变量、
/proc/*/environ 以及 PID 1 的环境数据。
- 提取 AWS 凭证,包括访问密钥、秘密密钥和会话令牌。
- 通过
gcloud auth print-access-token 获取 GCP 访问令牌。
- 从 AWS IMDSv2、GCP 元数据和 Azure IMDS 端点获取实时凭证。
- 窃取 SSH 私钥、Docker 认证配置、
.npmrc、.netrc、Kubernetes 配置、Vault 令牌和 Terraform 凭证。
- 利用30多个正则表达式,扫描源代码中的 API 密钥、JWT、数据库连接字符串、PEM 密钥和云令牌。
- 窃取 GitHub Actions OIDC 令牌,实施直接的云身份冒充。
典型受害案例分析
开源在线聊天平台 Tiledesk 是这一波攻击的关键下游目标。攻击者通过提交哈希为 acac5a9 的恶意代码,入侵了其 GitHub 代码库,并将合法的 Docker 构建工作流替换为“Optimize-Build”后门变体。
毫不知情的维护者在不知情的情况下,将受污染的 @tiledesk/tiledesk-server 2.18.6 至 2.18.12 版本发布到了 npm registry,导致后门得以通过软件包传播。值得注意的是,Tiledesk 的应用代码本身并未被修改,仅有工作流文件遭到篡改。
入侵指标 (IoC)

(注:IP地址和域名已做无害化处理,如使用 [.] 替代 .。在 MISP、VirusTotal 等威胁情报平台使用时需将其还原。)
应急缓解措施
如果你的代码库在2026年5月18日期间收到了来自 build-system@noreply[.]dev 或 ci-bot@automated[.]dev 的提交,请立即执行以下操作:
- 回滚与审计:回退所有恶意提交,并全面审计
.github/workflows/ 目录下的所有文件。
- 轮换密钥:立即轮换 GitHub Actions 运行器可访问的所有密钥,包括私有令牌、API 密钥、SSH 密钥和云服务凭证。
- 检查云日志:在云平台日志中排查是否存在未知工作流运行所产生的异常 OIDC 令牌请求。
- 审查 CI 记录:在仓库的 Actions 标签页中,检查是否存在意外的
workflow_dispatch 手动执行记录。
- 固定版本:将 GitHub Actions 依赖项固定到特定的提交 SHA,而不是使用可变的版本标签。
- 审批关卡:为来自外部贡献者的拉取请求设置工作流审批关卡。
SafeDep 的 Malysis 引擎在检测 @tiledesk/tiledesk-server@2.18.12 捆绑工作流文件中的 Base64 编码负载时首次发现了这次攻击,这凸显了自动化供应链扫描工具在捕获绕过传统代码审查的攻击时所具有的巨大价值。
|