DevSecOps在DevOps上进行了改进,以确保安全性仍然是流程的重要组成部分。DevOps目前在IT界广为人知,但它并不完美。试想一下,您在项目的现代应用程序交付中实施所有DevOps工程实践。您已经到达开发过程的末尾,但渗透测试团队(内部或外部)检测到安全漏洞并报告它。现在,你必须重新启动所有进程,并要求开发人员修复漏洞。在基于DevOps的软件开发生命周期(SDLC)系统中,这并不乏味,但确实会浪费时间并影响交付计划。如果从早期的SDLC开始就集成了安全性,您可能已经找到故障并在开发过程中将其消除。然而,如上例所示,将安全性推到开发过程的最后,将导致更长的开发生命周期。这就是引入DevSecOps的原因,它以自动化方式整合了整个软件交付周期。在现代DevOps方法中,组织广泛使用容器来托管应用程序,我们看到Kubernetes和Istio被大量使用。但是,这些工具有其自身的漏洞。例如,云原生计算基金会(CNCF)最近完成了一次kubernetes安全审计,发现了几个问题。DevOps开发过程中使用的所有工具都需要在过程运行时进行安全检查,DevSecOps促使管理员监控工具的存储库以获取升级和补丁。什么是DevSecOps?与DevOps一样,DevSecOps是开发人员和IT运营团队在开发和部署软件应用程序时遵循的一种心态或文化。它将主动和自动化的安全审计和渗透测试集成到敏捷应用程序开发中。要使用DevSecOps,您需要:从SDLC开始引入安全概念,以最大限度地减少软件代码中的漏洞。确保每个人,包括开发人员和IT运营团队,共同承担在其任务中遵循安全实践的责任。在DevOps工作流开始时集成安全控制、工具和流程。这些将在软件交付的每个阶段启用自动安全检查。DevOps一直致力于将安全性和质量保证(QA)、数据库管理以及开发和发布过程中的所有其他内容包括在内。然而,DevSecOps是该过程的演变,以确保安全永远不会被遗忘为过程的重要组成部分。了解DevSecOps流程一个典型的DevOps流程有不同的阶段;典型的SDLC过程包括计划、编码、构建、测试、发布和部署阶段。在DevSecOps中,每个阶段都会应用特定的安全检查。规划:执行安全分析并创建测试计划以确定测试的地点、方式和时间。编码:部署整理工具和Git控件来保护密码和API密钥。构建:结合使用静态应用程序安全测试(SAST)工具和静态应用程序安全测试(SAST)工具,在部署到生产之前在构建代码时跟踪代码中的缺陷。这些工具针对特定的编程语言。测试:使用动态应用程序安全测试(DAST)工具在运行时测试您的应用程序。这些工具可以检测与用户身份验证、授权、SQL注入和API相关端点相关的错误。发布:在发布您的应用程序之前,使用安全分析工具进行全面的渗透测试和漏洞扫描。部署:在运行时完成上述测试后,将安全版本发送到生产环境进行最终部署。DevSecOps工具SDLC的每个阶段都有可用的工具。有些是商业产品,但大多数是开源的。在我的下一篇文章中,我将更多地讨论在流程的不同阶段使用的工具。随着基于现代IT基础设施的企业安全威胁越来越复杂,DevSecOps将发挥更加关键的作用。然而,DevSecOps流程将需要随着时间的推移而发展,而不是简单地依赖于同时实施所有安全更改。这将消除回溯或应用程序交付失败的可能性。
