作者简介:刘涛,某运营商安全专家,甲方安全实战经验10余年,先后担任运营商安全专家、整车制造行业安全负责人、金融科技行业安全负责人、电商行业安全专家等岗位,对企业安全架构、产品安全、DevSecOps、网络安全攻防、安全产品研发、数据合规等领域的落地有深刻理解,能够针对企业的不同业务形态建立动态管理机制,将安全真正融合于业务、服务于企业。
一、云原生安全概述
1.云原生安全概念
云原生(Cloud Native)作为一个IT新兴概念,逐渐成为企业应用的首选部署方式,简单来说就是应用程序“生于云、长于云”,是一种面向现代分布式系统的设计、开发及部署方法,结合DevOps、容器化、微服务架构、自动化部署、动态资源管理等一系列技术实现。
容器化技术通过将应用程序及其依赖项封装在一个独立的容器中,实现应用程序的可移植性和隔离性;微服务架构将应用程序拆分成多个小型服务,使每个服务都可以独立开发和部署,提高了应用程序的灵活性和响应速度;持续交付则通过自动化流程和工具,确保应用程序能够快速、可靠地部署和交付。使原始独立的、固定的、静态的环境迁移到共享的、动态的、可扩展的环境中,使得企业应用能够更好地适应不断变化的环境和需求。
这些技术对于构建云原生应用程序至关重要,要实现真正的云原生,还需要考虑组织架构、开发流程和文化等方面的变革,组织架构需要适应云原生架构,开发团队需要采用敏捷方法和DevOps文化,以确保应用程序能够快速迭代和响应变化。
随着云原生的广泛应用,云原生安全问题逐渐凸显出来,传统的安全措施往往难以满足云原生环境的需求,新的安全策略和解决方案呼之欲出,要保障云原生应用的安全性,不仅需要技术的进步,更需要企业全面理解和实践安全策略。在传统的应用开发过程中,安全往往是事后考虑的问题,而在云原生环境下,安全应贯穿于整个应用的生命周期中,云原生安全不仅仅是防止外部攻击,还包括应用内部的安全性、数据保护、访问控制等方面的内容,由于云原生应用通常运行在共享的环境中,每个应用都可能面临来自其他应用的安全威胁,因此需要建立完善的安全防护体系。
2.云原生安全与传统安全区别
云原生安全和传统企业网络安全机制的最大不同在于,云原生安全的管理责任是在云服务提供商和用户之间分享的。从基础设施即服务(IaaS)到平台即服务(PaaS)再到软件即服务(SaaS)这三个云业务层次上,云服务提供商的责任逐渐增大,在最小参与的情况下,使用SaaS的用户只需管理自己的数据和用户访问权限,其余的安全管理和基础设施都由云服务提供商负责。

AWS安全责任分担模型
云原生安全与传统安全关注的重点不同,传统安全主要关注外部攻击、漏洞扫描和修复、数据加密等,而云原生安全则更加关注应用本身的安全性、应用程序的漏洞、数据的隐私保护、身份和访问管理等方面,这是因为在云原生环境中,应用是动态部署的,运行在容器中,并且可以自动伸缩,这意味着应用在任何时候都可能面临安全威胁。
(1)保护对象形态变化:传统安全主要关注的是本地网络和IT基础设施,这包括服务器、存储设备、网络设备等硬软件系统,而云原生安全则主要针对的是云环境中的各种资源,包括但不限于虚拟机、容器、微服务、无服务应用等,云原生安全更加注重对动态应用程序流量的保护,以及在云端运行的应用程序的安全。
(2)资产生命周期变短:在传统安全模式下,资产生命周期相对较长,通常为数月或数年,而在云原生安全环境下,资产生命周期大幅缩短,可能仅为一两天,甚至更短,这种快速的资产生命周期使得安全策略的制定和实施更加困难,需要更加敏捷和灵活的安全管理策略和工具。
(3)开放API暴露面更大:云原生安全环境下,更多的应用程序通过开放API进行交互,这使得系统的暴露面更大,更容易受到攻击,同时,由于开放API的广泛使用,恶意攻击者可以利用这些接口进行更复杂的攻击,例如数据泄露、恶意代码注入等,云原生安全需要更加严格地管理和控制API的使用,确保API的安全性和稳定性。
(4)敏捷开发让代码安全更困难:云原生安全环境下的另一个重要特点是敏捷开发,在这种开发模式下,开发人员需要快速迭代和更新应用程序代码,以适应市场的变化和用户的需求,这种快速的迭代更新也使得代码安全更加困难,由于代码更新速度快,可能很难在每次更新后都对代码进行全面的安全测试和审查,云原生安全需要更加注重开发过程中的安全性问题,并采取相应的措施来确保代码的安全性和稳定性。
3.云原生安全市场发展趋势
目前云原生安全已成为中国企业关注的焦点,市场规模将继续高速发展,2022年中国云原生安全行业市场规模增长至48.23亿元,年均复合增长率达到58.18%,预计到2026年市场规模将达到220.87亿元。
未来几年,中国云原生安全市场仍将保持快速增长。一方面,政府对于数字化转型的支持力度将进一步加大,这将为云原生安全市场提供更多的政策支持和市场机会;另一方面,随着企业对于安全问题的重视程度不断提高,对于更加高效、灵活、安全的解决方案的需求也将不断增加,同时,新兴技术的发展也将为云原生安全市场带来更多的机遇。
可以预见,未来几年中国云原生安全市场规模将继续保持高速增长,成为信息安全领域的一大趋势。

