DevSecOps,让速度和安全兼顾
2022-08-01 13:41 DevSecOps

长期以来,传统的开发实践一直将安全性和合规性分开,但 DevSecOps 将安全性集成到 DevOps 软件开发生命周期的每个阶段。该方法不仅节省了资金和繁琐的手动任务时间,而且显著降低了在软件最终构建后发现关键安全漏洞的风险。

供应链风险渐增,DevSecOps 备受关注

随着越来越多的企业采用云技术和数字化转型,其面临的数字威胁和整体风险也越来越高。Anchore 发布的《 2021 软件供应链安全报告》显示,38% 的高级容器用户表示,容器化应用程序比传统应用程序风险更大。因为它们通常会带来多个开源 (OSS) 或第三方依赖项,从而产生新的软件供应链风险。

因此,大多数现代企业都在思考,如何构建符合安全预期的产品和服务,如何制定安全流程以及其他风险管理解决方案。正如该报告调查结果显示,60% 的受访者已将保护软件供应链作为 2022 年的首要举措。

DevSecOps 被认为是快速、安全地构建软件的最有效方法之一。它意味着,在软件开发生命周期 (SDLC) 中,不管是开发团队,还是安全团队,亦或者是运营团队,都要尽早解决安全问题。

如果将安全性留到软件开发过程的最后,或者软件部署之后,只会增加总成本。因为在部署软件后修复漏洞比在开发过程中解决问题,付出的代价要高得多。

DevSecOps 将安全、合规性和开发问题统一为一个协作问题,使企业能够更快、更轻松地构建安全代码。要实现这一目标,DevOps 和自动化显然是关键因素。那么,如何加强供应链、改进安全监督并加强他们的 DevSecOps 方法呢?其中一些方法如下:

•确保 CI/CD 管道与开发中的 DAST 和 SAST 测试集成;

•确保在提交或合并代码之前,开发人员和 DevOps 团队在编写代码时就已经完成漏洞扫描;

•使用自动化 AI/ML 工具来尽可能减少手动操作带来的风险,以支持更有效的扫描和监控;

•投资于可提高多云环境安全性的管理解决方案。

实现 DevSecOps 并不容易

依靠 DevSecOps 的确可以更加彻底地解决安全问题,但与此同时,它也会降低软件开发速度 —— 至少很多人是这么以为的。这并不是错觉,因为实践 DevSecOps 具有一定的复杂性。

比如说,对安全团队而言,不仅要需要确保 DevSecOps 计划能够为企业的文化带来价值,同时还要加快修复速度、捕获正确的指标,并根据风险对问题进行分类和优先级排序,以避免重大负面事件的发生 。

DevSecOps 提倡在敏捷开发过程中使用主动渗透测试、安全审计和其他安全工具等。因此,需要选择正确的 DevSecOps 工具包来进行软件安全测试,并且,这些工具要能够轻松集成到软件开发中,可以跨多个项目使用。由于市面上存在大量的工具,仅就如何辨别、选择、学习测试工具来说,本身就是一道难题,即使对于那些懂行的人来说也是如此。

此外,DevSecOps 自动化流程不仅需要诸多技术工具,还需要将这些工具与文化方面结合才能使其发挥作用。安全团队需要静态分析工具来检查代码;需要第三方库分析来检查依赖关系;需要单独分析检查基础设施即代码(IaC)配置;需要扫描器来检查容器是否存在问题;需要工具来测试正在运行的系统・・・・・这些工具还应与每个团队正在使用的正确技术相匹配,并随着技术更新不断变化。

如何克服这些挑战?

鉴于这些复杂性,DevSecOps 团队如何才能克服这些挑战,并使用正确的工具集构建有效的 DevSecOps 计划? 以下是一些浅见:

保持安全流程的灵活性

技术工具固然是实现安全流程一致、可重复的重要手段,但也不必绑定得太过于紧密。因为在一个开发团队中,往往会存在使用不同的技术堆栈、不同的语言和框架的情况,如果将流程与一些工具绑定得太紧密,情况一旦有变,很难灵活地进行安全检查。一致性、可重复的安全流程,只是整个安全流程的一部分,其他的可能还需要更加灵活的手段。

善于利用自动化

如果开发流程顺利且自动地运行,那么就应该拒绝任何手动的安全步骤。自动化将安全性成功集成到 DevOps 中,可以缩短反馈回路并减少冲突,从而使工程师能够更快、更顺利地检测和修复安全性和合规性问题,成为软件开发工作流程的一部分。以 SoFlu 软件机器人为例它能够实现全自动化软件开发,是一款让企业快速实践 DevSecOps 的绝佳工具,在开发人员和安全专业人员之间创建一个协作环境,使企业能够更快、更轻松地构建安全代码。

以自动开发为例,专业开发人员,或者没有编程基础和开发技能的普通人,只需通过 SoFlu 软件机器人的协助,在可视化界面拖拽组件,就可以创建复杂程度不同的软件。而且,由于平台套用封装代码,基本消除了测试修复 bug 的环节。也就是说,通过自动化的方式来实现软件开发,能够很好地保证软件的安全性。

密切关注投资回报率

很多大型商业工具,可能并未被充分利用,这很常见。不妨探索一下,如何将商业工具轻松引入到现有流程,取得更好的投资回报。

没有免费的午餐

开源社区提供了出色的安全工具,但有一点需谨记:使用这些工具和管理输出是需要花费时间成本的。从开发人员学习如何运行它们,再到实际运行它们或管理误报等等,都需要时间 —— 这意味,它们都不是免费的。如果每次发布都要花费两个小时,那么这个 “免费” 工具可能并不值得。

如今,DevSecOps 已经成为许多有远见的企业首选的安全流程,越早投入到这场开发变革中,就能积累更多技术能力来塑造自己的竞争力,抢占迅速变化的市场。