很久以前,就想写一篇关于SDL与DevSecOps的文章,但疏于实践一直未能动笔。想写的原因很简单,因为总是听到有人说SDL落后、DevSecOps相关技术更高超。一提到研发安全建设,不分研发模式都在赶时髦一样地说DevSecOps。从我的观察来看,不结合研发模式来做研发安全,都是不成功的。
在数字化浪潮的推动下,一些公司已经完全步入DevOps模式,有的则出现瀑布、敏捷或DevOps并存,且后者是居多的。所以如何在多种研发模式下进行有效的研发安全建设,成为一个必须解决的难题。经过近十年的实践,终于在探索解法上有一点点收获与经验,于是有了“深耕研发安全”这一系列文章。
本文是第七篇,DevSecOps实施的第四个关键准备(4/4),系统化的介绍研发安全工具链。从安全工具的选型、建设优先级、自动化重定义到运营时遇到的典型问题,基本把该领域建设的路线图进行了完整描绘,对于研发安全工作的开展打下夯实基础。

01 研发安全所需的工具
——————————
在业界DevSecOps相关的分享中,总能看到倒着的“8”字环工具链,每个活动都有2-3款安全测试工具,这是教科书级别的理想状态,只有在研发安全做得极好的公司中才可能存在。对于大多数公司而言,并不需要这么繁重的工具链,因为受限于研发安全预算、人工维护成本、给产品线带来的压力等,并且与取得的效果不成正比。如果要保证不错的效果并保持在较高水平,可以借鉴这个关键工具链:

安全测试工具链的建设,是一个漫长的过程,不可能一蹴而就,故可以当做一个高水平的参考而不是及格线。从工具的形态而言,主要有以下四类: