近年来,随着云计算和容器的普及,DevOps它开始从互联网渗透到传统产业,并迅速普及,特别是在金融、技术方面IT以及业务行业DevOps的普及,DevSecOps一些企业也开始关注它。GitLab2021年全球发布的2021年全球发布DevSecOps在年度调查报告中,36% 的受访者团队使用了 DevOps 或者 DevSecOps软件开发;而 31.78使用 Agile/Scrum。特别是迁往云平台的新兴应用,DevSecOps应用程序获得了更多的推广机会。Synopsys发布的《2020年DevSecOps实践和开源管理报告也表明,DevSecOps63%的受访者表示,他们正在全球迅速增长DevSecOps活动融入其软件开发计划。
DevSecOps吸引力在很大程度上源于企业对软件安全性、软件质量和软件生产灵活性的需求。在日益激烈的市场竞争压力之一中,企业的这些需求将更加强因此,DevSecOps特别是在当期,未来的发展前景普遍乐观DevOps在越来越普及的情况下。
为什么需要DevSecOps?
DevSecOps与DevOps前者的区别在于前者比后者多“Sec(Security)”其实两者的区别也体现在上面。“安全”上。简单地说,把Security纳入到DevOps的体系之中,人人都是安全员,这就是DevSecOps。
众所周知,DevOps颠覆了传统的瀑布流模式,打开了开发与运维的联系,使两者能够顺利沟通、合作与整合,然后通过自动化、连续迭代、连续集成的敏捷性实现软件的快速迭代和交付。但这个过程与安全关系不大,基本上不涉及软件的安全,或者软件的安全评估仍处于软件交付的最后阶段。这导致软件安全检查和评估要么被忽视(由于交付时间的压力),要么软件被迫延迟交付DevOps效果大大降低。
根据DevSecOps 虽然社区发布的研究报告都认为安全非常重要,但近一半的开发人员承认,他们基本上没有时间处理安全问题。另一方面,安全人员在开发团队中相对缺乏运维人员。
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越有望迎来自己的快速发展时期,这一时期相信不会太远。