摘要:

本文综合分析了相关背景与云原生安全面临的挑战,从云原生计算环境等主要领域深入分析了安全风险的来源,介绍了典型开源安全工具,提出业内首个云原生应用保护平台模型,并分层对模型中的安全能力进行了详细介绍,为行业用户深入实践云原生技术、构筑完善的云原生安全能力提供参考。

0 引言

云计算是信息技术发展和服务模式创新的集中体现,是信息化发展的重要变革和必然趋势。随着企业数字化转型的逐步深入,如何深化用云进一步提升云计算使用效能成为现阶段云计算发展的重点。云原生以其高效稳定、快速响应的特点极大地释放了云计算效能,成为企业数字业务应用创新的原动力,有效推动了国民经济的高质量发展。云原生技术架构充分利用了云计算弹性、敏捷、资源池和服务化特性,在改变云端应用的设计、开发、部署和运行模式的同时,也带来了新的安全需求和挑战。传统基于边界的防护模型已不能完全满足云原生的安全需求,需要设计全新的云原生安全防护模式,基于动态工作负载,实现云原生技术架构和规模应用的全面防护。

1 背景与形势分析

1.1云原生技术在生产环境采纳率急速升高

云原生的理念经过几年发展,不断丰富、落地、实践,云原生已经渡过了概念普及阶段,进入了快速发展期。云原生技术以其高效稳定、快速响应的特点驱动引领企业的业务发展,成为企业数字业务应用创新的原动力。过去几年中,以容器、微服务、DevOps、Serverless为代表的云原生技术正在被广泛采纳,2020年43.9%的国内用户已在生产环境中采纳容器技术,超过七成的国内用户已经或计划使用微服务架构进行业务开发部署等 ,这使得用户对云原生技术的认知和使用进入新的阶段,技术生态也在快速的更迭。

1.2 颠覆性技术架构变革带来全新安全隐患

云原生技术架构充分利用了云计算弹性、敏捷、资源池和服务化特性,在改变云端应用的设计、开发、部署和运行模式的同时,也带来了新的安全要求和挑战。以容器、Serverless为载体的云原生应用实例极大地缩短了应用生命周期;微服务化拆分带来应用间交互式端口的指数级增长以及组件间组合设计复杂度的陡升;多服务实例共享操作系统带来了单个漏洞的集群化扩散;独立的研发运营流程增加了软件全生命周期各个环节的潜在风险。云原生的特有属性带来了架构防护、访问控制、供应链、研发运营等领域全新的安全隐患和安全防护需求。

1.3 传统的边界防护模型难以应对云原生安全风险

云原生关注快速开发和部署,这种特性要求进行防护模式的转变,从基于边界的防护模式迁移到更接近基于资源属性和元数据的动态工作负载的防护模式,从而有效识别并保护工作负载,以满足云原生技术架构的独特属性和应用程序的规模需求,同时适应不断变化的新型安全风险。安全防护模型的转变要求在应用程序生命周期中采用更高的自动化程度,并通过架构设计(例如零信任架构)来确保安全方案实施落地;在云原生系统建设初期,需要进行安全左移设计,将安全投资更多地放到开发安全,包括安全编码、供应链(软件库、开源软件等)安全、镜像及镜像仓库安全等。进入云原生时代,物理安全边界逐渐模糊并变成了无处不在的云原生安全体系,从外到内,无论可视化、运维和安全管理,还是南北向和东西向网络、容器基础架构、微服务应用模式、身份安全、数据安全等,都给安全市场带来了更丰富的产品维度,衍生出更多元的发展机遇。

2 云原生架构下的典型安全风险及解决方案

云原生架构的安全风险包含云原生基础设施自身的安全风险,以及上层应用云原生化改造后新增和扩大的安全风险,其中最突出的是云原生计算环境环境的安全风险,包括了容器网络安全、组件安全、容器镜像安全及镜像仓库安全等。

2.1容器化部署成为云原生计算环境风险输入源

