0x00 前言
众所周知,从源头开始就开发安全的代码,比产品已经成型之后付出的代价要小很多,也就是一直在说的安全左移的概念。最好就是从一开始,大家就用最安全的代码,或者是框架,那么开发出来的产品必然会减少很多没必要的风险。
当然除了可以使用安全的框架,还有安全的意识以及安全的设计,编码漏洞是一种,设计漏洞也是一种,可能在实现某个功能的时候没有想太多,毕竟业务优先,但是设计完成开发完整之后才发现,有很严重的安全风险,所以SDL就出现了,目的就是为了能更早,更提前的发现风险,在设计之初,从思维开始灌输安全,并且辅助检测等手段,从而大幅度降低安全成本,提高效能。
0x01 整体流程概述
整个流程就是7个大项,17个基本点
简单的说一下每一个基本点的所有内容,然后再细分文章进行分析和理解。
1.SDL适用场景
SDL最为适配的是瀑布开发模式,一条流水线进行执行,但是整个整体就非常重,并且难以实施。
0x02 培训
培训其实主要涉及的内容包括,安全意识培训,以及安全编码规范,安全运维常识问题,主要的作用就是为了能够将安全意识进行宣贯,从而完成安全左移的目的,主要的核心就是安全深入人心。
当然培训还包括安全制度的宣贯,也就是基本的安全红线问题,什么该做,什么不该做,做了什么是安全的,都是我们应该考虑的问题。
0x03 要求
要求部分主要就是将一些规范制度列成文字或者文档的说明,并且将一些模糊的化的东西具现化,并且进行意识同步。
- 同步安全漏洞等级认知
- 定制开发checklist
- 安全编码规范
- 供应链安全
- 安全要求基线
- 安全评估
0x04 设计
其实设计主要的目的就是为了明确需求,然后针对不同的场景来分析可能存在的风险和威胁,通过威胁建模尽可能的收敛场景可能存在的攻击面,并且多层防护,达到纵深防御的目的
- 通过威胁建模设计软件安全方案
- 确保环境安全
- 安全编码规范以及测试规范
- 模糊测试
- SAST(动态扫描工具)
- 代码审计
0x05 实施
实施主要控制的就是开发过程中的安全
- 环境安全
- 框架、容器
- 插件检测
- RAST,IAST