Page 46 - 《软件学报》2021年第10期
P. 46

3018                                 Journal of Software  软件学报 Vol.32, No.10, October 2021

                    截至 2019 年 10 月,图 4 展示了灰色文献的年份分布情况,其中有 8 篇灰色文献未能找到明确的发表时间,
                 因此未在图中进行展示.从分布趋势上来看:除 2014 年未找到确定日期的文章外(可能是受 Google 检索策略以
                 及存在未明确发布日期的灰色文献影响),其余年份对 DevSecOps 的研究数量逐年快速上升.这表明,工业界对
                 DevSecOps 这一理念展开了广泛的讨论,并逐步应用于实际的工业生产中.














                    Fig.3   Year distribution of academic literatures              Fig.4  Year distribution of grey literatures
                           图 3   学术文献年份分布情况                                图 4   灰色文献年份分布情况
                 2    DevSecOps 主要特征

                                                             [9]
                    DevOps 对现代软件的开发和运维产生了深远影响 ,部分研究通过总结 DevOps 的主要特征                          [7,8] 来反映研
                 究者和从业者对 DevOps 这一概念的理解.其中,CAMS 模型是目前认可度较高且广泛使用的特征模型                              [2931] .它
                 是由 Willis [32] 首先提出,从文化(culture)、自动化(automation)、度量(measurement)和共享(sharing)这 4 个方面高
                 度概括了 DevOps 的主要特征      [30,31] ,为 DevOps 实践提供了概念上的指导.相似地,DevSecOps 作为 DevOps 在安
                 全方面的必要拓展      [21] ,它将 DevOps 延伸到安全领域    [33] .我们发现,其特征也可以基于 CAMS 模型进行概括和拓
                 展.本节使用 CAMS 模型详细比较了 DevSecOps 与 DevOps 特征上的主要差异(见表 2),也阐述了 DevSecOps
                 各个特征之间的关联关系,具体解释如下.

                                   Table 2    Comparison of main features of Devops and DevSecOps
                                           表 2   Devops 与 DevSecOps 主要特征比较
                                             DevOps                             DevSecOps
                                                                      促进开发、运维、安全团队之间的沟通与交流
                       文化         加强开发团队和运维团队之间的交流与协作                人人对安全负责
                      (culture)
                                                                      在软件开发的早期加入安全实践
                                  使用合适的自动化工具和基础设施构建
                      自动化          DevOps 流水线                         在 DevOps 流水线中集成自动化安全工具
                    (automation)                                      安全即代码
                                  自动化重复性的、手动的工作任务
                       度量         检测健康状况以保障系统正常运转                    加入安全方面的度量指标
                    (measurement)      检测多种指标以评估和改进工作流程
                                                                      在 DevOps 的共享氛围中加入安全团队
                       共享         共享知识、工具与技术                         安全团队帮助其他团队改进安全工作流程、
                      (sharing)      开发团队与运维团队之间分享想法和问题
                                                                      提高安全意识和技能
                       文化
                    DevOps 文化试图打破开发团队和运维团队之间的沟通壁垒,让两个团队共同对最终交付的产品质量负
                 责 [34], 促进两个团队之间的交流和协作        [35] .DevOps 强调了开发和运维两个团队之间的协作,而 DevSecOps 进一
                 步提出,安全团队也需要加入到这样的协作中.观念上,DevSecOps 指出:每个人都需要对安全负责,发现并解决
                 安全问题不再是安全人员独有的任务.所有参与软件开发和运维工作的人员都需要主动承担安全责任,并具备
                 一定的安全意识和安全技能,尽力将软件的安全风险降至最低.在传统的开发流程中,安全团队一般位于整个工
                 作流的末端.产品被开发完成之后,再去进行安全检测和质量把控                       [36] .倘若在平时的开发过程中不进行安全控
                 制,那么最后的检查通常会发现大量的安全问题,开发人员就需要花费大量的时间进行修复,这不仅会延误产品
   41   42   43   44   45   46   47   48   49   50   51