如何修补和保护Linux服务器免受VENOM漏洞#CVE-2015-3456

时间:2020-01-09 10:37:56  来源:igfitidea点击:

在许多计算机虚拟化平台(包括Xen,KVM,VirtualBox和本地QEMU客户端)使用的虚拟软盘驱动器QEMUs代码中发现了一个非常严重的安全问题。它称为VENOM漏洞。如何修复VENOM漏洞并保护Linux服务器免受攻击?如何验证我的服务器已针对VENOM漏洞进行了修复?此漏洞被标记为高严重性安全漏洞,已于2015年5月13日宣布。自从2004年虚拟软盘控制器首次添加到QEMU代码库以来,VENOM漏洞就一直存在。
由于虚拟机管理程序代码库中存在VENOM漏洞,因此该漏洞与主机操作系统(Linux,Windows,Mac OS等)无关。

什么是VENOM安全漏洞(CVE-2015-3456)?

在处理某些FDC命令时,QEMU的虚拟软盘控制器(FDC)处理FIFO缓冲区访问的方式中发现了内存访问漏洞。
特权来宾用户可以使用此漏洞使来宾崩溃,或者有可能使用托管QEMU进程的特权在主机上执行任意代码。

此问题影响kvm,xen和QEMU软件包的版本,而VMware,Hyper-V和Bochs不受影响。
此问题影响所有基于x86和x86-64的HVM Xen和QEMU/KVM guest虚拟机,无论它们的计算机类型如何。

受影响的Linux发行版列表

  • RHEL(Red Hat Enterprise Linux)版本5.x,6.x和7.x
  • CentOS Linux版本5.x,6.x和7.x
  • 适用于RHEL 6的OpenStack 5
  • 适用于RHEL 6的OpenStack 4
  • 适用于RHEL 7的OpenStack 5
  • 适用于RHEL 7的OpenStack 6
  • 红帽企业虚拟化3
  • Debian Linux代码,名为Stretch,SID,Jessie,squeeze和Wheezy [以及所有其他基于Debian的发行版]
  • SUSE Linux Enterprise Server 10 Service Pack 4(SLES 10 SP3)
  • SUSE Linux Enterprise Server 10 Service Pack 4(SLES 10 SP4)
  • SUSE Linux Enterprise Server 11 Service Pack 1(SLES 11 SP1)
  • SUSE Linux Enterprise Server 11 Service Pack 2(SLES 11 SP2)
  • SUSE Linux Enterprise Server 11 Service Pack 3(SLES 11 SP3)
  • SUSE Linux Enterprise Server 12
  • SUSE Linux Enterprise扩展支持5、6和7
  • Ubuntu 12.04
  • Ubuntu 14.04
  • Ubuntu 14.10
  • Ubuntu 15.04

修复CentOS/RHEL/Fedora/Scientific Linux上的VENOM漏洞

以root用户身份执行以下yum命令:

sudo yum clean all
sudo yum update

重新启动这些虚拟机管理程序上的所有虚拟机。

修复Debian Linux上的VENOM漏洞

以root用户身份执行以下apt-get命令:

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade

重新启动这些虚拟机管理程序上的所有虚拟机。

修复Ubuntu Linux上的VENOM漏洞

以root用户身份执行以下apt-get命令:

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade

重新启动这些虚拟机管理程序上的所有虚拟机。

修复Linux/OSX/MS-Windows/Solaris Unix上针对Oracle VirtualBox的VENOM漏洞

您需要通过访问此页面来下载和更新VirtualBox 4.3维护版本。

我需要重启主机服务器吗?

无需重启主机服务器。
但是,您需要重新启动这些虚拟机管理程序上的所有虚拟机。
这是无法避免的。
获取列表,停止和启动KVM,QEMU的示例命令如下:

## Following the update, the guests (virtual machines) ##
## need to be powered off and started up again for the update to take effect. ##
## Reboot a vm will not work ##
## List all running vms ##
virsh list --all
 
## Stop vm called db1 ##
virsh shutdown db1 
 
## Again start vm called db1 ##
virsh start db1

常规解决方法(可能根本不起作用,因此请尽快修补)

默认情况下,仿真软盘似乎已加载到qemu和kvm中。
您可以禁用floopy支持并在不使用软盘仿真但启用了vga的情况下启动qemu(或根据需要提供任何其他选项):

qemu  -nodefaults -vga std ...

CentOS/SUSE/Red Hat Linux Enterprise Server上的另一个解决方法是通过libvirt管理虚拟机。
有关更多信息,请参见libvirt和qemu手册页。