什么是 DevSecOps?

复制 URL

DevSecOps 是“开发、安全和运维”的缩写。它是一种文化取向、自动化方法和平台设计方法,将安全性作为整个 IT 生命周期的共同责任。

DevOps 不仅仅关乎开发和运维团队。如果您想要充分发挥出 DevOps 方法的敏捷性和响应力,则必须在应用的整个生命周期内兼顾 IT 安全性

为什么呢?从前,安全防护只是特定团队的责任,在开发的最后阶段才会介入。如果开发周期要持续数月甚至数年,这样做毫无问题,但这样的时代已成为历史。有效的 DevOps 可确保快速频繁的开发周期(有时持续数周或数日),但哪怕最有效的 DevOps 计划,也会因过时的安全实践而失去作用。

 

Illustration representing a linear progression from Development to Security and then to Operations

现在,在 DevOps 的协作框架中,安全防护是贯穿始终的共同责任。这是一种重要的思维方式,“DevSecOps”一词正是在此基础上诞生的,它强调了在 DevOps 计划中构建安全基础的必要性。

 

Illustration representing collaboration between Development, Security, and Operations roles

DevSecOps 意味着从一开始就要考虑应用和基础架构的安全防护;同时还要在一些安全环节方面采用自动化技术,防止 DevOps 工作流程变慢。选择合适的工具来持续集成安全防护(比如在集成开发环境(IDE)中集成安全防护功能)有助于实现这些目标。但是有效的 DevOps 安全防护需要的不仅是新工具。它建立在 DevOps 文化变革的基础上,以便尽早集成安全团队的工作。

这种从规划和开发的早期阶段到运行时,全程注重安全防护的实践,通常被称为左移和右移安全防护。通过左移方法实施和自动化 DevSecOps 可以提供对开发人员友好的防护措施,能够在构建和部署阶段减少用户错误,并在运行时阶段保护工作负载。要实现右移,需要在后期生产环境中持续实施测试、质量保证和性能评估实践。

详细了解为什么选择红帽来实现 DevSecOps

红帽资源

无论您是称之为“DevOps”还是“DevSecOps”,将安全防护作为不可或缺的一部分纳入整个应用生命周期中始终是一种理想的做法。DevSecOps 注重内置安全防护,而不是在外围保护应用和数据的安全防护。如果在开发管道结束时才实施安全防护,采用 DevOps 的企业组织就会发现自己又陷到了当初极力避免的漫长的开发周期。

DevSecOps 强调,在 DevOps 计划刚启动时就要邀请安全团队和合作伙伴来确保信息的安全性,并制定自动安全防护计划。它还强调,要帮助开发人员从代码层面确保安全性;在这个过程中,安全团队需要针对已知的威胁(如内部威胁或潜在的恶意软件)共享掌握的全局信息、提供反馈并进行智能分析。DevSecOps 还注重识别软件供应链的风险,强调在软件开发生命周期早期对开源软件组件和依赖关系实施安全防护。为取得成功,有效的 DevSecOps 方法可以包含面向开发人员的新型安全防护培训,因为在较为传统的应用开发中,安全防护始终不是重点。

一体化安全防护是什么样子的呢?首先,良好的 DevSecOps 策略是确定风险容限并执行风险/益处分析。在指定的应用中,需要多少安全控制呢?上市速度对于不同的应用有多重要?自动执行重复的任务是 DevSecOps 的关键,因为在管道中运行手动安全检查可能非常耗时。

借助红帽® 可信赖软件供应链进行编程、构建和监控

要推行 DevOps,企业需要:确保采用时间短、频率高的开发周期;采取安全措施,最大限度地缩短运维中断时间;及时应用创新技术,如容器微服务;同时,还要促使以往各自为阵的团队加强合作——这一切对所有企业组织来说都是艰巨的任务。上述所有措施都是以人员为根本,都需要企业组织内部协同合作;但是,要想在 DevSecOps 框架中实现这些人员的变革,自动化是关键所在。

