王文奇,李 勇,關(guān)云云
(1.計算機信息系統(tǒng)安全評估河南省工程實驗室 鄭州市計算機網(wǎng)絡(luò)安全評估重點實驗室,鄭州 450007;2.安陽師范學院 物理與電氣工程學院,河南 安陽 455002; 3.中原工學院 圖書館,鄭州 450007)
隨著信息化技術(shù)的快速發(fā)展,各種包含文本信息的電子文檔類型日益增多,這時針對文本信息提取及快速檢索分析就是一個亟待解決的問題,而且其適用于敏感信息分析。目前,國內(nèi)外對敏感信息分析進行了大量研究。文獻[1]提出一種基于半監(jiān)督聚類的文檔敏感信息推導(dǎo)方法,側(cè)重于在獲取文檔中挖掘出敏感信息。文獻[2]在網(wǎng)絡(luò)信息中敏感信息的量化分析方面進行了研究。針對文本信息提取方面,文獻[3]采用BP神經(jīng)網(wǎng)絡(luò)對圖像中的文本信息進行了識別。文獻[4]用機器分類學習的方法針對調(diào)整敏感詞策略進行了研究。文獻[5]則利用語法分析技術(shù)在敏感詞語義方面進行了研究。
目前文本信息提取及檢索研究主要側(cè)重于在保證獲得文檔信息情況下,分析文本信息特征。在實際應(yīng)用中,隨著操作系統(tǒng)的安全性增強、硬件性能提升以及各種文本信息電子文檔數(shù)據(jù)類型的增多,如何高效地提取及檢索文本信息是一個必須面對的問題,當前主要面臨如下挑戰(zhàn):1)無法適應(yīng)復(fù)雜環(huán)境下文本信息提取及分析,不同的軟件甚至相同軟件的不同版本都可能將文本信息保存于不同位置,只是針對特定位置、特定格式的分析無法適應(yīng)日益復(fù)雜的計算機環(huán)境;2)用戶權(quán)限的限制,隨著操作系統(tǒng)安全性提高,普通用戶不具有所有資源訪問能力,如Linux下只有root用戶擁有搜索所用文件的權(quán)限,相比之前的Windows操作系統(tǒng),Windows7用戶管理更為嚴格,要求系統(tǒng)安裝必須是NTFS格式,引入用戶帳戶控制(User Account Control,UAC)安全模式[6],即使Administrator也有許多無法訪問的目錄和文件;3)基于大存儲器的文本信息提取及分析,當前TB數(shù)量級的硬盤逐漸成為基本配置,在進行文本信息提取及檢索時,就需要包括文件內(nèi)容提取以及多個文本詞快速匹配,如果搜索算法不合理,將極大提高分析時間成本,影響分析的檢查效果,尤其當分析的存儲器容量較大時。
針對上述問題,本文以NTFS為例,通過底層解析磁盤文件并深入分析常用Office系列文檔格式,設(shè)計并行快速多詞匹配算法。
針對Windows系統(tǒng),本文設(shè)計的文本信息分析系統(tǒng)框架如圖1所示。系統(tǒng)首先基于XML表達的不同類型文檔提取文本信息,其次采用基于多核的并行技術(shù)根據(jù)關(guān)鍵詞檢索分析提取文本信息,最后輸出信息分析結(jié)果。其中,存儲器文件文本信息提取模塊不是通過操作系統(tǒng)提供文件系統(tǒng),而是采用磁盤文件系統(tǒng)直接提取所有存儲器信息;注冊表文本信息提取模塊用于提取注冊表中指定位置的文本信息;系統(tǒng)日志文本信息提取模塊檢索系統(tǒng)日志中指定位置文本信息;特定文件文本信息提取是通過操作系統(tǒng)提供的文件系統(tǒng)檢索指定位置文本信息。
圖1 文本信息深度搜索系統(tǒng)框架
文本信息深度提取解決思路是:對于特定位置文本首先需要通過設(shè)計細粒度的表達方式將其表達出來,然后在檢索匹配時,對于短文本如文檔的作者、摘要等信息直接匹配搜索,對于長文本如文檔內(nèi)容,設(shè)計并行匹配算法高效檢索匹配;而對于不同類型文檔文件,由于一般沒有提供直接提取特定位置文本信息接口,需要設(shè)計專門的分析文檔格式,以及算法提取。因此,該系統(tǒng)需要解決以下關(guān)鍵問題:
1)信息的細粒度表達,設(shè)計能夠表達各種類型文本信息特征的表達規(guī)則。
2)不同類型文檔文本信息提取,如各種Office系列文檔、PDF文檔以及其他不同類型文檔。
3)并行分析算法設(shè)計,充分利用多核處理器等硬件資源來達到快速檢索多關(guān)鍵詞的目的。
如果在關(guān)鍵詞匹配時直接定位其特定位置,將極大提高關(guān)鍵詞匹配效率。有2種類型文件可以直接表示位置:一是文檔中的不同類型信息,這些信息有自己特定位置,如Word文檔的作者信息、文件內(nèi)容、批注信息等;二是操作系統(tǒng)及應(yīng)用軟件將敏感信息存儲于系統(tǒng)不同位置,系統(tǒng)信息主要包括注冊表、日志等,如常用軟件火狐瀏覽器Firefox的書簽信息位于文件places.sqlite[7]中、Office系列文檔及PDF文檔的最近訪問記錄位于注冊表中特定位置。在上述2種類型關(guān)鍵詞信息表達中,前者信息是固定的位置,易于描述;而后者在Windows系統(tǒng)中可能由注冊表、日志、特定位置文件綜合表達。
Windows系統(tǒng)除了在特定文件中記錄用戶信息之外,記錄系統(tǒng)和用戶信息主要位于注冊表和日志中,其中注冊表是Microsoft Windows中的一個重要的數(shù)據(jù)庫,用于存儲系統(tǒng)和應(yīng)用程序的設(shè)置信息[8];系統(tǒng)日志是記錄系統(tǒng)中硬件、軟件和系統(tǒng)問題的信息,保存了大量的用戶使用或操作信息的記錄[9]。
注冊表是Windows的一個內(nèi)部數(shù)據(jù)庫,是按照子樹、子樹的項、子項和值項組織的樹狀層次性結(jié)構(gòu);系統(tǒng)日志信息存放于注冊表的EventLog主鍵下,許多應(yīng)用軟件也是將其日志信息存放于該主鍵下,系統(tǒng)日志也可以認為是一種簡單的樹形結(jié)構(gòu);顯然文件系統(tǒng)也是一個樹形結(jié)構(gòu),需要把這種樹型結(jié)構(gòu)特征表達出來。
XML是一種允許用戶對自己的標記語言進行定義的源語言,可以用來標記數(shù)據(jù)、定義數(shù)據(jù)類型。也可以把XML文檔看作樹形結(jié)構(gòu),從根節(jié)點開始展開各個子節(jié)點,因此XML和注冊表、日志等一樣具有樹型特征,為定義描述規(guī)則奠定基礎(chǔ)。為描述關(guān)鍵詞信息,有如下定義:
定義1根節(jié)點RN為
定義2子節(jié)點CN由四元組< LOCAL,TYPE,CUR,CN>組成,元素含義同定義1。
例如Word 2007最近打開文檔是保存于注冊表以下位置HKEY_CURRENT_USERSoftwareMicrosoft Office12.0WordFile MRU,其中,12.0表示版本信息,不同Office版本信息編號不同。同版本的Office系列軟件則位于“12.0”下的其他節(jié)點,表達如下:
RootNode > < Filter Begin= "*" In= "1"/> ChildNode > ChildNode > RootNode > 上述關(guān)鍵詞信息表達包含2種類型信息,其中,第1個根節(jié)點表示檢索SoftwareMicrosoftWindowsCurrentVersion,ExplorerRecentDocs及其子節(jié)點下所有項值,表示由操作系統(tǒng)記錄的當前計算機中最近打開文檔位置;第2個根節(jié)點為檢索各種版本的Microsoft Office系列軟件的最近打開文檔,即由不同版本Office系列軟件記錄的最近打開文檔記錄,表達規(guī)則不隨軟件的更新而變化,大大增加了分析系統(tǒng)的通用性。 讀取磁盤文件是檢索敏感信息的主要方式之一。如果直接解析磁盤并讀取磁盤中文件信息,能夠避開操作系統(tǒng)權(quán)限的限制,甚至可以利用文件格式系統(tǒng),獲取被刪除的文件信息。 直接讀取存儲器信息有2種方法:一種是不考慮文件系統(tǒng)格式而直接讀取存儲器信息的二進制流,缺點是由于其面對的是二進制信息,信息之間沒有關(guān)聯(lián)性分析,無法獲取信息的含義,同時無法考慮到字符的多種編碼可能,如漢字的GBK、UTF8、UTF16等多種編碼方式;另一種則是分析文件系統(tǒng)格式,按文件或目錄讀取,從而根據(jù)文件類型獲取文件結(jié)構(gòu),進而獲取文件的字符編碼以及內(nèi)容信息,并進行細粒度的敏感信息分析,缺點是其需要分析研究FAT32、NTFS、EXT等系列的磁盤文件格式。 本文以目前廣泛使用的NTFS為例分析提取文件,NTFS中所有對象都是文件,所有文件和目錄均通過主文件表(Master File Table,MFT)來確定其在磁盤上的存儲位置[10]。MFT由元文件和普通文件組成,元文件保存NTFS的操作日志、卷分配位置、壞簇文件等底層信息。其中,日志文件是NTFS為實現(xiàn)可恢復(fù)性和安全性而設(shè)計的,當系統(tǒng)運行時,NTFS就會在日志文件中記錄所有影響NTFS卷結(jié)構(gòu)的操作,包括文件的創(chuàng)建和改變目錄結(jié)構(gòu)的命令,因此通過該日志文件可以獲取用戶對文件的操作,獲取用戶為應(yīng)付敏感信息檢查而刪除相關(guān)信息的行為。 在NTFS文件系統(tǒng)中,每個文件或目錄都對應(yīng)一個或多個MFT記錄,每個MFT記錄大小為1 KB,每一個記錄都有一個64位的唯一有序序列號,對于刪除的文件或目錄,并不是刪除對應(yīng)的MFT記錄而只是修改MFT記錄狀態(tài)。MFT記錄由記錄頭和一組屬性組成(如標準屬性、文件屬性、安全屬性、文件數(shù)據(jù)、索引根和索引分配等)。其中,MFT的文件屬性包含文件或目錄的名稱、文件大小、創(chuàng)建時間、訪問時間、最后修改時間以及父級目錄的MFT序列號等(如表1所示),因此通過MFT記錄可以讀取磁盤文件、目錄屬性。MFT的DATA屬性包含文件或目錄的內(nèi)容信息,小文件內(nèi)容直接存儲于DATA屬性中,其他文件或目錄的內(nèi)容保存于磁盤其他位置并在DATA中記錄,從而根據(jù)DATA屬性可以讀取文件內(nèi)容。 表1 MFT文件屬性內(nèi)容 基于以上分析,被刪除文件只是對MFT記錄設(shè)置刪除標志,如果沒有被覆蓋則文本信息也可以被提取。NTFS磁盤文件信息提取算法描述如下: 1)讀取磁盤分區(qū),如果是NTFS格式,裝載MFT記錄集。 2)遍歷MFT記錄,根據(jù)解析的敏感信息規(guī)則,判斷信息是否需要檢測分析。 3)采用并行搜索技術(shù)檢索文件內(nèi)容敏感信息,如果發(fā)現(xiàn)敏感信息,根據(jù)記錄父MFT序列號逐級獲得父目錄直至根目錄,獲取文件位置,輸出檢索結(jié)果。其中,并行搜索算法描述見第4節(jié)。 當前,存儲文檔信息的主要格式有純文本文檔、微軟的Office系列文檔(包括Word、PPT以及Excel等)、PDF、以及金山WPS等。除純文本文檔外,其他類型文檔都定義了自己的文檔格式,相應(yīng)支持公司也提供了對應(yīng)的接口。但是這些接口存在以下缺陷:接口需要特定的讀取文件操作,無法采用上述基于底層分析磁盤文件系統(tǒng)讀取文件;無法直接解析特定信息;不同的版本還需要使用不同的組件;有些組件需要支持運行環(huán)境(如.NET)。 本文以當前最常用的Office系列文檔為例研究文本提取技術(shù),目前有開源的軟件可以讀取或編輯Office文檔,但是存在以下問題:這些開源軟件具有特定的功能,如DocToText主要適用于將文檔轉(zhuǎn)換為純文本文件[11],且只適用于Word系列;其采用解釋性語言開發(fā),運行效率較低,如Apache基于Java開發(fā)的POI[12]。因此,這些開源軟件均不適用直接對Office文檔高效提取分析,需要對這些文件格式進行分析并提取文本信息,從而進行細粒度檢索。 微軟的Office文檔數(shù)據(jù)格式主要分為2種:使用自定義二進制格式的2007之前版本(不包含2007版)和2007之后版本。微軟于2008年向軟件開發(fā)者開放Office二進制文件格式的技術(shù)文檔,并許諾不會因為侵權(quán)而被起訴[13]。 2007之前版本Office文件是基于復(fù)合二進制格式(Compound File Binary File Format,CFBFF)保存[14],該格式可以保存文本、圖形及多媒體信息。復(fù)合文檔中每一種數(shù)據(jù)是單元(Directory),單元數(shù)據(jù)存儲于數(shù)據(jù)流(Streams),如文檔摘要單元(Document Summary)、Word單元、Excel單元等。數(shù)據(jù)流按照數(shù)據(jù)扇區(qū)(Data Sector)存儲,數(shù)據(jù)扇區(qū)是一個邏輯扇區(qū)鏈,不一定是連續(xù)的,需要扇區(qū)鏈映射表(File Allocation Table,FAT)保存邏輯扇區(qū)鏈的信息。數(shù)據(jù)扇區(qū)有2種大小不等的扇區(qū)塊類型:分別是正常扇區(qū)(Normal Sector,長度512 Byte或4 096 Byte)和小扇區(qū)(Mini Sector,長度64 Byte)。正常扇區(qū)以512 Byte為主,用于存儲正常的數(shù)據(jù),幾乎所有的文檔內(nèi)容存儲于正常扇區(qū)數(shù)據(jù)流;為防止數(shù)據(jù)量小的單元(如文檔摘要信息等)造成空間浪費,采用小扇區(qū)存儲,小扇區(qū)邏輯鏈也是存儲于正常扇區(qū)中。文檔頭中前512 Byte包含文件版本信息、單元信息、FAT信息等。由于空間限制FAT只包含前109塊,當文件數(shù)據(jù)超過109塊時,在已有扇區(qū)塊中保存FAT信息。因此,需要首先解析前512 Byte,解析文檔包含單元、FAT信息,并重建單元FAT邏輯存儲鏈表,進而讀取單元數(shù)據(jù)流并進一步分析。 每種單元都有自己的數(shù)據(jù)格式,敏感信息分析主要需要分析以下數(shù)據(jù)格式:一種是通用單元(即各種Office文件都包含的單元),主要包含摘要單元(Document Summary Information和Summary Information),其可以提取文檔的作者、標題、文檔大小、創(chuàng)建時間,訪問時間等信息;另一種是不同類型文檔的特定單元,如WordDocument單元(Word數(shù)據(jù))、Workbook單元(Excel數(shù)據(jù))、PowerPoint Document單元(PPT數(shù)據(jù))。 對于Word類型數(shù)據(jù),數(shù)據(jù)流中文本信息主要包含正文、頁腳、頁眉、批注、尾批注、文本框內(nèi)容和頁眉文本框[15]類型。Word流開始位置定義Word版本(Word97、Word2000等)、是否寫保護、文檔是否加密等文檔性質(zhì)信息。根據(jù)Word數(shù)據(jù)流格式以及文本信息的總字數(shù),可以解析出各類型文本在Word流中的位置,進而定位提取文本信息。 對于Excel類型數(shù)據(jù),數(shù)據(jù)格式為BIFF(Binary Interchange File Format)系列版本[16],不同的BIFF對應(yīng)Excel不同的版本,目的是以較高的效率存儲不同類型文本信息,如一般亞洲文字采用雙字節(jié)UNICODE編碼方式,英文采用單字節(jié)ASCII編碼方式。微軟定義了將近400種記錄類型,根據(jù)數(shù)據(jù)類型的不同將數(shù)據(jù)保存于不同的記錄中,每個記錄以不同編號(ID)區(qū)分,每個記錄的最大長度是8 228 Byte(BIFF8及之后版本)或2 084 Byte(BIFF7及之前版本)。當一個記錄存儲的內(nèi)容超過該長度時,其就存儲于CONTINUE(0x003c)類型記錄中。這些記錄分布于不同記錄集:各sheet共享的記錄分布于公用記錄集(Global records);每個sheet擁有各自的私有記錄集。記錄采用線性存儲,各記錄集之間由BOF(0x0809)類型記錄區(qū)隔。文本信息主要存儲于以下記錄:1)SST(Sharing String Table 0x00FC),SST記錄中采用BIFF格式保存文字信息,除了數(shù)字信息,sheet表中每一項文本信息作為一個字符串存儲于SST記錄;2)BOUNDSHEET(0x0085),該記錄包含各個sheet的名稱。其余如數(shù)字類型的記錄,因其作為敏感信息的可能性較小不予考慮。因此,Excel數(shù)據(jù)主要的解析流程為:解析BOUNDSHEET 記錄分析sheet名稱,解析SST記錄和CONTINUE記錄解析文本信息,并進行敏感信息分析。 PPT類型數(shù)據(jù)存儲于單元PowerPoint Document,其數(shù)據(jù)也是由不同類型的記錄組成。總體而言,記錄有2種類型:容器記錄(Container Record)和原子記錄(Atom Record)。容器記錄只用于包含子記錄,它表示不同子記錄的含義,如SlideHeadersFootersContainer(0x0FD9)表示側(cè)邊腳注信息;不同種類的原子記錄由不同數(shù)據(jù)類型組成[17],如文本記錄、聲音記錄等。因此,與Excel類型記錄集是線性存儲不同,PPT類型記錄是樹型結(jié)構(gòu),需要按照樹的方式遞歸遍歷所有容器記錄,根據(jù)原子記錄的類型提取文本信息。提取文本信息時根據(jù)原子記錄判斷文本的編碼方式,包含文本信息的原子記錄類型主要有:1)TextCharsAtom(0xFA0),是以ANSI方式多字節(jié)存儲的字符串信息;2)CString(0x0FBA),是以UNICODE方式雙字節(jié)存儲的字符串信息。根據(jù)這些記錄的父記錄類型即容器記錄類型判斷文本信息的含義,可以搜索的敏感信息類型包括:PPT內(nèi)容、批注作者、批注內(nèi)容、鏈接內(nèi)容,幻燈片模板信息。 各類型Office可直接定位深度搜索敏感信息位置總結(jié)如表2所示。 表2 Office系列文檔敏感信息搜索位置 2007之后版本(包含2007版本)Office文件數(shù)據(jù)格式主要采用歐洲計算機制造商協(xié)會定義的Office Open XML 標準格式(OOXML),并采用ZIP技術(shù)將文檔壓縮,這種格式的優(yōu)點是易于在異構(gòu)環(huán)境下操作。該格式中Office文檔實際上由多個XML文件和目錄構(gòu)成的壓縮文件組成。與2007之前版本格式對應(yīng),它是以數(shù)據(jù)單元存儲區(qū)分不同類型文檔,不同單元數(shù)據(jù)存儲于不同目錄中,如Word數(shù)據(jù)存儲于Word目錄,數(shù)據(jù)單元中不同類型的信息存儲于不同XML文件,如Word正文內(nèi)容存儲于document.xml,頁腳存儲于文件footer*.xml,因此可以采用ZIP技術(shù)將Office文檔解壓,然后基于XML技術(shù)以及XPath技術(shù)搜索定位出文本信息,進而提取分析。 綜上所述,本文設(shè)計的Office文檔信息提取算法框架如圖2所示。 圖2 Office系列文檔文本提取算法框架 當前,隨著多核計算機成為近幾年的熱點,多核編程也經(jīng)歷一場變革。各廠商為適應(yīng)這一趨勢推出眾多并行編程模式:如Intel的線程構(gòu)建模塊(Threading Building Blocks,TBB),微軟的并行模式庫(Parallel Patterns Library,PPL)和蘋果公司的OpenCL等。其中,TBB是內(nèi)嵌于Intel的編譯器,Intel支持效果較好;OpenCL適應(yīng)于異構(gòu)平臺框架,在CPU、GPU支持下支持圖形等數(shù)字并行計算,效果較好;鑒于當前個人用戶主要使用Windows平臺,并行計算為字符串匹配,因此本文采用PPL編程模型。 并行編程可以從2個角度考慮:數(shù)據(jù)并行化和任務(wù)并行化。數(shù)據(jù)并行化處理單一操作的多重輸入,適用于多組數(shù)據(jù)的相同獨立性操作,在PPL中采用并行循環(huán)函數(shù)實現(xiàn);任務(wù)并行化則側(cè)重于處理多個操作,適用于同一時間內(nèi)異步操作,在PPL中采用task_group類來管理,它與采用多線程技術(shù)類似,但是其由于底層操作系統(tǒng)支持而更高效[18]。 本文系統(tǒng)設(shè)計中檢索分析主要有2個層次:其一是文件文本信息提取,由于其是不同類型文檔分析,適合采用任務(wù)并行化方式實現(xiàn);其次是文本字符串檢索分析,當字符串內(nèi)容較長時,如Word文檔的正文內(nèi)容或者純文本文檔等,關(guān)鍵詞較多則消耗資源較多,需要采用并行化處理。因此需要將字符串分割,數(shù)據(jù)并行化處理。 字符串分割時需要解決2個問題:其一是同一字符不能分割到不同字符段,字符可能占用多個字節(jié),如漢字采用GBK編碼時,可能是2字節(jié)表示;其二是同時保證分割的各個數(shù)據(jù)段之間至少重復(fù)一個最長關(guān)鍵詞長度。為此采用冗余分段方式,由于當前不論何種編碼方式,單個字符最大長度為4 Byte,將字符串分割后,不同段之間至少重復(fù)敏感信息詞的最大長度加4。 采用PPL編程模型,算法描述如下: parallel_for_each(vc.begin(),vc.end(),[&](char* pstr1) { Thread_Strindex_BF(pstr1,ntemp,flag.c_str()); } }); 其中,vc為分割的字符串段數(shù)組,由于PPL模型中根據(jù)處理器個數(shù)來確定同時處理的數(shù)據(jù)個數(shù),因此字符串分割的個數(shù)決定于處理器個數(shù)。 讀取磁盤文件需要頻繁地申請和釋放內(nèi)存,而申請釋放內(nèi)存需要消耗大量的資源,易于產(chǎn)生內(nèi)存碎片,操作系統(tǒng)后臺調(diào)度整理內(nèi)存碎片也會占用系統(tǒng)資源[19],從而降低檢索匹配的效率。為此,需要設(shè)計高效的內(nèi)存管理算法。 考慮到讀取磁盤信息是串行的,而搜索匹配算法是并行的,設(shè)計基于串行申請和并行回收的內(nèi)存資源調(diào)度算法,如圖3所示。 圖3 串行資源申請及并行回收算法 首先申請一大塊內(nèi)存Buffer,并設(shè)置2種指針:FreeBegin指針指向Buffer申請空閑空間開始位置;Cur指針指向Buffer已占用空間起始位置。 當申請空間時,先查看是否存在滿足條件的連續(xù)空間,如果存在就直接申請,否則等待直到滿足條件??臻e空間存在2種情況:一種是Cur位于FreeBegin之后,表示FreeBegin與Cur之間為一塊空閑區(qū)域,直接根據(jù)該空閑空間判斷;另一種則是Cur位于FreeBegin之前,表示有Buffer起始端Begin到Cur之間及FreeBegin到Buffer尾端End 2塊連續(xù)空間,這時需先判斷FreeBegin與End之間內(nèi)存是否符合要求,不符合則判斷Begin到Cur之間內(nèi)存是否符合要求,直接從Begin端開始申請。 當數(shù)據(jù)塊Data回收時,如果回收塊的起始位置Start不等于Cur,這時先把回收塊信息插入按地址排序的鏈表FreeList;如果Start等于Cur,則回收Data塊并移動Cur指針,并從FreeList鏈表中刪除滿足條件的回收塊,同時移動Cur指針。如果內(nèi)存空間全部回收(即FreeBegin等于Cur),則令FreeBegin、Cur同時指向開始位置。 基于上述框架和算法,語言采用C++11標準,IDE采用Visual Studio 2013,本文開發(fā)出深度敏感檢查工具FindConfidenDeep(FCD)系統(tǒng)。 實驗環(huán)境主機配置為Intel(R)Core(TM)i7,8核主頻2.93 GHz,8 GB內(nèi)存,操作系統(tǒng)為64位Windows7.0。 Windows7.0系統(tǒng)中自帶文件搜索功能,可以對文件名以及常見文檔的文件內(nèi)容進行搜索,在設(shè)置索引搜索功能的情況下可以較大地提高搜索速度。RG涉密信息自檢查工具是RG實驗室推出的深度涉密信息檢查工具,可以獲取系統(tǒng)運行、上網(wǎng)信息以及文檔信息并進行提取分析。為此,采用Windows 7.0系統(tǒng)和RG檢索工具作為實驗對比檢索工具。 表3為Windows7.0系統(tǒng)、RG檢索工具和FCD系統(tǒng)的功能對比,圖4為不同敏感詞個數(shù)下的檢索實驗結(jié)果。 表3 不同關(guān)鍵詞信息檢索工具功能對比 圖4 關(guān)鍵詞分析工具在多關(guān)鍵詞文本分析時性能對比 由實驗結(jié)果可知,Windows7.0系統(tǒng)搜索工具和RG檢索工具也具有較好的檢測分析效率,在檢測分析時CPU利用率基本上處于30%~40%之間,但是在8個CPU中最多只有4個處于工作狀態(tài),說明微軟對檢索匹配進行了并行優(yōu)化處理,但是并沒有充分利用CPU資源。在關(guān)鍵詞個數(shù)較少時,FCD系統(tǒng)的檢測效率相對于Windows7.0搜索工具、RG檢索工具有一定提高,但是幅度較少。這說明本系統(tǒng)采用MFT方式讀取相對于文件系統(tǒng)讀取效率有一定提高,資源消耗主要取決于文件內(nèi)容的讀取。隨著檢索關(guān)鍵詞個數(shù)的增多,分析數(shù)據(jù)占用資源的提升,FCD系統(tǒng)部分時間段內(nèi)8個CPU均處于工作狀態(tài),分析性能得到明顯提高,表明設(shè)計的并行分析算法有較好的執(zhí)行效果。綜上分析,相比其他分析工具,在性能上,隨著關(guān)鍵詞增多以及存儲器容量的增大,FCD系統(tǒng)能夠取得更明顯的優(yōu)勢;在功能上,FCD系統(tǒng)提取分析各種文檔所有信息,并不受用戶權(quán)限限制;而對文檔特定位置的信息提取如作者信息,其主要取決于讀取及分析MFT表的時間,而其他工具則不提供對應(yīng)的功能。 本文在對主機中文本信息特征分析基礎(chǔ)上,設(shè)計深度敏感信息分析系統(tǒng)解決方案,建立基于并行的深度文本信息分析系統(tǒng)框架。實驗結(jié)果表明,在關(guān)鍵詞數(shù)量較多時,該系統(tǒng)能夠較充分體現(xiàn)并行搜索的優(yōu)勢,提取的信息完整且速度較快。目前本文主要針對NTFS磁盤系統(tǒng)以及Office系列文檔進行分析和文本提取工作,下一步將對其他磁盤系統(tǒng)(如EXT系列),以及其他常用文檔格式(如PDF),進行分析和提取文本信息,以構(gòu)成一個全面高效的文本提取信息系統(tǒng)。3 基于磁盤系統(tǒng)的深度讀取技術(shù)
4 文本信息提取及關(guān)鍵詞分析
4.1 細粒度文本信息提取技術(shù)
4.2 并行檢索算法分析
4.3 基于并行分析串行讀取的內(nèi)存管理
5 實驗結(jié)果與分析
6 結(jié)束語