云环境下Dcker容器的安全态势分析与研究
2023-08-01雷军环刘志明
雷军环 刘志明
摘要:Docker容器作为云计算的关键技术, 具有虚拟化时间短、高效率、高利用率的优点。但是由于资源隔离等问题,导致其存在镜像、虚拟化和网络安全等风险。该文在分析其存在风险的基础上,提出了Docker容器的安全机制,并设计了安全态势感知架构,通过安全数据采集、预处理、监测,利用大数据、人工智能等技术对Docker容器内部及外部网络安全进行智能预测和感知,实现安全态势的自动化,最终构建一个云安全中心。
关键词:云环境 Docker容器 安全 大数据 态势感知
Analysis and Research of the Security Situation of the Docker Container in the Cloud Environment
LEI Junhuan LIU Zhiming*
(Changsha Social Work College, Changsha, Hunan Province, 410004 China)
Abstract: As the key technology of cloud computing, the Docker container has the advantages of short virtualization time, high efficiency and high utilization. However, due to problems such as resource isolation, it has risks such as mirroring, virtualization and network security. Based on the analysis of its existing risks, this paper puts forward the security mechanism of the Docker container, designs a security situation awareness architecture, uses big data, artificial intelligence and other technologies to intelligently predict and perceive the internal and external network security of the Docker container through the collection, pre-processing and monitoring of security data, realizes the automation of security situation, and finally builds a cloud security center.
Key Words: Cloud environment; Docker container; Scurity; Big data; Situation awareness
云計算通过互联网将分布在不同区域的计算、存储和网络等资源构建一个庞大的资源池,用户可根据需求选购计算资源[1]。虚拟化技术是云计算的关键技术,其核心功能是根据用户的实际需求配置计算资源,确保所有用户都能获得相应的计算资源[2]。虚拟化技术分为服务器虚拟化和容器虚拟化。服务器虚拟化是在硬件和操作系统之间形成一个虚拟化层,虚拟化终端都可获得独立的硬件设备,而Docker容器技术是通过软件化将不同平台运算技术进行融合[3]。Docker容器技术有虚拟化时间短、高效率、高利用率的优点,但是隔离性弱导致容器安全性差,该文将重点对Docker容器的安全态势进行分析和研究。
1 Docker容器的安全风险
Docker容器是在Linux操作系统层面对计算机资源进行虚拟化,通过对主机的CPU、内存和文件系统等资源的隔离、划分和控制,实现进程间的资源使用,实现系统资源的共享,其本质就是操作系统的进程[4]。因此Docker容器安全与Linux系统密不可分。
1.1 镜像安全风险
Docker官方镜像仓库是Docker hub,仓库里既有官方来源,也有第三方上傳配置好的应用,因对上传者缺乏监管,其容器安全的安全性存在一定的风险。在Dockerfile中以root权限运行容器,攻击者可利用容器作为跳板,对宿主机进行攻击[5]。
1.2 容器虚拟化安全风险
与传统虚拟机相比,Docker容器和宿主机共享操作系统内核,没有在系统内核层面进行资源隔离和独立配置资源。因此隔离不彻底风险存在于Docker容器与其他容器或宿主机之间,如进程间、进程间通信和文件系统等都存在隔离风险。
1.3 网络安全风险
Docker容器有桥接、MacVLAN和Overlay等组网模式,通过这些组网模式,为同一主机的容器间通信、不同主机的容器间通信、多主机大集群容器的网络提供了支持。由于Docker容器相互可以访问,且在同一虚拟网络环境下Docker容器之间无法控制访问权限。如果缺乏统一的安全管理机制,宿主机及其运行的容器会暴露给攻击者,攻击者可通过宿主机或容器作为跳板,攻击其他主机和容器,对其构成极大的安全威胁。
2 Docker安全机制实现
2.1 容器镜像安全机制
容器镜像从官方镜像仓库下载,根据网络安全零信任原则,必须对其使用专业的工具对其进行全面扫描,防止存在漏洞和携带病毒或木马。其中Clair是常用的扫描工具,Clair定期从配置的源获取漏洞元数据后存进数据库,客户端使用Clair API获取镜像的特征存进数据库,然后客户端从数据库查询特定镜像的漏洞情况,为每个请求关联漏洞和特征,可以避免重复扫描整个镜像。
2.2 容器虚拟化安全机制
在容器架构中,主要通过Linux内核Cgroups、Namespace两大特性来实现资源限制和环境隔离。
2.2.1资源隔离与限制
Linux系统通过内核提供的Cgroup对宿主机的不同容器使用的CPU、内存和磁盘I/O速度等资源进行审计。通过对资源均衡配置,使用CPU、内存、磁盘参数,可对宿主机的CPU和内存使用率及磁盘读写速率进行有效控制,保证宿主机对容器服务的合法要求进行响应。
Docker还可为每个容器创建单独用户,对磁盘容量进行限制,使用Quota技术为容器创建固定大小的虚拟文件系统,使用XFS等文件系统目录进行配额限制。
2.2.2强制访问控制
Linux系统可通过SELinux在容器运行时进行强制访问控制,SELinux 管理的每个进程都有自己的运行域,各进程仅运行在自己的域内,无法访问其他进程和文件,除非被授予了特殊权限。SELinux可有效限制Docker容器对宿主机资源的访问限制,并对其行为进行控制,Docker容器只能访问运行任务所需资源。通过赋予最小访问特权,可以防止主体对其他用户或进程产生不利的影响;
通过SELinux机制实现Docker容器对宿主机资源的访问限制,在启动Docker容器时可通过docker daemon--selinux-enabled=true命令启动SELinux[6]。
2.3 容器网络安全机制
2.3.1容器流量限制
在云环境中宿主机中会部署多个Docker容器,为了保障网络流量均衡,避免容器间恶性竞争带宽。可使用Linux的流量控制模块实现流量限制和调节,避免Docker容器间抢占网络资源导致网络堵塞。云环境下容器因服务动态上下线而处于频繁变化的状态,静态分配无法满足需求,云服务资源需动态分配的。因此,在云环境下采用动态流量控制和配额动态申请和返还两种机制来实现。
2.3.2同住容器间隔离
云环境中同驻容器威胁是一个备受关注的网络安全问题,由于容器隔离性较弱,更容易遭受同驻攻击。在同一台物理主机上运行属于攻击者的恶意容器实例与目标容器实例运行,由于容器间采用的虚拟隔离方案,因此会存在拒绝服务(DoS)、数据窃取等安全问题。因此当Docker容器不是为同一个服务进行工作,可禁止容器间通信,防止Docker容器间恶意攻击和保障数据安全[7]。
3 云环境下Docker安全态势感知架构
为云平台上Docker容器集群的安全运行,构架容器安全解决方案。架构由安全数据采集、预处理、监测和云安全中心4个部分组成,提供容器资产管理、镜像安全及运行时入侵检测等安全服务,保障容器从镜像生成、存储到运行时的全生命周期安全,构建完整的云环境容器安全防护体系。原理图如图1所示。
3.1安全数据采集
采集安全数据主要包括扫描、基线、资产和运行时的各种安全数据。镜像仓库深度扫描针对镜像、镜像仓库提供一键检测功能,支持对漏洞、木马病毒及敏感信息等多维度安全扫描,并形成日志和报表[8]。容器安全服务支持CIS Benchmark标准检查,可对容器、镜像、主机等容器环境配置进行安全标准检查,多维度统计分析容器资产的基线合规情况并帮助建立容器运行环境下的最佳基线配置。容器安全服务提供自动化资产清点功能,支持清点容器、镜像、镜像仓库、主机等关键资产信息。容器安全服务支持自适应识别黑客攻击,实时监控和防护容器运行时安全,提供容器逃逸、进程黑白名单、文件访问控制等安全功能。
数据采集的方式主要有主动拉取和被动接收两种行为形态。主动拉取不改变原有部署形态,主动对接获取所需数据,目前支持JDBC、HTTP、WMI等主流方式对接。被动接收可以提供规范化接入,通过约定的协议标准,进行日志数据传输,通过进行字段约束(包括字段名称、类型、长度范围、取值、是否可选等)。接入后不需要做复杂的格式识别和萃取,便可以无缝集成。被动接收方式配置简单,侵入性小,是既有的事实标准之一。但是数据提取、清洗、识别比较消耗资源,并且需要人为参与识别规则书写。如图2所示。
从网络安全态势感知角度,数据可从资产、漏洞和威胁等维度进行采集。漏洞和威胁是比较常见的网络安全数据采集维度。但网络安全最终落脚点是资产,离开了网络资产管理,网络安全就没有价值。資产识别主要通过主动扫描,这种方式周期长、有风险,且需防火墙等安全防护设备全面开放访问权限才能彻底扫描。被动流量识别通过旁路镜像的流量识别出系统的操作系统、开放的端口、弱密码、明文传输等。
3.2安全数据预处理
通过不同的采集工具和不同的采集方式,获得海量网络安全日志,因为数据来源的多样性,异构数据存在大量冗余数据。数据处理主要使用数据清洗、资产扫描、文件威胁鉴定、机器学习、自动编排、数据范式化、漏洞评估、多引擎检测、日志关联分析、基线建模等关键技术,对收集的安全数据进行辨析、抽取、清洗、填补、平滑、合并、集成、规格化及检查一致性等预处理工作。数据预处理的最终目的是建立资产库,实现入库、退库、审核等功能,以便计算网络安全态势指数。其中资产基线发生端口变更、协议变更、属性变更、流量异常时,进行资产风险感知和脆弱性识别。如图3所示。
3.3安全数据监测与分析
在完成数据预处理之后,采集的原始数据可转化为主题数据,主要包括告警数据、威胁情报数据、资产数据,主题数据可为再次数据挖掘提供输入,也可以直接当成一种输出展示给用户。通过构建安全模型,利用机器学习分析引擎进行威胁情报分析。
通过预处理的主题数据集可能包含许多冗余、松散特征,这是对机器学习分析引擎进行数据喂养障碍。为提高引擎的训练效率,可根据不同维度网络安全事件进行分类、评估,当海量数据喂养无法提高训练效果时,需要及时修正安全模型,调整主题数据集的维度,直到分析结果和训练时长与数据量和维度量比例一致[9]。
通过对Docker安全的态势评估,建立安全特征库,可对非法入侵实时警报和响应,并通过自主学习,能主动发现安全威胁和入侵活动目的。如图4所示。
3.4云安全中心
Dokcer安全态势感知架构最终目标是构建云安全中心,对主机、容器和镜像的CPU、内存、网络、南北向和东西向流量及外部网络及安全等进行监测,实现网络资产智能识别和管理,网络安全态势的自动感知,并可以智能预警。
安全态势感知主要在资产管理层面,对资产进行时实时识别和梳理,对脆弱性、内外网威胁等风险进行实时监测并可视化管理,自动感知配置风险。在网络安全事件、漏洞隐患、辖区内外等分析研判的基础上,对威胁、事件、情景和行为等实现关联分析。实现对攻击链和日志的智能分析,安全管理的人机交互,自主智能研判和编排,7×24小时的快速响应。安全处置不再局限于主机和容器内部,与EDR、下一代防火墙和上网行为管理等设备进行联动并处置。如图5所示。
安全态势感知是云安全中心的核心和基础,Docker容器网络安全态势感知平台是融合大数据分析技术、可视化技术、威胁情报技术于一体,构建安全态势可视化平台。通过多维度的采集各类安全数据,通过预处理、监测和分析之后,全面展现安全态势,实现对安全资产、漏洞和威胁可视、可预测,建立安全联动工作机制,形成安全闭环,提升安全分析决策的准确度和效率。
3.4.1 构建基于安全数据中台的安全资产管理
安全资产管理利用安全数据中台的大数据技术分析数据、日志,形成资产态势,在此基础上,建设安全驾驶舱,提供仪表盘,对资产组、资产和核心资产、终端等,具备进行态势感知、风险分析、溯源和处置安全应用能力。形成统一资产风险视图,对异常行为和流量进行主动识别,重点观测和防护高危行为和0Day攻击,实现安全资产管理和运营自动化、智能化。
3.4.2 建设安全数据采集与融合关联分析和治理体系
实现IT资产可视化管理和监控,首先确立安全资产观,将各类IT资产数字化,对IT资产的各类静态和动态数据进行采集,通过安全大脑进行大数据分析,实现线上识别、展现IT资产及其关联关系。
实现安全要素数据融合,收集各类IT资产主机访问日志、web访问日志和系统日志等相关的安全日志数据,融合威胁情报、漏洞信息、行为数据,实现统一的风险资产视角,可识别同类的、相关或相似的安全事件,实现风险威胁和攻击者及其行为画像。
通过数据关联建模,将IT资产数据、威胁情报数据、安全事件及行为数据进行关联分析,保障安全数据质量、一致性和可用性。
3.4.3 融合攻防对抗情报数据搭建本地威胁情报大数据
通过网络安全大数据分析技术分析各类安全日志和数据,可以跟踪攻击者行踪,模拟出攻击者的行为路径,从各种访问和攻击活动中解析出高水平攻击者的真实意图,进而挖掘出攻击者攻击活动轨迹特征,评估攻击者攻击能力水平并画像,结合安全资产的画像,并向被攻击重点单位、资产和人员推送预警。
3.4.4 建立“纵深立体”的处置自动化和线上化应急联动
实现安全检测与处置响应实现无缝衔接,安全检测和处置响应不再孤立,提升安全处置的效率和准确率。
安全的处置技术手段碎片化的分散在各个安全设备,安全设备处置技术手段对应网络层、系统层、应用层,将各类联动处置技术手段整合增强,形成纵深立体、规范统一的威胁阻断和排查验证两大类联动处置技术服务。
提高网络安全防护粒度,在服务器端层面,安全防护粒度深化到进程端,提升网络安全防护响应速度,提升整体防护响应能力和安全事件快速处置效率。
在云平台中,除了通报安全事件外,管理员可通过平台、邮件和短信向各级单位推送预警或办事公告,可及时接收与查看,且预警和公告均支持自定义,允许选择接收对象、上传附件、自定义内容,可便捷下达通知与工作内容。
4 结语
云环境下Docker容器安全一直是云服务和容器发展面临的重要挑战,隔离性弱是导致容器安全性差的主要原因。该文分析了云环境下的Docker容器的安全风险,形成Docker安全机制实现思路,并提出了云环境下容器安全的解决方案,该方案重点利用大数据、人工智能等工具,实现对Docker安全的态势感知,并与Docker环境里的其他安全设备进行联通,形成安全闭环,较好地解决了Docker容器存在的安全问题,并打破了安全孤岛,形成了网络安全能力中心。因篇幅所限,该文没有对机器学习算法展开阐述,下一步重要工作是优化方案中相关算法。
参考文献
[1] 王雄.云计算的历史和优势[J].计算机与网络,2019(2):44.
[2] 龚强.云计算的体系架构与关键技术浅析[J].信息通信,2018(9):163-164.
[3] 韩宁.云计算虚拟化技术的发展与趋势[J].电子技术与软件工程,2018(13):158.
[4] 刘烨,孙智权,周波.基于容器集群部署的等级保护测评要求及测评实践[J]. 电子技术与软件工程, 2022(23):31-35.
[5]罗汉新,王金双.Docker容器安全风险和防御综述[J].信息安全与通信保密,2022(8): 83-93.
[6] 陈伟,涂俊亮.Docker 容器安全的分析研究[J].通信技术,2020,53(12):3072-3077.
[7]边曼琳,王利明.云环境下Docker容器隔离脆弱性分析与研究[J].信息网络安全,2020,20(7):85-95.
[8]杨宇,谷宇恒.网络安全态势感知综述[J].科学技术与工程,2022,22(34):15011-15019.
[9]石乐义,刘佳,刘祎豪,等.网络安全态势感知研究综述[J].计算机工程与应用,2019,55(24):1-9.