您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

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

添加时间:2010-11-27  添加: admin 

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

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

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

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

  听起来非常恐怖吧,现在的问题是如果真发生这种情况时该如何处置,攻击者对系统管理程序的漏洞兴趣越来越浓,前不久Xen系统管理程序就已经被攻破了。——51CTO王文文: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保证<

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站