◆王飛平 鄭秀琴
基于Minifilter的USB設備敏感文件泄露監(jiān)控系統(tǒng)
◆王飛平 鄭秀琴通訊作者
(衢州職業(yè)技術學院 設備與實訓管理中心(信息中心) 浙江 324000)
終端可移動存儲設備上文件信息泄露是一個嚴重的問題,提出一種基于Windows文件系統(tǒng)微過濾框架(Minifilter)與POI的USB設備敏感文件泄露監(jiān)控方案。利用Minifilter過濾框架,在可移動存儲設備上對文件創(chuàng)建與寫入行為進行攔截,實現(xiàn)敏感文件信息泄露監(jiān)控。分析及實驗結果表明,該方法能對USB設備敏感文件信息的泄露有較好的監(jiān)控與審計。
文件系統(tǒng)微過濾驅動;WM算法;POI框架;敏感文件信息
網絡信息時代,用于傳遞信息的可移動存儲設備必不可少。正因如此,可移動存儲設備已成為信息泄密的重要工具,由此引發(fā)的信息泄露問題日趨嚴重[1]。為保障可移動存儲設備文件信息的安全,目前采用的方式主要有數(shù)據加密[2]與設備權限訪問控制[3]。數(shù)據加密在很大程度上緩解了可移動存儲設備信息泄密,但存在加密數(shù)據外帶不便等問題。設備權限訪問控制通過控制設備讀寫操作行為,較好的控制數(shù)據可移動存儲設備復制數(shù)據,但因無法區(qū)分正常與非法操作,導致非敏感文件、數(shù)據也被攔截?;谏鲜鰬眠^程中的問題,對辦公類文件敏感內容過濾分析的需求應運而生。通過文件名及后綴查找[4]敏感信息,在一定程度上可檢測文件名導致的信息泄密,但對于通過內容泄密的問題收效甚微。本文根據實際需求,構建一個USB設備的敏感文件泄漏檢測系統(tǒng),發(fā)現(xiàn)敏感文件試圖在USB設備上傳輸時,發(fā)出告警信息。對敏感文件在USB設備上的傳輸行為通過Ring0層的Minifilter監(jiān)控實現(xiàn),Minifilter與Windows文件系統(tǒng)無縫集成,理論上能過濾所有的文件操作行為。對Office類文件內容分析采用Apache POI提取文本信息后采用WM[5]算法過濾敏感關鍵詞信息。本文首先介紹了本系統(tǒng)的目標,其次介紹了USB設備上文件操作行為監(jiān)控的原理,再次介紹了系統(tǒng)關鍵模塊的實現(xiàn),最后對整個監(jiān)控系統(tǒng)做了功能與性能測試。
為了解決實際應用中的問題,使本文介紹的USB設備文件監(jiān)控方案更具有實用性與安全性,提出以下目標:
(1)效率高,因其工作在操作系統(tǒng)Ring0層,性能損失小,基本不影響可移動存儲設備傳輸文件的速度;
(2)監(jiān)控全面,基于Minifilter框架實現(xiàn)監(jiān)控,直接綁定在真實的文件系統(tǒng)上,無須區(qū)分文件后綴,理論上可以攔截USB設備上所有的文件操作行為;
(3)監(jiān)控無延遲,因其工作在操作系統(tǒng)Ring0層,與應用層API HOOK監(jiān)控方案[6]每次進出啟動都需要注入dll導致監(jiān)控生效延遲有區(qū)別;
(4)完備的告警日志,日志項包括:操作進程名稱、進程PID、文件名稱、敏感關鍵詞、機器名稱、訪問時間;
(5)安全性高,基于Ring0級進程保護,防止監(jiān)控系統(tǒng)本身被惡意程序終止;
在采用NT技術框架的Windows操作系統(tǒng)中,文件系統(tǒng)是I/O子系統(tǒng)的重要組件。對于單個文件訪問請求而言,應用層API接口將請求通知I/O管理器,I/O管理器將參數(shù)填充成IRP(I/O Request Packet)包逐級傳遞給下層驅動程序。Minifilter相對于傳統(tǒng)的sfilter[7]是一種新型的過濾器模型(Legacy Filter),它提供的接口解決了sfilter里面的重入問題,同時也提供了一種應用程序與驅動相互通信的方式,其中FilterManager通過檢測文件系統(tǒng)的變化而綁定、解綁定文件系統(tǒng)設備,綁定操作之前先檢查該設備對象是可移動存儲設備。Minifilter通過注冊過濾器回調接口,接管I/O管理器下發(fā)的IRP請求,經本層過濾器驅動處理后,逐級傳遞至底層設備驅動程序完成該IRP請求,通過該機制監(jiān)視可移動存儲設備上的文件操作行為。Minifilter原理如圖1所示。
圖1 Minifilter原理
監(jiān)控系統(tǒng)包括以下幾個模塊:USB設備文件訪問行為監(jiān)視模塊、POI框架解析Office文本內容模塊、WM算法檢索關鍵詞模塊、數(shù)據初始化模塊、告警日志管理模塊。USB設備文件訪問行為監(jiān)視模塊負責提供文件操作事件,POI模塊負責提取Office文件文本內容信息,WM算法檢索關鍵詞模塊負責檢索文本內容中的敏感關鍵詞信息。如圖2所示。
圖2 系統(tǒng)結構圖
系統(tǒng)工作流程如下:
(1)編輯敏感關鍵詞檢索規(guī)則,建立敏感關鍵詞信息庫;
(2)用戶拷貝doc文件至可移動存儲設備;
(3)Minifilter監(jiān)控模塊收到寫入行為后以事件方式通知POI內容提取模塊;
(4)POI內容提取模塊將文件名等信息入隊列,設置事件通知業(yè)務線程池提取該文件文本內容信息;
(5)將提取到的文本內容提交WM關鍵詞檢索模塊,若包含敏感關鍵詞信息,則記錄告警日志行為,反之不處理;
通過Filemon分析USB設備上寫文件操作行為發(fā)現(xiàn),寫文件時都會有如“CREATE-WRITE-CLEANUP-CLOSE”的操作流程。在CREATE后操作回調例程[8]中,獲取文件全路徑及進程PID信息后創(chuàng)建文件上下文與文件綁定。在CLOSE后操作回調例程中,根據當前上下文信息獲取文件操作信息,將文件信息新增至隊列并通知應用程序有新的“寫”事件發(fā)生。CREATE后操作流程如圖3所示。
圖3 CREATE后操作流程圖
CREATE后操作流程:
(1)首先獲得操作對應的卷上下文,若無上下文信息,說明非可移動存儲設備上的CREATE操作;
(2)排除目錄操作,只過濾文件操作。獲取文件全路徑信息與進程相關信息;
(3)創(chuàng)建文件上下文信息,并將其與文件綁定;
CLOSE后操作流程:
(1)獲取卷上下文,若無上下文信息,說明非可移動存儲設備上的CLOSE操作;
(2)獲取文件上下文,若無上下文信息,系統(tǒng)出錯;
(3)將文件信息插入等候隊列同時通知應用程序有新的USB設備寫操作事件;
Minifilter攔截CREATE與CLOSE后操作的函數(shù)原型為:
FLT_POSTOP_CALLBACK_STATUS NTPostOper(PFLT_CALLBACK_DATA Data,
PCFLT_RELATED_OBJECTS FltObjects,
PVOID CompletionContext,
FLT_POST_OPERATION_FLAGS Flags);
參數(shù)Data為文件信息,F(xiàn)ltObjects指向Minifilter的實例,CompletionContext為自定義上下文,F(xiàn)lags為緩沖區(qū)標記。
Apache POI[9]框架提供對Office格式文件讀和寫的功能。本系統(tǒng)封裝POI接口,利用線程池提取Office類文件文本內容信息,該模塊根據文件后綴名區(qū)分類型調用對應的POI組件提取Office標題、正文內容信息,提取后的信息以json格式存儲。POI框架提取文本過程如圖4所示。
圖4 POI框架提取文本內容圖
因關鍵詞規(guī)??赡茌^大,為保證檢索速度,采用多模匹配算法-WM算法,將POI框架提取的文本信息與敏感關鍵詞庫中的數(shù)據比較,若匹配成功則該文件包含敏感信息。WM算法是對單模匹配算法BM[10]的擴展,包括三張核心表:shift表用于記錄文本字符串向右移動的長度,prefix表用于記錄所有模式字符串前綴與模式字符串本身的映射關系,而hash表用于記錄所有模式字符串后綴與模式字符串本身的映射關系。其核心是采用字符串計算shift表進行跳轉,用prefix與hash表計算前后綴的哈希值從可選結果中迅速檢索到完全匹配的子串。
主機:Intel(R) Core(TM) i5-3320M,16GB內存,Win7 X64系統(tǒng)。
依次向可移動存儲設備上拷貝一個文件名為“test.doc”和“test1.xlsx”的文件,test.doc文件內容包含關鍵詞“qzct”,test1.xlsx文件內容包含關鍵詞“testct”和“qzct”,告警日志如圖5所示。
圖5 告警日志
本文分析并闡述了Minifilter和POI在可移動存儲設備敏感文件監(jiān)控系統(tǒng)中的應用以及監(jiān)控系統(tǒng)的設計與實現(xiàn)方法。實驗結果表明:該方法可以高效的監(jiān)控通過USB泄露敏感文件的行為。因Minifilter工作在操作系統(tǒng)Ring0層,故此方法與文件格式無關,具有很好的擴展性,理論上可以監(jiān)控任意后綴名的文件。如需過濾分析PDF格式文件內容,只需增加對應的PDF內容解析模塊即可。
[1]楊思燕.USB可移動存儲設備監(jiān)控軟件研究與實現(xiàn)[J].計算機技術與發(fā)展,2013,23(12):151-154+160.
[2]陶珉. 基于文件過濾驅動的透明加密系統(tǒng)的設計與實現(xiàn)[D].電子科技大學,2012.
[3]趙遠. 基于安全終端的U盤用戶訪問控制技術研究[D].南京理工大學,2009.
[4]王曉箴,嚴堅,吳煥,劉寶旭.Ring0層敏感文件竊泄密監(jiān)測系統(tǒng)[J].計算機工程,2011,37(08):19-21.
[5]Wang,L.-X. and Mendel, J.M. (1992) Generating Fuzzy Rules by Learning from Examples. IEEE Transactions on Systems, Man,and Cybernetics,22,1414-1427.
[6]徐思明,薛質.Windows進程信息注入與API掛鉤技術研究[J].信息安全與通信保密,2010(10):61-63.
[7]馬堯. 基于文件系統(tǒng)過濾驅動的PC文件防護系統(tǒng)的研究與實現(xiàn)[D].蘭州大學,2012.
[8]嚴儀健,王鈞,鄒樂,孟橋. Windows驅動程序設計[J]. 微型機與應用,2001(08).
[9]Anonymous. Microsoft Corp.; Microsoft and Sourcesense Partner to Contribute to Open Source, Apache POI to Support Ecma Office Open XML File Formats[J]. Computer Technology Journal,2008.
[10]A fast string searching algorithm[J] . Robert S. Boyer,J. Strother Moore. Communications of the ACM . 1977(10).