APP下载

容器云安全风险分析及防护体系设计*

2020-12-23刘晓毅冯中华

通信技术 2020年12期
关键词:镜像漏洞容器

刘晓毅,王 进,冯中华,何 平,吕 方

(中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引言

容器技术发展历史长达20 年,经历了从Unix chroot、FreeBSD Jails、Linux VServer、Solaris Containers、Open VZ、Process Containers、LXC、Warden、LMCTFY、Docker、Rocket、Windows Containers 的发展过程,逐渐开始成熟。

随着云计算技术的发展,容器云技术的使用也越来越广泛,越来越多的企业机构开始采用容器作为新的IT 基础设施。容器技术逐步发展成以Kubernetes 容器管理调度框架和Docker 容器管理器为核心的容器云技术生态。

开源容器云技术生态主要围绕Kubernetes,构建容器管理、容器编排调度、容器网络管理、容器存储管理、容器镜像管理等能力。Kubernetes 提供了标准的接口,主要包括容器运行时接口CRI、容器网络接口CNI、容器存储接口CSI,以及API 接口,其他开源组件按照对应接口与Kubernetes 对接;同时,Kubernetes 形成了可扩展的开发框架,可以基于该框架开发自定义的功能和接口。

图1 容器云技术生态

1 容器云安全现状概述

1.1 容器云安全标准规范

1.1.1 国外标准规范

美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)发布了《NIST.SP.800—190 应用容器安全指南》[3]。该指南总结概括了容器使用过程中存在的安全问题,并对这些问题提供了针对性的对策和建议[1][11]。

容器安全问题主要包括:①容器镜像风险:可能存在安全漏洞、镜像配置缺陷、恶意软件植入、未信任镜像及明文存储的风险;②容器镜像仓库风险:包括与镜像仓库的连接不安全、镜像仓库中的镜像过时和不完备的认证机制;③容器编排工具风险:包括管理访问权限不受限制、未经授权的访问、容器间网络流量隔离效果差、混合不同敏感级别的工作负载、编排节点的可信问题;④容器实例风险:包括运行时软件中的漏洞[2]、容器的网络访问不受限制、容器运行时配置不安全、流氓容器;⑤容器主机操作系统风险:包括攻击面大、共享内核、主机操作系统组件漏洞、用户访问权限不当、篡改主机操作系统文件的文件系统。

为了应对上述风险,《NIST.SP.800-190 应用容器安全指南》中提出容器的安全防护应该覆盖整个容器的生命周期,即容器的构建、分发和运行三个阶段,才能确保持续的安全性。因此:①需要确保容器构建的安全;②需要确保容器镜像分发的安全;③需要确保容器运行的安全。

由此可见,《NIST.SP.800—190 应用容器安全指南》主要针对容器技术本身,没有综合考虑容器云环境系统性、体系化的安全防护能力要求。

1.1.2 国内标准规范

目前,国内容器云安全仍处于研究和探索阶段,一些研究机构、云厂商和安全厂商,提出容器安全白皮书,主要围绕容器脆弱性、安全威胁阐述了容器云的安全风险,并从容器服务、主机、镜像、网络、运行、编排多个方面提出安全防护思路和方法。个别安全厂商推出了容器安全解决方案,从容器安全风险出发,围绕容器构建、分发、运行对容器进行安全防护,没有体系化考虑容器云安全防护体系架构。[4]-[10]

1.2 容器云安全应用实践

1.2.1 DoD 企业级DevSecOps

DoD 企业级DevSecOps 将云厂商、安全厂商和应用厂商联合起来,围绕应用系统设计、编码、编译、打包、发布、部署、测试、上线、运营等从开发到运维,提供全生命周期的安全防护。DoD 企业级DevSecOps 充分利用开源和业界的成熟产品,比如红帽的企业级容器平台OpenShift。

1.2.2 绿盟容器安全解决方案

绿盟星云实验室提出的容器安全解决方案[4],支持容器镜像和仓库的漏洞扫描,异常行为检测,访问控制等功能,实现了从容器镜像构建到运行的防护。