网络管控层面,网络的细粒度划分增加了访问控制和分离管控难度,访问控制粒度过粗引入了权限放大的风险导致越权攻击。网络分离管控不合理增加了横向攻击的风险导致威胁扩展;编排组件层面,云原生编排组件存在漏洞及管控风险增加入侵概率,工具自身漏洞导致非法提权和逃逸攻击。编排组件不安全配置引起账户管理问题导致系统入侵,编排工具组件众多、各组件配置复杂,配置复杂度的提升增加了不安全配置的概率;容器镜像层面,镜像构建部署过程不规范引入自身风险。容器化环境的常见风险之一就是用于创建容器的镜像版本存在漏洞,从而导致所部署的容器存在漏洞。同时,镜像来源不可信也可能引发恶意镜像注入,攻击者可将含有恶意程序的镜像上传至公共镜像库,诱导用户下载并在生产环境中部署运行,产安全问题。运行时层面,容器特性增加云原生运行时逃逸风险和威胁范围。逃逸风险对于容器化的云原生场景是一个不可避免的风险面,特别是在多业务系统、多租户环境下,风险更高,直接危害了底层宿主机和整个云计算系统的安全。造成容器逃逸的因素主要有容器 环境配置不当、危险挂载、程序漏洞、宿主机内核漏洞等。

2.2开源社区提供了基础的单点防护工具

云原生计算基金会(CNCF)托管的安全项目中已初步具备了对容器镜像、身份认证、基线扫描等风险的单点防护能力,典型的工具如下:

2.2.1 Clair

Clair的目标是能够从一个更加透明的维度去看待基于容器化的基础框架的安全性。通过对镜像的分层文件系统进行扫描,发现漏洞并进行预警,使用数据是基于Common Vulnerabilities and Exposures数据库(简称CVE), 各Linux发行版一般都有自己的CVE源,而Clair则是与其进行匹配以判断漏洞的存在与否。

2.2.2 dex

dex是一个基于OpenID Connect的身份服务组件,用来进行用户认证和授权,并提供基于多种标准的身份服务和认证解决方案。dex的设计采用了安全和加密的最佳实践来最小化攻击者获得系统访问权限的风险,dex的架构划分也可以减轻任何单个攻击可能带来的损害。例如,dex缺省使用token生命周期管理,并自动轮换签名密钥。由于密钥本身是加密的,攻击者需要在短时间内同时侵入数据库和一个dex 工作节点才能得到 token。

2.2.3 kube-bench

kube-bench是针对Kubernetes的安全检测工具,根据CIS的安全性最佳实践检查Kubernetes是否安全。kube-bench 可以运行在本地或 Kubernetes 集群环境中,根据执行的测试结果推荐一些可用于master或worker节点的安全配置。kube-bench通过运行符合CIS Benchmark的测试来实现,并获得总结性的信息以及相关的修正建议。例如,如果kube-apiserver上关闭了身份认证,给出的建议中会解释如何启用身份认证,进行了相关修正操作之后,可以再次运行这个工具进行检测,直到完全符合安全标准。

2.2.4 Falco

Falco 是一个云原生运行时安全系统,可与容器和原始 Linux 主机一起使用。它由 Sysdig 开发,是 CNCF 的一个沙箱项目。Falco 的工作方式是查看文件更改、网络活动、进程表和其他数据是否存在可疑行为,然后通过可插拔后端服务发送警报。通过内核模块或扩展的 BPF 探测器在主机的系统调用级别检查事件。Falco 包含一组丰富的规则,编辑这些规则以标记特定的异常行为,并为正常的计算机操作创建白名单规则。

2.2.5 Open Policy Agent

在应用开发中,应用程序往往需要跟据特定策略的决策结果来判断后续执行何种操作。比如,权限校验就是策略决策的一种典型场景,它需要判断哪些用户对哪些资源能够执行哪些操作。这些策略可能随着时间需要不断的动态更新。当前策略决策的逻辑往往硬编码实现在软件的业务逻辑中,当需要更新策略规则集时,还需要修改应用代码、重新部署应用,非常不灵活。Open Policy Agent,简称OPA, 为这类策略决策需求提供了统一的框架与服务,将策略决策从软件业务逻辑中解耦剥离,将策略定义、决策过程抽象为通用模型,实现为一个通用策略引擎,以便适用于广泛的业务场景。

