第 2 章 sVirt
sVirt 是包含在 Red Hat Enterprise Linux 6 中集成 SELinux 和虚拟化的技术。sVirt 应用 Mandatory Access Control(MAC)来改进使用客户机虚拟机时的安全性。此集成技术提高了安全性并强化了系统,免受虚拟机监控程序中的漏洞。这对防止主机物理机器或其他客户机虚拟机进行攻击特别有用。
本章论述了 sVirt 如何与 Red Hat Enterprise Linux 6 中的虚拟化技术集成。
非虚拟化环境
在非虚拟化环境中,主机物理机器彼此分开,每个主机物理物理机器有一个自包含的环境,由 web 服务器或 DNS 服务器等服务组成。这些服务直接与自己的用户空间通信,托管物理机器的内核和物理硬件,从而直接向网络提供服务。下方的镜像代表非虚拟化环境:
- ??????
- 用户空间 - 所有用户模式应用程序和一些驱动程序执行的内存区域。
- ???
- Web App(网页应用服务器)- 提供可通过浏览器访问的 Web 内容。
- ??????
- Host Kernel - 严格保留用于运行主机物理机器的特权内核、内核扩展和大多数设备驱动程序。
- ???
- DNS 服务器 - 存储 DNS 记录,允许用户使用逻辑名称而不是 IP 地址访问网页。
虚拟化环境
在虚拟环境中,多个虚拟操作系统可以在驻留于主机物理机器的单个内核中运行。下图代表虚拟化环境:
2.1. 安全和虚拟化
如果没有虚拟化服务,则机器会被物理分隔。任何漏洞通常都会包含在受影响的机器中,但存在网络攻击的明显例外。当服务分组到虚拟化环境中时,系统中出现了额外的漏洞。如果虚拟机监控程序中存在可由客户机虚拟机利用的安全漏洞,这种客户机虚拟机可能不仅可以攻击主机物理计算机,而且该虚拟机也可能不再受到该运行虚拟机的其他客户机虚拟机。这些攻击可以扩展到客户机虚拟机之外,也可公开其他 guest 虚拟机以攻击。
sVirt 是隔离客户机虚拟机并限制其在被利用时启动进一步攻击的能力。在以下镜像中演示这个情况,其中攻击无法断出 guest 虚拟机和其他客户机虚拟机:
SELinux 在实现强制访问控制(MAC)的过程中引入了虚拟化实例的可插拔安全框架。sVirt 框架允许 guest 虚拟机及其资源进行唯一标记。标记后,规则可以应用,以拒绝不同客户机虚拟机之间的访问。