很久以前,就想写一篇关于SDL与DevSecOps的文章,但疏于实践一直未能动笔。想写的原因很简单,因为总是听到有人说SDL落后、DevSecOps相关技术更高超。一提到研发安全建设,不分研发模式都在赶时髦一样地说DevSecOps。从我的观察来看,不结合研发模式来做研发安全,都是不成功的。
在数字化浪潮的推动下,一些公司已经完全步入DevOps模式,有的则出现瀑布、敏捷或DevOps并存,且后者是居多的。所以如何在多种研发模式下进行有效的研发安全建设,成为一个必须解决的难题。经过近十年的实践,终于在探索解法上有一点点收获与经验,于是有了“深耕研发安全”这一系列文章。
本文是开篇,介绍在数字化转型过程中,研发安全的工作模式与方法的迭代升级。从研发安全体系建设的角度出发,总结出难度比较大的三个典型问题。
01 市场侧的快速交付需求
———————————
市场需求不断变化,商机一瞬即逝。产品为实现抢占市场的需求,要求背后的研发和交付团队能够快速响应,对于安全团队来讲也是一样的。但纵观整个公司来看,有的业务严格按照瀑布开发计划执行、研发周期很长,有的业务又没有快速部署的需求,于是就出现了多种开发模式并存的状态:
(图片创意来自互联网)
三种主要模式的区别如上图所示,表面上在于研发阶段所占时长、顺序的不一样,往里看还有研发、运维团队工作模式、研发工具的差异,这给安全工作带来了很大的挑战。
02 技术发展带来的多样化
———————————
其次是技术发展带来一些变化,很多年前在说PHP是最好的语言,现在很多大型的业务网站其实都还是Java,不过Go的应用也非常广泛。公司内部的研发技术栈,基本符合外部的趋势。但除了这三个外,主流语言还有C、C++、C#、Python,内部使用的语言还有ruby、rust、swift、Visual Basic...
(图片创意来自互联网)
于是就出现了第二个比较大的挑战,表面看是研发语言种类很多,往里看则是开发框架、人员技能的差异。相关的安全工作开展,如安全组件、编码安全规范、静态代码扫描工具、开源组件安全管理、安全人员能力...也随之变得复杂。
03 研发基础设施的不统一
———————————
第三是研发基础设施没有完全统一,比如由于历史原因产品线各自管理代码和发布系统,公司层面缺少强有力的配置管理团队做全局管控...就会在出现各种代码管理工具、各类构建和发布系统。表面上看是研发工具多种多样,往里看则是研发流程(CI&CD)的不一样。
对于安全测试工具嵌入不同的流程,同样带来了巨大的麻烦。
上述的每一个问题,都是安全团队遇到的痛点。当这些点都集中在一块儿时,困难好比是一个类似乘积的关系,瞬间被放大了很多倍。感觉遇到了一种混沌的状态,安全工作没有了抓手,甚至是无从下手。
长按识别二维码,和我交流
More...
-- SDL 100问 --
-- 软件供应链对抗探索 --
--------- 实战演习 ---------
--------- 安全运营 ---------
--------- 软件安全 ---------
--------- 企业安全 ---------
基于堡垒机的自动化功能实践1****
--------- 渗透测试 ---------
--------- 安全开发 ---------
--------- 个人体验 ---------