DevSecOps 管道和工具:你需要了解什么

DevSecOps 演化自 DevOps,以确保安全性仍然是流程的重要组成部分。
185 位读者喜欢这篇文章。
An intersection of pipes.

Opensource.com

DevOps 在 IT 领域已广为人知,但它并非完美无缺。想象一下,你已经在一个项目中实施了现代应用程序交付的所有 DevOps 工程实践。你已经到达了开发管道的末端——但是渗透测试团队(内部或外部)检测到了一个安全漏洞并提交了一份报告。现在你必须重新启动所有流程,并要求开发人员修复该漏洞。

在基于 DevOps 的软件开发生命周期 (SDLC) 系统中,这并不是非常繁琐——但它确实会消耗时间并影响交付计划。如果在 SDLC 的一开始就集成了安全性,你可能已经追踪到故障并在进行中就消除了它。但是,像上述场景中那样将安全性推迟到开发管道的末端,会导致更长的开发生命周期。

这就是引入 DevSecOps 的原因,它以自动化的方式整合了整个软件交付周期。

在现代 DevOps 方法论中,容器被组织广泛用于托管应用程序,我们看到 KubernetesIstio 的使用更加广泛。然而,这些工具本身也存在漏洞。例如,云原生计算基金会 (CNCF) 最近完成了一项 Kubernetes 安全审计,其中发现了几个问题。DevOps 管道中使用的所有工具都需要在管道运行时进行安全检查,DevSecOps 促使管理员监控工具的存储库以获取升级和补丁。

什么是 DevSecOps?

与 DevOps 一样,DevSecOps 是一种思维模式或文化,开发人员和 IT 运维团队在开发和部署软件应用程序时遵循它。它将主动和自动化的安全审计和渗透测试集成到敏捷应用程序开发中。

要利用 DevSecOps,你需要

  • 从 SDLC 的一开始就引入安全概念,以最大限度地减少软件代码中的漏洞。
  • 确保每个人(包括开发人员和 IT 运维团队)都分担在其任务中遵循安全实践的责任。
  • 在 DevOps 工作流的开始阶段集成安全控制、工具和流程。这些将在软件交付的每个阶段启用自动化的安全检查。

DevOps 一直都包含安全性——以及质量保证 (QA)、数据库管理和所有其他人——在开发和发布过程中。然而,DevSecOps 是该过程的演变,以确保安全性永远不会被遗忘,作为流程的重要组成部分。

理解 DevSecOps 管道

典型的 DevOps 管道中有不同的阶段;典型的 SDLC 流程包括计划、编码、构建、测试、发布和部署等阶段。在 DevSecOps 中,特定的安全检查应用于每个阶段。

  • 计划: 执行安全分析并创建测试计划,以确定在何处、如何以及何时进行测试的场景。
  • 编码: 部署 linting 工具和 Git 控制,以保护密码和 API 密钥。
  • 构建: 在构建用于执行的代码时,集成静态应用程序安全测试 (SAST) 工具,以在部署到生产环境之前跟踪代码中的缺陷。这些工具特定于编程语言。
  • 测试: 在运行时使用动态应用程序安全测试 (DAST) 工具来测试你的应用程序。这些工具可以检测与用户身份验证、授权、SQL 注入和 API 相关端点相关的错误。
  • 发布: 在发布应用程序之前,使用安全分析工具执行彻底的渗透测试和漏洞扫描。
  • 部署: 在完成上述运行时测试后,将安全构建发送到生产环境以进行最终部署。

DevSecOps 工具

SDLC 的每个阶段都有可用的工具。有些是商业产品,但大多数是开源的。在我的下一篇文章中,我将更多地谈论在管道的不同阶段使用的工具。

随着我们继续看到基于现代 IT 基础设施的企业安全威胁的复杂性增加,DevSecOps 将发挥更关键的作用。但是,DevSecOps 管道需要随着时间的推移而改进,而不是仅仅依靠同时实施所有安全更改。这将消除回溯或应用程序交付失败的可能性。

接下来阅读什么

在整个 DevOps 中分层安全

将我们的 DevSecOps 方法分解为多个层,可以在对强大安全性的需求与快速行动和频繁部署的愿望之间取得适当的平衡。

2019 年 9 月 10 日
标签
User profile image.
Calsoft Inc. 的数字策略师。Sagar Nangare 是一位技术博客作者,专注于数据中心技术(网络、电信、云、存储)和新兴领域,如边缘计算、物联网、机器学习、人工智能)。他目前在 Calsoft Inc. 担任数字策略师。他常驻浦那。

1 条评论

无论你称它为什么,SecDevOps、DevSecOps 还是 DevOpsSec,重要的是要有一个 DevSecOps 管道,在集成、部署和交付过程中具有高度有价值的安全性。

© . All rights reserved.