[發(fā)明專利]一種基于虛擬機的驅(qū)動程序加固方法無效
| 申請?zhí)枺?/td> | 200610037600.0 | 申請日: | 2006-09-08 |
| 公開(公告)號: | CN101071387A | 公開(公告)日: | 2007-11-14 |
| 發(fā)明(設(shè)計)人: | 劉發(fā)貴;張亞軍;吳慶波 | 申請(專利權(quán))人: | 華南理工大學(xué);廣東美泰科技有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F9/455 |
| 代理公司: | 廣州粵高專利代理有限公司 | 代理人: | 何淑珍 |
| 地址: | 510640廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 虛擬機 驅(qū)動程序 加固 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計算機操作系統(tǒng)的驅(qū)動加固技術(shù),特別是涉及一種基于虛擬機技術(shù)的驅(qū)動加固方法。
技術(shù)背景
近年來商用操作系統(tǒng)逐漸應(yīng)用于關(guān)鍵業(yè)務(wù)應(yīng)用中,因此對于操作系統(tǒng)的高可用性要求也提高到了一個新的層次。雖然經(jīng)過多年的發(fā)展,操作系統(tǒng)已經(jīng)比較成熟和可靠,但仍然會造成大量的系統(tǒng)失效。研究表明驅(qū)動程序是造成這些失效的主要原因。斯坦福大學(xué)的一項報告指出,Linux的驅(qū)動程序要比其他操作系統(tǒng)的驅(qū)動程序造成的失效高3-7倍,而Windows?2000的驅(qū)動程序問題占造成系統(tǒng)崩潰原因的27%,遠高于2%由內(nèi)核所造成的系統(tǒng)崩潰。如何設(shè)計并實現(xiàn)對操作系統(tǒng)中的驅(qū)動程序進行加固,使驅(qū)動的故障不會影響到內(nèi)核的正常運行,進而提高系統(tǒng)的可用性就顯得非常重要。
從實現(xiàn)方式的角度來分,可將目前主流的驅(qū)動加固技術(shù)分為四類,硬件實現(xiàn)驅(qū)動隔離方法,降低驅(qū)動程序優(yōu)先級方法,軟件故障隔離方法,以及使用安全語言編寫驅(qū)動等。
通過硬件實現(xiàn)驅(qū)動隔離方法提高操作系統(tǒng)可靠性主要是i386架構(gòu)中的段環(huán)架構(gòu)。此類結(jié)構(gòu)的典型例子是Palladium。這些系統(tǒng)支持細粒度的保護,并具有對特權(quán)子進程進行構(gòu)建和隔離的能力。通過添加新的特權(quán)子系統(tǒng)可以對操作系統(tǒng)進行真實驅(qū)動,這些子系統(tǒng)運行于新的域或段中。但是在這些架構(gòu)中,恢復(fù)都沒有得到重視。特別地,對于支持以細粒度方式共享數(shù)據(jù)的能力,如果一個處于共享狀態(tài)的模塊失效了,對其他正在共享相同資源的模塊進行恢復(fù)非常困難。段架構(gòu)不但性能低下,而且編寫困難。
降低驅(qū)動特權(quán)級方法是讓驅(qū)動程序運行在非內(nèi)核態(tài)的優(yōu)先級下,這樣可以防止設(shè)備驅(qū)動運行特權(quán)指令,訪問特權(quán)地址空間,由此破壞內(nèi)核。但是,這樣做會帶來性能上的比較大的損失,因為每次調(diào)用驅(qū)動需要陷入內(nèi)核,在返回時又要更改特權(quán)級。L4,Exokernel以及Mach等微內(nèi)核系統(tǒng)采用了這用技術(shù)。
而采用軟件故障隔離方法的典型為VINO系統(tǒng),其通過軟件隔離方法對驅(qū)動模塊的目標(biāo)代碼進行封裝,使它只能跳轉(zhuǎn)到自己的代碼段,并且只能對自己的數(shù)據(jù)段進行寫操作。因此,驅(qū)動程序中所有的跳轉(zhuǎn)目標(biāo)地址都有相同的高位結(jié)構(gòu)(段標(biāo)識符),同樣,驅(qū)動程序中產(chǎn)生的所有合法數(shù)據(jù)地址都有相同的段標(biāo)識符。將代碼段和數(shù)據(jù)段分離可以防止驅(qū)動修改自己的代碼段。這種隔離方式開銷較小,但是需要對現(xiàn)有驅(qū)動程序進行修改,這對于擁有大量驅(qū)動程序的商用操作系統(tǒng)來說困難非常大。
使用安全語言如Java和Modula-3可以有效防止設(shè)備驅(qū)動程序非控的訪問內(nèi)核內(nèi)存。但是使用安全語言需要重寫驅(qū)動,并且在向驅(qū)動中安全復(fù)制數(shù)據(jù)時會引入額外的開銷。到目前為止,操作系統(tǒng)供應(yīng)商也不希望用安全語言來實現(xiàn)系統(tǒng)代碼。而且,安全語言方法使得利用現(xiàn)有的巨大的代碼庫變得不可能。
所以目前的驅(qū)動隔離是將驅(qū)動代碼放在單獨的邏輯故障域中,本質(zhì)上是在驅(qū)動和系統(tǒng)其他部分之間提供虛擬內(nèi)存保護.由于只能對內(nèi)存進行保護,這只能解決部分問題,而對于調(diào)度和訪問特權(quán)指令沒有進行處理,而這些方面的故障很容易造成系統(tǒng)的崩潰.
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種對系統(tǒng)性能影響很小的情況下實現(xiàn)對設(shè)備驅(qū)動程序的隔離和加固,滿足關(guān)鍵業(yè)務(wù)應(yīng)用對高可靠和高可用性的要求,解決現(xiàn)有驅(qū)動模型帶來的不安全的驅(qū)動加固方法,特別是提供一種基于虛擬機技術(shù)的驅(qū)動加固方法,從而提高系統(tǒng)的可靠性和可用性。
為了實現(xiàn)上述發(fā)明目的,采用的技術(shù)方案如下:
一種基于虛擬機的驅(qū)動程序加固方法,將驅(qū)動程序分為真實驅(qū)動程序、虛擬驅(qū)動程序和守護驅(qū)動程序;
所述真實驅(qū)動程序為驅(qū)動硬件設(shè)備工作的真實代碼,將其設(shè)置于特權(quán)操作系統(tǒng)中,且通過隔離機制與特權(quán)操作系統(tǒng)的內(nèi)核進行隔離;
所述虛擬驅(qū)動程序包含驅(qū)動硬件設(shè)備所需的參數(shù)調(diào)用的轉(zhuǎn)發(fā)代碼,將其設(shè)置于非特權(quán)操作系統(tǒng)中,且通過數(shù)據(jù)通道與守護驅(qū)動程序交互;
將所述守護驅(qū)動程序作為虛擬驅(qū)動程序和真實驅(qū)動程序的溝通橋梁設(shè)置于特權(quán)操作系統(tǒng)中。
所述特權(quán)操作系統(tǒng)為運行硬件設(shè)備真實驅(qū)動程序的操作系統(tǒng),其可能被有故障的驅(qū)動所破壞,進而破壞整個虛擬機系統(tǒng),因此需要對真實驅(qū)動進行隔離,通過驅(qū)動分離,將驅(qū)動程序分為虛擬驅(qū)動,守護驅(qū)動和真實驅(qū)動。這樣做可以將客戶操作系統(tǒng)和真實驅(qū)動分離,從而防止真實驅(qū)動破壞非特權(quán)操作系統(tǒng),所述非特權(quán)操作系統(tǒng)為沒有真實驅(qū)動,只運行虛擬驅(qū)動的操作系統(tǒng),而運行真實驅(qū)動的特權(quán)操作系統(tǒng)則由于設(shè)置有隔離機制,避免了真實驅(qū)動對內(nèi)核的損壞。
上述技術(shù)方案中,所述真實驅(qū)動程序與特權(quán)操作系統(tǒng)的內(nèi)核的隔離機制采用頁表保護機制。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華南理工大學(xué);廣東美泰科技有限公司,未經(jīng)華南理工大學(xué);廣東美泰科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200610037600.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





