Page 55 - 《软件学报》2021年第10期
P. 55
戴启铭 等:DevSecOps:DevOps 下实现持续安全的实践探索 3027
它应当以规约即代码(compliance as code)的形式 [39] 作为 DevSecOps 日常自动化监控不可或缺的一部分.
舆情监控
软件正式部署上线后,很多安全漏洞通常是在生产环境下被发现并进行漏洞信息分享的.因此,企业需要密
切关注各大网站、论坛中关于安全问题和安全动态的讨论,在未发现的安全漏洞被利用之前,尽快完成自检和
修复工作.企业也应当积极加入诸如 FIRST(Forum of Incident Response and Security Teams)这样的全球安全事
件响应组织,通过社区间的安全信息共享和相互协作,进一步提高自身服务的安全性能.
监控阶段是一个持续的过程,在这个过程中应用安全实践是确保产品稳定运行的必然要求.通过对提供服
务的产品进行自动化的监控,运维人员可以及时了解产品的运行状态,并对发现的问题进行及时的修复或整理,
进而产生新的需求并反馈到 DevOps 流程的计划阶段,开始新的一轮迭代过程.
3.2 通用实践
在 DevOps 各个阶段的早期集成安全实践,是“安全左移”的重要表现形式,它能够帮助组织更早、更快地发
现并解决安全问题.然而,DevSecOps 的落地并不只是体现在对原有 DevOps 流程上的改进,它还要求组织在内
部建立一种安全文化,使得开发、运维和安全团队能够高效地协同工作,实现快速、安全的产品交付.为实现这
一目标,组织需要落地一系列相关实践来调整自身的组织结构和管理流程.由于这些实践的适用范围并不局限
于软件开发生命周期中的某个特定阶段,我们将其统称为通用实践.如图 8 所示,根据实践性质的差异,我们将通
用实践又进一步分为协作实践和过程实践.
Fig.8 DevSecOps general practice
图 8 DevSecOps 通用实践
3.2.1 协作实践
协作实践旨在消除团队之间的沟通壁垒,促进团队及其成员之间的相互协作 [31] .它强调组织在自身的结构
和文化上进行调整.实施协作实践能够帮助团队成员更好地进行经验交流,充分理解来自其他团队的问题并协
同解决这些挑战,也是组织提高内部凝聚力的重要体现.我们整理总结了以下几个典型的协作实践.
开发/运维人员安全培训
DevSecOps 要求团队中的每一个成员都需要具备一定的安全意识.Microsoft [68] 、Checkmarx [69] 等公司认为
安全培训是 DevSecOps 实践中的重要一环,但是,目前大多数软件公司在招收开发/运维人员时并不会将安全知
识作为考察内容,因此有必要对他们进行安全方面的培训以提高安全意识 [15] .安全人员通过安全培训帮助其他
团队成员熟悉安全编码原则、安全变量等基本安全知识,让其他团队成员能够在平时的工作中主动避免引入常
见的危险操作.