尽可能向左移动……但你相信换挡者吗?
Source: Dev.to
客户对话中的关键主题
- 开发者体验 是全球企业的首要任务。
- 信任 至关重要。它建立在业绩记录、可信度以及金融交易由可靠合作伙伴背书的保证之上。
零信任与 “左移” 运动
零信任(或 Never Trust, Always Verify)的概念强调评估风险管理和事件处理。盲目信任任何工具是不现实的;相反,我们追求通过透明度构建的 伪信任。
安全的 左移 方法将扫描和利用分析提前到软件开发生命周期(SDLC)中。其好处包括:
- 及早发现不安全的代码模式以及依赖中的已知 CVE。
- 生成构建时(或烹饪时)SBOM,记录软件的“配方”。
- 在 IDE 和预发布环境中进行持续扫描、动态攻击模拟和频繁检查。
- 强制代码审查策略(例如,PR 必须有两位批准者,阻止直接提交)。
保障软件供应链安全
供应链安全是由众多不同贡献者提供的无数组件组成的复杂拼图。以下两个核心概念有助于建立信任:
- 真实性 —— 确认组件确实来源于其声称的来源。
- 完整性 —— 确保组件未被篡改。
诸如 cosign 的工具能够实现无密钥的加密签名,将文件绑定到身份上,从而验证容器镜像是否来自可信提供者(例如 “Olive Garden”),而非未知来源。
验证基础镜像
在使用多阶段 Dockerfile 时,必须验证基础镜像是否由可信来源签名。一个实用的工作流:
- 在 Dockerfile 中识别基础镜像。
- 将其 OCI 签名与经过审查的供应商白名单进行比对。
- 若签名有效,构建继续;否则构建失败。
注意: 如今这通常表现为黑名单(拒绝已知的恶意来源)。随着签名的普及,它可以演变为真正的白名单模型。
更深入地审视镜像链
除了直接的基础镜像外,软件供应链 还包括基础镜像的基础镜像,依此类推。随着 OCI 镜像签名的成熟,工具可以递归分析 Dockerfile,验证整个依赖链。
TL;DR
- 我们在使用 伪信任,但应采用 零信任 思维。
- 为镜像签名 并将签名与可信来源进行核对。
- 将软件供应链视为 链条,而非单一环节。
- 负责任地使用组件,并保持乐观的姿态。
试一试
在 GitHub 上探索 Integrity‑Check 工具: