ZStack实践汇 | 虚拟化软件漏洞和解决方案
https://cbu01.alicdn.com/img/ibank/2020/532/409/23679904235_847397719.jpg概况
本文主要比较了主流虚拟机虚拟层(KVM,ESX,Hyper-V和Xen)中的安全功能和常见漏洞,并分析了安全趋势。然后,对虚拟化软件的常见威胁进行了分类,并讨论其影响。最后,对于解决虚拟化软件漏洞和安全问题,本文也提出一些解决方案。
1虚拟化软件的常见漏洞及安全趋势
首先,表1展示了上述主流虚拟层的一些标准功能和安全功能:
https://cbu01.alicdn.com/img/ibank/2020/462/598/23679895264_847397719.jpg
表1 虚拟机监控程序比较
如表所示,这些虚拟机虚拟层之间在安全功能方面的主要区别在于:只有KVM能通过SELinux为应用程序提供强制访问控制。其他区别在于安全证书,其中Xen没有FIPS 140-2验证的加密模块,而只有EAL2 +。
Common Vulnerabilities and Exposures(CVE)是追踪计算机安全事件的关键方法。另一方面,也可以统计计算机软件的漏洞条目来监测软件的健壮性:
https://cbu01.alicdn.com/img/ibank/2020/663/685/23779586366_847397719.jpg
图1 2011年至2020年CVE条目进行比较的折线图此折线图
显示了2011年至2020年,KVM,ESX,Hyper-V和Xen的CVE条目数量。总体来说,KVM展现出了比其他虚拟化软件更好的安全性能。此外,该数字还打破了商业软件比开源软件更可靠的偏见。
2虚拟化软件的常见威胁分类及其影响
通过分析虚拟化软件的功能和CVE条目,可以得出,对虚拟化软件的威胁可以分为以下方面:基于虚拟层(Hypervior)的攻击【2.1】,基于虚拟机(VM,Virtual Machine)的攻击【2.2】,和基于虚拟机镜像(VDI,Virtual disk image)的攻击【2.3】
常见威胁模型的具体分类如下图所示。
https://cbu01.alicdn.com/img/ibank/2020/073/298/23679892370_847397719.jpg
图2 虚拟化软件的威胁模型
2.1 基于虚拟层的攻击
基于虚拟层的攻击,是入侵者利用虚拟化软件允许多个操作系统共享单个硬件处理器功能中存在的漏洞。受控制的虚拟层,可以使黑客攻击宿主机上的每个虚拟机。更多的软件堆栈和API数量,以及较低的代码安全性,也增加了此类风险,它包含以下攻击模式: VM Escape,VM sprawl, Hyperjacking,Hypervisor rootkit attacks。
2.1.1 VM Escape
VM Escape是进程脱离其虚拟机并在宿主机操作系统上运行交互的的过程。虚拟机是“在正常宿主机操作系统中完全隔离安装的客户机操作系统。”虚拟机逃逸风险主要存在于2020年之前的VMware ESX中。
2.1.2 VM sprawl
当网络上的虚拟机数量达到管理员无法再对其进行有效管理的程度时,就会发生虚拟化蔓延现象。其原因一般有两个:首先,过度超分配的虚拟资源(vCPU,内存或磁盘);第二,不受限制的虚拟化资源分配策略。
2.1.3 Hyperjacking
Hyperjacking攻击可以使黑客通过在虚拟机主机内创建虚拟环境,对虚拟层进行恶意控制。其攻击的目标是虚拟机之下的操作系统,使攻击者的程序运行应用在虚拟机之上,并且使虚拟机完全忽略运行程序的存在。
2.1.4 Hypervisor rootkit attacks
虚拟层级的恶意程序属于类型二虚拟层,是学术界为证明概念而创建。通过利用诸如Intel VT或AMD-V之类的硬件虚拟化功能,这种类型的恶意程序运行在Ring 1指令上,并将目标操作系统变成一个虚拟机,从而使恶意程序能够拦截由原始操作系统发出的硬件调用指令。
2.2 基于虚拟机的攻击
基于虚拟机的攻击是源自虚拟机的威胁。它可以通过恶意软件破坏操作系统或其数据,或者通过网络对另一台虚拟机发起攻击。此外,它还可以利用虚拟层的漏洞或绕过虚拟层来攻击主机系统或其他虚拟机。
2.2.1 虚拟机内部攻击
虚拟机的操作系统被恶意软件或程序感染。此外,恶意的内部人员也可以利用系统和服务器漏洞入侵虚拟机。
2.2.2 虚拟机外部攻击
虚拟机外部攻击是来自未知来源的威胁。外部攻击者可以利用一些公共资源的漏洞对虚拟机进行入侵,如暴露的服务端口或公开的服务漏洞。其中又主要包含DDoS攻击{2.2.2.1},以及跨虚拟机侧通道攻击{2.2.2.2}。
{2.2.2.1} DDoS攻击
DDoS攻击是虚拟化和云平台面对的主要攻击之一。虚拟化平台中有两个最常见的DDoS攻击对象:网络带宽和CPU资源。
{2.2.2.2} 跨虚拟机侧通道攻击
跨虚拟机侧通道攻击是一种复杂的攻击方式。它可以通过旁路获得虚拟机中的敏感信息,包括共享的CPU缓存、网络、CPU负载。
2.2.3 虚拟机中过时的软件
使用镜像模板创建虚拟机实例,是交付虚拟机资源给用户的常用方法。如果该镜像模板中的软件已过时,则意味着基于该镜像创建的所有虚拟机都可能存在安全风险。另一个问题是,当用户将虚拟机回滚或重置为早期版本时,它又可能会暴露软件的早期漏洞。
2.2.4 虚拟机数据足印
虚拟机数据足印是系统的特征,包括操作系统类型、正在运行的服务、IP地址等。黑客可以通过分析虚拟机数据足印中的漏洞来准备一次攻击。
2.2.5 滥用资源
尽管创建的虚拟机实例都有一个资源配额,但是当没有严格的资源限制策略时,虚拟机实例仍然可以耗尽一些共享资源,例如CPU、网络带宽、磁盘I/O。当这些资源被滥用时,将导致其它的虚拟机实例无法获取足够的资源,从而无法保证服务质量。
2.3 基于虚拟机镜像的攻击
磁盘镜像攻击:常见的虚拟磁盘镜像格式包括qcow2,qed,raw,vdi,vhd和vmdk。攻击者可以修改镜像的内容以插入恶意软件或窃取敏感信息。2.3.1 虚拟机镜像蔓延
虚拟机镜像蔓延是在共享存储(例如公共驱动器或随机网络共享)上拷贝,存储和忽略了虚拟机磁盘镜像。在某些私有云设计中,它可能会接入多个后端存储,为运行虚拟机实例、镜像模板或虚拟机备份,提供存储空间。当其中一个存储有安全漏洞时,也会增加软件平台信息泄漏的风险。
2.3.2 虚拟机回滚攻击
在虚拟机回滚攻击中,受感染的虚拟层会在用户不知情的情况下,跟从旧快照来运行虚拟机。此处,用户是云服务,该虚拟机的所有者。由于虚拟机部分执行记录丢失了,因此攻击者可以绕过虚拟机中的某些安全检查,或撤消某些安全关键更新。
2.3.3 虚拟机检查点攻击
虚拟机镜像要进行在线更新的前提,首先是要被启动。启动将增加云服务提供商的计算资源成本。攻击者可以访问磁盘中包含的可用物理内存信息的虚拟机检查点,并找到揭示虚拟机状态的数据。
3针对虚拟化软件漏洞和安全问题的解决方案
虚拟化基础架构包括计算虚拟化、存储虚拟化、网络虚拟化,以及安全保障,和资源管理解决方案。与传统IT系统不同的是,虚拟化基础架构更加复杂,在防止安全威胁方面也带来了更多挑战。但是,在大多数情况下,虚拟化安全就是IT安全。
在本章节中,将看到一些保护虚拟化安全的措施。
https://cbu01.alicdn.com/img/ibank/2020/890/895/23779598098_847397719.jpg
图3 虚拟化安全措施
3.1 保护网络
虚拟化网络包含了两个部分,即overlay网络和underlay网络。在underlay网络安全中,核心措施是进行适当的网络规划。在overlay网络中,主要措施是进行虚拟机网络隔离和设置安全策略。此外,安全设备在虚拟化系统中仍然扮演着至关重要的角色。
3.1.1 平台网络规划
网络隔离是保护敏感信息免受外部攻击或恶意内部人员攻击的重要措施。在虚拟化或云平台中,通常具有以下网络:计算网络、存储网络、管理网络。在某些情况下,可能还具有备份网络,即v2v网络。如果平台提供了Web门户,则建议规划一个单独的门户网络。最佳实践是通过VLAN或其他网络技术,隔离每个系统网络,以防止攻击者利用一个系统的漏洞来入侵另一个系统。
3.1.2 虚拟机网络隔离
虚拟机网络隔离可以防止大多数基于虚拟机的攻击。它也可以有效地阻止内部威胁。在虚拟化或云平台中,可以使用VLAN或VPC网络隔离不同的虚拟机或租户。此外,将具有Internet访问权限的外部虚拟机和内部虚拟机划分为单独的网络,也可以有效降低受外部攻击的风险。
3.1.3 安全政策
大多数虚拟化系统和云平台都提供基于软件的防火墙功能。管理员可以设置默认策略以拒绝所有带内流量,并手动添加必要的防火墙策略。此措施可以防止虚拟机数字脚印扫描,并减少来自网络的大多数威胁。
3.1.4 部署网络安全设备
部署网络安全设备可以防御各种威胁。与传统的IT系统相比,不仅应该部署物理安全设备,还应该部署一些基于虚拟机的安全设备。物理安全设备包括防火墙、IDS、IPS等,它们用于防止来自外部的网络攻击,例如DDoS。基于虚拟化的安全设备有HyperIDS、网络访问控制、负载均衡器和蜜罐等,它们用于防止来自内部的攻击威胁。
3.2 保护IT系统
虚拟化软件或云平台是一个IT系统,它可以分为三个部分:虚拟化/云平台软件,物理机系统和虚拟机系统。
3.2.1 虚拟化/云平台软件
保护平台的方法是选择一种具有可靠技术支持,以及完善的文档和培训系统的产品化软件,无论是采用商业软件还是开源软件,均可达到保护效果。当发生严重的安全问题时,可以确保第一时间获得技术支持。
3.2.3 物理机系统
保护物理机系统安全是指硬件管理(例如,删除不必要的外围设备,确保磁盘高可用)和操作系统管理(例如:停止无关服务、文件/主导权限管理、补丁程序管理)。
3.2.3 虚拟机系
统确保虚拟化系统安全包括以下措施:为虚拟机实例分配适当的资源并设置磁盘和网络QoS(Quality of Service 服务质量安全机制),确保每个物理主机的负载平衡,并更新公共镜像。
3.3 安全合规管理
安全合规性管理是IT系统管理中的关键步骤,它可以降低安全风险。标准的合规性安全管理措施一般有:
3.3.1 建立审计系统
用来记录服务的运行情况;同时,建立监控系统,例如去监控平台、物理设备、虚拟机的运行状态,并为某些资源(例如CPU和网络负载)设置警报。
3.3.2 权限管理
包括为租户设置权限和分配资源,例如API管理、第三方认证管理。
3.3.3 使用高可用设计
例如,管理服务的高可用,核心业务虚拟机的高可用,以及创建多个数据副本。
3.3.4 制定容灾计划
例如进行关键数据备份,建立异地备份中心。
总结
目前,虚拟化技术可以分为两种类型:商业解决方案和开源解决方案。
从安全性特征的比较来看,KVM在资源隔离方面具有部分优势。通过分析2011年至2020年的CVE条目来看,KVM比其他虚拟机监控程序更可靠。
当下,虚拟化的威胁仍然主要来自基于虚拟化层的攻击,这些威胁可以分为三个方面:软件缺陷、传统安全威胁和管理问题。因此,本文提出的针对性措施也主要为:保护网络安全、保护IT系统安全和安全合规性管理。
https://cbu01.alicdn.com/img/ibank/2020/532/153/23592351235_847397719.jpg
页:
[1]