研发安全 一方面是流程制度的建立,但是更重要的是让研发团队真是落地执行起来,流程搭建完成,但是落地实施方面研发团队不知道如何下手,那么研发安全做的都是表面上的工作,安全是一个产品的生命线,不能纯在表面功夫上做工作。
为啥叫研发安全或者安全开发,就是要把安全与开发融合到一起,互相促进互相提升。DevOps 是将开发和运维结合到一起,共同为产品负责,那么 DevSecOps 就是开发、安全、运维统统结合到一起,大家互相融合。
DevOps 的常见框架如下:
里面的理念这里不再说了,网上有很多的文章可以参考。
这里重点说下如何落地 DevOps ,首先排除一个观念,SDL 流程面向的是瀑布模式,而 DevOps 是面向的敏捷模式。起初我也是这样认为的,但是随着深入,发现并非如此,SDL 也可以在敏捷模式下得到很好应用,DevOps 也能在瀑布模式下得到很好的应用。
对于他们之间的区别,我个人认为,可以从流程和执行层面来分。
-
SDL 更关注的是安全流程,普遍的就是安全需求——安全设计——安全实现——安全测试——安全投产——安全运营。在每个节点需要有安全活动的参与、需要明确输入输出物。
-
DevOps更关注的将这些流程通过某种方式串联起来,使研发人员更容易的落实 SDL规定的流程,在每个节点如何更容易、更标准化的实现安全活动,做到研发活动统一标准,统一模式,类似于工程中的流水线,这样产品实现起来效率更高、质量更好。
既然说清楚了他们之间的关系和区别,DevOps 如何将 SDL 融合起来,从而达到1+1>2的效果?
个人想的框架如下,根据框架,研发团队同学同样实现了 SDL 流程,但是研发团队的工作仅仅就是输入功能场景和开发代码,后续的一系列完全不用关心。既实现了流程的全覆盖,又不用过度担心流程,从而专注自己的研发工作即可,后续一起均交给自动化能力完成。
这样是不是在每个 SDL 的阶段都有相应的具体落地措施和系统支撑
-
Plan 阶段:研发团队只要输入产品的功能场景,自动通过威胁建模系统导出安全需求和安全设计内容,同时根据安全设计给出所需的安全开发组件
-
Code 阶段:研发人员通过编写代码,集成安全开发组件,提交代码到代码仓库,自动触发代码安全和质量扫描,结果输入到漏洞管理系统。
-
Build 阶段:对代码打包过程中增加组件安全检查、代码安全扫描结果检查,否则无法进行编译
-
Test 阶段:一旦通过 Build 阶段,自动化发布到测试环境,调用域名管理系统、自动分配 IP 和域名信息,记录资产库中,人工安全测试启动。
-
Release 阶段:黑盒扫描启动,主动探索资产库数据信息,启动扫描。
-
Deploy 阶段:主动生成线上主机资源申请,自动安装安全健康 Agent 和对接流量监控系统,。
-
Operate 阶段:下发监控策略,启动被动监控和主动防御能力。
-
Monitor 阶段:开始接收外部情报信息、内部资源信息等,补充监控策略内容和安全组件库组件能力,同时丰富威胁建模模型。
欢迎大家留言讨论
原文始发于微信公众号(YY的黑板报):关于 DevOps 与 SDL 的一些胡思乱想
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论