Supply-chain Attack 供应链攻击
攻击者不直接打目标,而是攻陷目标依赖的某个组件(软件库、硬件供应商、SaaS 服务),把 恶意软件 通过这个信任链部署到所有下游用户。
最大的特点:一次中招,千百受害者。
经典案例:
- SolarWinds(2020) —— 攻击者植入 SolarWinds 网管软件更新,1.8 万家政企客户中招,包括美国财政部、商务部
- CCleaner(2017) —— 流行的清理工具被植入后门,200 万用户下载
- Event-Stream NPM 包(2018) —— 攻击者接手维护一个 NPM 库,植入挖矿代码,几百万项目被波及
- XZ-Utils 后门(2024) —— 差点把后门塞进所有 Linux 系统的 SSH
为什么这种攻击越来越多:
- 现代软件严重依赖第三方(NPM/PyPI 一个项目动辄上千依赖)
- 信任链太长 —— 你信任 A,A 信任 B,B 信任 C… 任何一环陷落
- 一次成功的回报极大(横扫整个生态)
防御(用户侧):
- SBOM(Software Bill of Materials) —— 知道你的软件用了哪些依赖
- 签名验证 —— 只装有效签名的更新
- 限制依赖范围 —— 不必要的包别引
- 零信任 —— 即使是”自己人的依赖”,也别给完全信任
防御(供应商侧):
- 代码签名 + 软件签名
- 双因素提交(GitHub
signed commits、Sigstore) - 安全的 CI/CD pipeline