DevSecOps由DevOps演变而来,随着云计算以及微服务的发展以及业务上云成为趋势化发展。
Devops自身的模型需要一个更为高效敏捷安全的流程。DevOps经历了瀑布模型到敏捷模型的 “进化”从传统的开发运维融入了安全。
我司基础架构为上云架构目前处于php向java语言转变过程中,其中由于业务快速迭代和持续交付的速度十分快。需要一个更加高效的流程。
由于持续交付和新型软件研发模式(CI/CD)流程的兴起。以安全左移内嵌自动化为标志的DevSecOps开始兴起,DevSecOps与DevOps之间只多了一个Sec但是Sec在中间极为关键的作用。其中DevSecOps的一个核心理念就是每个环节都在为安全负责。构建了一个贯穿了从研发到运维过程的安全模型。
从互联网企业构建DevSecOps实践来结合公司具体研发流程进行DevSecOps的流程构建。
1.DevSecOps模型的宣导。贯穿安全理念在研发流程当中从技术评审 创建 测试 预发布 发布 预防 响应 检测这几个方面进行一个流程宣导。DevSecOps全程融入与应用开发流程实现安全评审 安全测试 安全响应 安全检测 安全运营五个方向的具体融入。 2.流程上需要把研发安全运维多线工作串联实现多方协作才能实现把DevSecOps的模型成功落地。安全也需要低入侵 柔和的开发运维流程。 3.技术层面构建DevSecOps工具链落地。在SATS与IAST之间我选择了IAST进行流程介入。通过IAST对接jenkins实现研发自助式提交测试请求。在uat环境上进行被动代码插桩模式扫描。基本实现了对uat环境应用做到低入侵性安全测试,同时不影响业务接口功能测试。SAST工具在DevSecOps流程中前置实际落地实践应在IAST与DAST搭建完成之后再进行接入SAST工具进行自动化安全测试工具链路的搭建。
如图在实际DevSecOps还有一个应用安全防护的rasp工具。
rasp工具可以保护正在运行时的应用。可以拦截通用的反序列化CC链类攻击
第一阶段目标接入IAST自动化灰盒测试平台对接到jenkins。
进行DevSecOps文化塑造。核心点在于保障安全性的同时满足业务快速迭代需求。
在业务团队设置安全对接人(即安全主责人)。搭建桥梁。让安全对接人配合安全团队进行一些前期安全赋能工作。进而影响业务团队 进行安全指标量化。安全团队和PM团队一起建立安全质量体系。例如安全性考核积分来对不同的团队进行安全度量。 针对研发效能管理平台上线强结合的安全动作。进行不同流程和平台的适配 前期进行宣贯DevSecOps敏捷模型。进行安全编码规范培训
第二阶段目标实现内部代码托管平台增量接入SAST静态代码扫描工具。
检测代码编写过程中是否引入了不安全的依赖库和三方组件。杜绝应用开发当中引入组件层面可能存在的漏洞。实现研发自助式进行代码安全扫描并自动出具报告在研发效能平台中。在应用部署层面实现主机层安全基线检查杜绝部署过程中可能产生的未授权以及软件配置方面漏洞。
第三阶段目标实现DevSecOps全工具链落地通过工具链完成自动化DevSecOps安全测试。
宏观阶段目标
阶段一
原有应用安全风险点进行风险收敛。对尚未上线的应用全面融入安全性考核和进行安全测试。争取应用安全能力左移到测试阶段。
阶段二
DevSecOps工具链的流程跑通。研发从jenkins上可以提起IAST灰盒安全测试请求。安全团队进行例行性安全测试。同时完善应用入网安全评审流程禁止应用“带病上线”
阶段三
完善多团队安全协作流程。持续贯穿DevSecOps理念。达到研发运维业务每个环节都存在安全意识。人人都是安全的一个环节。