3 全生命周期全要素覆盖,构建云原生安全一体式防护体系

云原生作为下一代云计算已经成为业界趋势,但云原生技术栈的延展突破了传统的安全防护框架,初期的云原生安全产品大多从云原生安全的一个维度切入,导致云环境下安全孤岛和整体复杂性增加,缺乏端到端的可观测性,云原生安全保护需要一种从开发到运行时全生命周期的一体化防护方案。

Gartner提出了云原生应用保护平台(CNAPP)模型,模型包含制品安全、云基础设施安全和运行时安全等内容,旨在整合工具和安全平台,将安全性和合规性视为跨运营和安全团队的连续统一体,从而提高云原生的安全性和工作负载可见性。

中国信息通信研究院也牵头编制了《云原生应用保护平台(CNAPP)能力要求》标准,标准中定义了制品安全、运行时安全和基础设施安全领域的多种云原生安全功能,同时具备研发与运营阶段全流程的信息双向反馈和一体化管控能力,实现价值流动,助力企业构架高效便捷的云原生安全防护体系。

图1 云原生应用保护平台(CNAPP)能力架构图

3.1 融合应用云安全防护模型夯实基础设施安全

云基础设施安全主要从基础设施及代码(IaC)安全、权限管理(CIEM)、云安全态势管理(CSPM)和云原生安全态势管理(KSPM)四个层面进行安全能力的构建。基础设施及代码(IaC)安全层面,通过将虚拟机、网络、负载均衡、数据库等应用转化机器可读的定义文件,实现基础设施管理与持续集成持续交付(CI/CD)工作流的融合,能够解决原有IT基础设施管理的成本过高、可扩展性和可用性不足、监控和性能可见性不够以及配置不一致等问题,IaC安全应具备多种常见类型的IaC文件安全检测、风险扫描、可视化展示并提供风险描述及安全加固建议等能力;权限管理层面,由于云原生应用的短暂性,用户身份凭证需要具备频繁轮换的能力,和限制受损凭证影响范围的能力,以适应对高速云原生应用的需求。为了进一步有效地保护环境以及驻留在其中的数据,需要具备对用户、设备、应用服务的联合身份管理技术,对应用和工作负载做到相互认证彼此通信,实现在多云环境中最小特权原则,以减少过多的权限、访问权限和云基础架构权利;云安全态势管理(CSPM)层面,现代IaaS和PaaS工作负载的复杂性和规模继续呈指数级增长,为了防止配置错误导致整体工作负载风险,应具备对云资产的安全管理能力,如云资产管理、安全基线检测、云主机风险评估、安全策略管理;云原生安全态势管理(KSPM)层面,KSPM是一套用于自动化地强化K8s集群的安全性和合规性的工具,KSPM相较于云安全姿态管理(CSPM),CSPM处置企业的所有云基础设施,而KSPM则关注K8s的安全性。完整的KSPM应具备资产管理、安全基线检测、组件风险评估以及安全策略管理等方面的能力。

3.2 全流程安全左移打造云原生制品安全

