0x00 前言
SDL存在的问题在于体量过于庞大,不利于快速进行适配和进行,所以就有了DevSecOps,实际上是因为敏捷开发也就是DevOps的推进,并且坐上了云服务模式的火车,所以这一系列的东西都开始普及。DevSecOps作为DevOps补充的一环,处于一个重要的内嵌位置,彻底的落实安全的融合,以及自动化完整的特性。基本上只要涉及到频繁上线,多次编排的模式都可以采用DevSecOps融合的方式来维护更高的安全性。
因为本文是基于目前我自身的认知所成,如有描述不妥,或者描述不完整的地方,还请指出斧正。
0x01 概述
下图是DevSecOps的流程嵌入图
整个体系内容包括如下:
- 计划
- 创建
- 验证
- 预发布
- 检测
- 响应
- 预测
- 适应
0x02 计划
- 安全建模
- 培训
- 确定流程
这一个阶段其实可以看做是SDL的培训和要求,设计融合产物
0x03 创建
这里的创建实际上就是运行时的环境检查,包括开发软件环境,实施检测,开源第三方引用也可以放在这个阶段来进行。
0x04 验证
验证就是需要在流水线上进行自动化的验证,通过集成多种检测工具,比如SonarQube,Depend-track,IAST,DAST动态检测,当然fortify和codeQl都可以放在这一层进行检测。
0x05 预发布
- 混沌测试,完整内容的整体测试,通过工具以及人工测试
- Fuzzing 测试
- 集成测试
0x06 持续检测
持续监控就是在快速构建完整,并且运行起来之后进行的持续检测内容,主要采用的是
- RASP
- 网络监控
通常都是利用随时检测技术来进行事实的监控。
0x07 响应
这里的响应和SDL实际上是非常相似的过程,不过基于云的特性,不再有补丁流程,而是直接走构建,测试,然后直接合并运行的特点,少了补丁维护的问题,但是需要更强大的漏洞管理流程
其次就是增加,威胁情报系统,安全自动化工具,还有底层的防护工具。
0x08 预测
这里的预测的范围非常广包括,漏洞情报,威胁情报,提前预测管理等内容
0x09 适应
根据环境的变化修改应急方案,修复方案,以及防护的方案。
0x10 总结
具体的实施还是需求根据环境的变化来进行变化,从而进行调整达到和企业的适配程度,从基层开始提高安全程度。
补充知识
SDL介绍
SDL是Simple DirectMedia Layer(简单直接媒体层)的缩写,是一个跨平台的多媒体库,它提供了一个简单的API,允许开发者轻松地使用音频、视频、输入设备和图形硬件等多媒体资源。SDL最初是为游戏开发而设计的,但它的高效性和跨平台特性使其也被广泛应用于其它领域,如图像处理、模拟器等。SDL支持的平台包括Windows、Linux、Mac OS X、iOS、Android等。SDL是Simple DirectMedia Layer(简单直接媒体层)的缩写,是一个跨平台的多媒体库,它提供了一个简单的API,允许开发者轻松地使用音频、视频、输入设备和图形硬件等多媒体资源。SDL最初是为游戏开发而设计的,但它的高效性和跨平台特性使其也被广泛应用于其它领域,如图像处理、模拟器等。SDL支持的平台包括Windows、Linux、Mac OS X、iOS、Android等。
DevSecOps介绍
DevSecOps是一种软件开发流程的方法论,将安全性集成到DevOps流程中,以确保在代码编写、构建、部署和维护过程中的安全性。它强调了团队成员的跨职能性和协作,旨在创建安全的软件系统。DevSecOps的目标是使安全性成为软件开发和交付过程的一部分,而不是在系统部署后才考虑安全性,以减少安全漏洞和风险,保护客户和企业数据。DevSecOps是一种软件开发流程的方法论,将安全性集成到DevOps流程中,以确保在代码编写、构建、部署和维护过程中的安全性。它强调了团队成员的跨职能性和协作,旨在创建安全的软件系统。DevSecOps的目标是使安全性成为软件开发和交付过程的一部分,而不是在系统部署后才考虑安全性,以减少安全漏洞和风险,保护客户和企业数据。
SDL和DevSecOps的比较
SDL(Security Development Lifecycle)和DevSecOps都是与软件开发和安全有关的方法论,但它们有不同的重点和目标。
SDL是一种按照安全最佳实践整合到软件开发生命周期中的流程。它着重于在软件开发的早期阶段就识别和处理潜在的安全问题,以降低在后期开发和维护中出现安全漏洞的风险。SDL包括多个阶段,包括需求分析、设计、实现、测试和部署等,每个阶段都有特定的活动和文档来确保软件的安全性。
DevSecOps则是一种将安全性嵌入到整个软件开发流程中的方法。它强调通过自动化和协作来促进快速、持续和安全的软件发布。DevSecOps的目标是打破安全和开发之间的壁垒,使安全团队可以快速响应开发团队的需求,并将安全性纳入到自动化的构建、测试和部署流程中。
总的来说,SDL注重整个软件开发生命周期中的安全性,而DevSecOps则更加注重集成安全性到整个软件开发流程中。两种方法都是很有用的,具体的应用需要根据具体项目的需求和情况来决定。SDL(Security Development Lifecycle)和DevSecOps都是与软件开发和安全有关的方法论,但它们有不同的重点和目标。
SDL是一种按照安全最佳实践整合到软件开发生命周期中的流程。它着重于在软件开发的早期阶段就识别和处理潜在的安全问题,以降低在后期开发和维护中出现安全漏洞的风险。SDL包括多个阶段,包括需求分析、设计、实现、测试和部署等,每个阶段都有特定的活动和文档来确保软件的安全性。
DevSecOps则是一种将安全性嵌入到整个软件开发流程中的方法。它强调通过自动化和协作来促进快速、持续和安全的软件发布。DevSecOps的目标是打破安全和开发之间的壁垒,使安全团队可以快速响应开发团队的需求,并将安全性纳入到自动化的构建、测试和部署流程中。
总的来说,SDL注重整个软件开发生命周期中的安全性,而DevSecOps则更加注重集成安全性到整个软件开发流程中。两种方法都是很有用的,具体的应用需要根据具体项目的需求和情况来决定。