近年来,在DevOps模型的指导下,将开发和运维团队结合在一起的公司在以更快的速度发布代码方面取得了普遍的成功。但这一趋势加剧了将安全集成到流程中的必要性,因为发布代码越快,漏洞也就越容易产生。而越来越多的企业和组织已经认识到,信息安全是企业存续发展的基石之一,因此希望将安全融合在DevOps之中,也就是我们所说的DevSecOps。
简单来说,若想要将安全集成到DevOps之中,需要采用工具和方法,将应用开发、IT运维和安全团队结合在一个通用的DevSecOps规则下,其目标是使安全成为软件开发工作流的一部分,而不是像瀑布开发模型那样,在软件开发周期的后期再将安全引入。这一转变颠覆了安全控制应在何时、何处及如何引入到软件中的传统观念,并对相互孤立的团队提出了挑战,他们需要找到合作的方法来高效且安全地发布代码。
但究竟如何将安全集成到DevOps当中,对很多企业和组织来说是现实的疑问。对希望实践DevSecOps的组织和企业,我们有以下5条建议:
一.自动化
速度是DevOps的主目标之一。在一个持续集成和持续部署(CI/CD)环境中,能够以多快的速度将代码发布并投入生产,几乎成为最重要的事情。因此,要使安全成为这一工作流程的一部分,它就需要实现自动化。安全控制和安全测试需要在开发生命周期的早期嵌入,而且它们需要以自动化的方式进行,因为对于一个应用程序,企业或组织每天可能会将新版本的代码推送到生产环境50次以上。
自动化已经成为具有高度成熟的DevSecOps实践的组织中的一个关键特性。在欧美国家,DevSecOps的实践已经有了相当的成熟度。在Sonatype的一项对2300名IT专业人员调查中,大约40%的受访者正在进行全生命周期的自动化安全测试。而在传统的瀑布开发模