Gartner - Hype Cycle for Cloud Security,2021
二、云原生安全技术的演进与发展
1.国际视角
(1)云工作负载保护平台(Cloud Workload Protection Platform,简称CWPP)
CWPP是一种针对现代混合、多云数据中心架构中工作负载的独特保护要求的安全产品。以工作负载为主体,以一致的方式保护混合云、多云架构下工作负载的安全产品,它提供了一种集成的方式,通过使用单个管理控制台和单一方式表达安全策略,来保护这些工作负载,而不用考虑工作负载运行的位置。
与传统部署在网络边界上的安全产品不一样,CWPP部署在操作系统层,因此可以横跨物理机、公有云、私有云、混合云等多种数据中心环境,部署方式更加灵活、防护层面更加丰富。

CWPP能力层次图
CWPP作为云上工作负载的安全“全家桶”,具有很多优势:
1)降低复杂度:传统安全工具在物理服务器或托管端点上运行,这些工具在设计时并未考虑容器、虚拟化、无服务器功能或云开发,现代工作负载保护必须跨越公有云中的虚拟机、容器、无服务器工作负载和其他计算部分,由于CWPP整合了来自所有工作负载的数据,因此安全人员可以更轻松地分析来自整个环境的安全数据,这也意味着安全团队可以更高效地运营。
2)跨云环境的一致性:从使用角度来看,微服务架构会产生大量较小的工作负载,DevOps导致每个工作负载的生命周期缩短,多云和混合云导致环境变得更为复杂,这些变化都降低了工作负载的可见度,但无论有多少工作负载或它们位于何处,CWPP都提供了对工作负载安全性的一致可见性,即使他们在多云环境中处理多个位置的大量工作负载也是如此。
3)安全的可移植性:CWPP可以在不影响安全性的情况下在环境之间移动工作负载,例如,今天运行在本地hypervisor中的工作负载,明天会转移到IaaS云中,或者今天在私有云IaaS上运行的容器,明天将转移到公有云容器实例中,使用CWPP,它仍然是在迁移前后持续保护的相同工作负载。
4)确定风险的优先级,减少警报疲劳:强大的CWPP提供了漏洞与云其他部分的关系背景信息,这种上下文可以更好地确定风险的优先级,通过上下文进入身份、数据和平台配置,如果CVSS分数为6.5的工作负载暴露在网络上,并且其身份严重超出许可,可以访问客户数据,则该工作负载很快就会成为关键风险,这种严重程度的等级划分有助于安全团队及时评估风险。
(2)云安全态势管理(Cloud Security Posture Management,简称 CSPM)
CSPM的主要目标是识别云中的错误配置问题与合规风险,持续监控云基础架构以发现安全策略执行中的安全漏洞,主要功能包括:
1)持续评估云资源的安全配置:对云资源进行安全配置检查,包括计算与应用配置安全、网络配置安全、存储与数据安全以及身份接入等不同安全维度的安全配置检查与管理。
2)持续的威胁检测:主动检测云原生应用程序开发过程中的威胁以及云计算环境中的恶意活动和未授权访问等风险。
3)云资源和安全配置的可见性:通过持续对云上产品的配置进行安全扫描,能够发现不符合安全基线的问题并提供告警,避免因配置问题导致的安全风险,此外还能够按照合规要求定义每一条安全基线,满足云上用户的安全合规需求。
(3)云基础设施权限管理(Cloud Infrastructure Entitlement Management,简称CIEM)
CIEM主要为权限管理提供了集中管控和控制云基础设施权限的能力,可以帮助管理员定义和分配用户、角色和权限,确保只有授权的用户可以访问和操作云资源;其次是访问控制,可以提供精细的访问控制策略,包括基于角色的访问控制、基于资源的访问控制、基于条件的访问控制等;最后是审计和合规性,可以记录和监控云基础设施的访问和操作,生成详细的审计日志,满足合规性要求并提供对安全事件的检测和响应能力,其他可以自动发现云环境中的资源和权限配置并提供自动化的权限管理功能,能够识别潜在的权限风险。
它使用分析、机器学习和其他方法来检测账户权限中的异常情况,例如累积权限以及休眠和不必要的权限,特征和框架是使用最小权限原则来管理用户的私有云和公共云权限,从而最大限度地降低授予过多权利的风险,通过特权访问应用这种严格的访问控制有助于组织最大限度地减少他们的攻击面和暴露于云泄漏、数据泄露、内部威胁和其他网络威胁的风险,同时使用最小权限原则也是零信任网络架构的关键元素。
(4)云原生应用保护平台(Cloud-Native Application Protection Platform,简称CNAPP)
随着新应用场景的不断涌现,CNAPP这一创新理念越来越受到业界的关注。CNAPP是由Gartner提出的一个全新的云原生安全理念,它强调将应用和风险情境深度融合,从而更全面地保护云原生应用的安全性。
作为一种强大的云原生应用保护体系,CNAPP成功地整合了以往孤立的功能平台,如云工作负载保护平台(CWPP)和云安全态势管理(CSPM),形成了一个高度集成的安全性和合规性功能集。这一集成体系能够最大限度地减少云原生应用程序在开发和生产过程中的安全风险,帮助企业在软件生命周期的早期阶段及时发现并修复潜在的安全漏洞,从而为企业提供更全面、更高效的云原生应用保护。尽管CWPP和CSPM等云安全产品在云原生安全的保护方面发挥了一定的作用,但它们的保护范围相对有限。