Illustrations representing that DevOps plus Automation equals Security

那么,企业应该在哪些方面实现自动化?具体又该怎么做呢?这份书面指南可以帮助解答这个问题。企业组织应后退一步,审视整个开发和运维环境。其中涉及:源控制存储库;容器注册表;持续集成和持续部署(CI/CD)管道;应用编程接口(API)的管理、编排和发布自动化;以及运维管理和监控。

全新的自动化技术已帮助企业组织应用了更敏捷的开发实践,也在促进新的安全措施方面起到了重要作用。但是,自动化并不是近年来 IT 领域发生的唯一变化。现在,对于大多数 DevOps 计划而言,容器和微服务等云原生技术也是一个非常重要的组成部分。所以,企业必须调整 DevOps 安全措施。

利用 IT 自动化成功实施 DevSecOps 的 5 种方法

容器实现了更大的规模以及更动态的开发和部署,因此而改变了许多企业组织的创新方式。因此,DevOps 安全防护实践必须适应新的格局,并与容器特定安全准则保持一致。

云原生技术不适合静态安全策略和检查清单。相反,安全防护必须是持续的,并集成到应用和基础架构生命周期的每个阶段。

DevSecOps 意味着将安全防护从头到尾集成到应用开发中。这种集成到管道的工作需要有新型的企业思维和工具。因此,DevOps 团队应该实现安全防护自动化,从而保护整体环境和数据,同时实现持续集成/持续交付流程,可能还要确保容器中的微服务的安全。

红帽® Kubernetes 高级集群安全防护可促成安全防护左移,并自动执行 DevSecOps 最佳实践。该平台适用于任何 Kubernetes 环境,并与 DevOps 和安全防护工具集成,帮助团队实施和更好地保护供应链、基础架构和工作负载。

环境和数据安全防护

  • 标准化和自动化环境:每项服务都应具有限制权限,从而最大限度地减少未经授权的连接和访问。
  • 集中用户身份验证和访问控制功能:由于要在多个点发起身份验证,因此严格的访问控制和集中式身份验证机制对于确保微服务安全性而言至关重要。
  • 隔离运行微服务的容器和网络:这包括传输中和静止的数据,因为获取这两类数据是攻击者的重点目标。
  • 加密应用和服务间的数据:使用具有集成安全防护功能的容器编排平台,可以最大限度地减少未经授权的访问。
  • 引入安全的 API 网关:安全的 API 可让授权和路由更加清晰可见。通过减少暴露的 API,企业组织可以减少攻击面。

CI/CD 流程安全防护

  • 增加容器安全防护扫描:这应成为向注册表添加容器的其中一个步骤。
  • 在 CI 流程中自动运行安全测试:包括在构建过程中运行静态安全分析工具;以及在构建管道中拖入任何预构建容器镜像时,都要进行扫描,以检查是否存在已知的安全漏洞。
  • 在验收测试过程中添加关于安全功能的自动测试:自动化输入验证测试、身份验证和授权功能。
  • 自动化安全更新,例如修补已知漏洞:通过 DevOps 管道完成此步骤。它应使管理员不必登录生产系统,同时创建记录完备的可追溯变更记录。
  • 自动化系统和服务配置管理功能:这样可以确保遵守安全策略,避免出现人为错误。审核和修复操作也应实现自动化。

进一步了解 CI/CD 安全防护 

中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

什么是机密管理?

机密管理是一种对日常运维所需的敏感信息进行保密处理的方法。

什么是基于角色的访问控制(RBAC)?

基于角色的访问控制是一种管理访问权限的方法,根据用户在团队或更大部门中的角色来管理用户对系统、网络或资源的访问权限。

简单理解测试的左移与右移

要实施左移和右移,即意味着在软件开发生命周期的每个阶段实施持续测试。

安全防护 相关资源

相关文章