什么是 DevSecOps?
使用 DevSecOps 将安全性嵌入软件开发生命周期的各个阶段
订阅 IBM 时事通讯
黑色和蓝色背景
什么是 DevSecOps?

DevSecOps 是“开发、安全运营”的缩写,它可在软件开发生命周期的各个阶段自动集成安全性 - 从最初的设计到集成、测试、部署,一直到软件交付。  

DevSecOps 代表着开发组织实施安全性的自然且必要的发展过程。 过去,安全性总是由单独的安全团队在开发周期结束时(几乎是事后)添加到软件中,并由单独的质量保证 (QA) 团队进行测试。

如果每年只发布一两次软件更新,这种方法还能够应付。 但是,随着软件开发人员采用了敏捷和 DevOps 实践,软件开发 周期缩短到几周甚至几天,传统的“添加式”安全方法就造成了让人无法接受的瓶颈。

DevSecOps 可将应用和基础架构安全性无缝集成到敏捷和 DevOps 流程和工具中。 它可以在安全问题一出现就解决这些问题,处理起来更加得心应手、速度更快,且成本更低,并且不会将这些问题带入生产环境。 此外,DevSecOps 使应用和基础架构安全性成为开发、安全和 IT 运营团队的共同责任,而不仅仅是安全团队一方的责任。 它支持“更安全、更迅速地交付软件”- 这是 DevSecOps 的座右铭,可在不减慢软件开发周期的情况下自动交付安全的软件。 

DevSecOps 的优势

DevSecOps 的两个主要优势就是速度和安全性。 开发团队可以更快地交付更安全的代码,因此成本也更低。

《DevSecOps 宣言》的合著者 Shannon Lietz 解释道:“DevSecOps 的目的和意图是建立每个人都对安全负责的理念,目标是在不牺牲必要安全性的情况下,快速、安全、大规模地将安全决策分配给那些拥有最高背景级别的人。"

快速、经济有效的软件交付 
 

在非 DevSecOps 环境中开发软件时,安全问题会导致时间上的巨大延迟。 修复代码和安全问题既十分耗时又成本高昂。 DevSecOps 的快速安全交付可节省时间并减少成本,尽可能地避免在事后重复执行流程来解决安全问题。

由于集成安全性避免了重复审查和不必要的重新构建,从而产生了更安全的代码,因此 DevSecOps 更高效,成本效益也更高。

改进的主动安全性
 

DevSecOps 从开发周期一开始就引入了网络安全流程。 在整个开发周期中,会对代码进行审查、审计、扫描和测试,积极查找安全问题。 一旦发现问题,就会立即处理。 解决安全问题之后,才会引入其他依赖项。 如果在周期中尽早确定和实施防护技术,就可以降低安全问题的修复成本。

此外,开发、安全和运营团队之间更密切的协作有助于改进组织对所发生事件和问题的响应情况。 DevSecOps 实践有助于缩短漏洞修补时间,并使安全团队能够专注于更高价值的工作。 这些做法还可确保并简化合规性,使应用开发项目不必为实现安全性而重新改造。

加快的安全漏洞修补过程
 

DevSecOps 的一个主要优势在于,它能够快速管理新发现的安全漏洞。 随着 DevSecOps 将漏洞扫描和补丁集成到发布周期中,发现和修补常见漏洞和风险 (CVE) 的能力逐渐退出舞台。 这限制了威胁制造者在面向公众的生产系统中利用漏洞的时间窗口。

与现代开发相适应的自动化
 

如果组织使用持续集成/持续交付管道来交付他们的软件,那么可以将网络安全测试集成到运营团队的自动化测试套件中。  

安全检查自动化很大程度上取决于项目和组织目标。 自动化测试可确保整合的软件依赖项处于适当的补丁级别,并确认软件通过安全单元测试。 此外,在最终更新升级到生产环境之前,它可以使用静态和动态分析来测试和保护代码。

可重复、自适应的过程
 

