电子技术论文范文参考
所属栏目:电子技术论文
发布时间:2014-01-21 16:16:40 更新时间:2014-01-21 16:15:37
【摘要】伴随着大数据和云时代的到来,虚拟化技术的应用已经越来越成熟。如何运用虚拟化技术给终端客户提供一个安全稳定高效的桌面环境,成为了一个日益热门的话题。Qubes系统利用新一代的硬件技术和虚拟化技术实现物理宿主机的隔离能力,从系统层面对木马病毒和恶意代码进行了防范和遏制,一定程度上解决了系统安全领域的木桶问题。此外,应用虚拟化技术提高安全性能的同时还可能带来那些问题和隐患,也应该引起我们足够的重视。
【关键词】虚拟化,Xen,Qubes,攻击
1引言
目前,桌面计算领域的主流操作系统,包括Windows、MacOS以及基于Linux的系统在安全性方面都不甚令人满意。它们的主要问题是无法为一 台机器中运行的各种程序提供相互之间的有效隔离。为了弥补上述问题,QubesOS在Linux基础上采用许多现有模块,特别是Xen虚拟机技术,来解决 两个问题:一是利用虚拟化提供优异的安全隔离性能;二是兼容主流操作系统的应用程序和硬件驱动。
2Qubes系统架构
Qubes系统中的基础和精髓是虚拟化技术的使用。为了这一特点,Qubes系统特别优化了磁盘的读写方式和使用效率,从而避免多个虚拟机同时访问磁盘时可能造成磁盘性能降低等问题。文件系统共享机制允许不同的虚拟机在不降低安全隔离性能的前提下重用大部分的文件系统,而IntelVT-d和TXT技术则用来创建安全的设备驱动域从而减少系统受攻击的概率。
3Qubes安全技术特点
3.1虚拟隔离技术
Qubes选择Xen为其底层的虚拟机监控器,以便实现虚拟机之间的相互隔离。相对于Linux内核代码而言,Xen更为轻量,更易进行安全审计。一般而言,Xen体系中存在的特权域(Dom0)几乎和虚拟机监控器拥有相同的安全等级,而这种设计的本身可能导致安全隐患。因此Qubes将网络功能和存储功能从Dom0中移植出来,这样既能保证Dom0对外开放的接口极度精简从而加强安全型,又能减少Dom0的代码量从而提高效率。此外,Qubes的虚拟机监控器受到严格的VT-d保护,Dom0和其他应用虚拟机都将自动获取DMA保护以防止来自总线控制设备的物理攻击。
3.2安全存储技术
Qubes采取LUKS全盘加密来保障安全,这样即使存储域被入侵,其他域的文件系统仍然可以不受侵害。主要采取了两个措施:一是对各虚拟机所有的存储设备分别进行加密,只有该虚拟机本身和Dom0才持有密钥;二是对包含应用虚拟机使用的根文件系统块设备进行数字签名,只有Dom0有签名密钥。
3.3网络安全技术
如果将每个应用虚拟的网络策略统一放置到网络域,那么网络域将会拥有较高的特权。因此,Qubes将每个应用虚拟机的网络策略放置到其自身的存储空间中。网络域有权限直接访问网络硬件设备,但其自身只是一个非特权域。网络域隔离不同域之间的通信。每个需要网络通信的应用虚拟机都通过一个由Xen创建的虚拟网络终端完成通信。为了避免域间通过TCP/IP栈通信,Qubes并没有桥接不同虚拟机的vif*接口,而是将它们直接连接到包过滤器上,通过过滤器阻止域间通信。
3.4应用支持技术
Qubes安全操作系统的设计是在传统操作系统的基础上,在其底层增加虚拟机监控层,因此其能支持的应用类型取决于虚拟机监控层上各个虚拟机中的客户操作系统。目前,Qubes可支持Windows和Linux作为其客户操作系统,能够兼容运行大部分的Windows或Linux应用程序。
4Qubes潜在攻击威胁
4.1虚拟机为载体的攻击(一阶攻击)
4.1.1虚拟机监控器可能存在漏洞
尽管Xen以精简安全著称,但其源代码中仍然发现过可以利用的安全漏洞。Xen虚拟机监控器仅被发现过一个溢出漏洞,它不是在Xen核心代码中,而是在称为“FLASK安全模块”的可选扩展代码中,将来不排除会发现更多的漏洞。4.1.2Xen存储守护进程可能存在漏洞
Xen存储守护进程运行在Dom0中,入侵者一旦入侵可据此获取整个Dom0的控制权。Xen守护进程究竟运行在用户账户还是root账户将决定着整个系统的安全等级。存在一种理论上的可能,就是Xen存储守护进程在实现过程中发生了逻辑错误。比方说一个非特权域可能利用守护进程中的某漏洞去读取它权限之外的数据,可能就此获取了用来加密块设备的Inter-VM交换文件,这样攻击者不仅可以完全控制存储域,并且可以窃取虚拟机之间的交换数据。Xen守护进程采用非常简单的方式进行通信,建立与Xen共享内存和事件通道机制之上。同样,使用的协议也非常简单,将受到攻击的概率减到最小。
4.1.3GUI守护进程可能存在漏洞
GUI守护进程同样运行在Dom0中,对它的成功入侵同样将是致命的。GUI守护进程和Xen存储守护进程一样,使用底层通讯机制和相当简单的协议。因此GUI守护进程产生错误的可能性非常小。
4.1.4CPU可能存在漏洞
CPU中曾存在一个漏洞,可以不经授权就将ring3的权限提升到ring0,有些类似SMM缓存攻击。
4.2驱动域为载体的攻击(二阶攻击)
4.2.1VT-d技术绕行攻击
一般而言,攻击者如果能够针对某个驱动域(比如说网卡)制造一个可编程设备进行DMA通讯,那么就很有机会对系统进行入侵。但是,Qubes基于IntelVT-d技术的架构可以有效防止驱动域通过DMA访问其它域的内存空间。所以,假设攻击者能够绕开IntelVT-d技术的保护,比如说入侵内存控制器,那就能成功实施入侵。然而,目前而言没有发现针对IntelVT-d的有效攻击手段。想成功入侵Qubes系统除了绕过IntelVT-d的保护,还必须要利用软件漏洞成功入侵一个驱动域才行。
4.2.2驱动域导致的MBR攻击
如果入侵者控制了某个驱动域,那么理论上他可以设法将该域控制的某个硬件设备的固件进行更新。然后等到机器重启时利用改过的固件和恶意DMA代码感染系统引导器甚至于MBR。然而由于Qubes使用了IntelTXT技术实现安全启动过程,所以收效可能也不大,因为始终无法解决存储域的控制权限问题。
4.2.3存储域导致的DMA延时攻击
如果攻击者能够控制存储域,那他就可以感染引导区或者MBR。然后通过引导区访问显卡或者声卡并将他们重新编程或者重刷固件(这是因为引导过程的早期阶段,或者说执行SENTER之前并没有VT-d的保护)。显卡或声卡被篡改后,当Dom0启动时就可以实施恶意DMA攻击了。此等攻击手段能够成功的原因主要是Dom0所分配的设备(比如网卡和声卡)被赋予整个Dom0内存域的DMA访问权限。为了抵御类似的攻击手段,虚拟机管控器需要通过hypercall让所有域在虚拟机启动前就开起VT-d保护。
4.2.4TXT技术绕行攻击
Invisiblethings实验室曾经揭露过针对IntelTXT的安全攻击,主要利用了SMM中存在的漏洞对IntelTXT发起攻击。SMM享有系统的最高权限,可以不受控制地执行任意系统指令。而利用TXT指令SENER进入可信环境时并不对系统中已经存在并运行的SMM做完整性校验,因此通过攻击SMM就能够绕过TXT机制对系统执行任何恶意指令,使得系统的安全机制形同虚设。另外,SINIT模块同样存在安全漏洞,能够攻破TXT安全机制。
4.2.5源自BIOS的不可信输入(例如恶意ACPI技术)
Xen虚拟机监控器和Dom0内核在启动过程中处理若干个由BIOS提供的输入数据。包括了BIOS的E820内存映射、BIOS提供的ACPI表等等。所有BIOS提供的输入都应被视作不可信的,处理的时候应该格外谨慎。举例来说,ACPIAML是Dom0内核中实现电源管理功能的一部分,攻击者可以通过篡改ACPI表使得Dom0执行恶意的AML从而达到入侵Dom0的效果。更极端情况下,可以利用虚拟机监控器或Dom0内核中的输入过程处理错误,例如Bios提供的数据存在内部格式错误就会导致缓存溢出,而e820表中如果有太多项就会导致这样的情况发生。
4.2.6源自存储域的加密系统绕行
可信的VM私有块设备加密方案和安全的根文件系统共享机制的实现对于存储域尤为重要。否则一旦攻击者获取了存储的控制权限,那就可以盗取虚拟机的私有数据,而且还能给虚拟机注入恶意代码。
4.2.7源自存储域的存储前端攻击
攻击者一旦控制了存储域,就可以利用那些与存储域的块设备后端进行通讯的虚拟机块前端的漏洞来控制相应虚拟机。但由于块前端驱动十分精简,因此此种攻击成功的概率不高。
4.2.8虚拟机网络代码攻击
控制网络域的攻击者会试图利用虚拟机网络前端或者TCP/IP栈所可能存在的漏洞。一般的TCP/IP栈,相比WiFi栈或者WiFi驱动而言,经过了更为严格的代码测试,因此较难在此栈发现或实施漏洞攻击。
4.3网络为载体的攻击
由于所有开放的网络代码都在非特权网络域内运行,所以没有从本地网络系统直接进行攻击的途径。然而,一旦攻击者设法入侵了网络域(比如通过WiFi驱动漏洞),那就可以尝试运行在其他应用程序虚拟机中的网络堆栈漏洞,即所谓的二阶攻击。
4.4物理方式攻击
物理攻击是一种廉价高效的攻击手段,Qubes在防御物理攻击方面也作了很多工作,但还是有一些方法和途径可以去尝试。比如邪恶女佣攻击、键盘嗅探攻击或者DMA攻击(例如恶意PCMCIA)
由于VT-d的广泛使用,Qubes在设计之初就考虑到了应对多种动态DMA攻击。比方说,当攻击者插入一块特制的PCMCIA卡,试图通过DMA技术直接访问和修改内存,从而达到入侵Dom0、解锁系统或者抓取内存镜像的目的。我们知道,苹果系统在10.8版本之后修改了DMA应用的相关代码,从而杜绝了DMA绕行漏洞。而Qubes的发行版本也同样考虑到了这一点,因此这种方法实现的可能性较小。
参考文献
[1]石文昌.安全操作系统研究的发展.计算机科学,2002,29(6,7).
[2]JeannaN,Matthews,EliM.Dow,etal.RunningXEN:AHands-OnGuidetotheArtofVirtualization[M].2009.
[3]金海等.计算系统虚拟化——原理与应用.北京:清华大学出版社,2008.
[4]R.P.Goldberg.SurveyofvirtualMachineResearch.IEEEComputer,1974,7.
[5]薜海峰,卿斯汉,张焕国.XEN虚拟机分析[J].系统仿真学报,2007,19(23):5556-5558.