当前位置:首页 期刊杂志

基于容器安全防护平台的关于PaaS容器安全的设计与实现

时间:2024-07-28

王 欢

(中国移动通信集团安徽有限公司,安徽 合肥 230001)

0 引 言

近年来,云计算模式逐渐被业界认可和接受。平台即服务(Platform-as-a-Service,PaaS)作为云计算3大服务之一,同样实现了快速发展。容器技术凭借其弹性敏捷的特性和活跃强大的社区支持,逐渐成为推动PaaS发展的核心技术。容器技术是一种轻量的虚拟化方式,此处的轻量主要是相较于虚拟化技术。例如,虚拟化技术通常在Hypervisor层实现对硬件资源的虚拟化,Hypervisor为虚拟机提供了虚拟的运行平台,管理虚拟机的操作系统运行。其中,每个虚拟机都有自己的操作系统、系统库以及应用[1]。而容器并没有Hypervisor层,每个容器和主机共享硬件资源和操作系统。容器技术在操作系统层面实现了对计算机系统资源的虚拟化,在操作系统中通过对CPU、内存以及文件系统等资源的隔离、划分和控制,实现进程之间透明的资源使用。

作为容器技术的一种具体实现,Docker(一种开源的应用容器引擎)近年来受到越来越多的关注,在某种程度上已经成为了容器技术的代表。Docker在设计上采用了常见的客户机/服务器(Client/Server,C/S)架构,在主机运行Docker服务程序,Docker Client根据需求向Docker服务程序发出相关的请求[2]。为了实现集群管理,Docker官方还提供了一个远程管理接口的REST API,允许通过传输控制协议(Transmission Control Protocol,TCP)远程访问Docker服务。在使用Docker Swarm时,Docker节点上会开放一个TCP端口2375,绑定在0.0.0.0上。开启这种没有任何加密和访问控制的Docker Remote API服务非常危险,尤其是将默认的2375端口暴露到互联网中,一旦被攻击者发现,攻击者无需认证即可访问到容器数据,从而导致敏感信息泄露。此外,攻击者也可以恶意删除容器上的数据或利用容器自身特性直接访问主机上的敏感信息,获取服务器root权限,对敏感文件进行修改并最终完全控制服务器[3]。

开发者通常会在Docker官方的Docker Hub仓库下载镜像,这些镜像一部分来源于开发镜像内相应软件的官方组织,但还有大量镜像来自第三方组织或个人。在整个应用生命周期中,开发人员、测试人员以及运维人员会根据不同需求下载并运行镜像,在容器运行前进行镜像检查非常重要。除了Docker Hub外,还有大量的第三方镜像仓库,包括DaoCloud、阿里云等。这些第三方镜像仓库在为获取镜像提供方便的同时,也存在潜在的安全风险,如下载镜像内软件本身是否包含漏洞、下载的镜像是否被恶意植入后门、镜像在传输过程中是否被篡改等[4]。

由于容器与主机共享内核,因此可能会存在容器隔离失效的安全风险。攻击者只要攻破容器操作系统内核,就可以访问主机上的文件系统或进入其他容器,导致容器隔离失效。主机的文件系统被挂载到多个容器的目录里,不同的容器可以访问同一个目录,只要进入某个容器中,就可以通过共同挂载目录访问其他容器的文件系统,这样可能会引起信息泄露或内容篡改等安全问题。

1 基于容器安全防护平台的PaaS容器安全体系

容器安全防护平台由基础功能层、核心功能层、接口层以及可视化层组成,基于自动学习等新技术对容器全生命周期进行自适应安全防护和统一管理,包括镜像安全、容器安全、微服务安全以及网络安全等。基础功能层针对容器集群的基线、镜像、仓库、主机等基础运行环境进行安全审查,保障容器集群的运行稳定。核心功能层基于安全左移理念实现开发安全、运行安全、微服务安全以及运行环境安全管理,形成容器安全闭环管理。接口层通过能力的完善和接口开放达成与现有平台数据对接,提供主流接口格式,支持自定义接口扩展,可以实现数据统一管控。可视化层通过对数据简洁明了的展示,构建容器安全的整体监控和防护体系。

1.1 容器安全防护平台主要功能

1.1.1 容器资产识别

首先,支持查看运行容器相关信息,包含容器名、容器状态、容器启动时间、运行用户、停止时间、镜像创建时间、容器宿主机状态以及宿主机IP。其次,支持查看管理容器内的所部署Web服务相关信息,包括容器名、启动用户、进程路径以及进程命令行。最后,支持查看数据库容器内的数据库应用信息,包括容器名、版本、监听端口、二进制路径以及配置文件路径。

