文 | 中国信息通信研究院 牛晓玲

近年来,企业在提升软件交付质量和效率的同时,也面临着软件安全漏洞、网络攻击等安全问题。为应对这些挑战,业界引入了 DevSecOps 这一新术语与新理念,将安全作为推动 DevOps 发展的重要保障和基石。DevSecOps 的核心在于将“安全左移”,即在软件开发周期的早期阶段引入安全措施,从而尽早发现并修复安全问题,降低成本,提高响应能力。DevSecOps 的研究和实践对于推动企业安全发展至关重要。它不仅能够提升软件的安全性,还能在不降低开发速度的前提下,确保企业能够快速响应安全威胁,从而在竞争激烈的市场中保持领先地位,真正成为筑牢企业安全发展的基石。

一、DevSecOps的内涵及特点

DevOps 是开发(Dev)和运维(Ops)的缩写,是一组过程、方法与系统的统称,强调业务人员及 IT 专业人员(包括开发、测试、运维等)在应用和服务生命周期中的协作和沟通。它强调整个组织的合作以及交付和基础设施变更的自动化,以实现持续集成、持续部署和持续交付的无缝集成。

DevSecOps 是将信息安全能力整合到 DevOps 的工作流程中。研发、测试、运营、安全等多个部门紧密协作,提升开发和运营的敏捷性,同时保障数据和服务的可用性与安全性。DevSecOps 是一种全新的安全理念与模式,强调安全是每个人的责任,要求将安全内嵌到应用的全生命周期。在确保安全风险可控的前提下,它帮助企业提升 IT 效能,更好地实现研发与安全运营一体化(如图1所示)。

图1 DevSecOps概念示意图

DevSecOps 强调建立内生安全体系,并进行持续不间断的安全防护,旨在进一步提高研发效率和安全问题的检出率,同时有效降低因安全问题导致的修复成本,并提升产品安全质量及安全文化的建设。DevSecOps 能力建设总体上具备以下特点。

安全可控。为了实现软件全生命周期的风险管控,安全工具链的建设需要包含漏洞管理、安全检测、安全预警等功能,从而提高风险的可控性。

降本增效。通过将安全工作“左移”,即在开发和规划阶段引入安全机制,实现早期检测和修复,从而减少后期因大量故障修复产生的成本。

故障恢复。通过将开发、测试、运营过程中的流程规范和实践工具平台相结合,大幅提高故障恢复时间指标与恢复能力。

安全责任。强调安全应由每个人负责,通过对开发、测试、运维人员进行安全培训和教育,提高团队之间的协作、安全与责任意识。

二、企业DevSecOps的落地实践路径

从企业落地实践的角度来看,企业需要从控制通用风险、控制开发过程风险、控制交付过程风险和控制运营过程风险四方面,推动研发安全运营一体化能力体系的建设(如图2所示)。

图2 DevSecOps全生命周期的安全能力建设

控制通用风险。在 DevSecOps 模式下,企业需要通过对安全组织建设和人员安全文化的培养、安全工具链的打造、基础设施管理、第三方管理、数据管理、度量与反馈改进等能力建设,持续完善企业控制通用总体风险体系。在组织建设和人员管理方面,应明确各方人员职责,对研发、测试、运维等人员进行有效管理,提倡人人为安全负责。在工具链建设方面,企业需要关注工具链的完整性,及安全工具本身的有效性和安全性。在第三方管理方面,应关注对第三方机构、人员、软件等的安全管理能力。在数据管理方面,从数据的采集、存储、传输、处理等数据生命周期角度出发,结合制度、流程及工具进行安全合规的管理。此外,企业还需建立度量与反馈机制,促进团队信息共享、确立改进方向并衡量改进效果,从而形成有效的闭环管理机制。

控制开发过程风险。为保障企业研发运营一体化的整体安全,必须在应用需求阶段就开始实施安全风险管理。通过建立企业级安全需求平台库和管理平台等措施,从源头控制风险,同时关注架构与设计的安全风险,比如通过基础安全设计规范、攻击面分析、威胁建模等手段,有效识别和防范风险。在开发管理过程中,引入安全编码规范和检测机制等措施,以降低开发过程中的安全风险。

控制交付过程风险。安全交付是实现安全运营的前提条件。通过将配置管理、构建管理、测试管理及部署与发布管理等交付过程纳入安全风险管理,确保系统、产品、服务可以在安全完整的最佳状态下实现交付。在配置管理方面,企业需关注源代码、依赖组件、发布制品和应用配置的安全管理。在构建管理方面,需提升构建过程的安全性、可靠性和可追溯性。

