软件供应链安全

本质定义

核心目标

现代软件已从"代码生产"演化为"依赖组装",系统安全不再取决于单点代码质量,而取决于:

整个供应链中每一个中间产物是否可信

核心问题转化为:

如何构建一个"信任不可传递,但可以逐跳验证"的系统?

第一性原理

原理一:信任不可传递

原理二:信任必须可计算

信任不是主观判断,而必须具备:

原理三:安全必须嵌入系统

安全不是外挂能力,而必须成为:

构建过程的固有属性(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)"

系统安全的本质:

消除隐式信任,构建显式验证链

攻击模型

攻击面分类

依赖层攻击

构建层攻击

身份攻击

分发层攻击

攻击路径

投毒 → 混入 → 构建 → 分发 → 执行

攻防映射

攻击阶段 防御能力
投毒 SBOM / SCA
混入 Code Review / Signing
构建 Hermetic Build
分发 Artifact Signing
执行 Admission / Runtime Policy

能力体系

四大能力域

能力域 本质 对应机制
可见性 看见依赖 SBOM
可检测性 发现风险 SCA / SAST
完整性 防篡改 签名 / Attestation
可执行策略 做决策 Policy / VEX

工程模式

模式一:可证明构建

模式二:不可变构建

模式三:最小信任凭证

模式四:依赖隔离

模式五:策略驱动部署

治理与度量

核心指标

指标 含义
SBOM 覆盖率 可见性
可验证构建比例 完整性
未签名工件比例 风险暴露
高危漏洞 MTTR 响应能力

治理闭环

检测 → 度量 → 策略 → 执行 → 反馈

成熟度模型

SLSA 本质:

信任验证能力的成熟度分级
等级 本质能力
L1 可追溯
L2 可签名
L3 可隔离
L4 可复现

演进趋势

从"工具"到"系统"

从"代码"到"生成系统"

从"验证"到"持续证明"

总结

软件供应链安全的本质不是"保护代码",而是:

构建一个信任可计算、可传递、可验证的系统

其演进路径:

隐式信任 → 显式信任 → 信任流系统

最终目标:

让"信任"成为一种可以被构建、度量和验证的工程能力,而非经验判断。

关联内容