云原生制品安全主要从代码安全、镜像安全、安全检测(包括交互式应用安全检测和动态应用安全检测)和制品环境安全四个层面进行安全能力构建。代码安全方面,重点考虑静态安全测试和软件成分分析,通过分析应用程序代码进行安全漏洞的检测并管理导入或使用的开源组件,在开发阶段对应用程序的安全性进行全面检测,从而发现安全漏洞,确定应用程序是否易受攻击;镜像安全方面,需具备镜像安全扫描能力和可信镜像管理能力,帮助用户提前发现容器镜像中存在的漏洞、恶意代码、敏感文件等所面临的威胁及其存在的脆弱性并进一步开展修复工作,从而有效降低生产环境的安全风险;安全测试方面,需尽可能构建多样化互补的安全自动化测试能力,让应用中存在的安全漏洞、不安全方案尽可能在上线前暴露出来并及时修复,以显著降低应用研发迭代过程中的安全问题修复成本以线上安全风险,重点能力包括动态应用安全测试、交互式应用安全测试;制品环境安全方面,重点围绕镜像仓库、代码库以及持续集成持续交付环境等环境的安全能力建设展开。镜像仓安全应具备仓库自身安全、镜像拉取安全以及镜像安全扫描等方面的能力,代码仓库安全应具备仓库自身安全以及源代码扫描等方面的能力,并具备持续集成持续交付环境以及制品安全加固的能力。

3.3关注应用全生命周期防护打造云原生运行时安全

云原生运行时安全主要从Web应用和API保护(WAAP)、网络微隔离和云工作负载保护(CWPP)三个层面进行安全能力的构建。云原生应用大多通过Web和API方式对外提供服务,随着云原生架构下微服务的增多,API数量激增,微服务间的网络流量多为东西向流量,无法通过传统边界防御的方式检测。Web应用和API保护(WAAP)层面,核心安全能力应包括Web应用防火墙、API保护、Bot防护和DDoS攻击防护,多角度全方位地扩展云上应用安全防护范围和安全深度;网络微隔离层面,需要具备流量识别、流量隔离和统计分析能力,能够识别云原生网络流量基本信息及异常行为,对不同的流量特征进行精准隔离,对不同维度的流量日志的统计分析与可视化,以及自动化产生隔离策略实现对网络流量的闭环管理;云工作负载保护(CWPP)层面,主要围绕主机运行时安全和容器运行时安全展开。主机运行时应具备资产清点、风险发现、入侵检测与响应处置等方面的能力,为物理计算机,虚拟机(VM),容器和无服务器工作负载提供统一的可见性和控制力。在运行时CWPP应该保护工作负载免受攻击,通常包括系统完整性保护、应用程序控制防护、内存保护、行为监视、基于主机的入侵预防、可选的反恶意软件保护和容器运行时的入侵检测与响应、处置等方面的能力。

3.4 建立双向反馈通道强化云原生安全体系

云原生应用保护平台应具备双向反馈能力和环境适配能力。双向反馈层面,具备与DevOps工作流中各阶段的安全检查工具进行集成的能力,实现检查结果统一管理,并能够将检查结果与开发构建、测试运行和生产运行各阶段的数据进行关联分析,比如问题镜像是否在运行、运行容器中有漏洞软件包是否为在组件库中的位置。同时应具备在DevOps工作流中提供控制能力、安全风险分析能力和控制策略设置能力,也应具备安全问题修复全流程的跟踪管理能力,能够分发修复任务并跟踪问题修复的全流程,实现应用开发与运营全生命周期的安全管理;环境适配层面,云原生应用保护平台应具备一定的环境适配能力,包括边缘、多云、混合云等云环境适配、CICD环境适配和异构兼容、信创兼容的物理节点适配。

4 结束语

伴随企业技术架构全面转型云原生,业务应用云原生化建设趋势越发明显,云原生安全风险日益凸显。云原生安全作为云原生技术与安全融合的新兴领域,正在成为企业和用户关注的焦点。

中国信息通信研究院发布的云原生应用保护平台模型,作为业内首个系统性的云原生安全防护体系模型,将为服务商安全产品演进和用户能力建设提供重要参考。未来,中国信通院还将深耕云原生安全技术领域,在云原生安全运营和托管服务、边缘云安全等领域持续完善标准体系建设,深化云原生安全平台建设,为用户提供安全自检和攻防演练等公共服务能力,帮助企业定位云原生系统安全问题,验证安全防护能力。

关于作者

中国信息通信研究院 栗蔚 刘如明 杜岚 李永欣

声明:本文来自安全内参,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。