DevSecOps 中的发布和部署

DevSecOps 中的发布和部署决定了在生命周期早期完成的安全工作能否一直保留到生产环境。 依赖项管理、发布治理和部署工作流的强做法有助于确保软件交付安全、可重复且可信。

此功能区域介绍了组织如何管理安全依赖项、保护其版本并运行其部署工作流。 这是早期阶段的安全工作要么被保留并延续到生产环境、要么就此丢失的环节。

随着组织成熟,发布和部署从脆弱的即席交付转向预测支持的反射过程。 随着安全供应链消费框架(S2C2F)等级的提升,依赖项管理逐步成熟,发布流程具备自动化安全测试和回滚能力,部署工作流也变得持续化、代码化管理,并且自愈能力不断增强。

核心功能区域

DevSecOps 中的发布和部署侧重于三个子功能:

  • 安全依赖项:如何列出、扫描和维护第三方和开放源代码依赖项。

  • 安全版本:如何跨里程碑和发布识别和管理漏洞。

  • 部署工作流:如何自动、测试和使部署可靠且可重复。

阶段

发布和部署会经历五个成熟度阶段。 这些阶段展示了 DevSecOps 原则如何出现在工程系统的管理中,从后期和不一致的保护到通过预测增强的受保护流程。

总体阶段 阶段名称 它的外观
临时 脆弱 从一开始几乎没有任何保护;威胁往往到很晚才被识别和缓解,甚至根本得不到识别和缓解。
启动 结构化 基础流程可帮助你从更频繁、更可预测的发布中尽早受益。
协调 扩充 部署前的自动化和扩大的测试覆盖范围能够提高确定性并降低风险。
精简 Continuous 通过自动化实现更深入的覆盖可以增强信心,并提供发布敏捷性。
开创性 反射 受保护的进程通过预测的先进性进行扩充。

脆弱(临时拼凑)

当团队只专注于生成初始输出和交付时,他们不会从一开始就将安全性构建到开发过程中。 它们往往要到很晚才识别并缓解威胁,甚至根本做不到。

  • 安全依赖项:没有有组织的清单。 包更新是手动的,可能根本不会发生。

  • 安全版本:缺少有组织的发布安全工作。

  • 部署工作流:部署工作分散和临时。

结构化(正在启动)

随着团队建立发布和部署过程,他们开始了解更频繁且可预测的发布的早期优势。

  • 安全依赖项:团队开展 S2C2F 1 级活动。 许可证检查是手动的,客户通知是基本的。

  • 安全发布:团队会在里程碑节点和发布时对漏洞、许可和版本问题进行人工检查,通常借助第三方网站。

  • 部署工作流:工作流存在,但它们基本上是手动的,并且可能不一致或不完整。 部署通常很大且不常见。

增强(编排)

在部署之前引入自动化和扩展测试覆盖范围,增加了确定性并降低了风险。

  • 确保依赖项安全:团队通过对版本变更进行评审和审批,制定初始的变更管理流程。 它们使用软件材料帐单(SBOM)、许可证扫描和 S2C2F 级别 2 活动。 引入了数据掩码。

  • 安全版本:自动动态应用程序安全测试工具用于关键里程碑,以识别漏洞和其他问题。 修正仍然困难且耗时。

  • 部署工作流:工作流变得成熟且可靠。 发布管道包括全面的自动化测试,包括动态应用程序安全测试和性能测试。 构件通过代码签名进行验证。

持续(流程精简)

能够更深入覆盖组件和场景的自动化可增强信心,并提升团队发布的敏捷性。

  • 安全依赖项:自动外部情况感知可实现预防性防御操作。 团队执行 S2C2F 3 级活动,并自动生成 SBOM。

  • 安全发布:团队维护端到端清单,引入恶意软件防护和零日威胁检测,并且不必为了速度牺牲质量,因为他们能够高效、快速地进行回滚。

  • 部署工作流:在整个周期内集成自动化持续动态应用程序测试。 AI 有助于提供自动修复,基础结构作为代码进行管理。 较小的、更频繁的更改可以持续部署,而不会牺牲可靠性。

反射式(开创性)

受保护和受防护的进程通过引入预测能力,进一步提升了安全性和效率。

  • 安全依赖项:Teams 为每个依赖项维护应变计划,为开放源代码软件提供安全修复和更新,并执行 S2C2F 级别 4 活动。

  • 安全发布:战略投资进一步提高了预测和防止暴露的能力。

  • 部署工作流:Agentic AI 用于优化工作流并提高效率,从而提高安全性和简化持续部署。