软件供应链安全

本质定义

核心目标

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

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

核心问题转化为:

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

第一性原理

原理一:信任不可传递

原理二:信任必须可计算

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

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

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

构建过程的固有属性(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可复现

演进趋势

从"工具"到"系统"

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

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

总结

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

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

其演进路径:

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

最终目标:

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

关联内容