CNAPP体系
2.国内视角
(1)信通院-云原生应用保护平台(简称CNAPP)
信通院针对Gartner 2021年技术成熟度曲线中新类别CNAPP进行了适合国内现状的标准重新制定,全称“云原生应用保护平台(CNAPP)能力要求”,包含一组集成的安全性和合规性功能,旨在开发和生产过程中保护云原生应用。

云原生应用保护平台(CNAPP)能力要求
(2)云原生安全成熟度模型
云原生安全成熟度模型(CNMM-TAS)旨在提升企业研发效能、促进业务创新发展,从技术架构(T)、业务应用(A)、架构安全(S)三个方面助推企业云原生能力建设。该模型评估融合了零信任、安全左移、持续监测与响应以及可观测四大理念,从基础设施安全、云原生基础架构安全、云原生应用安全、云原生研发运营安全和云原生安全运维5个维度充分考察云原生架构安全水平,帮助企业快速对照、定位安全能力水平,诊断自身问题,根据业务需求结合模型高阶能力定制安全架构演进方向。
1)基础设施安全域涵盖计算、网络和存储安全,保障云原生架构的底层支撑和通信单元的安全能力,涉及资源隔离、访问控制、安全加固、攻击防护、安全通信和网络攻击防护等实践项。
2)云原生基础架构安全域包括云原生网络安全、编排及组件安全、镜像安全和运行时安全。其中,云原生网络安全涉及访问控制、安全通信和网络攻击防护;编排及组件安全涵盖集群组件安全加固、敏感信息保护和访问控制;镜像安全包括镜像仓库管理和镜像扫描;运行时安全防护能力则涉及容器资源隔离限制、容器数据加密、安全策略管理以及容器运行时检测。
3)云原生应用安全域涉及通用安全、微服务安全和无服务器安全。其中,通用安全涵盖访问控制、安全通信、API安全和攻击防护;微服务安全包括微服务自身框架及微服务应用的安全能力,涉及微服务组件安全和服务安全;无服务器安全则涉及无服务器架构与应用安全能力,包括无服务器平台安全和无服务器应用安全。
4)云原生研发运营安全域涉及安全需求、开发安全和测试安全。在研发前,应具备完整安全策略并开展应用安全需求分析过程;在开发阶段,应采取措施保障制品安全、开源管理、代码安全和安全设计;在测试阶段,应执行静态和动态安全测试。
5)云原生安全运维域包括对基础设施、云原生基础架构及云原生应用进行统一的资产、策略与权限管理及安全审计的实践项,并具备覆盖云原生全流程全要素的安全风险监测、统一分析以及联动响应的实践能力。
通过评估和提升云原生安全成熟度模型中的各个实践项,组织可以逐步提高云原生架构的安全性,减少潜在的安全风险和漏洞,确保云原生架构的可靠性、弹性、合规性和可维护性。
(3)云原生安全配置基线规范
在2023年7月26日由中国信通院联合编写《云原生安全配置基线规范》正式发布,该规范不仅针对各项配置提出了具体的安全要求,还为配合自动化基线扫描工具的使用提供了自动化要求。对于不能自动化的要求,无法通过技术手段进行完全自动化检测并输出结果,通常需要手动步骤来验证配置状态是否符合预期,而预期状态可能会因环境的不同而有所变化。
规范针对Kubernetes的安全配置基线提出了具体要求。这些要求包括对Kubernetes主节点API Server、控制管理器、调度器以及etcd,还有工作节点kube-proxy、kubelet和各类工作负载的安全配置标准,同时也涵盖了CNI和网络策略配置的特定要求。
(4)其余国内标准
可参考国内标准还有:公安部三所《等保2.0容器安全》、信通院《容器安全技术能力要求》、信通院《云原生架构安全白皮书》、云安全联盟《云原生安全技术规范》等,此篇不再赘述。
三、云原生安全建设设计
上述两章对云原生安全内容进行了基础介绍,下面分享笔者在当前企业基于CNAPP架构进行的云原生安全设计,以下为拆分模块及具体执行要求,可供大家参考并根据企业自身实际情况进行量身设计。

