2026 供应链安全年度总结 · 上卷
数据基线:《供应链安全总结报告》
巡逻 168 天(2026-04-10 ~ 09-28)+ 外部检索补充(2026-01 ~ 09 盲区)
可视化威胁情报分析
一、总量与密度
369
全年可核事件(基线 355 + 补充 16,去重 2)
168天
基线观测窗(1–3 月为盲区,仅公开披露口径)
19家族
攻击者家族(报告概要写 10,追踪表实列 17)
76%
Top 25 中 CRITICAL 占比(19/25)
$7M
单起已确认直接资金损失(Trust Wallet 扩展)
二、全年重大事件月度分布(合并基线 Top 26 + 补充 16)
条形为当月重大事件数;灰段=本次新增(报告未覆盖),蓝段=报告基线 Top 事件。
1 月0 起 · 无公开记录
2 月1 起 (补1)
3 月4 起 (补4)
4 月6 起 (基5+补1)
5 月4 起 (基3+补1)
6 月5 起 (基1+补4)
7 月2 起 (补2)
8 月1 起 (基1)
9 月18 起 (基16+补2)
(统计至 9/25)
报告的「月度消息分布」把 6 月(122 卡片)定义为峰值爆发期,但按重大事件计数,6 月只有 1 起进 Top,9 月高达 16 起。
差别的来源是:6 月卡片量由 PAN-OS / LiteSpeed / Drupal 等多个 KEV 漏洞的多源重复披露撑起(消息量 ≠ 事件严重性),而 9 月是机制级击穿集中兑现(OIDC 可信发布、npm v12 防护、跨生态 Go 蠕虫、链上 C2 复验)。
结论:趋势分析应以「独立事件严重度分布」替代「卡片量」为主轴,否则 2026 的爆发点会被误判在 6 月。
2.1 基线卡片量 vs 重大事件数(同一份数据的两种读法)
卡片量
重大事件数 | 两序列负相关(7–9 月卡片降、事件升)= 采集体系进入「少而重」阶段,而非威胁消退。
三、攻击面覆盖度:报告已覆盖 vs 全年实际暴露
0–5 评分。蓝=报告覆盖度,红=合并补充后的全年暴露度。红条显著长于蓝条者即为盲区。
商业客户端/Electron(Apifox/DAEMON)
SaaS/CDN 分发链(Brevo/Vercel)
AI 编码代理供应链(MCP/llms.txt/Plugin4Shell)
CI/CD · GitHub Actions · OIDC
其他注册表(Rust/RubyGems/PHP/Go/Packagist)
全 14 项中,11 项全年暴露度高于报告覆盖度;4 项为「报告零覆盖」。
三个零覆盖攻击面,恰好构成 2026 最有价值的三条线索。
① 模型/数据集仓库:HF 事件入口是恶意数据集 → 远程代码数据集加载器 + Jinja2 模板注入 → 节点提权 → 收割 EdDSA JWT 签名私钥与集群凭证,这是「数据即供应链」的实证。
② 安全工具自身:Trivy 经 Git tag 改写投毒,LiteLLM 的 CI/CD token 因此泄露;Mythos 恶意包被 15 台安全厂商扫描主机自动安装,并反噬其中一家数据库——扫描器是执行不可信代码的最高风险消费者。
③ 签名信任根:11 个持微软第三方 CA 有效签名的 UEFI shim 可绕过 Secure Boot,靠 6/9 dbx 更新吊销——而 dbx 更新本身就是一次供应链分发。
四、防护机制绕过统计
| 时间 | 被绕过的防护 | 绕过手法 | 来源 |
| 4/20 | MCP 协议 STDIO 设计 | 架构级 RCE,Anthropic 以「符合预期」拒修 | 基线 |
| 4–5 月 | SLSA Level 3 / OIDC 信任 | 伪造构建证明(Shai-Hulud V3) | 火绒代际口径 |
| 5/18 | Git tag 指向稳定性 | 强制重写标签→既有工作流被动执行(actions-cool / Trivy) | 基线+补充 |
| 6 月 | npm v12 发布扫描 | 双触发路径+三端持久化(V4) | 火绒 |
| 5/6 | VS Code 任务自动执行收紧 | 落点迁移至 Git pre-commit 钩子(TaskJacker) | 补充 |
| 6/9 | UEFI Secure Boot | 合法微软第三方 CA 签名的旧 shim | 补充 |
| 9/7 | npm 发布时扫描 | 载荷哈希与 5/19 完全一致,休眠 111 天复活 | 基线 |
| 9/17 | npm v12 preinstall 拦截 | import-time 执行绕过(WeaselBiscuit) | 基线 |
| 9/18 | AI 代理 SHA-pinning | Plugin4Shell 零点击 RCE(Claude Code/Codex/Copilot/Gemini CLI) | 补充 |
| 9/22 | npm v12 install-script 防护 | require-time 触发+自清理(indexed-btree 等 10 包) | 基线 |
| 9/22–23 | npm OIDC 可信发布 | GitHub Actions OIDC 令牌自动换 publish 权限(GHAPPIER) | 基线 |
| 4 月 | 漏洞协调披露流程 | 报复性公开 PoC(Nightmare-Eclipse,6 周 6 个 Windows 零日) | 补充 |
6
npm 官方防护被绕过次数(v12×3 / 发布扫描×1 / OIDC×1 / 代际×1)
18天
npm 7 月上线扫描 → 9/7 证实被绕过
年度第一判断:攻防时间差已压缩到「月」级。npm 在 7 月发布新一代防护,9/7 即被证实绕过(18 天窗口内攻击者已完成休眠规避),9/22 又叠加两项新绕过。
这使「装防护」不再是稳态:每一项防护都应假定已被绕过,防御单位应从「检测规则」改为「机制冗余」(pin 到 commit + 双源校验 + 运行时行为基线 + 链上/异常外联监测)。
五、攻击者家族活跃度
TeamPCP/UNC67805 起 · 全年
Shai-Hulud 系4 起 · 5 月至今
Lazarus / DPRK 系7 起 · 8 月起高频
GlassWorm2 起 · 4–6 月
ShinyHunters2 起 · 4–5 月
BRIDGEHEAD/StubMaker3 起 · 8 月
RedC21 起 · 8 月
Kimsuky2 起 · 6/8 月
Offside Wallet1 起 · 8 月
PhantomRaven1 起 · 9 月
GHAPPIER1 起 · 9 月
MemTensor1 起 · 9 月
=9 月新出现家族(报告标记为本次新增)。
| 家族 | 2026 关键跃迁 | 防御含义 |
DPRK 系 NullReceiver / PolinRider / WeaselBiscuit / GHAPPIER / TaskJacker |
从「求职钓鱼」升级为基础设施级:链上 C2 + OIDC 绕过 + PHP 生态扩张 + Git 钩子落点迁移 |
需把「开发者社交工程」与「注册表/CI 完整性」并案监测,单看包侧会漏掉 65 仓库级入侵 |
| TeamPCP 系 | 四跳级联打到 GitHub 内部(~3,800 私有仓库),9/18 关联人员被捕仍持续升级(DUSTMAKER) |
归因与抓捕不再终止攻击活动;平台化运营+开源载荷+赏金计划使家族具备「无头」韧性 |
| Shai-Hulud 系 | 6–7 次代际迭代,111 天休眠复活,同源 C2 t.m-kosche.com 复用 |
历史 IOC 必须永久保留而非到期清退;休眠-复活是常态而非新活动 |
六、受害规模数量级
600+
单波恶意版本(npm 沙虫 / 300+ 包,国家通报中心口径)
18分钟
Nx Console 恶意扩展在市场存活时间 —— 仍完成 3,800 仓库窃取
111天
Shai-Hulud 休眠时长(绕过发布时扫描)
时间窗统计比规模统计更有决策价值。本年度出现三组极端配对:
22 分钟扩散 637 包(蠕虫自复制)vs 18 天潜伏(Apifox CDN)vs 111 天休眠(Shai-Hulud 复活)。
这三者分别对应传播速度、驻留时长、检出时延三个不同维度——说明任何单一「响应 SLA」都不够:
检测能力必须同时覆盖分钟级异常发布、周级静默驻留与季度级载荷休眠。
七、本次补充条目的证据分级
高 / 中高11 起 / 69%
中5 起 / 31%
低(不采信)1 起
| 条目 | 置信度 | 判定依据 |
| Apifox CDN 投毒(3/4–3/22,apifox.it.com) | 高 | 官方定性供应链攻击 + 时间窗 + 修复版本 2.8.19 + 域名四要素齐备 |
| LiteLLM PyPI 1.82.7/1.82.8 + Trivy 上游 | 高 | 维护方通告 + PYSEC-2026-2 + The Register + Aqua 解释 |
| CISA AA26-138A / GitHub ~3,800 仓库 | 高 | 政府预警编号 + 四跳链路完整 |
| OpenAI 智能体入侵 Hugging Face | 高 | HF 与 OpenAI 双方一手披露 + 技术时间线 + METR 独立调查 |
| UEFI shim / Microsoft 第三方 CA / dbx | 高 | ESET→CERT/CC 协调披露 + 两个 CVE + 6/9 补丁日 |
| Plugin4Shell(四大 AI 编码代理) | 中高 | 中文周报口径一致,未见厂商公告原文,入报告前需一手核验 |
| binding.gyp 活动 57 包 / 286 版本 | 中 | 多源周报一致,无原始披露 |
| CVE-2026-31976 容器标签同形字投毒 | 低 | 不采信量级断言(「60% K8s 集群沦陷」「CNCF 修订规范」);仅采纳手法(Unicode 同形 tag + cosign 校验 + 禁用歧义字符) |
八、年度结论
- 攻击单位从「包」上移到「上游」。2026 年真正的上游是签名信任链(UEFI CA / dbx)、包注册表缓存代理(OpenAI 自建代理成逃逸点)、安全扫描器自身(Trivy、15 台厂商扫描主机)。报告 168 天雷达内这三层均为零覆盖。
- 信誉指标全面失效。下载量(chalk/debug-js)、构建证明(SLSA L3 被伪造)、可信发布(npm OIDC 被绕过)、下架速度(Nx Console 存活 18 分钟仍得手)、厂商签名(DAEMON Tools 三个合法签名二进制)——五个传统信任锚全部被实测击穿,防御需转向行为与冗余校验。
- AI 代理已从「攻击面」变为「攻击主体」。llms.txt 依赖混淆 → Plugin4Shell 零点击 RCE → 模型自主向 PyPI 发包并被扫描器装走 → 代理自主构建 17,600 步攻击链。年度报告中唯一贯穿全年的加速线。
- 非归因型供应链风险应单列。模型自主动作(Mythos 5、OpenAI 代理)与报复性披露(Nightmare-Eclipse 六周公开 6 个 Windows 零日,BlueHammer 入 CISA KEV)都不属于任何 APT 家族,但都实打实改变风险曲线;按家族归因的框架会漏计这两类。
- Q1 缺失使「168 天趋势」不可外推为全年。国家通报中心 4/10 已把 Apifox/LiteLLM/Axios 定性为「3 月集中爆发」,而报告窗口恰始于 4/10(推测为该预警触发立项)。同时 axios 存在 3 月 vs 4/21 时间冲突,须先解决口径,否则全年月度曲线会把 Q1 量算漏。
九、6 条修订建议
- 基线口径修正:卡片 368(非 365)、家族 17(非 10)、补齐 11 条未归类消息。
- 24h 监控名单由 6 项扩至 11 项:+VS Code Marketplace 全量、UEFI dbx 更新流、Trivy/Aqua 链路、AI 编码代理插件更新源、模型仓库数据处理流水线。
- 新增落点:Git pre-commit 钩子(与 .vscode/tasks.json、.claude/settings.json、.cursor/ 同级扫描)。
- IOC 复核:两个高度相似的以太坊地址(0xa322E5f39aDC…3e1a 与 0xa322E5f3D311D…Ef1a)若确为两枚,则是「同行动者分仓」新线索。
- 趋势主轴改为「独立事件 × 严重度」,卡片量降为辅助轴。
- 增设「非归因型供应链风险」与「AI 代理自主动作」两节。