作者:新思科技软件质量与安全部门安全团队
真正实施DevSecOps需要关键的文化和实践变革,将安全性集成到软件开发生命周期(SDLC)中。本文将介绍DevSecOps的五个基本要素。
DevOps 的环境和实践可帮助您的组织快速构建、可靠运行并不断改进您的软件解决方案。但是,DevOps 可能会破坏传统应用安全测试流程和工具。
要在不影响安全性的情况下保持速度,需要将安全功能融入各个阶段。这种功能就是 DevSecOps!
我们正快速向DevSecOps迈进,同时静下心来进行自我定位是非常有意义的。长期以来,开发和运营团队相互协调,为同一个目标奋进:快速交付稳定的、高质量的软件。通过将手动流程自动化并且将工具构建到持续集成和持续交付(CI/CD)管道,增加了团队之间的信任,这对那些曾经在不同的部门、如今一起解决关键问题的团队来说是非常必要的。
三种方法
当谈论DevOps原则时,人们很容易想到在公司里应用DevOps的三种不同方法,但是每一种方法都促进了整个DevOps概念的落地,包括帮助团队在公司实施其规范性的步骤。
这个重要基础很自然会导向DevSecOps。在软件开发生命周期(SDLC)早期采用DevOps可以缩短反馈回路并且降低复杂性,从而使工程师能够更快、更轻松地检测和修复安全性和合规性问题。
在技术价值流中,DevOps可能是将信息安全更好地集成到每个人日常工作的最佳方式之一。
找到通向DevSecOps的方法
真正实施DevSecOps需要关键的文化和实践变革,将安全性集成到软件开发生命周期(SDLC)中,这包括以下5个方面:
- 将安全性集成到缺陷追踪和事后追踪中
- 将安全控制集成到共享源代码存储库和服务中
- 将安全性集成到部署管道中
- 确保应用程序的安全性
- 确保软件供应链的安全性
所以要做到成功的DevSecOps只需要这五个基本要素吗?我知道你们怎么想 —— 知易行难。那么,你如何在组织中实现每项变革呢?
将关键流程自动化
为你的工作环境找到正确的工具是重要的一步,你需要找到适合CI/CD工作流以及自动运行的工具。不仅仅如此,你还需要这些工具能够在出现问题时通知合适的人,对其进行相关培训,并提供如何修复的指导。而且在集成和测试期间,以及在安装、部署和维护中,你不能只做一次。你必须在开发生命周期早期进行测试(我们通常称之为“向左移”)。在应用程序投产之后,你无法确保其持续的安全性,你必须在生产过程中持续测试并且修复任何新的安全问题。
尽管采用DevOps方法以及CI/CD技术非常重要,但并非企业或组织中所有的团队都必须采取这些方式。
赋予相关团队权力
仅凭安全的工具和自动化无法保证应用程序的安全性。投资你的团队并且使他们能够构建真正的DevSecOps文化,将软件安全培训作为优先事项,并且确保培训与员工的角色和项目相关。或许最重要的是,你需要记住DevOps不是微小的改变,这是对公司文化的真正改变,这需要时间、培训、工具以及拥抱DevOps文化的愿望。将安全性集成到DevOps团队的日常工作中可能需要耗费时间,但这是有价值的。开发、运营和安全团队将协同工作,以提高交付软件的质量和安全性,从而加快软件交付速度,最终提升客户满意度。