云原生应用程序保护能力建设
1.制品安全
解决云原生应用在上线前的安全风险防护,其中主要方向包括:代码安全、镜像安全、交互式应用安全检测、动态应用安全检测、制品环境安全。
(1)代码安全
静态安全检测:针对非运行时应用程序的源代码、字节码、二进制码进行分析检测,发现编码、编码规范、设计中存在的安全漏洞,提出对应的修复手段和解决方案。
软件成分分析:完成源码和制品的成分分析,发现对象存在的漏洞风险、许可证风险,并且最好建立高级的分析能力,例如开源组件依赖分析、实际引用检测分析、代码相似度检测等。
(2)镜像安全
镜像安全扫描:建立对容器镜像管控能力,重点包括镜像扫描能力、范围覆盖度,并且对扫描结果的运营能力进一步加强,包括镜像的关联性分析、镜像修复建议、镜像评分等。
可信镜像管理:确保镜像的来源可信,并且建立镜像本身的加密存储,对镜像完整性进行校验。
(3)应用安全检测
动态应用安全检测:具备支持多种流量采集能力,建立对移动端风险检测能力,包括个人隐私信息泄露风险、越权漏洞检测,具备自定义漏洞检测类型。
交互式应用安全检测:对研发语言、框架等兼容度(国产化中间件)、检测能力、检测方式要有明确要求,其中检测探针需云原生化自动化部署,探针需具备热加载和热更新能力。
(4)制品环境安全
制品环境安全:保证业务在流转过程中基础环境的安全,包括在业务编码阶段代码仓库安全,包括对代码仓库的用户权限、鉴别、加密链接、敏感行为风险检测等,对代码进行加密,在业务构建成为镜像后,对镜像仓库的用户、链接、权限等基本要求之上,还应建立镜像仓库自身漏洞发现、访问审计,以及对镜像的加密存储能力,最终在持续集成/交付阶段,确保做好身份鉴别以及中间产物信息防泄漏。
2.运行时安全
容器在运行状态时的安全防护,覆盖容器网络、运行环境、容器运行实例、微服务、API等,其中主要方向包括:Web应用和API保护、应用监控、网络微隔离、主机运行时安全、容器运行时安全。
(1)Web应用API保护(WAAP)
Web安全防护:支持常见的攻击场景检测与防御,例如SQL注入、XSS跨站等,并可限制访问频率,自定义限制条件,同时针对静态网页要建立缓存配置。
API安全防护:支持常见的攻击场景检测与防御,例如SQL注入、XSS跨站等,并可限制访问频率,自定义限制条件,自动发现调用关系并形成拓扑可视化以及异常风险、敏感数据的检测能力。
恶意机器人保护:根据工具特征和IP,进行多维度的规则匹配,结合分析结果、威胁情报等数据,快速识别工具行为,区分善意与恶意工具,对垃圾注册、短信轰炸、恶意抢购、撞库等行为建立业务风控防护能力。
应用拒绝服务攻击:智能生成防御策略,实时拦截封禁攻击源,同时建立针对流量、业务特征等方面学习(AI)技术,对应用程序形成智能化防护。
(2)网络微隔离
对南北向、东西向流量进行获取,获取流量后能够生成调用拓扑关系图,通过流量学习的方式自动生产微隔离策略,进行策略的预演,降低人为配置的工作量,检测能力要求具备对异常流量行为检测能力,对异常流量行为进行报警,建立基于标签、基于身份的隔离能力,同时对策略的持续性进行设计,要求微隔离策略能够跟着工作负载进行漂移。
(3)云工作负载保护
主机运行时安全:资源监控、文件完整性监控、实时入侵检测、恶意代码检测、可疑端口扫描行为等,具备安全处置能力和溯源审计能力,针对特殊场景能够自定义威胁特征、威胁响应等能力。
容器运行时安全:与主机运行时安全是两个不同的技术场景和控制手段,在容器运行时安全中,需要具备容器运行时实时入侵检测,容器的行为学习生成安全模型,对异常行为能够提供进程级、内核级的控制手段,并且具备对容器内的事件审计能力,避免容器漂移后数据丢失。
3.基础设施安全能力要求
通过IaC、CIEM、KSPM、CSPM各方向安全能力建设,解决Kubernetes、容器等云基础设施所受到的攻击情况,保障云基础设施安全,其中主要方向包括:基础设施即代码(IaC)安全、云权限管理(CIEM)、Kubernetes安全态势管理(KSPM)、云安全态势管理(CSPM)。
(1)检测分析能力
基础设施即代码(IaC)安全:常见的IaC文件适配和检测,支持行业主流IaC检测规范和自定义检测规则,能够定位到IaC风险的具体代码位置,并且提出修复建议和一键式修复手段。
云权限管理(CIEM):能够覆盖多云环境的用户权限管理,并且能够监控用户权限的变化趋势,发现风险时能够自动调整。
(2)云安全态势管理
资产清点:多云资产统一管理及可视化、自动发现、实时同步,并加强访问凭证保密措施。
安全基线检测:对用户权限、软件配置等基本配置信息自动获取及保存,并检测网络、存储、操作系统等基线,建立敏感数据泄露分析检测及错误配置自动修复、对比等能力。
风险评估:对操作系统、中间件等漏洞检测基础能力基础上,对漏洞分类分级处置,并建立漏洞闭环管理能力。
安全策略管理:在具备安全策略集中管控的基础上,还应具备策略分组,策略版本管理及回滚等,最好建立安全策略的预发布机制,以及自动化安全控制策略生成能力。
(3)云原生安全态势管理
资产清点:多集群资产统一管理及可视化,清点集群环境中POD、Service等资源以及细粒度清点容器内应用信息,并可多租户视角分类管理。
安全基线检测:对容器集群设施例如Kubernetes、Docker等进行安全基线检测,并建立配置的修复、对比、告警等能力。
组件风险评估:对集群组件自动发现能力、安全风险检测能力,以及风险缓解、自动修复、自定义检测等能力。
安全策略管理:建立容器集群网络策略、POD运行、集群准入等安全策略集中统一管理能力,并能够基于学习(AI)自动生成安全策略,建立预发布机制。