返回
ZStack实践汇 | 虚拟化软件漏洞和解决方案
2020-12-09 21:45

概况

本文主要比较了主流虚拟机虚拟层(KVM,ESX,Hyper-V和Xen)中的安全功能和常见漏洞,并分析了安全趋势。然后,对虚拟化软件的常见威胁进行了分类,并讨论其影响。最后,对于解决虚拟化软件漏洞和安全问题,本文也提出一些解决方案。


1、虚拟化软件的常见漏洞及安全趋势

首先,表1展示了上述主流虚拟层的一些标准功能和安全功能:


640.png

1 虚拟机监控程序比较


如表所示,这些虚拟机虚拟层之间在安全功能方面的主要区别在于:只有KVM能通过SELinux为应用程序提供强制访问控制。其他区别在于安全证书,其中Xen没有FIPS 140-2验证的加密模块,而只有EAL2 +。

Common Vulnerabilities and Exposures(CVE)是追踪计算机安全事件的关键方法。另一方面,也可以统计计算机软件的漏洞条目来监测软件的健壮性:


640 (1).png

 图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

常见威胁模型的具体分类如下图所示。

640 (2).png

 图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安全。

在本章节中,将看到一些保护虚拟化安全的措施。

图片1.png

图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系统安全和安全合规性管理。

下载ZStack企业版

您已填写过基本信息?点击这里

姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

下载链接将会通过邮件形式发送至您的邮箱,请谨慎填写。

下载ZStack企业版

还未填写过基本信息?点击这里

邮箱或手机号码格式错误
验证手机号
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
登录观看培训视频
仅对注册用户开放,请 登录 或 填写资料 观看培训视频
填写资料

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io
ZStack认证培训咨询
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io
申请ZStack多机版
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。 当您收到电子邮件后,请点击 URL 链接,以完成下载。

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。
或点击下方URL链接 (IE内核浏览器请右键另存为), 完成下载:

感谢您使用 ZStack 产品和服务。

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。

立即体验

联系我们

商务咨询
400-962-2212 转 1
售后咨询
400-962-2212 转 2

回到顶部

产品试用申请
请选择您要试用的产品
ZStack企业版
ZStack混合云版
ZStack信创云平台
ZStack Ceph企业版
ZStack Mini 边缘计算一体机
ZStack CMP 多云管理平台
请填写您的基本信息
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。