DevSecOps里的安全活动

2024-09-09 12:00   北京  

近几年,数字化转型发展迅速。企业在数字化转型的过程中,会发现很多应用类软件无法从外部直接采购,因为通用软件无法和自身的管理流程匹配,于是,许多公司选择了自行开发软件,而自行开发软件,DevSecOps的方法是目前可选择的最好方法。

由于多数企业只建立了软件团队,并未及时建立安全团队,对于DevSecOps中的安全活动缺乏系统的理解和执行方法。本文就DevSecOps中的安全活动作一分析,包括业界总结的一些作法和一些实践方法,供参考。

本文用到的一些术语,可参阅:
人话版安全概念(2) 供应链安全SAST,DAST,SCA…

CSA的标准安全活动介绍

CSA(云安全联盟)有一个专门的项目组,是关于DevSecOps的,其中的一篇文档,叫《DevSecOps 的六大支柱:自动化》,对安全开发生命周期里的安全活动做了比较详细的介绍。如图一

 手工活动,非常自动化

图一:安全开发生命周期

CSA将DevSecOps的活动分了五个阶段,每个阶段都有触发动作和相关活动,本文作一简单介绍。

  1. 安全设计和架构阶段。本阶段包括两个活动,威胁建模,基线和安全访问控制,都是人工执行的。威胁建模的方法有很多种,比如比较著名的STRIDE方法。基线和安全的访问控制,则是安全内生的思想,要在设计阶段把安全做好。DevSecOps和瀑布模型不同,它基于敏捷的方法,小步快跑,功能迭代频繁,但实际操作上,不可能每个功能都搞架构和设计,这个环节也无法自动化,是产生技术债务的根本原因。如何解决这个问题,在华为云的实践里,就是半年审视一次,从架构的设计上重新检查,根据问题情况,确定是否重构。

  2. 安全编码阶段。编码阶段的主要活动是SAST,及源代码的Review。SAST是自动化扫描,用于发现代码漏洞。Review则是人工检查,这个非常必要,毕竟自动化扫描只能发现初级漏洞问题,对于编码质量,逻辑等问题无法发现,这是对代码工作的必要监督。编码阶段也有SCA的动作,这是次要动作,为什么这么说,是因为真正的SCA应该在集成阶段实施。此处检查,有助于早发现问题,问题发现越早,解决成本越低。后边的有些重复扫描动作也是基于这个考虑。

  3. 持续编译集成和测试阶段。这个阶段是测试的重点。DAST,IAST和模糊测试,镜像扫描都在这个阶段进行。SAST和SCT在编译打包之前也要重新扫描,这个扫描才能作为最终扫描结果使用。

  4. 发布和部署阶段。软件发布之前,要做签名,防止有人伪造,或者传输过程中出现错误。部署阶段也有个镜像扫描,是对准现网或现网的镜像作扫描,比如操作系统,测试环境的扫描代替不了现网的扫描,但现网的扫描一般归于运维段,这个需要按实际场景分析处理。对部件和镜像仓库的持续扫描,有利于处理现网的漏洞,比如某一个版本,在发布的时候可能没有问题,但后续发现了漏洞,可能影响现网,需要扫描结合SCA解决。容器镜像扫描则更加重要,因为容器镜像会传到生产环境。

  5. 现网阶段。本阶段一般都强调持续监控,但实际上,现网的安全运营是个复杂的工程,CSA的本文档未详细描述,只是强调了现网的持续扫描及测试。其中,渗透测试需要重点强调,因为只有现网的渗透测试效果最好,有些漏洞跟现网配置相关,测试环境跟现网可能不同。渗透测试除了自行测试以外,目前比较流行的漏洞奖励计划也要归类于现网的渗透测试里。

流水线(CI/CD PineLine)

上述CSA的介绍,只介绍了通用原理,未对如何实现作说明。DevSecOps最重要的是流水线,只有依靠流水线,上述自动化才能开展。同时,流水线都支持门禁,对相关测试的结果做自动化评估,看是否达标,对不达标的项或版本自动中止发布。
DevSecOps是个复杂的工程,上表里只是列出了活动,对活动的细节未做进一步分析。以动态扫描为例,每个环境都有非常多的漏洞,漏洞每日每时都在变化,如果要求漏洞完全清零,可能会导致版本几乎无法发布。基于此,需要制定一个漏洞标准,什么情况下可以发布,什么情况下不能发布,并形成规则,让流水线自动执行。
每一个活动都需要具体的标准,都需要企业根据自己的具体情况做配置,才能形成完整的自动化方案。相关标准也要定期审视,以达到最好效果。这个也是持续进行的过程。

活动+标准+自动化检查及门禁,才能构成完整的DevSecOps安全工作。
如果需要更多细节,可以参考原文。

一些业界的平台及实践

目前,DevSecOps有两种主流模式,一种是SaaS模式,一种是本地部署模式。

SaaS模式各个大的公有云都有,不仅有完整的流水线,针对主要的测试环节,还会提供相关的工具或服务,是相对比较完整的方案,但代码完全托管在云上,管控相对较难,有些公司不愿意接受。本地部署模式都有比较成熟的开源,但要用好需要有较大的投入。

END


附1:

1.华为云CodeArts主要工具功能列表

附2.腾讯云Coding DevOps主要功能列表

附3.Aws DevOps流程功能示意图

附4 主要开源列表(来自三方,不作为推荐说明)

附 5 CSA文档原图


AI与安全
理清逻辑,找到规律,看清趋势。作者前华为云高级安全专家,现为独立顾问。
 最新文章