DevSecOps

menu icon

DevSecOps

DevSecOps 在软件开发生命周期的每个阶段自动实施安全措施,支持以敏捷方法和 DevOps 的速度开发安全的软件。

什么是 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) 的前 10 大实践、应用安全测试和其他安全工程实践。 开发人员需要了解线程模型和合规性检查,并了解如何衡量风险以及如何实施安全控制

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

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

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

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

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

  • 可跟踪性旨在跟踪开发周期中的配置项,确定在代码中实现需求的位置。 这可以在组织的控制框架中发挥关键作用,因为它有助于实现合规性,减少错误,确保应用开发中的安全代码,以及建立代码可维护性。
  • 可审计性对于通过安全控制确保合规性而言非常重要。 技术、程序和管理安全控制必须可审计,形成正式文件,并由所有团队成员遵守。
  • 可视性通常是良好管理实践,但对于 DevSecOps 环境非常重要。 这意味着组织实施了牢固的监控系统,用于衡量运营状况,发送警报,提高对变更和网络攻击的认识,并在整个项目生命周期内建立问责机制。

DevSecOps 和 IBM

使用 DevSecOps 工具和实践的组织为数字化转型奠定了强大的基础;随着自动化需求广泛覆盖业务和 IT 运营,使应用实现现代化

要实现更大程度的自动化,首先要从可衡量的小型成功项目起步,然后可针对其他流程和组织的其他部分扩大规模和进行优化。

通过与 IBM 合作,您可以访问基于 AI 的自动化能力,包括预先构建的工作流程,使每个 IT 服务流程更加智能化,使团队能够专注于最重要的 IT 问题并加速创新。

IBM 还拥有一套面向 DevSecOps 的工具和服务,以实现安全的持续交付、集成的安全测试和云原生交付管道。

采取下一步行动:

  • 使用 IBM® UrbanCode®,自动执行软件部署,获取对复杂发布周期的控制,加快发布流程并提高产品质量。
  • 通过 IBM DevOpsDevOps InsightsIBM Cloud Pak® for Applications(具有可选的 DevOps 附加组件),提高企业敏捷性,缩短发布周期并增强网络安全。
  • 了解如何利用 IBM Cloud Pak for Watson AIOps,将 AI 置于整个 IT 运营工具链的核心,通过将洞察和建议直接纳入团队工作流程,消除对多个仪表板的需求,加快事件解决速度。
  • 立即注册,下载 Gartner 报告,了解如何使用 AI 建立面向未来的 IT 运营。 
  • 下载 IBM Cloud® 信息图 (PDF,464 KB) ,了解基于 AI 的 IT 运营自动化的收益。

即刻开始使用 IBM Cloud 帐户