软件供应链安全
本质定义
核心目标
现代软件已从"代码生产"演化为"依赖组装",系统安全不再取决于单点代码质量,而取决于:
整个供应链中每一个中间产物是否可信核心问题转化为:
如何构建一个"信任不可传递,但可以逐跳验证"的系统?
第一性原理
原理一:信任不可传递
- 上游可信 ≠ 下游可信
- 每一个阶段都必须**独立证明自身正确性**
原理二:信任必须可计算
信任不是主观判断,而必须具备:
- 可证明(Proof)
- 可验证(Verification)
- 可追溯(Traceability)
原理三:安全必须嵌入系统
安全不是外挂能力,而必须成为:
构建过程的固有属性(Built-in Property)核心矛盾
交付效率 ↑ vs 可验证性 ↑约束:
- 安全机制必须"流水线内生化"
- 不允许显著增加开发/交付成本
统一抽象:供应链安全元模型
元模型定义
供应链安全 = 信任建立 + 信任传递 + 信任验证三大抽象层
| 抽象层 | 本质问题 | 对应机制 |
|---|---|---|
| 信任建立 | 谁可以被信任 | 身份(Identity)/ 签名 |
| 信任传递 | 信任如何流动 | SBOM / Provenance |
| 信任验证 | 如何判定可信 | Policy / SLSA |
核心机制:信任流模型
信任流定义
开发者 → 代码 → 构建 → 工件 → 分发 → 部署 → 运行信任流分解
| 阶段 | 信任对象 | 风险 | 验证机制 |
|---|---|---|---|
| 开发 | 开发者身份 | 账号劫持 | 代码签名 / OIDC |
| 提交 | 源代码 | 恶意注入 | Code Review / Commit Signing |
| 构建 | 构建环境 | 构建污染 | Hermetic Build |
| 产物 | Artifact | 篡改 | Attestation |
| 分发 | Registry | 替换攻击 | 签名验证 |
| 部署 | 集群 | 非法镜像 | Admission Control |
| 运行 | Runtime | 漏洞利用 | Runtime Policy |
信任断点
每一个阶段都是一个"信任断点(Trust Boundary)"
系统安全的本质:
消除隐式信任,构建显式验证链攻击模型
攻击面分类
依赖层攻击
- Typosquatting
- Dependency Confusion
- 恶意开源组件
构建层攻击
- CI/CD 注入
- 构建脚本污染
- 构建环境后门
身份攻击
- Token 泄露
- CI 凭证滥用
- 维护者劫持
分发层攻击
- 镜像篡改
- Registry 污染
- CDN 替换
攻击路径
投毒 → 混入 → 构建 → 分发 → 执行攻防映射
| 攻击阶段 | 防御能力 |
|---|---|
| 投毒 | SBOM / SCA |
| 混入 | Code Review / Signing |
| 构建 | Hermetic Build |
| 分发 | Artifact Signing |
| 执行 | Admission / Runtime Policy |
能力体系
四大能力域
| 能力域 | 本质 | 对应机制 |
|---|---|---|
| 可见性 | 看见依赖 | SBOM |
| 可检测性 | 发现风险 | SCA / SAST |
| 完整性 | 防篡改 | 签名 / Attestation |
| 可执行策略 | 做决策 | Policy / VEX |
工程模式
模式一:可证明构建
- 所有构建必须生成 Attestation
模式二:不可变构建
- 构建过程无外部依赖
模式三:最小信任凭证
- 使用短期 OIDC Token
模式四:依赖隔离
- 私有代理仓库 / 缓存
模式五:策略驱动部署
- 部署前强制校验
治理与度量
核心指标
| 指标 | 含义 |
|---|---|
| SBOM 覆盖率 | 可见性 |
| 可验证构建比例 | 完整性 |
| 未签名工件比例 | 风险暴露 |
| 高危漏洞 MTTR | 响应能力 |
治理闭环
检测 → 度量 → 策略 → 执行 → 反馈成熟度模型
SLSA 本质:
信任验证能力的成熟度分级| 等级 | 本质能力 |
|---|---|
| L1 | 可追溯 |
| L2 | 可签名 |
| L3 | 可隔离 |
| L4 | 可复现 |
演进趋势
从"工具"到"系统"
- SCA → ASPM(统一风险管理)
从"代码"到"生成系统"
- SBOM → AIBOM(AI 代码溯源)
从"验证"到"持续证明"
- 静态验证 → Runtime Attestation
总结
软件供应链安全的本质不是"保护代码",而是:
构建一个信任可计算、可传递、可验证的系统其演进路径:
隐式信任 → 显式信任 → 信任流系统最终目标:
让"信任"成为一种可以被构建、度量和验证的工程能力,而非经验判断。
关联内容
- [/计算机网络/网络安全/安全性.html](/计算机网络/网络安全/安全性.html) 安全体系整体框架与供应链安全的CIA三要素目标一致,均追求系统可信性
- [/计算机网络/网络安全/安全架构.html](/计算机网络/网络安全/安全架构.html) 零信任架构与安全框架的访问控制理念为供应链信任验证提供设计参考
- [/计算机网络/网络安全/认证与授权.html](/计算机网络/网络安全/认证与授权.html) 身份认证与OIDC体系是供应链信任建立的核心机制
- [/软件工程/DevOps.html](/软件工程/DevOps.html) CI/CD安全与构建完整性是供应链安全的关键工程实践
- [/计算机网络/网络安全/密码学/密码学.html](/计算机网络/网络安全/密码学/密码学.html) 签名与完整性验证机制是供应链信任传递的技术基础