首页/博客/TeamPCP 供应链攻击全景:2026 年最严重的 CI/CD 安全危机

TeamPCP 供应链攻击全景:2026 年最严重的 CI/CD 安全危机

供应链安全✍️ AI Master📅 创建 2026-05-26📖 22 min 阅读
💡

文章摘要

2026年3-5月TeamPCP组织通过泄露的PAT发动了横跨5+生态系统的级联供应链攻击,最终入侵GitHub内部基础设施。本文完整还原攻击链、分析CVE-2026-33634技术细节,并给出CI/CD供应链纵深防御方案。

一、事件概述:当安全工具变成武器

2026 年 3 月至 5 月,一个名为 TeamPCP (又称 DeadCatx3、PCPcat、ShellForce、CanisterWorm)的威胁组织执行了最具破坏性的软件供应链攻击。这场攻击从 Aqua Security 的 Trivy 安全扫描工具开始,蔓延到 Checkmarx 的 CI/CD 插件、LiteLLM 代理框架、Telnyx 通信 SDK,最终在 5 月通过 Nx Console VS Code 扩展(220 万安装量)直接入侵了 GitHub 的内部基础设施,导致约 3800 个内部仓库被未授权访问。

关键时间线:

  • 3 月 19 日:TeamPCP 通过泄露的 GitHub PAT(个人访问令牌)强制推送了 Trivy GitHub Action 的 75 个标签(CVE-2026-33634,CVSS 9.4)
  • 3 月 23 日:Checkmarx AST 插件、KICS Action 等多个 CI/CD 组件被投毒
  • 3 月 27 日:telnyx Python SDK(月下载 67 万次)在 PyPI 被投毒
  • 5 月 18 日:Nx Console v18.95.0 在 VS Code Marketplace 发布恶意版本
  • 5 月 20 日:GitHub 确认内部仓库被入侵

这不是一个孤立事件,而是一场持续两个月的级联供应链攻击。攻击者通过一个泄露的令牌,渗透了整个安全工具生态。

图表加载中…

如果你的团队使用了 Trivy、Checkmarx、LiteLLM 或 Nx Console,立即按照文末的检测清单进行排查。

TeamPCP 攻击链已经扩散到 5 个以上的生态系统和 66+ 个 npm 包。不要只检查已知 IOC——你的环境可能已经被未知变种感染。

二、攻击技术分析:从令牌泄露到级联传播

TeamPCP 的攻击链展现了供应链攻击的「多米诺效应」——攻击者不需要直接入侵目标,而是通过破坏目标信任的工具链来间接渗透。

2.1 第一击:Trivy 行动投毒

3 月 19 日,TeamPCP 使用泄露的 aqua-bot 服务账户 的 GitHub PAT,对 aquasecurity/trivy-action 和 setup-trivy 仓库执行了强制推送(force-push),将 75/76 个标签替换为恶意版本。

恶意载荷:在 Action 的工作流中注入了一个窃取 CI/CD 环境凭证的后门,通过 runner 的内存和文件系统路径收集 GitHub 令牌、AWS 密钥等敏感信息。

2.2 级联扩散:CI/CD 生态链式反应

TeamPCP 利用从 Trivy 获取的凭证,继续入侵了:

  • Checkmarx AST 插件(Jenkins Marketplace):v2026.5.09 版本注入恶意代码
  • Checkmarx KICS Action:35 个标签全部被强制推送
  • Checkmarx ast-github-action:v2.3.28 被投毒
  • OpenVSX 扩展:ast-results v2.53.0 和 cx-dev-assist v1.7.0 被发布

2.3 VS Code 扩展攻击面

5 月 18 日,TeamPCP 发布了 Nx Console v18.95.0 的恶意版本到 VS Code Marketplace。该扩展有超过 220 万次安装,是 Nx 框架的官方开发工具。

恶意代码执行机制:

  • 在 main.js 中注入混淆代码
  • 每次工作区启动时执行:npx -y github:nrwl/nx#558b09d7...
  • 这个命令从官方 nrwl/nx 仓库的一个孤立提交中下载并执行隐藏包 nx-next
  • nx-next 的真实任务是凭证窃取,包括 GitHub 令牌、AWS 密钥等

这为什么有效:VS Code 扩展在开发者的工作环境中运行,拥有完整的文件系统和网络访问权限。开发者的电脑就是企业内网的入口。

图表加载中…

定期轮换所有 CI/CD 服务的个人访问令牌(PAT),特别是服务账户的令牌。TeamPCP 的起点就是一个未轮换的 aqua-bot PAT。

VS Code 扩展拥有完整的本地系统权限。安装任何扩展前,检查其发布者是否验证、安装量是否合理、是否有社区审核。

三、CVE-2026-33634 技术深潜

CVE-2026-33634(CVSS 9.4)是本次攻击链的起点,也是 2026 年最严重的 CI/CD 供应链漏洞之一。

3.1 漏洞机制

Trivy 是一个广泛使用的容器安全扫描器,其 GitHub Action 版本被投毒后,任何使用 trivy-action 的 CI/CD 流水线都会自动执行恶意代码。