1.2.3 安全狗云甲容器自适应安全管理系统

安全狗云甲容器自适应安全管理系统,采用机器学习、智能检测等新技术对容器生命周期进行自适应安全防护和统一管理,满足用户对容器相关资产的可视化管理、安全事件分析、合规检测等容器安全管理需求。

1.2.4 青藤蜂巢容器安全产品

青藤蜂巢容器安全产品,采用Agent-Server 技术架构,针对漏洞、不安全配置、入侵攻击,结合安全策略,提供覆盖容器生命周期的、持续性安全防护。

1.2.5 华为容器安全服务

华为容器安全服务,能够扫描镜像中的漏洞与配置信息,帮助用户解决传统安全软件无法感知的容器环境问题,同时提供容器进程白名单、文件只读保护和容器逃逸检测功能,能有效防止容器运行时安全风险事件的发生[5]。

总的来看,当前容器云安全防护系统都仅围绕局部的容器安全风险进行安全防护,没有针对容器云安全风险进行全面分析和综合防护。

2 容器云安全风险分析

现有容器云的安全配置规范应用情况不理想,在生产环境中未落实,全球有大量的容器云和容器实例暴露于互联网,攻击者可利用容器云脆弱性发起攻击,一旦攻陷,将会对生产环境产生巨大的安全威胁[1][11]。因此,需要针对典型容器云平台环境,进行全面、系统性的安全风险分析,进而体系性设计容器云安全防护体系。

2.1 容器云攻击路径分析

典型容器云部署模式、形态、角色多样化,主要部署模式分为:①裸金属部署;②私有云部署;③公有云部署;主要部署形态为直接部署于裸金属服务器和云主机(虚拟机);主要部署角色有管理节点、计算节点、存储节点。因此,典型容器云的攻击路径如图2 所示。

图2 容器云攻击路径分析

通常,针对容器云的攻击主要是由外部恶意用户和内部恶意管理员从网络侧发起攻击,攻击对象主要包括[4]:①容器化微服务网络攻击:潜在攻击者通过高级可持续攻击(Advanced Persistent Threat,APT)等方式攻击容器中的应用程序,并利用应用程序漏洞或者容器权限,执行服务破坏、恶意操作、数据窃取或进行横向扩展。②容器云组件漏洞攻击:潜在攻击者获取容器权限后,通过容器与容器编排组件的脆弱性,越权逃逸,进入云服务提供商所使用的虚拟机实例或宿主机操作系统,随后进一步攻击虚拟机监视器进而控制云平台底层资源并进行横向扩展。③容器镜像仓库攻击:潜在攻击者通过攻击容器镜像仓库,可以篡改容器镜像,在容器镜像中植入恶意代码,用户使用带有恶意代码的容器并运行后,攻击者利用恶意代码执行恶意操作。④界面、API 接口缺陷:已获取容器云权限的攻击者和恶意管理员通过容器云提供的控制台或开放式API,利用控制台应用漏洞或API 漏洞访问,对容器云平台业务、运维和管理连接的内部网络进行攻击,进而随意横向扩展攻击其他容器和组件。⑤硬件管理接口缺陷:潜在攻击者通过裸金属服务开放的管理接口存在的漏洞和缺陷,控制服务器底层硬件,并进一步利用管理网络横向扩展,作为跳板攻击云管理、服务器管理、网络管理和存储管理,瘫痪整个容器云基础设施。

2.2 容器云安全漏洞分析

2.2.1 容器云安全漏洞统计