1.1.2 容器访问可视化

首先,支持以容器拓扑图的方式展示业务容器之间的调用关系;其次,支持从集群、命名空间、运行服务、容器名等维度进行展示;最后,支持访问关系详情、进站源IP、出站目的IP、关联信息以及安全状态等的展示。

1.1.3 镜像文件安全防护

对制作的镜像文件进行静态和动态安全扫描,及时发现镜像文件中的安全漏洞、木马病毒、涉密文件以及环境变量,保证进入生产环境的是安全镜像。此外,还需要对镜像的来源和历史操作行为进行分析,对非法来源和有安全问题的镜像禁止运行。

1.1.4 容器运行保护

对容器运行过程进行全程安全监控,对容器访问宿主机的资源进行细粒度控制,防止有越权访问破坏容器隔离性的行为。对容器内应用进行安全漏洞识别和网络威胁检测,从而保证容器内应用的安全。对容器的相关运行环境(如镜像仓库、容器守护进程以及容器编排集成工具)进行安全风险识别及控制,支持查看风险结果详细信息,包括危险程度、风险描述信息、风险类型、风险特征、风险修复建议、存在风险的主机以及集群信息。

1.1.5 容器镜像安全检查

首先,支持对镜像进行病毒木马和Webshell检查并告警,检查结果包含文件名、文件路径等,告警信息包括名称、级别、时间、影响节点、影响镜像以及处理建议等。其次,支持应用漏洞检测,检测出镜像内的应用漏洞风险,检查结果包括危险程度、漏洞名称、漏洞类型、漏洞风险特征、存在漏洞的应用及应用版本、应用修复版本等。同时支持查看漏洞所在镜像层Layer信息,包括层指令、LayerID。最后,支持镜像阻断能力,阻断存在指定病毒木马文件Hash、指定漏洞编号、指定软件包或软件包版本、特权启动、特定许可证书以及指定敏感信息规则的镜像运行。

1.1.6 容器入侵检测

首先,支持实时检测Web后门并告警,告警信息包括名称、级别、镜像影响、处理建议、受感染容器、发现时间以及容器名。其次,支持容器暴力破解检测并展示暴力破解详细信息,包括最近攻击时间、攻击来源、被攻击节点以及历史攻击次数。再次,支持病毒检测,可以实时告警上报病毒木马入侵事件,告警信息包括文件名、文件路径、受感染容器以及发现时间。最后,支持容器逃逸检测,可以检测出容器的敏感权限、利用漏洞逃逸等逃逸风险行为并告警上报。

1.1.7 容器审计日志

容器安全防护平台支持容器审计日志功能,能够查看容器内的进程启动日志事件和事件相关的容器名、容器ID、进程名、进程命令行以及进程PID等详细信息。

1.1.8 管理中心

容器安全防护平台提供图形页面管理功能,支持容器相关资产的查看、管理以及安全事件的告警和综合处理。管理中心支持以Web形式进行登录,登录系统后可以查看该用户已授权的资源,用户可以对其拥有的资源进行操作。其中,管理员用户可以重置自身及其他用户的密码。

1.2 平台技术架构

容器安全防护平台采用全球独创的容器基因检测技术,基于机器学习对容器全生命周期进行深度分析学习并建立安全模型,为每一个容器生成运行白名单,可以应对容器未知威胁,真正实现自适应防护。该技术可以为镜像生成自动修复的配置文件,支持镜像的全流程安全闭环管理。将创新的行为学习方式与规则进行互补,有效提高入侵检测的准确性,大大提升平台的安全检测能力和服务横向扩展能力。与市场上同类产品相比,容器安全防护平台是国内唯一云原生容器安全防护产品,运行在容器集群中可以对容器的网络、微服务、集群自身的安全进行防护,处于行业领先水平[5]。

平台采用微服务开发框架,将镜像安全、容器运行防护、集群安全、微服务安全以及主机安全进行了细分,每个服务彼此独立,一个服务的启停上下线不会影响其他服务的运行。平台采用全容器化部署,防护和监控模式灵活切换,支持多集群同时管理。平台引入了容器调度引擎Kubernetes(简称K8s)来管理、调度、启动服务集群,其最大可管理的集群节点高达5 000个。平台能自动感知服务实例POD状态,若发生意外停止或人为删除,可立即启动新的服务实例副本。这些提供相同服务的实例POD通过K8s中Service和Proxy模块将集群访问流量动态负载均衡到各个实例上,同时也可以将常见的Nginx或Haproxy等反向代理负载均衡器软件放到K8s集群中运行,充分保障平台运行的稳定性。