随着组织逐步成熟,其安全布局也日趋成熟。 DevSecOps 将自身实施为可重复、自适应的过程。 这确保在环境中一致地应用安全性,随着环境发生变化,安全性也会适应新要求。 DevSecOps 的成熟实施将实现可靠的自动化、配置管理、业务流程、容器、不可变的基础架构,甚至是无服务器计算环境。  

DevSecOps 的最佳实践

DevSecOps 可将安全控制自然融入开发、交付和运营流程。

左移
 

“左移”是一条 DevSecOps 准则:它鼓励软件工程师将安全性从 DevOps(交付)流程的右侧(结束)移动到左侧(开始)。 在 DevSecOps 环境中,安全性从一开始就成为开发流程不可分割的组成部分。 使用 DevSecOps 的组织会将网络安全架构师和工程师纳入开发团队。 他们的工作是确保堆栈中的每个组件和每个配置项都经过修补、安全配置且记录在案。

左移让 DevSecOps 团队能够及早发现安全风险,并确保立即解决这些安全威胁。 开发团队不仅要考虑高效地构建产品,还在构建时实施安全性。

安全教育
 

安全性是工程与合规性的结合。 组织应在开发工程师、运营团队和合规团队之间形成联盟,确保组织中的所有人都了解公司的安全状况,且遵循相同的标准。

参与交付过程的每个人都应该熟悉应用安全性的基本原则、开放式 Web 应用安全项目 (OWASP) 提出的十大安全风险列表、应用安全测试和其他安全工程实践。  开发人员需要了解线程模型和合规检查,知道如何衡量风险和暴露情况以及如何实施安全控制措施。

文化:通信、人员、流程和技术
 

出色的领导阶层能够促进良好的企业文化,推动组织内的变革。 在 DevSecOps 中,传达流程和产品所有权的安全职责至关重要。 只有这样,开发人员和工程师才能成为流程负责人,为其工作承担责任。

DevSecOps 运营团队可使用适合其团队和当前项目的技术和协议,创建适当的系统。 通过支持团队创建适合自身需求的工作流程环境,他们成为投资于项目成果的利益相关方。

可跟踪性、可审计性和可视性
 

通过在 DevSecOps 流程中实现可跟踪性、可审计性和可见性,最终可获得更深入的洞察,建立更安全的环境:

  • 可跟踪性旨在跟踪开发周期中的配置项,确定在代码中实现需求的位置。  这可以在组织的控制框架中发挥关键作用,因为它有助于实现合规性,减少错误,确保应用开发中的安全代码,以及建立代码可维护性。

  • 可审计性对于通过安全控制措施确保合规性而言非常重要。  技术、程序和管理安全控制措施必须可审计,形成正式文件,并由所有团队成员遵守。

  • 可见性通常是一种良好的管理实践,但对于 DevSecOps 环境而言非常重要。  这意味着组织实施了牢固的监控系统,用于衡量运营状况,发送警报,提高对变更和网络攻击的认识,并在整个项目生命周期内建立问责机制。
相关解决方案
IBM 智能自动化解决方案

探索全面的 IBM 集成、AI 和自动化功能组合,为您提供所需的 ROI。

探索 IBM 智能自动化解决方案
IBM UrbanCode®

IBM UrbanCode® 可以为本地、云和大型机应用的任意组合加速和优化软件交付过程。

探索 IBM UrbanCode®
IBM DevOps 解决方案

借助功能强大的 DevOps 软件,在多种设备、环境和云中构建、部署和管理高度安全的云原生应用。

探索 IBM DevOps 解决方案
资源 利用 AI 让您的 IT 运营面向未来

阅读 Gartner 独家分析师报告,了解面向 IT 的 AI 如何改善业务成果、增加收入并降低组织的成本和风险。

什么是 AIOps?

了解 IT 运营人工智能 (AIOps) 如何使用数据和机器学习能力,改进和自动执行 IT 服务管理。

AI 支持的 IT 自动化

下载 IBM Cloud® 信息图,该资料展示了 AI 支持的自动化对 IT 运营的益处。

采取下一步行动

借助 IBM UrbanCode®,自动执行软件部署,控制复杂的发布周期,加快发布流程并提高产品质量。

了解有关 IBM UrbanCode® 的更多信息