威胁隔离!用SELinux保护虚拟化

【.com独家翻译】虚拟化被认为是计算机技术发展史中的一次技术革命,它在资源分配,系统管理,电力和制冷成本节省,按需扩大或收缩资源等方面表现出极大的优势,虽然人人都在谈虚拟化,人人都准备用上虚拟化,但一直伴随虚拟化挥之不去的阴影 – 安全问题 – 又让无数人望而却步。

虚拟化安全性如何?

当攻击者攻破虚拟机,接管了虚拟机的所有控制权后会发生什么?如果系统管理程序(Hypervisor)存在bug又会发生什么?

在未虚拟化之前,我们隔离了服务器,攻击者攻破一台服务器后,他只能控制那一台服务器,这时攻击者必须采取网络攻击,攻击网络内的其它服务器,才有可能拿到其它服务器的控制权。系统管理员有很多工具检测和保护网络攻击,如防火墙,网络流量分析工具,入侵检测工具等。

虚拟化后,在同一台物理主机上运行了多个服务(应用程序),如果虚拟机被攻破,攻击者只需要破坏系统管理程序,就可以达到破坏所有服务的目的。如果系统管理程序存在漏洞,攻击者可以接管主机上托管的所有虚拟机,甚至可以向主机能直接访问的虚拟机镜像写入恶意代码。

听起来非常恐怖吧,现在的问题是如果真发生这种情况时该如何处置,攻击者对系统管理程序的漏洞兴趣越来越浓,前不久Xen系统管理程序就已经被攻破了。——王文文:VMware的产品中同样出现过类似问题,而现在他们已经在采用RSA的身份认证技术来缓解虚拟数据中心威胁了。那如果不使用身份认证技术的话,我们看看本文中SELinux的保护方式。

现在我们来看看Fedora 11中的libvirtd/qemu/kvm,libvirtd启动所有虚拟机,所有虚拟机都以独立的进程运行,虚拟镜像被保存为一个文件或类似逻辑卷和iSCSI目标的设备。

SELinux真的有用么?

SELinux标记进程,文件和设备,同时负责定义被标记进程,文件和设备之间互操作的规则,通过SELinux可以减小系统管理程序漏洞引起的影响范围。

如果你阅读过Xen漏洞文档,你一定知道如何绕过RHEL 5中SELinux保护机制,攻击者知道标记为xend_t的xen进程可以读/写所有用fixed_disk_device_t标记的固定磁盘,通过写物理磁盘,攻击者可以绕过SELinux的限制。我给RHEL 5上的Xen编写策略时,最初要求管理员将Xen镜像设备卷标记为xen_image_t,Xen开发人员认为这对管理员的管理来说太困难了,可能会导致许多故障,我们没有时间制作管理工具使其自动化,大家都认为在这个例子中可用性比安全更重要,我不得不同意他们的意见。

在Fedora 11中,James Morris,Daniel Berrange和我以及其它共事者给libvirt增加了SELinux支持,形成了sVirt,我们给libvirt增加了一个插件架构,默认启用了SELinux保护,理论上你可以使用其它安全架构。libvirt动态地标记镜像文件,并用正确的标记启动虚拟机,管理员不必记住给镜像文件和设备设置的标记,在F11中,默认所有虚拟机都使用svirt_t type类型标记,所有镜像文件都使用svirt_image_t类型标记。

SELinux策略规定svirt_t进程可以读/写svirt_image_t文件和设备。

这种保护允许我们保护主机不受任何虚拟机的侵害,虚拟机只能与正确标记的文件和设备交互,被攻破的虚拟机不能访问我的home目录,即使虚拟机以root权限运行。

但这种类型的保护不能阻止一个虚拟机攻击另一个虚拟机,我们需要一种方法使用相同的类型标记域和镜像文件,与此同时,停掉虚拟机1,以svirt_t类型运行,攻击虚拟机2,虚拟机2也将以svirt_t类型运行。

多类别安全(Multi Category Security,MCS)保护

我们在开发RHEL 5时,我们增加了MCS支持,包括给SELinux上下文增加第四个字段。

最开始在RHEL 4中,SELinux上下文只有三个字段:“用户:角色:类型”,在RHEL 5中,SELinux上下文字段增加到四个:“用户:角色:类型:MLS”,例如,home目录中的文件可能被标记为system_u:system_r:user_home_t:TopSecretRecipe,MLS标记定义了一个敏感级别(s0-s15)和数据分类(c0.c1023),这个例子中的TopSecretRecipe是类似s15:c0.c36这样的字段的人文翻译,MLS标记允许MLS机器不仅可以基于它的使用者标记文件,在这个例子中是user_home_t,也可以根据敏感性和内容的本身属性进行标记,如TopSecretRecipe。

这个字段仅在MLS策略中使用,我们尝试在默认策略(targeted)中使用它,只定义一个敏感级别(s0),允许管理员定义分类,我们把它叫做多分类安全(MCS),旨在让管理员和用户可以基于文件内容的自身属性进行标记,如system_u:object_r:database_t:PatientRecord可能是一个包含病人记录的数据库,遗憾的是,由于种种原因,MCS未被广泛使用。

但我们在开发sVirt时,我们认识到可以使用MCS隔离两个相同SELinux类型(svirt_t)的虚拟机,我们设计libvirt分配一个不同的随机选择的MCS标记给每个虚拟机及其关联的虚拟镜像,libvirt保证它选择的MCS字段的唯一性,SELinux阻止以不同MCS字段运行的虚拟机互操作,这样就保证了虚拟机不会相互攻击。

例如,libvirt用下面这些标记创建两个虚拟镜像:

SELinux阻止虚拟机1(system_u:system_r:svirt_t:s0:c0,c10)访问虚拟机2的镜像文件(system_u:object_r:svirt_image_t:s0:c101,c230),因此这两个虚拟机不能互相攻击。

下面是libvirt指定的标记:

我们也给sVirt增加了静态标记的功能,静态标记允许管理员为虚拟机选择一个特殊的标记,包括MCS/MLS字段,虚拟机将总是以这个标记启动,运行静态虚拟机的管理员负责给镜像文件设置正确的标记,libvirt永远不会修改静态虚拟机上下文的标记,它允许sVirt组件在MLS环境下运行,你可以在一个libvirt系统上以不同敏感级运行多个虚拟机。

【.COM 独家翻译,转载请注明出处及作者!】

【编辑推荐】

  1. 从虚拟化和云计算解析IT安全的两大疑惑
  2. 虚拟化安全焦点:四问虚拟防火墙

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/124301.html<

(0)
管理的头像管理
上一篇2025-02-23 05:23
下一篇 2025-02-23 05:25

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注