截至2020 年10 月,容器云各关键组件漏洞统计分型情况如图5 所示,其中Docker 相关的漏洞共81 个,在漏洞数量上并没有明显减少的趋势,一旦黑客突破Docker,如容器逃逸,将会对主机造成巨大威胁;Kubernetes 的安全对整个项目的安全生产运行是一个重要保障,Kubernetes 相关的漏洞共65个,主要的漏洞类型包括:敏感数据泄露、拒绝服务、弱校验、非法提权等;etcd 有轻量级、简单、高效等优势,但其安全性也同样值得关注,etcd 相关的漏洞共7 个;Istio 是连接、加固、控制和观察微服务的开放平台,具备负载均衡、服务到服务的认证、监控等功能,解决微服务治理中的诸多难题,相关的漏洞共9 个。容器各关键组件高危漏洞分型统计情况如图3 所示。

图3 容器关键组件高危漏洞分型统计

除容器云组件漏洞频发外,容器镜像安全形势也十分严峻,在用户的生产环境中,有40%的镜像来源于公开的镜像仓库,镜像的漏洞问题依然十分突出,对生产环境中的镜像漏洞扫描通过率仅为48%。

2.2.2 容器云安全漏洞趋势

图4 容器关键组件历年漏洞数量走势

近年来,随着容器云广泛应用,容器云安全漏洞频繁被发现,呈逐年上升趋势(统计趋势如图4所示),漏洞影响越来越严重。如果没有及时、有效的防范,攻击者利用这些漏洞,可轻易对容器云基础设施造成致命攻击。

2.3 容器云安全事件分析

2017 年1 月,IBM 将私钥泄露到了公有主机环境上,这会将访问托管容器底层主机的root 访问权授予普通云服务用户,使底层云平台的信息安全面临巨大威胁。2019 年4 月,Docker Hub 遭受非法入侵,已导致 19 万个账号的敏感数据被泄露,这些数据包括小部分用户的用户名和哈希密码,以及用于自动构建 Docker 镜像而授权给 Docker Hub 的GitHub 和 Bitbucket token。

一旦容器云没有实施全面有效的安全防护,黑客可利用漏洞攻击容器云上的服务,或可进一步利用容器云漏洞,直接访问容器云上的敏感信息,获取服务器特权,对容器云进行修改并最终完全控制服务器,造成恶劣影响和重大损失。所以必须综合考虑容器云环境下的Docker、Kubernetes、etcd、Istio 等组件的整体安全性,分析研究它们的漏洞特征,进而才能构建一条完整防线。

2.4 容器云安全风险总结

综上所述,容器云的安全风险亟需解决,应从容器云攻击路径和脆弱性,基于纵深防御思想,设计全面、有效的容器云安全防护体系,围绕容器云各个组件、各个环节建立多种、多层防御机制,封堵容器云的攻击途径。

3 容器云安全防护体系设计

针对容器云安全风险,对容器云安全能力提出要求,进而依据安全要求设计具有针对性的容器云安全防护体系是解决容器云安全风险的有效措施。

3.1 容器云安全能力要求

为应对容器云安全风险,容器平台应具备以下能力要求:

3.1.1 容器主机安全能力要求

主机操作系统应遵循最小化安装原则;应定期进行漏洞扫描,及时安装补丁程序;主机操作系统的敏感数据应加密存储;应具备入侵检测、主机安全认证、主机权限管控的能力;应支持国产化软硬件平台。

3.1.2 容器镜像安全能力要求

应具备容器镜像加密保护和防篡改的能力;应具备策略管理功能对镜像进行安全管理的能力。

3.1.3 容器管理器安全能力要求

应具备安全组件服务分布式部署和安全策略管理统一配置管理能力;应具备云内资源可管、可控、可视的能力;应具备容器组件、镜像、实例可信的能力;应具备云资源的监控并对关键指标进行告警的能力。

3.1.4 容器网络安全能力要求

应具备容器全链路数据加密传输及网络通信安全的能力;应具备防火墙级别数据包过滤和状态监测的能力;应具备容器间网络隔离、流量控制、访问控制的能力;应具备全容器间可视化网络监控的能力。

3.1.5 容器存储安全能力要求

应具备保证数据完整性、机密性、可用性的能力;应具备保证容器存储数据高可用的能力;应具备根据密级不同进行针对性保护的能力。

3.1.6 容器编排安全能力要求

