米守防,蘇 飛
(大連民族學(xué)院計算機科學(xué)與工程學(xué)院,遼寧 大連 116605)
基于文件過濾驅(qū)動的移動存儲介質(zhì)讀寫控制
米守防,蘇 飛
(大連民族學(xué)院計算機科學(xué)與工程學(xué)院,遼寧 大連 116605)
分析了文件過濾驅(qū)動的基本技術(shù),并基于文件過濾驅(qū)動實現(xiàn)了對移動存儲介質(zhì)的讀寫控制系統(tǒng),從而有效保證了計算機數(shù)據(jù)的安全。
文件過濾驅(qū)動;移動存儲介質(zhì);安全
近年來,信息安全問題成為人們關(guān)注的焦點。權(quán)威機構(gòu)做的調(diào)查結(jié)果顯示:超過 85%的安全威脅來自單位內(nèi)部。而作為新一代取代軟盤的移動存儲設(shè)備 (如 U盤、移動硬盤、移動光驅(qū)等),因為其使用靈活、方便,使它在企業(yè)信息化的過程中迅速得到普及,越來越多的敏感信息、秘密數(shù)據(jù)和檔案資料被存貯在移動存儲介質(zhì)里,這給企業(yè)信息資源帶來相當(dāng)大的安全隱患。鑒于上述的安全風(fēng)險,應(yīng)該對移動存儲介質(zhì)的使用進(jìn)行管理或控制以避免無限制使用帶來的風(fēng)險,移動介質(zhì)的控制和管理首要的是讀寫的控制。本文介紹了一種基于文件系統(tǒng)驅(qū)動過濾的移動存儲介質(zhì)讀寫控制的方法,并提供了系統(tǒng)設(shè)計的思路和具體實現(xiàn)。
文件系統(tǒng)過濾的目標(biāo),是捕獲Windows系統(tǒng)對文件的種種操作行為,比如文件的創(chuàng)建、打開、讀 /寫、改名 ,目錄的創(chuàng)建、打開、枚舉、改名、刪除等。捕獲對文件的操作,并對其進(jìn)行過濾,能實現(xiàn)很多強大的功能,比如檢查病毒、數(shù)據(jù)加密、數(shù)據(jù)備份、安全監(jiān)控等[1]。用戶進(jìn)程對磁盤上文件的操作由W IN 32子系統(tǒng)調(diào)用相應(yīng)的服務(wù)來代表該進(jìn)程發(fā)出請求。I/O管理器接受到上層傳來的 I/O請求,通過構(gòu)造輸入輸出請求包 IRP(I/O Request Package)來描述這個請求[2],然后向下傳遞給文件系統(tǒng)驅(qū)動、存儲設(shè)備驅(qū)動做后續(xù)處理,低層驅(qū)動處理完畢后把結(jié)果返回給發(fā)出請求的應(yīng)用進(jìn)程,整個過程如圖 1。
圖1 文件系統(tǒng)工作原理
文件過濾驅(qū)動程序是針對文件系統(tǒng)驅(qū)動而言。當(dāng)應(yīng)用程序讀寫文件時,I/O管理器將這些請求變成 IRP發(fā)給文件系統(tǒng)設(shè)備棧,文件系統(tǒng)驅(qū)動程序把文件系統(tǒng)操作轉(zhuǎn)換為響應(yīng)的存儲設(shè)備驅(qū)動程序的操作,并通過 I/O管理器來調(diào)用存儲設(shè)備驅(qū)動程序。I/O管理器支持分層驅(qū)動模型,這樣可以按照人們的需求開發(fā)具有某種功能的驅(qū)動程序插入到這個層次中,捕獲與讀寫請求相應(yīng)的IRP請求,然后再向下傳遞或者直接向上返回結(jié)果。這樣通過文件系過濾驅(qū)動程序構(gòu)造附加設(shè)備對象掛載在文件系統(tǒng)存儲設(shè)備之上,對文件操作的請求能夠被過濾驅(qū)動感知,并能及時獲得移動存儲的硬件信息對讀寫請求進(jìn)行控制,文件系統(tǒng)過濾驅(qū)動工作原理如圖 2。
圖2 文件系統(tǒng)過濾驅(qū)動工作原理
文件系統(tǒng)主要生成兩類設(shè)備:控制設(shè)備(CDO)和卷設(shè)備 (VDO)[3]。文件系統(tǒng)驅(qū)動本身生成一個控制設(shè)備對象,這個設(shè)備對象的主要任務(wù)是修改整個驅(qū)動的內(nèi)部配置。綁定控制設(shè)備對象可以實現(xiàn)移動存儲介質(zhì)的認(rèn)證。另一種由文件系統(tǒng)生成的設(shè)備對象是文件系統(tǒng)“安裝”的卷設(shè)備對象。對卷上的文件進(jìn)行讀寫的 IRP都會發(fā)送到相應(yīng)卷設(shè)備對象上,所以,要捕獲對卷上文件的讀寫操作就必須綁定卷設(shè)備對象[4]。
文件過濾驅(qū)動就裝載在過濾設(shè)備對象上,形成一個分層的堆棧。文件系統(tǒng)的設(shè)備對象總是位于堆棧的底部。任何對于設(shè)備的訪問都是 I/O管理器從堆棧的頂端開始傳遞 IRP請求包的。如果在某個文件系統(tǒng)堆棧的頂端裝載一個文件過濾驅(qū)動程序,則可以截獲 I/O管理器對設(shè)備對象操作的所有 IRP包,通過控制 IRP包實現(xiàn)對設(shè)備的控制。
一個新的移動存儲介質(zhì)一旦被系統(tǒng)發(fā)現(xiàn),就會在文件系統(tǒng)中生成一個卷,獲得卷設(shè)備對象,通過 Io Register Fs Registration Change()可以綁定文件的控制設(shè)備對象。文件系統(tǒng)的控制設(shè)備對象會得到一個主功能代碼是 IRP_M J_FILE_SYSTEM_CONTROL,次功能代碼是 IRP_MN_MOUNT_VOLUM E的 IRP。文件系統(tǒng)過濾驅(qū)動便可以截獲到的卷設(shè)備安裝請求。
通過卷設(shè)備對象的獲取,可以獲知硬件的信息。把獲取的硬件基本信息通過設(shè)備擴展進(jìn)行存儲。當(dāng)卷被加載后,設(shè)備擴展得到數(shù)據(jù)和應(yīng)用程序傳遞的權(quán)限控制字進(jìn)行比較,實現(xiàn)對移動存儲介質(zhì)的控制。
3.1 移動介質(zhì)信息獲取
在WDK中有關(guān)于硬件設(shè)備的數(shù)據(jù)結(jié)構(gòu)STORAGE_DEV ICE_DESCR IPTOR,用來指示存儲硬件設(shè)備的基本信息??梢酝ㄟ^獲取這個數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)來獲取對應(yīng)的硬件基本信息。
typedef struct _STORAGE_DEV ICE_DESCR IPTOR {
……
ULONG VendorIdOffset;//指向供貨商標(biāo)識字符串,沒有數(shù)據(jù)為 0
ULONG ProductIdOffset;//指向生產(chǎn)商標(biāo)識字符串,沒有數(shù)據(jù)為 0
ULONG ProductRevisionOffset;//指向產(chǎn)品版本字符串,沒有數(shù)據(jù)為 0
ULONG SerialNumberOffset;//指向產(chǎn)品序列號字符串,沒有數(shù)據(jù)為 -1
STORAGE_BUS_TYPE BusType;//設(shè)備連接的總線類型
……
} STORAGE_DEV ICE_DESCR IPTOR,*PSTORAGE_DEV ICE_DESCR IPTOR;
通過上述數(shù)據(jù)結(jié)構(gòu)在 BusType獲取可移動存儲介質(zhì)類型,通過 ProductIdOffset和 VendorIdOffset獲取可移動存儲介質(zhì)的品牌和生產(chǎn)廠商[5]。
設(shè)備擴展主要用來維護(hù)設(shè)備狀態(tài)信息、存儲驅(qū)動程序使用的內(nèi)核對象或系統(tǒng)資源 (如自旋鎖)、保存驅(qū)動程序需要的數(shù)據(jù)等。由于大多數(shù)的總線驅(qū)動、功能驅(qū)動和過濾器驅(qū)動都要工作在任意線程上下文,即任意線程都可能成為當(dāng)前線程,所以,設(shè)備擴展是保存設(shè)備狀態(tài)信息和數(shù)據(jù)的主要空間。通過綁定的卷設(shè)備對象,把獲取到的移動存儲介質(zhì)相關(guān)信息存儲到其設(shè)備擴展中。
typedef struct_SFILTER_DEV ICE_EXTENSION
{
……
BOOLEAN IsUsbDisk;//U盤
BOOLEAN IsUsbCdrom;//可移動光驅(qū)
BOOLEAN IsRemovableDisk;//可移動硬盤
BOOLEAN IsVendorId;//廠家信息
……
}SFILTER_DEV ICE_EXTENSION,*PSFILTER_DEV ICE_EXTENSION;
上述數(shù)據(jù)結(jié)構(gòu)在設(shè)備擴展中添加可移動介質(zhì)的相關(guān)信息判斷。
3.2 移動介質(zhì)控制流程
在局域網(wǎng)內(nèi),客戶端加載過濾驅(qū)動,從服務(wù)器端讀取控制權(quán)限字,通過 Device IoControl()函數(shù)將控制碼和請求一起傳遞給驅(qū)動程序。當(dāng)可移動介質(zhì)被加載后,獲取移動存儲介質(zhì)相關(guān)信息,填寫PDEV ICE_EXTENSION等參數(shù)。在讀寫派遣函數(shù)中,首先對設(shè)備擴展信息進(jìn)行判斷,然后判斷控制字是否匹配。這樣就可以實現(xiàn)對可移動存儲介質(zhì)的控制,賦予其相應(yīng)的讀寫權(quán)限??刂品椒鞒虉D如圖 3。
移動存儲介質(zhì)安全管理是信息安全管理的重要組成部分,用戶程序?qū)Υ疟P的訪問請求被 I/O管理器打包成 IRP向下傳遞給文件系統(tǒng)驅(qū)動、存儲設(shè)備驅(qū)動對其進(jìn)行處理,處理完畢把結(jié)果返回給出發(fā)出請求的用戶進(jìn)程,這個過程如圖 1所示。當(dāng)移動存儲設(shè)備接入系統(tǒng)時主功能代碼 IRP_M J_FILE_SYSTEM_CONTROL,次功能代碼 IRP_MN_MOUNT_VOLUM E的安裝請求 IRP便可以被過濾驅(qū)動截獲。在安裝過程中通過賦予移動介質(zhì)不同讀寫權(quán)限來實現(xiàn)對移動存儲介質(zhì)的控制,從而防范移動存儲介質(zhì)可能引起的不安全因素來實現(xiàn)移動存儲介質(zhì)應(yīng)用的安全性。該技術(shù)已經(jīng)集成到了局域網(wǎng)安全控制系統(tǒng)中投入使用,取得了很好的效果。
圖3 移動介質(zhì)控制流程
[1]譚文 ,楊瀟 ,邵堅磊 ,等. 寒江獨釣 ——Windows內(nèi)核安全編程[M].北京:電子工業(yè)出版社,2000.
[2]武安河.Window s2000/XPWDM設(shè)備驅(qū)動程序開發(fā)[M].2版.北京:電子工業(yè)出版社,2005.
[3]侯興超.基于移動存儲設(shè)備管理的主機防信息泄漏系統(tǒng)研究與設(shè)計[D].西安:解放軍信息工程大學(xué),2007.
[4]王黎,蔡皖東.移動存儲介質(zhì)安全管理系統(tǒng)設(shè)計與實現(xiàn)[J].信息安全與通信保密,2007(2):119-121.
[5]王立明,米守防,蘇飛,等.Windows下基于 IRP機制的存儲設(shè)備[J].大連民族學(xué)院學(xué)報,2010(3):244-246.
(責(zé)任編輯 劉敏)
Removable Storage Device Control of R/W Based on File Filter Drive
MI Shou-fang,SU Fei
(College of Computer Science&Engineering,Dalian Nationalities University,Dalian Liaoning 116605,China)
The basic technology of file filter drive are analyzed.The removable storage device control of R/W based on file filter d rive are relized.The safety of computer data are kept in the devise.
file system filter deriver;removable storagem edia;security
TP309 < class="emphasis_bold">文獻(xiàn)標(biāo)志碼:A
A
1009-315X(2011)01-0049-03
2010-06- 07;
2010-09-16
米守防 (1978-),男,回族,山東鄒城人,工程師,主要從事計算機應(yīng)用技術(shù)研究。