蔣海霞 周星宇 童瑋
摘要:針對移動存儲設(shè)備在使用中的安全問題,基于文件過濾驅(qū)動技術(shù)設(shè)計開發(fā)了一款能夠?qū)σ苿哟鎯υO(shè)備的讀寫權(quán)限進(jìn)行靈活控制的軟件,功能測試表明該軟件簡便易用,能夠有效地防范電子文件的泄露,增強(qiáng)使用移動存儲設(shè)備的安全性。
關(guān)鍵詞:移動存儲設(shè)備;文件過濾驅(qū)動;讀寫控制
中圖分類號:TP333 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)29-0044-03
隨著USB(universal Serial Bus)技術(shù)的發(fā)展,計算機(jī)的移動存儲介質(zhì)普遍采用U盤或移動硬盤。Uu盤、移動硬盤因其體積小、容量大、不易損壞、攜帶方便等諸多優(yōu)點(diǎn)而備受青睞。但在這類移動存儲設(shè)備的即插即用和便攜的優(yōu)點(diǎn)背后也給信息的保密安全問題帶來了巨大的壓力。
調(diào)查顯示:在各種安全漏洞造成的損失中,30%-40%是由電子文件的泄露造成的。因此,如何對移動存儲設(shè)備進(jìn)行安全管理,防止涉密信息的泄露已經(jīng)成為有關(guān)部門關(guān)注的重點(diǎn)。針對這一情況,我們通過對U盤的存儲機(jī)制、U盤讀寫控制等技術(shù)的研究,利用文件過濾驅(qū)動技術(shù)實現(xiàn)對U盤的授權(quán),開發(fā)了U盤存儲鑒權(quán)認(rèn)證系統(tǒng),進(jìn)一步提升了涉密信息的安全性。
1系統(tǒng)設(shè)計方案
研究開發(fā)U盤存儲鑒權(quán)認(rèn)證系統(tǒng)的目的是防止外部移動存儲設(shè)備未經(jīng)許可就隨意在主機(jī)上進(jìn)行讀寫。通過了解Win-dows家族操作系統(tǒng)的總體結(jié)構(gòu)、Windows重要的內(nèi)核組件,主要對文件系統(tǒng)相關(guān)的內(nèi)核組件和與文件過濾驅(qū)動技術(shù)相關(guān)的內(nèi)核組件進(jìn)行研究,擬采用基于文件過濾驅(qū)動的移動存儲訪問控制方法,該方法通過識別出移動存儲設(shè)備,對其讀寫權(quán)限進(jìn)行禁止、瀏覽、只讀、可寫的控制。
考慮到接入主機(jī)的USB設(shè)備可能還包含有鼠標(biāo)、鍵盤等,它們大多也是基于USB接口,所以系統(tǒng)首先要對接入主機(jī)的USB設(shè)備進(jìn)行識別,以確定是否為移動存儲設(shè)備;在確定接入主機(jī)的是移動存儲設(shè)備后再對其進(jìn)行讀寫權(quán)限和使用操作權(quán)限的細(xì)粒度的控制,即通過文件過濾驅(qū)動程序?qū)尤氲囊苿哟鎯υO(shè)備進(jìn)行讀寫控制??傮w方案如圖1所示。
由此可見,該系統(tǒng)通過對USB存儲設(shè)備的識別定位、移動存儲設(shè)備權(quán)限識別和控制、存儲設(shè)備讀寫控制等幾個環(huán)節(jié)對主機(jī)信息進(jìn)行防護(hù)。
2文件過濾驅(qū)動技術(shù)簡介
2.1基本原理
過濾驅(qū)動屬于內(nèi)核模式驅(qū)動,其依靠掛載在其他驅(qū)動上,對某設(shè)備發(fā)往存在的內(nèi)核模式驅(qū)動的請求進(jìn)行攔截過濾,可以對設(shè)備進(jìn)行功能擴(kuò)展或是數(shù)據(jù)加密等,從而提供附加值。發(fā)往目標(biāo)驅(qū)動的I/O(輸入/輸出)操作請求被過濾驅(qū)動攔截過濾(過濾指監(jiān)控、修改功能驅(qū)動的數(shù)據(jù)流或指令),過濾驅(qū)動通過使用目標(biāo)驅(qū)動提供的服務(wù)或者使用用戶模式、內(nèi)核模式軟件提供的服務(wù)進(jìn)行功能擴(kuò)展。開發(fā)文件系統(tǒng)過濾驅(qū)動是為了提供操作系統(tǒng)不能提供的附加功能,例如操作系統(tǒng)一般對于移動存儲設(shè)備來者不拒,用戶可以對移動存儲設(shè)備上的文件進(jìn)行任意讀寫,這在信息安全管理上就是一個漏洞,本文即通過開發(fā)文件系統(tǒng)過濾驅(qū)動技術(shù),在不改變底層設(shè)備驅(qū)動情況下,提供新的功能,實現(xiàn)對移動存儲設(shè)備的鑒權(quán)與管理。
過濾驅(qū)動工作原理如圖2所示:
當(dāng)用戶發(fā)出對文件進(jìn)行讀寫的操作請求,該請求首先被傳給I/O管理器,其先解析文件路徑,找到符合該功能的文件系統(tǒng)驅(qū)動程序后進(jìn)行發(fā)送。I/O管理器會在內(nèi)部的注冊表中遍歷每個文件系統(tǒng)驅(qū)動,因此只有通過I/O管理注冊的文件系統(tǒng)驅(qū)動才能擁有操作文件的權(quán)利。文件系統(tǒng)要和I/O管理器以及其他重要的內(nèi)核組件進(jìn)行交互。通過設(shè)計和實現(xiàn)文件過濾驅(qū)動,將其附加到文件系統(tǒng)驅(qū)動之上,就可以在I/O管理器發(fā)送IRP(I/O Request Package)給文件系統(tǒng)驅(qū)動程序之前截獲該IRP,并根據(jù)需要進(jìn)行定制。文件系統(tǒng)驅(qū)動程序只有一個控制設(shè)備對象CDO,主要用于接收請求控制文件系統(tǒng)的命令,例如查詢一個卷是否掛載,該訪問請求首先傳遞給I/O管理器,由I/O管理器檢查其是否已掛載,若尚未掛載,則生成掛載IRP,傳遞給文件系統(tǒng)驅(qū)動程序的CDO,請求掛載,這時所設(shè)計開發(fā)的文件過濾驅(qū)動程序?qū)r截并處理該掛載操作。需要說明的是要實現(xiàn)這一目的,文件過濾驅(qū)動必須將自己的CDO附加到文件系統(tǒng)驅(qū)動的CDO之上,這樣I/O管理器在給文件系統(tǒng)驅(qū)動程序的CDO發(fā)送IRP之前,將檢查是否有過濾驅(qū)動的CDO存在,若有多層過濾驅(qū)動,則I/O管理器依據(jù)從上向下的順序依次傳遞IRP請求,從而確保每個過濾驅(qū)動都有機(jī)會處理該請求。
2.2設(shè)計實現(xiàn)
通過上述分析可知,要達(dá)到對移動存儲設(shè)備進(jìn)行鑒權(quán)認(rèn)證的目的,設(shè)計和實現(xiàn)文件過濾驅(qū)動是關(guān)鍵。而文件過濾驅(qū)動的設(shè)計實現(xiàn)的一般步驟如下:
1)過濾驅(qū)動創(chuàng)建設(shè)備對象后附加到目標(biāo)設(shè)備對象,以攔截所有發(fā)往該目標(biāo)設(shè)備對象的請求;
2)加載過濾驅(qū)動,對截獲的IRP進(jìn)行處理;
3)建立完成例程,供被附加的設(shè)備對象完成IRP時調(diào)用;
4)建立刪除例程,在適當(dāng)?shù)臅r候從被附加的目標(biāo)設(shè)備對象解除附加。
要實現(xiàn)對USB存儲設(shè)備的讀寫功能進(jìn)行控制,需要創(chuàng)建能對相關(guān)的IRP進(jìn)行攔截、監(jiān)視、修改的過濾驅(qū)動程序,通過比較論證,采用下層過濾驅(qū)動模型就能夠?qū)崿F(xiàn)對USB存儲設(shè)備的安全控制。控制流程如圖3所示。
首先創(chuàng)建過濾驅(qū)動程序,把想要實現(xiàn)的對IRP操作的函數(shù)加入,接著加載過濾驅(qū)動程序,過濾驅(qū)動安裝到系統(tǒng)里面后,通過對IRP包的攔截過濾,從而實現(xiàn)對USB存儲設(shè)備的讀寫操作進(jìn)行控制。
3系統(tǒng)主要功能模塊
根據(jù)設(shè)計目的,系統(tǒng)主要包括兩個功能模塊:移動存儲設(shè)備識別模塊,移動存儲設(shè)備訪問控制模塊。
3.1移動存儲設(shè)備識別模塊
可以連接計算機(jī)的USB設(shè)備包括U盤、USB鼠標(biāo)、移動硬盤、USB鍵盤等等,從信息安全角度考慮,我們只關(guān)心具有文件存取功能的移動存儲設(shè)備(主要指U盤、移動硬盤),所以首先要識別插入計算機(jī)的USB設(shè)備是否移動存儲設(shè)備。主要有兩種識別方法,一種是在掛載卷時進(jìn)行識別,即在USB設(shè)備插入后,文件過濾驅(qū)動程序要攔截由系統(tǒng)發(fā)起的掛載操作,然后通過讀取設(shè)備對象的屬性來判斷是否移動存儲設(shè)備。另一種方法是在文件讀寫過程中進(jìn)行識別,即通過對IRP堆棧結(jié)構(gòu)中包含的相關(guān)的文件對象中所管理的物理卷設(shè)備的屬性的判斷來進(jìn)行識別
設(shè)計實現(xiàn)時,我們采用第一種掛載時識別的方法來判斷是否移動存儲設(shè)備。
3.2移動存儲設(shè)備訪問控制模塊
訪問控制模塊的控制方法包含兩大類:禁止訪問模式與控制讀寫模式。其中控制讀寫模式又可細(xì)分為瀏覽、只讀、可寫三種訪問方式。禁止訪問模式即表示用戶無權(quán)對移動存儲設(shè)備進(jìn)行任何操作,從而保護(hù)計算機(jī)上信息的安全。瀏覽權(quán)限下,用戶只能瀏覽移動存儲設(shè)備上的文件目錄,但無權(quán)讀取移動存儲中的內(nèi)容。在只讀權(quán)限下,用戶只能讀取移動存儲設(shè)備中的內(nèi)容,不能進(jìn)行拷貝或建立新文檔等寫操作。只有在可寫權(quán)限下,用戶才能對移動存儲設(shè)備進(jìn)行正常的讀寫操作。以上各種訪問權(quán)限均有相應(yīng)的應(yīng)用背景需求。
4系統(tǒng)功能測試
系統(tǒng)功能測試包括過濾驅(qū)動程序設(shè)備句柄能否準(zhǔn)確獲得,驅(qū)動程序是否正確安裝、掛載,功能模塊的功能實現(xiàn)等。其中對移動存儲設(shè)備訪問控制功能的實現(xiàn)是系統(tǒng)設(shè)計的目標(biāo),也是測試重點(diǎn)。測試用到的第三方測試工具包括GenInf、Device-Tree、WinObj等。
4.1禁止模式功能測試
首先通過模式設(shè)置界面對計算機(jī)進(jìn)行U盤控制模式設(shè)置,如圖4所示:
禁止模式設(shè)置成功后插入U盤進(jìn)行測試。結(jié)果如圖5所
在禁止模式下,U盤插入計算機(jī)后,系統(tǒng)提示無法訪問U盤。在安裝了保密系統(tǒng)的計算機(jī)上插入U盤,系統(tǒng)提示“無法訪問未注冊盤”。
4.2瀏覽模式功能測試
瀏覽模式設(shè)置成功后插入U盤進(jìn)行測試,測試結(jié)果如圖6所示:
在瀏覽模式下,U盤插入計算機(jī)后,可瀏覽U盤中的目錄結(jié)構(gòu),但拒絕對文件的訪問。
4.3只讀模式功能測試
只讀模式設(shè)置成功后插入U盤進(jìn)行測試,結(jié)果如圖7所示:在只讀模式下,U盤插入計算機(jī)后,可以只讀方式查看U盤中文件,對U盤不能進(jìn)行“寫”操作。
4.4可寫模式功能測試
可寫模式設(shè)置成功后插入U盤進(jìn)行寫的測試,測試結(jié)果如圖8所示:
在可寫模式下,U盤插入計算機(jī)后,可以對U盤進(jìn)行正常的讀寫操作。
通過功能測試可知,該“U盤存儲鑒權(quán)認(rèn)證系統(tǒng)”使主機(jī)能夠靈活地對外部移動存儲設(shè)備的使用進(jìn)行控制,在一定程度上加強(qiáng)了主機(jī)的信息防護(hù),進(jìn)一步地防范失泄密事件的發(fā)生。
5結(jié)束語
基于文件過濾驅(qū)動技術(shù)的u盤存儲鑒權(quán)認(rèn)證系統(tǒng)通過對U盤的讀寫進(jìn)行控制,實現(xiàn)了對涉密計算機(jī)的信息保護(hù),涉密計算機(jī)初始設(shè)置建議為禁止模式,任何未經(jīng)用戶許可的非法移動存儲設(shè)備都無法從計算機(jī)中拷貝出任何信息,從而使計算機(jī)在用戶離開時也能得到最大限度的保護(hù)。該系統(tǒng)重新設(shè)置權(quán)限的方法簡單易行,具有很強(qiáng)的實用性。