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