1.3 容器安全防护平台部署实施方案

容器安全平台核心功能组件皆以容器形式交付,所有组件均使用旁路部署模式,在客户现有的业务架构下不需要任何改动即可无感知地部署到客户环境中,实现所部署节点的容器资产可视化、合规检查以及安全防护。所有组件全部部署在K8s集群,在管理集群部署统一管控平台,其中所有K8s集群都会部署防御容器和服务端。数据库可以同样部署在管控平台,也可以部署在集群外。K8s集群部署服务端会受到管控集群的任务调度器控制,从而实现多集群的管理。

容器安全防护平台使用纯容器非特权旁路部署,所有组件受Kubernetes管理调度。在部署时会设置资源限制,容器本身具有天然的隔离性,每个容器具有独立的进程间通信、文件系统挂载点、隔离网络协议栈、进程号、用户、主机名以及域名,容器安全组件不会影响到主机服务和容器服务。容器使用CGroup进行资源限制,容器安全组件资源占用超出时会触发内存溢出(Out Of Memory,OOM)被重启,避免大量占用主机资源,造成主机僵死情况。容器安全组件在每一个机器上只会占用机器有限的资源,不会对任何主机上的主机服务和容器服务造成影响。

2 基于容器安全防护平台的PaaS容器安全应用场景

2.1 增加新容器集群或增加集群节点

引入新的容器集群和机器时进行合规检测,保障容器运行环境安全,防止不安全的配置造成容器逃逸或集群入侵事件。容器防护平台能够对容器及集群进行合规审计,支持主流的安全检测标准。基于产品提供可视化的检测结果和修复建议,用户可以自行修复不合规的检测项。

2.2 新容器业务引入

引入新容器业务需要保障业务镜像安全,使用平台镜像扫描功能可以及时发现镜像中存在的漏洞和木马病毒,根据用户需要实现自定义阻断,包括高危漏洞镜像阻断、携带敏感信息镜像阻断等。

2.3 线上容器入侵检测与处置

在日常运营中,可以开启容器安全的入侵行为黑名单,通过告警功能结合容器网络连接拓扑实现容器入侵影响范围的快速判断,使用容器网络隔离实现容器入侵屏蔽治理。

2.4 “护网”与“重保”运营

“护网”和“重保”期间不会引入新业务并增加新的集群,用户需要关注运行时的安全,细致检查容器所有行为,防范未知攻击和加密攻击。此外,用户还需要关注集群的自身漏洞和可被利用的集群漏洞,借助使用容器平台的集群渗透测试功能来进行事前检测。

3 基于容器安全防护平台的PaaS容器安全建设效果

根据中国移动磐基PaaS平台安徽节点建设项目要求,安徽公司信息系统部组织了磐基PaaS平台安徽节点工程建设工作,建设内容包括弹性计算平台、容器云门户、开发交付体系、微服务体系、组件管理以及容器云运营运维。同步上线容器安全防护平台,满足“三同步”及容器安全管控要求。容器安全防护平台具备容器资产识别、容器访问可视化、镜像安全检查、容器入侵检测、运行环境安全监测、容器审计以及运行合规检查等功能。在DevOps刚启动时,对Docker file进行扫描,没有命中阻断规则可以进行构建。实时监控扫描代码仓库,在镜像构建后对其进行扫描,保障镜像安全,没有命中阻断规则时可以上传到镜像仓库。在传输过程中实现镜像的认证签名,防止篡改,保障镜像的传输安全。对从仓库上传到主机上的镜像进行扫描,没有命中阻断规则时可以启动。

系统上线后运行稳定,已经监控B域整个集群,包括20多个节点、1 500多个容器以及2 200多个镜像,最大支持3 000个容器的全生命周期监控。对外提供了新容器镜像自动监测、漏洞扫描以及高危镜像自动阻断等功能,新集群、新节点配置便捷。容器安全防护平台的建设和投入使用不仅解决了安徽移动IT容器云项目建设时部分安全能力与IT基础设施虚拟化、容器化不匹配的问题,而且也解决了部分安全机制与一体化开发交付不匹配的现状。

4 结 论

安徽移动容器安全防护平台的建设为PaaS容器平台提供了自主可控的安全防护,可以应对容器全生命周期存在的安全风险。从容器运行的基础环境安全、容器软件供应链安全、容器运行时安全、各类微服务应用接口安全以及针对异常行为的微隔离与阻断等维度采取针对性措施,提升了PaaS平台的安全防护能力,为IT容器云的发展奠定基础。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!