如何修补和保护Linux服务器免受VENOM漏洞#CVE-2015-3456
在许多计算机虚拟化平台(包括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手册页。