控制运营过程风险。将安全内建于运营过程中,通过监控、运营、响应等手段实现技术运营过程中的安全风险闭环管理。在安全监控方面,需制定明确的安全监控管理要求,建立安全监控机制,通过监控管理平台实现监控关联分析,提前识别安全问题及风险。在运营安全方面,通过安全监测、缺陷识别和处理等方式,最大限度地降低安全问题对生产运营的影响。在应急响应方面,通过及时预防、跟踪和处置安全事件,消除安全事件及其影响,保障业务连续性。在运营反馈方面,关注安全信息的动态完整性,通过完善的持续反馈流程机制和反馈平台,实现研发运营过程安全的持续优化和改进。

三、DevSecOps发展趋势和展望

随着 DevOps 的广泛应用及日趋成熟,DevSecOps 也呈现出多元化的发展趋势。根据由云计算开源产业联盟牵头编制的《中国 DevOps 现状调查报告(2024)》调查结果,DevSecOps 在企业中的影响力和重要程度继续提升,实践 DevSecOps 的企业比例首次超过70%。从技术发展趋势来看,主要包括以下几点。

一是企业更关注自动化程度的提升。企业的自动化水平是企业运营效率的重要组成部分。随着 DevSecOps 的进一步落地实践,人工智能(AI)和大模型等新技术正在与自动化技术融合,帮助企业简化流程并扩大决策范围。通过工具链代替日常工作流程中的手动操作,企业不仅避免了人为操作失误的可能性,还能提高安全团队的工作效率。

二是企业将安全工具持续整合进工具链。在将安全性纳入流水线工具之前,企业需要制定符合自身特点的解决方案。因此,安全工具与工具链的整合已变得非常普遍。根据 Gartner 的公开数据,已有 75% 的组织将工具链的可观测性和监控纳入一体化平台。同时,根据《中国 DevOps 现状调查报告(2024)》的数据,已有71.86%的企业引入了 DevSecOps 实践。由此可见,在安全与 DevOps 的融合过程中,安全管控的必要性、自动化、智能一体化和可观测性等已成为企业实施 DevOps 的关键属性。

三是基础设施即代码(IaC)将在 DevSecOps 中逐步深入应用。基础设施即代码(IaC)通过将基础设施配置参数作为代码进行管理。比如,使用 IaC 工具确保所有基础设施配置符合安全合规性要求,如自动检查云服务配置是否遵循 OWASP 安全原则。在 CI/CD(持续集成和持续部署)流程中集成安全扫描工具,如使用静态代码扫描工具或自定义脚本,以自动检测 IaC 代码中的安全漏洞。利用 Git 等版本控制系统管理 IaC 配置,确保所有变更经过代码审查和批准,从而减少人为错误带来的安全风险。可以预见,IaC 在安全领域的应用将越来越广泛和深入,它将在 DevSecOps 中帮助团队以更系统化和自动化的方式处理安全问题,提高整个组织的安全性和效率。

四是企业通过 SBOM 等方式尽可能降低风险。在美国总统行政办公室下属的管理和预算办公室(OMB)发布的关于“通过软件安全开发实践增强软件供应链安全”主题的备忘录后,软件材料清单(SBOM),即代码库的清单,成为了确保软件完整性,保护系统免受威胁和漏洞困扰,降低风险的行业基准。根据《中国 DevOps 现状调查报告(2024)》的数据,已有超六成企业关注基础设施安全,包括网络安全、操作系统安全以及云原生安全等;数据安全以及源码安全分别占比 46.2% 和 46.64%。有些企业在代码提交到版本控制系统之前,通过 SBOM 进行代码审查,确保没有引入不安全的代码或不合规的依赖项。在安全漏洞识别和修复方面,企业可以利用 SBOM 中的信息,通过自动化安全工具扫描已知漏洞。例如,当开源日志组件 Apache Log4j 被发现有漏洞时,企业可以快速检查是否使用了受影响的版本,并采取相应的修复措施。SBOM 可以帮助企业更好地控制软件开发和运营过程中的风险,提高软件供应链的透明度和安全性。

五是持续培养团队的安全意识与文化建设。DevSecOps 的成功实施需要企业内部文化的转变。安全不应该仅是安全部门的责任,而是需要全员参与,人人有责。因此,团队的安全意识培养至关重要,需要确保团队所有成员都了解安全的重要性,并具备实施安全措施所需的知识和技能。研究数据显示,企业成员的安全意识培训和敏感信息权限隔离占比为27.39%,仍需进一步提升。企业应重视企业级安全意识文化的培养和建设,并在整个组织中推广,以更好地保障企业行稳致远。

未来,DevSecOps 将进一步深化应用,加快推动企业内部研发效率的提升。在提升效率的同时,也需构建科学合理的安全风险防控体系,完善安全责任体系和制度支撑体系,增强企业员工的主动安全意识,让每个人都为安全负责。通过 DevSecOps 一体化安全,筑牢企业安全发展的基石,维护企业安全稳定运营和长足发展。

(本文刊登于《中国信息安全》杂志2024年第7期)

声明:本文来自中国信息安全,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。