一、DevOps目标

       说到DevSecOps就不得不提DevOps,后者的目标是提升整个研发效能,进行更便捷、更快捷、更可靠的交付,从而提高产品竞争优势。DevOps模糊了以往研发模式中开发、测速、运维等岗位和角色的界限,加强了他们之间的协作,甚至鼓励将各个角色从传统的专家团队的组织结构,重新编制成全功能团队,用以加强协作。

       技术层面通过流水线和一系列自动化机制、成熟的可伸缩的基础设施(如云)等,使开发人员获得更高的效能,从而更加频繁且快速地将代码变为产品,并从这种快速中获得持续不断的反馈和验证,以获得更高的可靠性。

二、DevSecOps目标

      传统的DevOps主要考虑速度和质量,并没有考虑信息安全。所以在DevOps比较成熟的情况下,信息安全就变成了研发效能继续改进的瓶颈。DevSecOps由此运营而生,最终的目的就是通过安全左移到开发测速团队,使安全评审阶段的时长变短,从而进一步缩短交付周期。并且,它可以在更早的阶段发现并修复安全漏洞,从而减少上线后发现安全漏洞的返工成本。

浅谈系列之DevSecOps(一)目标及优点_测试阶段

图1-1  三大模式所需时间

三、DevSecOps优点

       所谓安全左移,在实践中通过将安全等工作(比如安全测试)从部署前的安全评审甚至上线后的漏扫、渗透等阶段左移到更早的阶段,从而更早、更快地发现并解决安全问题,而不是等到几天后部署了才发现,或者几个月后再发出渗透测试报告。DevSecOps的出现并非偶然,它是软件持续交付演进的必然产物。在这种新型软件交付模式下,安全行为会分布在软件交付的各个阶段,而安全的职责也会落在各个阶段的参与者身上,正所谓,安全不是一个人或者一个团队的安全,而是所有人的安全。DevSecOps可以给研发效能提供诸多好处,主要表现在以下三个方面:

       1)交付更快:DevSecOps通过自动化安全工具扫描,无感的左移了部分传统模式中存在上线前最后阶段甚至上线后进行的安全扫描工作,使整个交付周期变得更短,交付速度因此变得更快。

       2)节省成本:DevSecOps由于在SDLC前期阶段发现并且修正安全隐患和漏洞,避免了传统模式中在上线前最后阶段甚至上线后进行安全扫描发现高危安全漏洞后进行的返工,从而从流程上节省了成本。

       传统DecOps模式下,在上线前或者上线后发现高危安全漏洞返工修复安全漏洞后,整个开发、测试和安全评审流程又要重新走一遍会消耗大量时间精,额外消耗的成本就是T2+T3+T4人力。

       DecSecOps模式下,由于安全左移到了开发或者测试阶段,分两种情况

1、开发阶段发现高危安全漏洞,耗费的人力仅是开发时长T2下的人力;

2、测试阶段发现高危安全漏洞,耗费的人力仅是开发+测试时长T2+T3的人力;

浅谈系列之DevSecOps(一)目标及优点_devops_02

图1-2 DecSecOps相比DecOps节省的成本

       3)控制风险:DecSecOps减少了开发、测试团队对安全部门/团队的依赖,通过安全左移让开发、测试团队具备发现和修正部分安全隐患和漏洞的能力。

三、拓展

       面对发展势头迅猛的DevOps研发思想和实践,传统的SDL已然渐感力不从心。无数的事实告诉我们一个道理,安全人员的角色不能仅仅是兜底,况且实际情况是根本无法兜底,所以需要引入一个重要的思想变化,即如亚马逊首席技术官Werner Vogels等人所反复讲的那样,安全需要每个工程师的参与。安全不再是安全团队单独的责任,而是整个组织所有人的一致目标和责任,这样才能更好地对研发过程中的安全问题进行管控。

       想要每个工程师在安全意识和安全能力上都达到专业安全人员的标准是不可能的,因此如何将安全要求和安全能力融到DevOps过程中,如何让安全赋能,从而让整个组织既享受DevOps带来的好处,又能较好地管控安全风险变成一个重要问题。这些问题的思考,就有了DevSecOps思想的诞生以及一系列解决方案的尝试。