您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[云安全联盟]:DevSecOps的六大支柱:自动化 - 发现报告
当前位置:首页/行业研究/报告详情/

DevSecOps的六大支柱:自动化

2023-11-15-云安全联盟冷***
DevSecOps的六大支柱:自动化

©2023云安全联盟大中华区版权所有1 DevSecOps工作组的官方网址是: https://cloudsecurityalliance.org/research/working-groups/devsecops/ @2023云安全联盟大中华区-保留所有权利。你可以在你的电脑上下载、储存、展示、查看及打印,或者访问云安全联盟大中华区官网(https://www.c-csa.cn)。须遵守以下:(a)本文只可作个人、信息获取、非商业用途;(b)本文内容不得篡改;(c)本文不得转发; (d)该商标、版权或其他声明不得删除。在遵循中华人民共和国著作权法相关条款情况下合理使用本文内容,使用时请注明引用于云安全联盟大中华区。 ©2023云安全联盟大中华区版权所有2 ©2023云安全联盟大中华区版权所有3 致谢 《DevSecOps-的六大支柱:自动化(TheSixPillarsofDevSecOps:Automation)》由CSA工作组专家编写,CSA大中华区秘书处组织翻译并审校。 中文版翻译专家组(排名不分先后): 组长:李岩 翻译组:伏伟任 何国锋 何伊圣贺志生江楠江泽鑫 陆琪 余晓光 审校组:何国锋 江楠 李岩 研究协调员:卜宋博 感谢以下单位的支持与贡献: 中国电信股份有限公司研究院华为技术有限公司腾讯云计算(北京)有限责任公司 英文版本编写专家 主要作者: SouheilMoghnieTheodoreNiedzialkowskiSamSehgal 贡献者:MichaelRozaCSA分析师:SeanHeide特别感谢:AnkurGargi RajHanda ManuelIflandJohnMartin KamranSadique CharanjeetSingh AltazValani 在此感谢以上专家。如译文有不妥当之处,敬请读者联系CSAGCR秘书处给予雅正!联系邮箱research@c-csa.cn;国际云安全联盟CSA公众号。 序言 DevSecOps是基于DevOps安全敏捷化的一场变革,DevSecOps的出现也改变了安全解决方案及安全合规的新思维。CSA针对DevSecOps提出了六大支柱,分别为集体责任、培训和流程整合、实用的实施、建立合规与发展的桥梁、自动化、度量、监控、报告和行动等内容。 DevSecOps的核心意味着要把安全管理思想全面地覆盖到整个框架中软件开发生命周期中,实现基于安全性的自动化是关键的核心问题。在DevOps名著《持续交付》中就指出应将几乎所有事情自动化, 本白皮书以自动化为核心,提出了CSADevSecOps软件交付流水线,将安全传递给DevOps团队,权衡软件开发和安全需求,从而通过自动集成提高交付效率。通过学习CSADevSecOps自动化的交付模式,可以帮助企业提升数字化业务的交付能力,实现基于风险的安全自动化的新方案。 DevSecOps也是CSA高级云安全专家课程(CSAACSE)的核心内容,DevSecOps是践行共享安全责任的协作表现,DevSecOps意味着从一开始就考虑应用程序和基础设施安全,实现自动化安全质量门禁。只有基于DevOps整合IT的合作文化,才能构建DevSecOps集成安全性、开发和运营实现自动化流水线,帮助企业实现其数字化转型的业务目标。 李雨航YaleLiCSA大中华区主席兼研究院院长 目录 致谢4 序言6 前言9 介绍9 0.1背景9 0.2目的10 0.3读者群体11 1.适用范围11 2.规范引用文件11 3.术语和定义11 4.CSADevSecOps软件交付流水线14 4.1总则14 4.2结构15 4.2.1总则15 4.2.2阶段15 4.2.3触发器16 4.2.4活动17 4.3流水线的设置和维护17 5.风险优先的流水线18 5.1概述18 5.2风险因素19 5.2.1应用程序风险19 5.2.2变更请求的风险19 5.2.3流水线及其交付物的可靠记录的风险19 5.3流水线配置的优先级19 6.交付流水线的活动框架21 6.1概述21 6.2安全的设计21 6.3安全的编码22 6.4安全的软件组件23 6.5安全的应用程序24 6.6安全的运行环境24 6.7密钥管理25 7.自动化最佳实践25 7.1概述25 7.2缓解漏洞25 7.3异步测试26 7.4持续反馈回路26 7.5破坏构建27 8.总结27 参考文献28 前言 云安全联盟(CSA)和SAFECode都致力于提高软件安全成果。2019年8月发布了文章《DevSecOps的六大支柱》提供了一组高阶方法,成功实施了作者使用的解决方案,以快速构建软件并将与安全相关的错误降至最低。这六大支柱是: ●支柱1:集体责任(2020.02.20发布) ●支柱2:培训和流程整合 ●支柱3:实用的实施 ●支柱4:建立合规与发展的桥梁(2022.02.03发布) ●支柱5:自动化(2022.07.06发布) ●支柱6:度量、监控、报告和行动 为支持六大支柱,云安全联盟和SAFECode1联合发布了一系列更详细的成功解决方案。本文是此系列出版物的第二篇。 介绍 0.1背景 DevSecOps自动化支柱提倡使用安全自动化来实现反思性安全。具体而言,实施安全自动化和程序化执行框架以及安全控制监控,以识别、保护、检测、响应、并从网络威胁中恢复。2 自动化是DevSecOps的一个重要组成部分,它能够提高流程效率,使开发人员、基础设施和信息安全团队专注于交付价值,而不是重复人工工作和繁复的错误。 1SAFECode是一家全球性的非营利组织,定期组织商界领袖和技术专家聚集在一起,交流创建、改进和促进有效和可扩展的软件安全议题 2反思性安全是一种动态的、交互式的、整体的、有效的信息安全管理策略。它代表了从现有协作概念和实践中推断出来的文化实践,并提供了一套影响组织网络安全态势的广泛含义和易于理解的原则 本文注重介绍一种基于风险的安全自动化方案,该方案在整个持续的软件开发部署周期中串联自动化安全操作。可以自动化的活动包括应用、主机和容器漏洞扫描等。 DevOps团队灵活利用持续集成、持续交付和基础设施即代码在内的最佳实践,能够动态满足用户需求并更快速地交付。 为了将信息安全控制集成到这个过程中,自动化安全能力对于提供及时且有意义的反馈至关重要。 当今云基础设施的复杂性意味着即使微小的代码变更也可能对下游产生很大的影响。因此,安全检查需要集成到整个软件开发和部署生命周期中,贯穿设计、实施、测试和发布,并在生产中保持监控。 与反思性安全的实用的实施支柱步调一致,采用适当的自动化安全能力就能够实现快速反馈,并有可能消除整类风险。例如,容器扫描以确保加固操作系统或对已知的通用漏洞披露(CVE)进行软件组成分析。 0.2目的 本文提供了一个框架,将自动化能够通过以下方式将安全性透明集成到软件开发生命周期中: ●将安全相关的信息快速、互惠地传递给DevOps团队,通过设计连续的方式创建和验证安全代码,避免将安全问题留到交付时的单一阶段解决。 ●权衡软件开发和安全需求,从而通过自动集成提高交付效率。 0.3读者群体 本文的目标读者包括涉及安全风险、信息安全和信息技术的管理和运营岗位工作人员。包括最高管理层(CISO、CIO、CTO、CRO、COO、CEO)尤其是涉及以下职能领域的个人:DevSecOps、自动化、DevOps、质量保证、信息安全、治理、风险管理、变更管理与合规。 1.适用范围 本文描述了DevSecOps的自动化支柱:安全自动化的必要性、安全测试自动化技术以及实现机制。 本文专门提供了一个整体框架,用于促进DevSecOps中的安全自动化和安全控制自动化的最佳实践,并解释了有关DevSecOps安全测试中的常见误解。 2.规范引用文件 部分或全部内容符合本文要求时,可在文中引用下列文件。对于注明日期的参考文献,仅版本适用的文章参考使用。对于未注明日期的引用,适用引用文件的最新版本参考使用。 ISO/IEC27000:2018,信息技术—安全技术—信息安全管理系统—概述和词汇; CSA通过反思性安全进行信息安全管理; CSADevSecOps的六大支柱; 3.术语和定义 出于本文档目的,ISO27000、通过反思性安全的CSA信息安全管理以及以下内容中给出的术语和定义均适用。 3.1软件组成分析(SCA) 分析具有已知漏洞的软件组件的应用或编译代码的安全测试。 注释1:软件组成分析中的软件组件可能包括开源、库和公共代码。注释2:已知漏洞可通过漏洞库(如CVE)发现。 3.2静态应用安全测试(SAST) 分析应用源代码中软件漏洞和最佳实践差距的安全测试。 注释1:静态分析可以在多种环境中执行,包括开放人员的IDE、源代码和二进制文件。 注释2:也称为“白盒测试”。 3.3动态应用安全测试(DAST) 通过行使应用功能并根据应用行为和响应检测漏洞来分析正在运行的应用的安全测试。 注释1:也称为“黑盒测试”。 3.4交互式应用安全测试(IAST) 与应用一起部署的软件组件,用于评估应用行为并检测在实际测试场景中运行的应用是否存在漏洞。 3.5运行时应用安全保护(RASP) 生产过程中目标应用里部署的安全技术,用于检测、警报和阻止攻击。 注释1:类似于WAF,但是安装在应用中进行检测。 3.6WEB应用防火墙(WAF) 通过检查HTTP流量来监视、警报和阻止攻击的应用防火墙。 3.7云安全态势管理(CSPM) 能够发现、评估和解决易受攻击的云基础设施错误配置的安全技术。 3.8云安全监控和合规 监控虚拟服务器并评估数据、应用和基础架构安全风险的安全技术。 3.9威胁建模 识别和理解影响资源或资源集的威胁的方法。 3.10白盒代码审查 阅读源代码以识别安全问题的人工过程。 3.11软件交付流水线 一组用于将软件从概念交付到部署的自动化过程。 3.12软件交付流水线(CDDP) 一种符合DevSecOps原则以支持安全软件交付的流水线。 4.CSADevSecOps软件交付流水线 4.1总则 在生产环境中部署之前,每个软件都要经历概念、设计、开发、构建和测试阶段。在现代软件交付流水线中,阶段检查点的工具是高度自动化的。在流水线的每个阶段都会执行自动检查,以防质量问题流入下一阶段。 软件交付流水线中涉及多个流程,包括软件开发、变更管理、配置管理和服务管理,可能会应用持续集成、持续交付和持续监控的概念。开发和运维使用的工具包括源代码控制、构建、持续集成、容器化、配置管理、编排和监控。 在软件开发流水线中,集成安全测试要求安全活动完全自动化,并与交付流水线中团队已经使用的本地工具和过程充分衔接。检查点所必需的但其结果需要人工干预的活动,在本文档中称为异步测试,应特别考虑,以防止在安全自动化检查点把这些异步测试遗忘。 4.2结构 4.2.1总则 支持安全的软件交付流水线被认为具有三个粒度级别: ●阶段 ●触发器和检查点 ●活动 4.2.2阶段 图1-1:交付流水线中的阶段 阶段表示可交付产品的不同渐进成熟度。在概念和架构设计阶段,软件成熟度较低。当软件准备好持续交付和部署时,软件趋向成熟。 每个软件交付物都必须经过从设计、编码到测试的各个阶段,然后才能最终部署到生产环境中。这与软件开发方法(瀑布或敏捷)无关。 每个阶段都有机会嵌入适当的自动化安全控制。本文件识别了以下不同的阶段: ●安全设计和架构 ●安全编码(开发者IDE和代码存储库) ●持续构建、集成和测试 ●持续交付和部署 ●持续监控和运行时防御 4.2.3触发器 图1-2:交付流水线中的触发器 触发器和检查点(参见图1-2)表示在阶段内的转换。当满足触发条件时,将激活一个或多个安全活动,这些活动的结果决定是否满足检查点的预期要求。