DevSecOps 功能模型可帮助工程组织评估它们如何构建、保护、交付和运营软件。 这有助于他们规划一条迈向更成熟、更安全且更具韧性的实践路径。 该模型描述了一个跨越六个能力领域的发展历程,每个领域都要经历五个成熟度阶段。
使用此模型了解你的团队当前所处的位置,就你想要的位置达成一致,并计划将实现的增量更改。 模型是描述性的,而不是规范性的。 它旨在跨产品、开发、安全性和操作创建共享理解,而不是生成单个分数。
此模型符合Microsoft安全未来计划的目标。 大多数组织处于不同功能领域的不同阶段。
六个功能区域
该模型将 DevSecOps 实践组织到六个功能领域。 它们共同覆盖了整个生命周期,从组织如何被领导和治理,到软件如何被设计、构建、发布和运营。
- 组织和文化:跨团队的领导、安全思维模式、协作和持续改进。
- 标准和治理:安全计划、策略和标准以及工程系统的保护。
- 规划和设计:安全设计实践、数据和见解,以及技术体系结构和设计。
- 开发和测试:代码安全性、开发加速器以及集成和测试。
- 发布和部署:保护依赖项、安全发布和部署工作流。
- 操作和监视:保护租户和生产系统、监视和检测威胁以及事件响应和修正。
五个阶段
每个功能领域都通过相同的五个成熟度总体阶段进行。 每个功能区域还使用自己的阶段名称来描述该特定上下文中的成熟度。
| 总体阶段 | 它的外观 |
|---|---|
| 临时 | 做法是碎片化、手动的,基本上是未记录的。 结果取决于个人。 |
| 启动 | 各个团队开始在本地推动一致性,并在它们浮出水面时解决差距。 |
| 协调 | 实践是集中和共享的,使团队围绕常见方法和资源保持一致。 |
| 精简 | 世界级的工具和做法可减少手动工作,使安全路径成为简单路径。 |
| 开创性 | 这些做法定义行业标准,具有前瞻性,并始终先于需求持续演进。 |
战略方法
组织可以通过不同的方式使用功能模型,具体取决于其业务上下文。 一些团队需要灵活性、一些针对速度进行优化,而另一些团队则优先考虑强合规性和风险控制。
- 敏捷 DevSecOps:强调组织建立、更新或统一 DevSecOps 做法的灵活性,同时将速度与有用的标准相平衡。
- 加速 DevSecOps:强调已建立成熟实践的组织所需的速度,以实现自动化、简化流程并提高交付效率。
- 安全优先 DevSecOps:强调在高度管控或任务关键型环境中运行的组织的合规性和风险降低。
评估当前做法并设定未来目标
使用该模型与实际开展工作的人员一起进行轻量级自我评估。 目标是对现状形成共享而坦诚的认识,并就明天的方向达成共识。
从空白图表开始
使用空白功能模型图表捕获当前状态和目标状态。
使用详细的参考图表
在讨论每个阶段跨功能区域的外观时,请使用详细图表作为参考。
标记当前状态
对于每个功能区域,讨论阶段说明并标记最能反映当前做法的阶段。
连接这些标记
将六个区域中的标记连接起来,以直观呈现您当前的画像。
标记目标阶段
在您的规划周期内,标明每个能力领域希望达到的目标阶段。
规划渐进式变更
规划循序渐进的变更。 分阶段推进通常比试图在各方面同时跃进更可持续。
随着组织和威胁环境的发展,定期重新评估以跟踪进度并调整目标。
使用指导性问题设置优先级
当你决定下一步的投资方向时,请使用引导性问题,围绕各项能力领域聚焦讨论。
- 组织和文化:我们如何让安全成为共同的责任和值得自豪的事情,而不是由少数人把守的后期关卡?
- 标准和治理:我们如何建立清晰、理解良好的标准,在不减缓团队的情况下保护工程系统?
- 规划和设计:我们如何以数据和洞察为依据,在规划和架构中将安全设计作为默认原则?
- 开发和测试:如何转移安全性,以便在代码编写时发现并修复问题,而不是在代码交付后解决?
- 发布和部署:如何使版本从依赖项到部署的安全、可重复且可信?
- 操作和监视:如何检测、抵御和从生产系统和租户的威胁中恢复?
客户资料示例
以下示例演示了真实客户配置文件如何在功能领域呈现不均衡的成熟度,并帮助确定下一步投资的优先顺序。