应具备资源按需分配、弹性伸缩合法性检测的能力;应具备良好的灾难备份与应急响应能力。

3.1.7 容器仓库安全能力要求

应具备对开发者所供镜像具有审核机制的能力;应具备对容器仓库所有镜像验证其可信的能力;应具备容器镜像加密存储的能力。

3.1.8 容器平台管控能力要求

应具备容器云资源统一身份认证能力;应具备对虚拟资产安全管理的的能力;应具备身份认证及管理分权的能力;应具备操作审计能力。

3.1.9 容器云风险感知和处置能力要求

应具备容器云安全监管、安全态势监测、安全风险预警的能力。

3.2 容器云安全防护体系总体设计思想

容器云安全防护体系基于纵深防御思想,借鉴自适应安全模型、可信计算安全框架、零信任安全模型、隐私计算安全模型,融合多种安全防御手段和机制,从认证鉴权、运行环境、安全执行多个维度构建可信空间,建立“预测-检测-防御-响应”的安全闭环和主动防御能力。

3.3 容器云安全防护体系架构设计

容器云安全防护与传统安全防护主要的区别在于防护边界消失和虚拟资源的动态捷变。容器云安全防护体系有内置式、插拔式和外挂式安全防护三个维度,如图5 所示。

内置式安全防护将安全机制融入容器云平台各个组件中,与容器云融为一体,不可绕过;插拔式安全防护将安全能力以插件方式对容器云部分组件进行替换,建立安全防护能力;外挂式安全防护通过松耦合的方式对容器云进行安全防护。

容器云安全防护体系基于这三个安全防护维度,由内而外全面防御,设计7类容器安全防护系统,包括:内在安全容器平台、容器平台安全运行服务保障系统、容器平台服务安全治理系统、容器平台统一安全审计系统、容器平台统一安全信任系统、容器平台统一安全管控系统、容器平台统一监测预警系统。

图5 容器云安全防护体系架构设计

内在安全容器平台基于密码基础设施和信任基础设施,建立计算和安全并行运行的双体系,提供高安全的容器服务运行支撑环境;容器平台安全运行服务保障系统基于Intel SGX、AMD SEV、ARM TrustZone 等硬件辅助安全能力构建可信执行环境,保护云服务和数据服务;容器平台服务安全治理系统基于服务网格技术,融合密码保护、身份认证和访问控制,构建微服务间端到端安全防护能力;容器平台统一安全审计系统对容器云人员、操作、行为进行全方位安全审计;容器平台统一安全信任系统基于物理硬件身份为容器云中的人员、节点、容器等对象提供可信保障;容器平台统一安全管控系统站在第三方角度对容器云资产、资源状态、合规性等进行安全监管;容器平台统一监测预警系统通过数据采集,感知容器云安全态势,预测容器云安全趋势,对容器云安全事件和风险进行预警。

4 结语

容器云技术正蓬勃发展,趋于成熟,信息系统软件设计模型趋向于微服务架构和容器化部署,越来越多的信息系统发布到容器云,容器云安全变得至关重要。通过对容器云安全现状、容器云安全风险进行全面分析,设计容器云安全防护体系架构,统一容器云安全防护技术体制,提出容器云安全防护的关键产品,对容器云实施有效的安全防护能力。

但是,容器云与业务系统紧耦合,安全防护手段难以侵入,容器云安全防护应该标准先行,通过标准约束容器云厂商,应用厂商考虑融入安全防护接口,避免安全机制难以融入容器云的局面。同时,容器安全防护思路亟需创新,创新且有效的容器云安全防护思路、方法和手段较少;云厂商、应用厂商、安全厂商界面难以切割,需要进一步分析云厂商、应用厂商、安全厂商的关系和接口,制定相关标准体系,推动容器云安全防护体系演进。

猜你喜欢

镜像漏洞容器
漏洞
容器倒置后压力压强如何变
镜像
难以置信的事情
基于selenium的SQL注入漏洞检测方法
镜像
漏洞在哪儿
取米
镜像