开源实践联盟通信 2021年 1月10日

乘DevOps东风,DevSecOps有望迎来高速发展期?

文/邹大斌
在改善软件质量、提高软件安全性以及缩短交付期等压力之下,作为应对这些需求最为有效的办法之一的DevSecOps被认可、被部署是大势所趋。

这几年,随着云计算和容器的普及,DevOps开始从互联网向传统行业渗透,普及很快,尤其是在金融、科技等重度依赖IT的行业。随着DevOps的普及,DevSecOps也开始被一些企业关注。根据GitLab发布的2021年全球DevSecOps年度调查报告,36% 的受访者团队已经使用了 DevOps 或者 DevSecOps 开发软件;而 31.78% 的受访者团队在使用 Agile/Scrum。尤其是那些迁往云平台的新兴应用,DevSecOps的应用得到更多普及机会。而Synopsys发布的《2020年DevSecOps实践和开源管理报告》也表明,DevSecOps在全球范围内迅速增长,总计63%的受访者表示他们正在将一些DevSecOps活动融入其软件开发计划中。

DevSecOps的吸引力很大程度上源于企业对软件的安全性、软件的质量和软件生产的弹性的需求。而在日益激烈的市场竞争压力之一,企业的这些需求将更加强烈,因此,DevSecOps未来发展前景被普遍看好,特别是在当期DevOps得到越来越广泛频普及的情况下。

为什么需要DevSecOps?

DevSecOps与DevOps的差别是前者比后者多了“Sec(Security)”上。实际上,这两者之间的差别也正是体现在“安全”上。简单地说,把Security纳入到DevOps的体系之中,人人都是安全员,这就是DevSecOps。

众所周知,DevOps颠覆了传统的瀑布流模式,它破除了开发和运维之间的障碍,让两者顺利进行沟通、协作与整合,再通过自动化和持续迭代、持续集成的敏捷,实现了软件的快速迭代和交付。但这个流程其实和安全关系不大,基本不涉及软件的安全,或者说,软件的安全性评估还是按照传统的流程,处于软件交付的最后阶段。这就导致软件安全检查和评估要么被忽略(因为交付时间的压力),或者软件被迫延期交付,使得DevOps的效果大打折扣。

根据DevSecOps 社区发布的调研报告,虽然都认为安全很重要,但是连续3年接近一半的开发者承认他们基本没有时间去处理安全问题。另一方面,相对运维人员的不足,安全人员在开发团队中更为稀缺。

DevSecOps 的目的就是要设法改变这一现状。DevSecOps通过在 DevOps 流程的每个阶段或检查点嵌入安全性检查来消除 DevOps 和安全之间的障碍,从而更快、更安全地生成高质量的代码。DevSecOps是在软件开发生命周期(SDLC)的早期引入安全性,目标是让参与SDLC的每个人负责安全来开发更安全的应用程序,让业务、技术和安全协同工作以开发出更安全的软件。

DevSecOps的好处是在提高软件安全性的同时提高开发团队的开发效率,缩短交付时间,让产品尽快上市。比如,由于DevSecOps将安全纳入到最初的开发流程中,而不是等到最后到进行安全检查之前,同时,安全专家不必等待开发周期彻底完成,这两大因素进一步加快了产品交付速度。

其次,因为DevSecOps让人人都是安全员,在软件开发的早期就把漏洞发现纳入到开发流程中来,借此降低修复的难度和成本,而且,就从商业角度来看,软件安全性越好对后面的市场营销越有利,从而提升软件盈利能力。另一方面,DevSecOps由于将开发、运维和安全团队聚集一起来处理安全问题,培养的这种跨团队协作精神非常有助于产生出更快速有效的安全响应策略,有利于构建起更强大的安全设计模式。

让DevSecOps真正落地

DevSecOps是在DevOps落地的前提下部署的,它和DevOps一样非常重视协作,需要改变人们的关键、调整流程、借力自动化工具。其中对企业转向DevSecOps最大的阻力还是来自企业文化,一般而言,开发团队不愿意改变自己的开发流程,更愿意继续沿用传统的开发方法。另一方面,DevSecOps特别强调将开发人员与安全人员统一起来,共同建立起协作环境。但这两大团队间总是存在一定程度的摩擦,甚至认定对方总在跟自己作对,这直接违背了DevSecOps的核心原则。只有改变这种状况才能让DevSecOps文化在组织内落地、开花结果。

很多企业在引入DevSecOps的另一大常见挑战在于,常有人认定安全保障会拖慢软件开发工作速度、甚至阻碍创新。为了满足业务需求,为了商业竞争,开发人员希望不断加快代码的交付速度。但是,安全团队的核心重点在于保障代码安全,而这两个截然不同的目标导致团队之间难以彼此理解、协同工作。

另外,安全人员的不足也可能影响DevSecOps的落地。如前所述,在开发流程中,安全人员原本就是相对缺乏的,而且就整个行业而言,相对于严峻的安全形势(不断爆出的安全漏洞与攻击事件),安全人员也是不足的。根据Cybersecurity Ventures发布的报告,2021年全球网络安全职位空缺将多达350万个,因此,安全专家的不足很可能是很多中小型开发团队面对的一个难题。

DevSecOps落地的另一个问题是自动化工具还需要优化和丰富。和DevOps一样,DevSecOps也非常依赖自动化的工具,需要借助工具来构建脚本、将源代码进行编译、进行软件漏洞扫描。一个好用的自动化工具不仅要提供多种强大的功能、丰富的插件库,还具备多种易于上手的用户界面,其中一部分甚至能够自动检测易受攻击的库并及时加以替换。目前,在自动化工具方面主要以开源为主,这些工具的易用性、安全性还有不小的改进空间。

不过,尽管DevSecOps在落地过程中还存在这样那样的障碍,但是在改善软件质量、提高软件安全性以及缩短交付期等压力之下,作为应对这些需求最为有效的办法之一的DevSecOps被认可、被部署应该是众望所归。显然,这种需求越强烈,DevSecOps越是有望迎来自己的高速发展时期,这一时期相信不会太远。

《数字化转型方略》杂志 《数字化转型方略》杂志