1、1云原生安全白皮书Cloud Native Security Whitepaper目录目录执行摘要.3目标.3问题分析.3全生命周期的不同阶段.3开发阶段.3分发阶段.4部署阶段.4运行时阶段.4建议.4结论.5引言.6目标受众.6云原生目标.6云原生的层次结构.6生命周期.7生命周期流程.8开发阶段.8分发阶段.10部署阶段.13运行时环境.15计算.15存储.19访问.21安全保证.22威胁建模.22端到端架构.22威胁识别.23威胁情报.23应急响应.232云原生安全白皮书Cloud Native Security Whitepaper安全堆栈.24环境.24零信任架构.25最小权限.2
2、5角色与职责.26合规性.26监管审计.26角色和用例.27行业.27企业.27小企业.27金融.27医疗.27学术与教育.27公共部门.28云原生安全的演变.28总结.29缩略词和词汇表.29参考文献.29致谢.303云原生安全白皮书Cloud Native Security Whitepaper执行摘要目标当前,采用云原生的开发和部署模式已日渐成为技术行业的发展趋势。同时,整个生态系统,包括技术、产品、标准和解决方案,也正在不断扩展,要求决策者要时刻了解复杂的设计。特别是CISO,要在这个动态发展的领域,实践业务价值。同时,云原生模式还鼓励改变消费模式,并采用现代化工作流(例如敏捷方法和
3、DevOps 流程),这就要求将安全集成进来。问题分析由于传统的基于边界的安全已不再可行,同时由于云原生明确关注快速开发与部署,在这种情况下,安全问题也就变得很复杂。这就要求转变安全范式来保护应用,将基于边界的安全方式转变为更接近动态工作负载的安全方式。动态工作负载是基于属性和元数据(例如标签)来确定的。通过这种方法,可以识别并保护工作负载,满足云原生应用的规模化需求,同时还能适应不断变化的需求。安全范式的转变要求提高在应用安全生命周期中的自动化程度,并通过设计架构(例如零信任)来确保其安全。将容器化作为云原生环境中的一项核心变化,也需要新的最佳实践。容器化的安全实施会涉及组织机构内的多个相关
4、方,并且会对追求业务目标的开发人员和运维人员的工作效率产生重大影响。云原生应用仍然需要开发、分发、部署和运维,但是这种范式就决定了,要有效实现这些目标,需要新的安全机制。可以在应用生命周期的不同阶段(“开发”、“分发”、“部署”和“运行时”),对云原生开发进行建模。云原生安全与传统安全方法的不同之处在于,可以确保在生命周期的不同阶段将安全嵌入进来,而不是通过单独管理的安全干预措施来确保生命周期的安全。要注意,如果不对这些概念、工具和流程的使用和集成进行长期的教育和培训,云原生的落地和应用可能就会难以难以为继,甚至被打回原形。全生命周期的不同阶段开发阶段云原生工具旨在在应用生命周期的早期阶段引入
5、安全。安全测试需要及早发现不合规情况和配置错误,以便缩短可行性反馈的周期,进行持续改进。这种方法可以确保,可以按照针对管道中其他问题而提出的类似工作流(例如 bug 修复或 CI 故障)解决安全故障问题。通常,需要先解决好这些安全问题,才能推动软件在管道中的进一步操作。这种模式的现代化安全生命周期是围绕着代码开发而展开的,代码开发遵循的是推荐的设计模式(例如 12-Factor),并确保了所交付工作负载的完整性。从概念上来讲,云原生与基础架构即代码(IaC)密切相关,旨在确保通过早期安全检查集成,让控件能够按预期状况运行。通过这些控件和集成可以尽早识别错误配置并实施 IaC 和编排清单中的最佳
6、实践,以减少长期成本并提高安全价值。4云原生安全白皮书Cloud Native Security Whitepaper分发阶段在支持软件快速迭代的模型中,软件供应链安全尤其重要。云原生应用生命周期需要采用一些方法,不仅可以验证工作负载本身的完整性,还可以验证工作负载的创建过程和运维方式。加之需要一直使用开源软件和第三方运行时镜像(包括上游依赖项的层),面临的挑战就更大了。生命周期管道中存在的工件(例如容器镜像)需要进行连续的自动扫描和更新,确保免受漏洞、恶意软件、不安全编码方法和其他不当行为的侵害。完成这些检查后,重要的是对工件进行加密签名以确保完整性并强制执行不可否认性。部署阶段在整个开发和