DevSecOps 协作与集成是 CSA DevSecOps 六大支柱系列的第二本报告。报告指出,DevSecOps 强调安全要靠合作,而非对抗和职能分裂,加强组织的安全意识与协作文化对所有团队成员都极为必要,因为人为因素常是安全的薄弱环节。报告的核心内容围绕协作与集成展开,提出了一系列基础准则、流程协作和技术融合的方法,以促进DevSecOps的成功实施。具体包括:
1.基础准则
提出DevSecOps跨职能沟通的核心原则
制定基于角色的持续安全培训框架
2.流程协作
分析各角色在DevSecOps交付流水线的协作机制
阐述新工具采购时多团队的集成协作方法
3.技术融合
探讨DevSecOps与零信任架构的协同实施
分析MLSecOps与DevSecOps的共性挑战
说明AIOps在DevSecOps中的赋能作用
本报告特别面向企业数字化转型中的关键决策者和执行者,包括CISO、CIO等高管层,安全工程、DevOps团队等技术实施层,以及GRC、人力资源等支撑部门,旨在帮助各职能部门在确保安全性的同时提升交付效率,实现安全与开发的深度整合。
一、DevSecOps协作文化建设
生机型组织
DevOps 的生机型组织在协作文化方面具有独特优势,与病态型、官僚型组织差异显著。病态型组织权利导向、缺少合作,面对问题时逃避责任、阻碍交流;官僚型组织规则导向,合作程度一般,对新想法态度消极。而生机型组织以效能为导向,团队成员高度合作、共担责任,积极接纳新想法,在失败时追根溯源。这种组织模式下,团队成员致力于提升软件的开发、测试和部署效率,保障软件质量与安全,为 DevSecOps 协作文化建设提供了良好范例。
协作文化建设
生机型组织的持续改进和团队合作精神也为DevSecOps协作文化的实施提供了有力的支持。通过不断地探索新的安全技术和工具,优化开发、测试和部署流程,生机型组织能够不断提高软件的安全性和质量。而团队成员之间的紧密协作和高效沟通则能够确保这些改进措施得以顺利实施并取得预期的效果。基于生机型组织的运作模式DevSecOps协作文化应如下所示进行推进:
协作能力
DevSecOps协作文化的建设是一个综合性的过程,需要从多个方面入手来确保开发与安全团队之间的紧密协作和高效沟通。具体DevSecOps协作能力总结为四种能力体现,分别为沟通能力、培训能力、问责能力、团队健康,其中四种能力的体现分别为:
1.沟通能力:强调安全是团队共同目标,统一术语概念,建立高效沟通渠道,定期举行跨团队会议,确保信息及时准确传递。
2.培训能力:为所有团队成员提供安全意识培训,定期更新技能知识,使其能紧跟最新安全技术和趋势,有效应对各类安全威胁。
3.问责能力:明确各成员的责任与角色,建立完善的奖惩机制,激励成员积极履行职责,对违反安全规定或导致安全漏洞的行为进行相应惩罚。
4.团队健康:营造相互信任的工作氛围,鼓励开放透明沟通,尊重成员贡献,推动持续学习与创新,避免团队成员出现倦怠。
二、DevSecOps 集成与实施路径
实施前的关键准备
DevSecOps 是集开发、安全和运维于一体的软件开发和运营模型框架,核心在于将安全性贯穿软件开发生命周期。实施前需做好以下关键准备:
1.敏捷和持续集成开发:遵循敏捷和持续集成开发原则。敏捷方法使开发过程更具适应性,以客户为中心,确保开发与用户需求一致;持续集成通过不断合并代码变更,及时发现问题并纠正,加快开发周期。
2.将安全性纳入每个阶段:将安全融入软件开发的每个阶段,从设计、编码、测试到部署、运维,嵌入自动安全扫描、代码分析等实践,降低风险,培育团队的安全文化。
3.确保持续交付和可靠性运营:确保持续交付和可靠性运营。通过频繁的小更新并进行全面测试,降低大规模部署风险;加强安全威胁监测和事件响应,保障基础设施适应安全环境变化。
实施的关键步骤
DevSecOps 的实施需按照一定步骤稳步推进:
1.培养合作文化:营造多团队协同工作、开放沟通、共担责任的良好环境,打破部门壁垒。
2.定义和调整目标:明确并调整 DevSecOps 集成目标,使其与企业整体战略和组织需求紧密契合。
3.从小处做起:选择小项目或团队进行试点,积累经验后逐步向整个组织推广。
4.尽早并经常集成安全:在开发的各个阶段尽早且频繁地开展安全检查,将安全隐患消灭在萌芽状态。
5.尽可能自动化:利用工具自动化重复任务,在保障安全的前提下提高开发速度。
6.不断学习和改进:鼓励团队持续学习,及时掌握新方法和新技术,不断改进 DevSecOps 实践。
黄金流水线集成与实施要点
DevSecOps 黄金流水线在软件交付中起着关键作用,主要包含以下要点:
1.安全前移与无缝对接:强调安全前移,在软件开发全过程将安全因素前置,实现安全工作与开发、运维等工作无缝对接。
2.自动化与稳定性:构建稳定可靠的自动化 CI/CD 流水线,通过自动化执行代码集成、构建、测试、部署等任务,提高交付效率和质量。
3.平台架构与工具自动化:选择适配业务目标的平台架构和包含自动化测试、安全扫描等功能的工具链,确保流水线顺畅运行。
4.团队协作与沟通:加强跨部门协作与沟通,确保不同团队对 DevSecOps 理念和实践有共同理解,推动流水线实施和优化。
5.度量指标与持续改进:设置度量指标评估流水线性能,依据评估结果持续优化改进,提升企业整体研发效能。
应对实施挑战
企业在实施 DevSecOps 过程中会面临多种挑战,需采取相应措施应对:
1.应对文化转型: 促进团队开放沟通,提供学习机会,领导带头倡导,推动从孤立运营向协作、以安全为中心的思维转变,培育新的组织文化。
2.确保安全标准和遵从性: 将合规和安全检查集成到开发周期,利用自动化工具监控,定期更新安全协议,使合规和安全成为团队的自觉行动。
3.管理资源分配: 评估现有资源,确定自动化可优化的领域,提升团队技能,合理规划实施时间表,采用增量变更减轻资源压力,确保实施过程顺利。
致谢
《DevSecOps的六大支柱:协作与集成(The Six Pillars of DevSecOps:Pragmatic Implementation)》由Abdul Rahman Sattar编写,并由CSA大中华区专家组织翻译并审校。
翻译组:李 岩、何伊圣、欧建军、王 彪、王贵宗、伏伟任、谢绍志
审校组:苏泰泉、李 岩、江 楠、罗智杰、卜宋博
研究协调员:闭俊林、易利杰
贡献单位:
北京天融信网络安全技术有限公司
(以上排名不分先后)
本文作者:
李岩(北京老李)