《云原生安全白皮书 第2版中文版.docx》由会员分享,可在线阅读,更多相关《云原生安全白皮书 第2版中文版.docx(40页珍藏版)》请在第一文库网上搜索。
1、目录执行摘要4宗旨4生命周期阶段4推荐做法6结论6介绍7目标受众7云原生目标7文档前提8云原生层次模型9生命周期10开发10分发12部署17运行时环境18安全保障31威胁建模31用例:勒索软件(v2新增)35安全原则38安全栈(v2新增)44合规44监管审计44角色和用例44行业45用例:在欧盟法规下安全的保障金融机构运行v2新增46云原生安全的演变48结论50缩略语和词汇表51P53版本一总结v2新增53新版本变化53反馈v2新增53安全软件开发框架(SSDF)v1.1参考(v2新增)54参考文献55致谢57执行摘要宗旨技术行业已经转向被看作“云原生”的开发和部署模式。与此同时.,技术、产品
2、、标准和解决方案的生态系统正在扩展,促使决策者及时了解最新的复杂设计。特别是C1SO的角色,需要在这个动态的领域中阐明业务价值主张。与此同时,云原生模式也推动了消费模型的转变,促进了现代工作流程的应用。现代工作流程要求集成安全实践,例如敏捷方法论和DevOps流程。问题分析由于明确关注快速开发和部署,因此该领域内的安全问题很复杂。此外,在传统的基于边界的安全模型中,依赖于网络IP地址等静态标识符是不切实际的。这种复杂性要求我们进行范式转变以保护应用程序安全,放弃基于边界的传统方式,让安全和工作负载(基于标签和标记等属性和元数据进行标识)的联系更加紧密。这种方法可以识别和保护负载,满足云原生应用
3、程序对规模的要求,同时适应不断的变化。这些范式转变需要在应用程序生命周期中增加安全控制的自动化和安全设计架构(例如,零信任)。安全实现的权衡仍然涉及组织内的多个利益相关者,并且显著影响开发人员和运营人员追求业务目标的生产力。云原生应用程序仍然需要开发、分发、部署和运行时操作,但是这种范式指定了新的安全机制,通过这些机制可以高效地实现这些目标。云原生开发可以建模为构成应用程序生命周期的不同阶段:“开发”、“分发”、“部署”和运行时”。云原生安全”与传统的安全方法不同,因为有一个巨大的机会,可以确保安全贯穿于这些不同阶段,而不是通过独立的安全管理干预来结束生命周期。这些概念、工具和过程的持续学习对
4、长期采用和应用至关重要。生命周期阶段开发云原生工具旨在在应用程序生命周期的早期引入安全性。安全测试需要尽早识别合规性违规和错误配置,以创建短且可行的反馈循环,以实现持续改进。这种方法可以使安全故障遵循熟悉的工作流程,在管道中解决其他问题(例如错误修复或连续集成故障),然后才能将软件推向更深入的管道。这种模型的现代安全生命周期围绕遵循推荐设计模式的代码开发(例如12因素),并确保开发环境的完整性。分发软件供应链安全在支持更快软件迭代的模型中尤为重要。云原生应用程序生命周期需要包括验证工作负载本身的完整性以及工作负载创建和操作方式的方法。这个挑战被必要的、实际的和一致的使用开源软件和第三方运行时镜
5、像(包括上游依赖的层)所放大。生命周期管道中存在的工件(例如容器镜像)需要持续自动扫描和更新,以确保免受漏洞、恶意软件、不安全的编码实践和其他不良行为的影响。完成这些检查后,将工件进行加密签名以确保完整性并强制执行不可否认性非常重要。值得注意的是,不可变的镜像二进制和镜像的不可变UR1也非常适合于安全分发。部署在整个开发和集成发布阶段,应对候选工作负载的安全性进行实时和持续的验证,如,对签名的工件进行校验,确保容器镜像安全和运行时安全,并可验证主机的适用性。安全工作负载的监控能力,应以可信的方式监控日志和可用指标,与工作负载一同部署来完善整体的安全性。运行时云原生运行环境本身可以分解为一系列相
6、互关联的具有独特安全问题1的组件层次结构,例如硬件、主机、操作系统、网络、存储、容器镜像运行时和编排。容器运行时由不同的实现组成,用于各种隔离边界级别,例如共享内核、微型虚拟机沙盒和可信执行环境沙盒。选择满足预期安全要求的运行时非常关键。例如,对于在多租户环境中运行的不受信任的工作负载,可以考虑基于虚拟机的沙盒。对于隐私敏感的金融数据处理,像机密容器这样的可信执行环境(每个进程或虚拟机的内存加密硬件)可能值得考虑。在典型的云原生运行环境中,应用程序通常由几个独立的且单一用途的微服务组成,它们通过服务层抽象相互通信,容器编排层使其成为可能。保护这种相互关联的组件体系结构的最佳1另一个要考虑的模型
7、是,云、集群、容器和代码:https:/kubernetes.io/docs/concepts/security/overview/实践包括确保只有经过授权的进程在容器命名空间内运行,防止和警报未经授权的资源访问尝试,以及监控网络流量以检测敌对入侵活动。服务网格是另一种抽象,提供了合并和补充有序服务的功能,而无需对工作负载软件本身进行更改(例如,API流量记录、传输加密、可观察性标记、身份验证和授权)。推荐做法云原生安全旨在确保与传统安全模型相同或更高的勤勉、诚信、信任和威胁预防条件,同时融合了瞬息万变、分布式和不可变性的现代概念。在这些快速变化的环境中,为了确保安全结果,需要与开发流水线保持
8、一致的自动化。组织应快速采用这些云原生概念,以帮助在其云原生旅程中创造价值驱动的安全结果。通过尽早将安全整合到开发生命周期中,甚至是通过互动式开发者培训更早地进行整合,安全组织可以实现预防性安全,而不是反应性安全(也可参见“9BOXOfContrOIs”)。强烈建议组织根据相关攻击框架2对安全堆栈进行评估,以明确防御堆栈涵盖哪些威胁。此外,组织需要采用能够左移安全3的方法和方法论,实现DevOps,并具有足够的灵活性以适应未来的技术进步。结论在组织中战略性地实施云原生安全时,可以在规模上为客户和开发人员提供高可用性、保证性、弹性和冗余性,以确保他们以预期的速度安全地访问所需资源。安全本身仍然是
9、一个跨学科的领域,不能被隔离出来,也不能被视为纯粹的技术领域。开发人员、运维人员和安全人员必须合作、交流和协作,以继续推动该领域和行业的发展。与任何技术创新一样,真正推动社区和云原生安全发展的是那些充满激情踏上这一旅程的人们。2例子-MITREATT&CKFrameworkforKubernetes3安全左移通常会使组织失去操作安全监控。重要的是,安全贯穿于整个生命周期,组织不断评估其业务和技术流程的其他方面,在这些方面他们可能超越现代安全范式,将安全作为一种文化和习惯。介绍本文旨在为组织和其技术领导层提供云原生安全的简明解释,以及帮助他们将其融入生命周期过程并考虑最适用的应用。云原生安全是一
10、个多目标且多限制的问题领域,涵盖了许多专业和实践领域。从身份管理到存储解决方案,几乎所有的Day1和Day2的操作都与安全领域有关。然而,云原生安全涵盖的领域不止于此;它也是一个涉及个人、团队和组织的人类问题领域。它涉及人类和系统与云原生应用和技术进行交互、更改的机制、过程和意图。目标受众我们的目标受众是私营企业、政府机构或非营利组织的首席(信息)安全官(CISO)或首席技术官(CT0),他们希望提供一个安全的云原生技术生态系统。除此之外,其他组织利益相关者可能包括负责设计和实施安全的云原生产品和服务的项目、产品和方案经理以及架构师。此外,任何对云原生安全有浓厚兴趣的人都可以从参考本文中受益。
11、云原生目标云原生架构是一组模式和设计,为组织提供了一种有效、可持续的无缝抽象,可跨不同的云实例工作,使应用程序栈成为云无关的。容器和微服务架构的采用和创新带来了许多挑战。安全领导人的任务是通过采用预防、检测和应对网络威胁的最佳实践来保护人类4和非人类的资产,同时满足严格的合规要求。一个常见的历史叙事是,安全实施妨碍了DevOps团队的速度和敏捷性。因此,安全领导必须实现更紧密的集成和双向理解,赋予DeVOPS团队创建共享的网络风险所有权的能力。组织应该在现代应用程序开发生命周期中采用安全的云原生模式和架构。特别强调安全架构与组织安全目标之间的协同作用,如零信任、安全软件供应链和DevSecOp
12、s,在云基础设施方面应该优先考虑安全。4人力资本是任何组织成功所必需的重要资产,由此带来的相应知识产权和关系资本同样需要保护。本文所描述的概念并不旨在偏袒一种服务、组件或产品,而是可以应用于任何服务选择。本文档不会提供关于安全或云计算的概念方面的一般教育。也不推荐使用特定的技术或工具。但可能会引用一些解决所讨论主题的技术或工具的示例。除了本文中的建议外,与数据保护和隐私监管法规要求相关的特定数据安全处理实践,如GDPR、PCIDSS,可能需要额外的监管特定考虑因素。我们建议读者通过其他适当的专业咨询资源,以获取有关任何此类技术控制和合规风险事项的指导。文档前提本文档中的术语“工作负载Work1
13、Oad”涵盖了己经或将要开发、维护、分发或部署到基于云的运行时环境的任何产品、项目、应用和系统。所有使用的术语、概念和机制都按照乙;原生安全词汇表和云原生词汇表的定义。本文不旨在改变这些定义或扩展它。随着云原生采用和现代软件开发方法的不断发展,构成有效云原生栈的技术将继续随着时间的推移而变化。这种变化栈的表现包含在全面的CNCF景观中。云原生层次模型Foundationa1Runtime图1云原生技术栈由基础设施层、全生命周期管理、运行环境组成。云原生技术栈可以适用于不同的云计算服务模式:IaaS、PaaS、CaaS和FaaS。每种服务部署模式都提供了额外的抽象,以简化云原生环境的管理和操作。
14、由于这些服务模式中的一些模型是众所周知的,并已使用多年,我们将重点关注云原生特有的模型。CaaS(容器即服务,Containers-as-a-Service)模式允许用户通过利用基于容器的虚拟化平台、应用编程接口(AP1)或管理页面来管理容器、应用和集群。CaaS帮助用户构建可扩展的容器化应用,将安全策略嵌入到配置文件中,并在私有云、企业内部数据中心或公有云平台上运行。CaaS有助于简化构建容器的过程。通过微服务编排和部署,它帮助企业更快地发布软件,并允许在混合云环境之间进行移植,从而降低基础设施投入以及运营成本。CaaS模式可以帮助企业简化容器管理,同时让企业可以选择只为自己想要和使用的Ca
15、aS资源付费,从而节约成本。CaaS以容器为基本资源,而对于IaaS环境,则使用虚拟机(VM)和裸金属主机。FaaS(函数即服务,Functions-as-a-Service)是另一种云原生部署模式,是一种允许企业用户通过可执行代码来响应事件的云服务,这种模式用户无需构建和启动微服务相关的复杂基础设施。在云端托管一个软件应用,通常需要配置和管理一个虚拟环境,管理操作系统和网络组件等。通过FaaS,物理硬件、虚拟机操作系统和Web服务器软件管理都由云服务提供商自动处理。从而使用户能够专注于微服务代码中的各个功能,同时为使用的资源付费,并利用云计算提供的资源进行弹性伸缩。生命周期在云原生环境中,生命周期物及剑技术、实践和流程,以便在云环境中本地运行弹性、可管理和可观察的工作负载。生命周期包括四个连续的阶段:开发、分发、部署和运行,如图1所示。每个阶段都扩展和增强了前一阶段,同时允许和支持安全的工作负载执行。下面的部分提供了详细的分析、工具、机制和最佳实践,以整合安全性贯穿应用程序的整个生命周期。开发云原生应用程序的安全性需要在整个生命周期中应用。“开发”是这个周期中的第一步,它导致创建基础设施即代码、应用程序和容器清单等工件,这些工件将用于部署和配置云原生应用程序。因此,这些工件已被证明是许多攻击向量的来源,并且可以在运行时中被利用。下面的部分详细说