[发明专利]一种基于虚拟机的驱动程序加固方法无效
申请号: | 200610037600.0 | 申请日: | 2006-09-08 |
公开(公告)号: | CN101071387A | 公开(公告)日: | 2007-11-14 |
发明(设计)人: | 刘发贵;张亚军;吴庆波 | 申请(专利权)人: | 华南理工大学;广东美泰科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/455 |
代理公司: | 广州粤高专利代理有限公司 | 代理人: | 何淑珍 |
地址: | 510640广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 虚拟机 驱动程序 加固 方法 | ||
技术领域
本发明涉及计算机操作系统的驱动加固技术,特别是涉及一种基于虚拟机技术的驱动加固方法。
技术背景
近年来商用操作系统逐渐应用于关键业务应用中,因此对于操作系统的高可用性要求也提高到了一个新的层次。虽然经过多年的发展,操作系统已经比较成熟和可靠,但仍然会造成大量的系统失效。研究表明驱动程序是造成这些失效的主要原因。斯坦福大学的一项报告指出,Linux的驱动程序要比其他操作系统的驱动程序造成的失效高3-7倍,而Windows 2000的驱动程序问题占造成系统崩溃原因的27%,远高于2%由内核所造成的系统崩溃。如何设计并实现对操作系统中的驱动程序进行加固,使驱动的故障不会影响到内核的正常运行,进而提高系统的可用性就显得非常重要。
从实现方式的角度来分,可将目前主流的驱动加固技术分为四类,硬件实现驱动隔离方法,降低驱动程序优先级方法,软件故障隔离方法,以及使用安全语言编写驱动等。
通过硬件实现驱动隔离方法提高操作系统可靠性主要是i386架构中的段环架构。此类结构的典型例子是Palladium。这些系统支持细粒度的保护,并具有对特权子进程进行构建和隔离的能力。通过添加新的特权子系统可以对操作系统进行真实驱动,这些子系统运行于新的域或段中。但是在这些架构中,恢复都没有得到重视。特别地,对于支持以细粒度方式共享数据的能力,如果一个处于共享状态的模块失效了,对其他正在共享相同资源的模块进行恢复非常困难。段架构不但性能低下,而且编写困难。
降低驱动特权级方法是让驱动程序运行在非内核态的优先级下,这样可以防止设备驱动运行特权指令,访问特权地址空间,由此破坏内核。但是,这样做会带来性能上的比较大的损失,因为每次调用驱动需要陷入内核,在返回时又要更改特权级。L4,Exokernel以及Mach等微内核系统采用了这用技术。
而采用软件故障隔离方法的典型为VINO系统,其通过软件隔离方法对驱动模块的目标代码进行封装,使它只能跳转到自己的代码段,并且只能对自己的数据段进行写操作。因此,驱动程序中所有的跳转目标地址都有相同的高位结构(段标识符),同样,驱动程序中产生的所有合法数据地址都有相同的段标识符。将代码段和数据段分离可以防止驱动修改自己的代码段。这种隔离方式开销较小,但是需要对现有驱动程序进行修改,这对于拥有大量驱动程序的商用操作系统来说困难非常大。
使用安全语言如Java和Modula-3可以有效防止设备驱动程序非控的访问内核内存。但是使用安全语言需要重写驱动,并且在向驱动中安全复制数据时会引入额外的开销。到目前为止,操作系统供应商也不希望用安全语言来实现系统代码。而且,安全语言方法使得利用现有的巨大的代码库变得不可能。
所以目前的驱动隔离是将驱动代码放在单独的逻辑故障域中,本质上是在驱动和系统其他部分之间提供虚拟内存保护.由于只能对内存进行保护,这只能解决部分问题,而对于调度和访问特权指令没有进行处理,而这些方面的故障很容易造成系统的崩溃.
发明内容
本发明的目的在于提供一种对系统性能影响很小的情况下实现对设备驱动程序的隔离和加固,满足关键业务应用对高可靠和高可用性的要求,解决现有驱动模型带来的不安全的驱动加固方法,特别是提供一种基于虚拟机技术的驱动加固方法,从而提高系统的可靠性和可用性。
为了实现上述发明目的,采用的技术方案如下:
一种基于虚拟机的驱动程序加固方法,将驱动程序分为真实驱动程序、虚拟驱动程序和守护驱动程序;
所述真实驱动程序为驱动硬件设备工作的真实代码,将其设置于特权操作系统中,且通过隔离机制与特权操作系统的内核进行隔离;
所述虚拟驱动程序包含驱动硬件设备所需的参数调用的转发代码,将其设置于非特权操作系统中,且通过数据通道与守护驱动程序交互;
将所述守护驱动程序作为虚拟驱动程序和真实驱动程序的沟通桥梁设置于特权操作系统中。
所述特权操作系统为运行硬件设备真实驱动程序的操作系统,其可能被有故障的驱动所破坏,进而破坏整个虚拟机系统,因此需要对真实驱动进行隔离,通过驱动分离,将驱动程序分为虚拟驱动,守护驱动和真实驱动。这样做可以将客户操作系统和真实驱动分离,从而防止真实驱动破坏非特权操作系统,所述非特权操作系统为没有真实驱动,只运行虚拟驱动的操作系统,而运行真实驱动的特权操作系统则由于设置有隔离机制,避免了真实驱动对内核的损坏。
上述技术方案中,所述真实驱动程序与特权操作系统的内核的隔离机制采用页表保护机制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学;广东美泰科技有限公司,未经华南理工大学;广东美泰科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610037600.0/2.html,转载请声明来源钻瓜专利网。