攻击路径:

  1. 攻击者通过泄露的 PAT 获得 trivy-action 仓库的写入权限
  2. 强制推送(force-push)替换了所有历史标签的 commit
  3. 新的 commit 包含恶意 Action 代码,在 CI runner 环境中执行
  4. 恶意代码从 runner 的环境变量、配置文件和内存中窃取凭证
  5. 窃取的数据被发送到攻击者控制的 C2 服务器

3.2 影响范围

受影响的仓库包括:

  • aquasecurity/trivy-action:75/76 个标签被替换
  • aquasecurity/setup-trivy:全部 7 个标签被替换
  • Checkmarx/kics-github-action:35 个标签被替换
  • Checkmarx/ast-github-action:v2.3.28 被投毒
  • @antv npm 命名空间:多个包被投毒
  • actions-cool/issues-helper:GitHub Action 被投毒

总计影响 66+ 个 npm 包、5 个以上的生态系统。

3.3 攻击者的持久化策略

TeamPCP 展示了一种「最小痕迹」持久化策略:

  • 利用已有的发布基础设施(而非创建新的恶意仓库)
  • 在合法的仓库中注入恶意 commit,外观上难以察觉
  • 通过 npm lifecycle scripts 和 VS Code tasks.json 自动运行机制执行载荷
  • 使用孤立 commit(orphan commit)隐藏恶意代码的下载源

这种策略使得传统的供应链安全检查(如检查新发布的包)难以检测到攻击。

图表加载中…

启用 GitHub 的分支保护规则和标签保护,禁止 force-push。设置 CODEOWNERS 文件要求关键文件的变更需要多人审查。

CVE-2026-33634 的 CVSS 评分为 9.4(接近最高),但实际影响取决于你使用的具体版本和 CI/CD 配置。即使你的 Trivy 版本不在已知受影响的标签列表中,也要检查你的 CI runner 日志中是否有可疑的网络请求。

四、对比:主流供应链攻击模式

TeamPCP 的攻击模式在供应链攻击史上具有里程碑意义,它与历史上的重大供应链攻击有显著差异。

4.1 与传统供应链攻击的对比

SolarWinds(2020):国家支持的攻击者入侵了软件构建系统,在合法软件更新中植入后门。影响约 18000 个组织,但需要受害者安装软件更新才会感染。

Log4Shell(2021):是一个漏洞而非供应链攻击。Log4j 中的远程代码执行漏洞影响了全球数以百万计的 Java 应用。

XZ Utils(2024):攻击者通过社交工程获得了一个广泛使用的压缩库的维护者权限,植入了极其隐蔽的后门。几乎影响所有 Linux 发行版。

TeamPCP(2026):独特之处在于级联扩散模式——攻击者不是单一入侵一个软件,而是通过一个泄露的令牌,像病毒一样在 CI/CD 生态系统中传播,从一个工具跳到另一个工具。

4.2 攻击复杂度与影响的对比

维度 SolarWinds XZ Utils TeamPCP
攻击起点 构建系统入侵 社交工程 泄露的 PAT
扩散方式 软件更新分发 预编译库植入 CI/CD 级联
受害者数量 ~18,000 潜在数亿 66+ 生态包
持续时间 数月 数年 2 个月
检测难度 极高(代码签名合法) 极高(仅预编译包含) 高(在合法流程中)
级联效应 有(5+ 生态)

4.3 TeamPCP 的创新之处

  1. 最小权限持久化:不创建新仓库,利用已有基础设施
  2. 跨生态传播:从 GitHub Actions 到 npm 到 PyPI 到 VS Code
  3. 自动化执行链:利用 npm lifecycle scripts、VS Code tasks.json 自动执行
  4. 开发者信任攻击面:将开发者的本地开发环境作为入侵企业内网的跳板

这些创新使得 TeamPCP 成为供应链攻击的一个新范式。

图表加载中…

了解供应链攻击的演变有助于建立纵深防御。不要只防御一个攻击面——TeamPCP 证明了攻击者可以从任何一个入口点扩散到整个生态。

不要认为你的组织「没有使用 Trivy 所以安全」。TeamPCP 的攻击链已经扩散到 npm、PyPI、VS Code Marketplace 等多个平台,影响范围远超最初的 CI/CD 工具。

五、防御策略:构建供应链纵深防御体系

面对 TeamPCP 级别的供应链攻击,单一的防御措施远远不够。需要构建纵深防御体系。

5.1 第一层:令牌与凭证管理

  • 轮换所有 CI/CD 服务账户的个人访问令牌(PAT)
  • 启用 GitHub 的细粒度令牌(fine-grained PAT),限制权限范围
  • 使用 OIDC 或短期令牌替代长期 PAT
  • 审计所有服务账户的令牌创建时间和最后使用时间

5.2 第二层:依赖完整性验证

  • 对所有第三方依赖执行 Software Bill of Materials(SBOM) 生成
  • 启用 GitHub 的 Dependabot alerts 和 security updates
  • 使用 Sigstore/cosign 对 CI/CD 工件进行签名和验证
  • 在 CI 流水线中集成依赖扫描(但注意:Trivy 本身已被攻击,需要多个工具交叉验证)

5.3 第三层:CI/CD 管道安全

  • 启用分支保护和标签保护:禁止 force-push 到生产分支
  • 实施 CODEOWNERS 策略:关键文件变更需要多人审批
  • 隔离 CI runner 环境:使用一次性 runner,执行后销毁
  • 监控 CI runner 的网络请求:检测异常的外联行为

5.4 第四层:开发者环境安全

  • VS Code 扩展审核:只安装已验证发布者的扩展
  • 监控扩展的权限请求:注意需要文件系统或网络访问的扩展
  • 启用 npm audit 和 pip-audit:在安装新包前检查已知漏洞
  • 考虑使用 企业私有 npm registry:对所有第三方包进行代理和扫描

5.5 第五层:检测与响应

  • 建立供应链安全监控:订阅安全公告(CVE、GitHub advisories、npm advisories)
  • 部署运行时检测:使用 eBPF 或类似的运行时安全工具监控异常行为
  • 制定供应链事件响应计划:当发现投毒包时,如何在最短时间内隔离和修复
  • 定期红队演练:模拟供应链攻击场景,测试检测和响应能力
图表加载中…

最优先的行动:立即轮换所有 CI/CD 服务账户的 PAT,并启用 GitHub 的细粒度令牌。这是 TeamPCP 攻击链的起点,也是你最容易被攻击的入口。

不要只依赖单一安全工具。TeamPCP 攻击的正是安全工具本身(Trivy、Checkmarx)。使用多种工具交叉验证,并定期检查这些工具本身的完整性。

六、实战:检测清单与修复指南

如果你怀疑你的环境可能受到 TeamPCP 攻击的影响,以下是立即执行的检测清单。

6.1 立即执行的检查项

  1. 检查 Trivy Action 版本:确认你使用的 trivy-action 和 setup-trivy 标签未被强制推送
  2. 检查 Checkmarx 组件:确认 AST 插件、KICS Action 等组件的完整性
  3. 检查 Nx Console 版本:确认没有安装 v18.95.0
  4. 检查 CI runner 日志:查找异常的网络请求或凭证访问
  5. 检查 npm/PyPI 包:运行 npm audit 和 pip audit 检查已知投毒包

6.2 凭证轮换清单

  • 所有 GitHub PAT(特别是服务账户的 PAT)
  • 所有 CI/CD 环境变量中的令牌和密钥
  • 所有 npm registry 的认证令牌
  • 所有 PyPI 的 API 令牌
  • 所有云服务商(AWS、GCP、Azure)的访问密钥

6.3 长期改进建议

  • 建立 依赖关系图谱:追踪所有第三方依赖的来源和版本
  • 实施 供应链风险管理流程:定期评估第三方组件的安全状态
  • 参与 开源安全社区:及时了解新的供应链攻击模式和防御策略
  • 考虑 构建内部安全工具:减少对第三方安全工具的依赖

将检测清单自动化。编写 CI 脚本定期执行这些检查,而不是手动操作。自动化是应对供应链攻击的最佳方式。

凭证轮换后,确保更新了所有使用旧凭证的服务和配置。遗漏的旧凭证可能成为新的安全漏洞。

七、总结与趋势预判

TeamPCP 供应链攻击标志着软件供应链安全进入了一个新阶段。 攻击者不再满足于入侵单一软件,而是利用 CI/CD 生态系统的相互依赖性,从一个入口点扩散到整个工具链。

7.1 关键教训

  1. 安全工具本身可能成为攻击面——不要假设安全工具是绝对可信的
  2. 令牌管理是第一道防线——泄露的 PAT 是 TeamPCP 攻击链的唯一起点
  3. 级联扩散是新的威胁模式——一个工具的沦陷可能导致整个生态的沦陷
  4. 开发者环境是企业内网的入口——VS Code 扩展攻击证明本地开发环境同样需要保护

7.2 趋势预判

  • 2026 下半年:预计会出现更多针对 CI/CD 生态系统的级联供应链攻击
  • 2027 年:SBOM 和签名验证将成为 CI/CD 管道的标配,但攻击者会寻找绕过签名的方法
  • 长期:供应链安全将从「检测已知威胁」转向「验证完整性和信任链」

7.3 对 AI Master 读者的建议

如果你正在构建 AI 驱动的 CI/CD 系统或使用 AI 代码生成工具(如 Copilot、Codeium),这些工具本身也是供应链的一部分。AI 模型生成的代码可能包含供应链攻击的隐蔽后门——这是下一个值得关注的安全前沿。

图表加载中…

持续关注 SLSA(Supply chain Levels for Software Artifacts)框架的进展。这是目前最全面的软件供应链安全标准框架。

不要等待下一次攻击。TeamPCP 证明了供应链攻击的扩散速度远超大多数组织的响应能力。现在就构建纵深防御体系。

标签

#供应链安全#CI/CD#TeamPCP#CVE-2026-33634#VS Code 扩展

继续探索更多 AI 内容

浏览更多博客文章,或者深入学习 AI 核心知识