田崢,田建偉,薛海偉,漆文輝
(國網湖南省電力公司電力科學研究院,湖南 長沙 410007)
一種基于多模匹配的敏感郵件實時檢測方法
田崢,田建偉,薛海偉,漆文輝
(國網湖南省電力公司電力科學研究院,湖南 長沙 410007)
文中對Wu-Manber算法進行改進,將3種不同編碼格式的模式串引入到算法的預處理過程,并改進算法對字符串的掃描過程,提出一種支持多編碼格式的多模匹配算法,使得算法可適用于對當前主流郵件格式和附件格式的檢索。實驗結果和實際應用過程表明,文中算法是實時且有效的。
郵件過濾系統;Wu-Manber;多編碼格式;實時;郵件附件
隨著電力系統信息化和網絡化的不斷推進,國家電網公司面臨的信息安全形勢日益嚴峻。公司敏感數據不但面臨著病毒、木馬等外部環境的攻擊,由人員故意破壞和泄露等造成的內部威脅也逐漸增多。美國計算機安全學會 (Computer Security Institute,CSI)歷年的調查報告顯示,雖然從數量上來看,來自于外部的網絡攻擊事件的發生頻率遠遠超過來自內部的泄密,但是從造成的損失來看,內部威脅卻遠大于外部威脅〔1,2〕。從美國中央情報局前雇員斯諾登泄密引發的 “棱鏡門事件”到國內華為員工離職泄密導致的 “滬科案”事件,這些都表明來自內部的數據泄密會給企業帶來嚴重的損失。
電子郵件是電力系統內部人員最常用的一種信息通信工具,同時也是導致內部數據泄露的一個最主要的源頭。據權威調查報告顯示,30%~40%的安全漏洞造成的損失是由于公司內部員工通過電子郵件發送了內部涉密文件造成的〔3〕。為了加強對電力敏感郵件的監管,國家電網公司在公司與社會互聯網的出口處部署了網絡審計設備,對從內部發送的電子郵件進行審查。但是,由于網絡審計設備無法對郵件進行實時過濾,不能從根本上杜絕郵件泄密事件的發生,仍然存在員工誤操作或惡意泄露的可能。
目前針對敏感郵件進行監管的設備可分為審計和過濾兩類設備。審計設備主要是將郵件內容(包括附件)進行轉存,然后以離線方式檢測郵件是否包含敏感內容,這種方法無法實現對郵件實時攔截;而過濾設備可以對郵件進行實時分析,判斷其是否包含敏感關鍵字,并進行實時攔截,但是這類設備通常部署在網絡出口處或內部的郵件服務器上,由于受到計算性能和實時性的約束,只能對郵件正文進行分析,對附件中包含敏感內容的郵件則無能為力。當前市面上還沒有一款成熟的產品能夠做到對郵件內容和附件進行實時分析并攔截。
為了解決現有郵件過濾系統因處理大量郵件數據而造成的性能瓶頸問題,國網湖南省電力公司電力科學研究院研制出了一種分布式的郵件過濾系統,該系統在每個發送郵件的終端主機上部署一個客戶端程序,對從該主機上發送的郵件進行攔截和檢測,這樣就很好地解決了集中式郵件過濾系統存在的性能瓶頸問題。分布式郵件過濾系統的核心問題是如何在計算資源相對較弱的普通PC機上實時地對用戶發送的郵件內容和附件進行準確、高效的信息檢索,做到速度快且對用戶透明。要實現這一目標,一個高效且穩健的多模匹配算法是其中的關鍵。為此,文中提出一種基于改進Wu-Manber的多模匹配算法來實現對郵件中多個電力敏感關鍵字的實時檢索,以滿足分布式郵件過濾系統的準確性和實時性要求。
文中提出的多模匹配算法需要部署在分布式郵件檢測系統的客戶端中。經過對該郵件過濾系統的需求分析,文中多模匹配算法的設計主要面臨如下幾個挑戰:
1)高準確性和實時性要求
分布式郵件過濾系統的客戶端程序需要實現的目標主要有2個:一是能實時準確地攔截包含電力敏感關鍵字的電子郵件,阻斷其發送;二是要能正常且無延時地發送未包含電力敏感關鍵字的電子郵件,即對用戶透明。這2點都與多模匹配算法的準確性和實時性密切相關,特別是當被檢測的郵件正文或附件內容非常大時,算法的性能就顯得尤其重要。
2)多附件格式
分布式郵件過濾系統客戶端不僅需要對郵件正文和標題進行檢索,還需要對郵件附件進行實時檢索,這就要求算法支持對多種常見的辦公文件類型的解析,如文本文檔、Office/WPS文檔、PDF文檔、壓縮文檔等,而每一類文檔的解析都不一樣,壓縮文檔還有可能出現嵌套的壓縮格式,這無疑大大增加了算法的復雜度。
3)中英文語言環境,多種中文編碼標準
電力敏感關鍵字可能是中文、英文或中英文混合的文本字符串,而郵件正文和附件中還有可能出現多種中文編碼格式,如郵件正文通常采用URL和UTF-8編碼,而郵件附件中,文本文檔通常采用GB2312編碼,Office文檔則采用Unicode編碼。為了不漏掉可能存在敏感信息的郵件,算法必須要支持中英文混合環境和多種中文編碼標準。
目前主流的多模匹配算法包括:Commentz-Walter算法〔4〕,Aho-Corasick算法〔5〕,Wu-Manber算法〔6〕等。其中,基于后綴搜索和字符塊匹配思想的Wu-Manber算法繼承了Boyer-Moore(BM算法)單模式匹配算法〔7〕進行跳躍的思想和hash散列的方法。在實際應用中,是進行大規模多模式匹配效率最高、最穩定的算法;而且Wu-Manber算法對字符集不敏感,可以方便地應用于中文環境。因此,文中選用Wu-Manber算法作為分布式郵件過濾系統進行電力敏感關鍵字檢索的參考算法。同時,針對系統的特定需求,對Wu-Manber算法進行了改進,提出了一種支持中英文混合模式的改進多模匹配算法,使其支持GB2312,Unicode和UTF-8 3種中文編碼格式,并可對郵件正文和附件進行實時高效的多關鍵字檢索。
通用的多模匹配問題可以用如下的形式化語言進行描述:已知一個待處理數據串Text[1…n],其定義在一個有限的字符表Σ(大小為c)上,對于給定的模式串集合Pattern= {P1,P2,…,Pk}共k個模式,假設m為最短模式串的長度,即m=min{length(Pi) |1≤i≤k},要求找到數據串Text中與模式串Pattern中的模式完全相等的子串的所有出現位置。
為了解決該問題,Wu-Manber算法借鑒了BM算法的后綴搜索思想和 “壞字符”轉移機制,并且也使用Hash散列表來篩選匹配階段應進行匹配的模式串,因此可以說Wu-Manber算法是BM算法在處理多模式匹配問題上的一種派生方法。但是與BM算法不同的是,Wu-Manber算法將相鄰的B (B={2,3})個字符聯合作為1個字符塊,利用字符塊的計算來擴展 “壞字符”轉移機制的效果,通過比較文本Text中的字符塊與樣本模式集合Pattern中字符塊的關系決定樣本右移的距離。
Wu-Manber算法步驟分為預處理和字符匹配2個階段。在預處理階段,為了加速后續的匹配過程,Wu-Manber算法需要構造SHIFT,HASH和PREFIX3張表〔8〕。其中,SHIFT表記錄了 “壞字符”規則,即當掃描遇到該字符塊X時可以向前移動的字符數。其計算方法如公式 (1)所示,其中X表示長度為B的字符塊:

這樣,在后續對數據串Text進行掃描的時候,只需根據讀入字符塊的散列值就能夠計算出可以往前跳躍的字符數,如果相應的跳躍值為0,則說明可能產生匹配,就要用到HASH表和PREFIX表進一步判斷,以快速查找出待匹配的候選模式串,并驗證是否存在完全匹配的模式串。
通過分析,傳統的 Wu-Manber算法只支持ASCII或GB2312格式編碼的模式串,即在算法預處理過程僅對一種編碼格式的模式串進行處理,這使得算法不支持中英文混合模式的字符串搜索,同時也無法對采用Unicode或UTF-8格式編碼的字符串進行搜索,這就無法滿足本文中分布式郵件過濾系統對電力敏感郵件進行檢測的需求,因為自定義的電力敏感關鍵字需要支持中英文混合模式,而郵件附件中經常會出現采用Unicode或UTF-8編碼的字符串,例如office文檔就是采用Unicode編碼,而txt文本文檔也可以保存成 UTF-8編碼格式。
為解決這個問題,文中提出在算法預處理之前,先對模式串 (即電力敏感關鍵字)進行編碼格式之間的轉換,得到該模式串在3種不同編碼格式 (GB2312,Unicode,UTF-8)下的不同的二進制流,然后將這3種不同二進制流作為3種不同的模式串,同時參與算法的預處理過程。這樣就使得算法可以同時支持對3種編碼格式的數據串進行匹配。
在完成Wu-Manber算法的預處理階段后,后續的字符匹配階段的過程就相對比較簡單了,它從數據串Text的末端開始掃描,計算字符塊的散列值,并根據SHIFT表的值從后往前移動;如果遇到SHIFT值為0的情況,則通過HASH表找到待匹配的模式串,并根據PREFIX表進行進一步的匹配;如此循環,直至到達數據串Text的最前端。
但是,由于傳統的 Wu-Manber算法僅支持ASCII或GB2312編碼格式,因此它通常采用標準字符串變量來存放模式集Patterns,如表達式 (2)所示:

在對模式串的掃描過程中,算法通過查看當前字符是否為0來判斷是否到達模式串的末尾,因為在ASCII或GB2312編碼格式中,串結束符總是僅出現在字符串的末尾。然而,這種方法無法在采用Unicode編碼的模式串上使用,因為Unicode編碼采用 2個字節來表示 1個字符,當這個字符是ASCII字符時,它的高位字節就為0,這樣就有可能出現在字符串中間存在0值的情況,這也是為什么傳統Wu-Manber算法不支持Unicode編碼模式串的原因。
為了解決這個問題,文中構造了一個新的結構體來表示模式集 Patterns,如表達式 (3) (4)所示:

該結構體包含一個字符串指針變量和一個表示該字符串長度的變量,這樣,在掃描時算法就可以通過該字符串的長度來判斷是否到達模式串的末尾,從而很好地解決了對Unicode編碼的字符串進行掃描的問題。
下面的偽代碼給出了改進的Wu-Manber算法進行字符匹配過程的完整流程。

Wu-Manber算法主要優勢是匹配入口點少,從而使得字符比較的次數減少。傳統Wu-Manber算法的平均時間復雜度是,其中B是塊字符的長度,n是文本的長度,m是模式集合中最短模式的長度。因此,文中對Wu-Manber算法改進后雖然增加了模式串的個數(是原來的3倍),但是算法的時間復雜度并沒有增加。
圖1展示了分布式郵件過濾系統框架示意圖。該系統部署在普通的電力辦公終端上,當員工利用郵件客戶端(如Hotmail,Firefox等)或者Web瀏覽器登錄到外網郵件服務器上發送郵件時,敏感郵件過濾系統會在郵件發送之前對其進行實時捕獲和處理,僅允許那些未包含電力敏感關鍵字的郵件正常發送。

圖1 分布式郵件過濾系統框圖
郵件過濾系統主要包含3個模塊:郵件攔截模塊、郵件檢測模塊和預警模塊。郵件攔截模塊主要負責實時捕獲用戶發送的郵件信息,并將信息發送給郵件檢測模塊進行分析處理;郵件檢測模塊主要集成了文中提出的一種基于Wu-Manber的改進多模匹配算法,用于實現對郵件正文和附件的實時解析和敏感關鍵字搜索功能,并將檢測結果通知郵件攔截模塊和預警模塊;預警模塊用于向員工展示提示信息,當員工發送的郵件因含有電力敏感關鍵字被攔截時,預警模塊會在屏幕右下角彈出一個窗口,提示郵件已被攔截,并顯示郵件中出現的敏感關鍵字。
下面是文中提出的一種基于多模匹配的電力敏感郵件實時檢測方法的程序執行流程:
1)對郵件攔截模塊發送過來的郵件信息進行實時解析,提取出郵件的收發件人地址,郵件標題、郵件正文、附件標題、附件內容等信息。
2)根據用戶自定義的電力敏感關鍵字對多模匹配引擎進行初始化。該多模匹配引擎即文中所述的改進Wu-Manber匹配算法。
3)將郵件正文轉化成二進制字節流,如果郵件正文采用了URL編碼,則對其進行URL解碼操作。將轉換后的二進制字節流輸入到多模匹配引擎中,進行電力敏感關鍵字的匹配。
4)根據匹配結果判斷該郵件是否包含電力敏感關鍵字,如果是,直接判斷該郵件為敏感郵件,轉到第8)步;否則,進行下一步郵件附件的檢測。
5)判斷郵件是否包含附件,如果有,轉到下一步;否則,轉到第9)步。
6)將郵件附件的標題和正文轉化成二進制流,附件格式支持文本文檔、ZIP/RAR壓縮文檔、Office和WPS辦公文檔或PDF文檔中的一種或多種;如果附件是PDF格式,則讀取出其中的文本信息;如果是壓縮文檔,則對壓縮文檔進行解析,提取出其中的二進制文件流;將轉換后的二進制字節流輸入到多模匹配引擎中,進行電力敏感關鍵字的匹配。
7)根據匹配結果判斷該郵件是否包含電力敏感關鍵字,如果有,則判斷該郵件為敏感郵件,轉到下一步。
8)通知郵件攔截模塊對該郵件進行實時攔截,并向預警模塊發出告警信息,結束。
9)通知郵件攔截模塊正常發送該郵件,結束。
為了驗證算法的實時性和有效性,在電力辦公終端上對算法及其所應用的郵件過濾系統進行了測試。測試環境為:Intel i5-3337U 1.8 GHz四核CPU,4 GB內存,window 7 32位操作系統。選取了不同大小的文件(100 kB-150 MB)對算法的執行時間進行測試,圖2給出了算法對不同文件大小進行檢索的平均執行時間。

圖2 文中算法的執行時間
可以看到,隨著文件大小的增長,算法的執行時間基本是呈線性增長的趨勢,這基本符合前面對算法時間復雜度的分析。另外,常見的郵件附件大小一般不會超過20 MB,對于這個量級來說,算法的檢索時間在200~300 ms范圍內,這種延時對于用戶來說基本是透明的。而對于150 MB的大附件來說,算法也僅需要不到2 s的時間來進行檢索,這遠遠小于通過網絡上傳這個附件所需要的時間。
下面的表1和表2則給出了文中算法應用在郵件過濾系統后在功能上的優勢。相對于傳統的Wu-Manber算法,文中改進的多模匹配算法能夠支持中英文混合的模式串,可同時支持 GB2312,Unicode,UTF-8等3種二進制編碼格式,并且可以檢索采用URL編碼的郵件信息。而在郵件附件方面,文中算法全面支持當前的主流辦公格式,包括文本格式、常見壓縮格式、PDF格式,以及 WPS和Office的文檔格式。

表1 文中算法與傳統Wu-Manber算法功能對比

表2 文中算法所支持的郵件附件格式
文中針對國家電網公司對電力敏感郵件進行實時檢測的特定需求,在傳統Wu-Manber多模匹配算法的基礎上提出一種支持多編碼格式的模式匹配算法,將GB2312,Unicode和UTF-8這3種不同編碼格式的模式串引入到算法的預處理過程中,并改進算法對字符串的掃描過程,使得算法可適用于對當前主流郵件格式和附件格式的檢索。實驗結果和實際應用過程表明,文中提出的一種面向多編碼格式的電力敏感郵件實時檢測方法在速度上具有較好的實時性,能提供較好的用戶體驗,在功能上也能夠支持當前主流的郵件附件格式,具有很好的實用性和應用前景。
〔1〕R.Richardson.2007 Csi Computer Crime and Security Survey〔EB/OL〕. Orlando,Florida:Computer Security Institute,2007.〔2014-08-15〕. http://i.cmpnet.com/v2.gocsi.com/pdf/CSISurvey2007.pdf.
〔2〕R.Richardson.2008 Csi Computer Crime and Security Survey〔EB/OL〕. Orlando,Florida:Computer Security Institute,2008.〔2014-08-15〕. http://www.cse.msstate.edu/~cse6243/readings/CSIsurvey2008.pdf.
〔3〕R.Richardson.2009 Csi Computer Crime and Security Survey〔EB/ OL〕.Orlando,Florida:Computer Security Institute,2009.〔2014-08-15〕.http://pathmaker.biz/whitepapers/CSISurvey2009.pdf.
〔4〕B.Commentz-Walter.A string matching algorithm fast on the average〔C〕//In Proceedings of the 6thInternational Colloquium on Automata,Language and Programming.GRE:Springer-Verlag,1979:118-132,
〔5〕A.V.Aho,M.J.Corasick.Efficient string matching:an aid to bibliographic search〔J〕.Communication of the ACM,1975,18 (6):333-340.
〔6〕S.Wu, U.Manber.Fasttextsearching allowing errors〔J〕. Communications of the ACM,1992,35(10):83-91.
〔7〕R.S.Boyer, J.S.Moore.A fast string searching algorithm〔J〕. Communications of the ACM,1977,20(10):762-772.
〔8〕張宏莉,徐東亮,梁敏,等.海量模式高效匹配方法研究〔J〕.電子學報,2014,42(6):1220-1224.
A real-time sensitive e-mail detection method based on multi-pattern matching
TIAN Zheng,TIAN Jian-wei,XUE Hai-wei,QI Wen-hui
(State Grid Hunan Electric Power Corporation Research Institute,Changsha 410007,China)
In this paper,an improved multiple pattern matching algorithm is presented.Different pattern in three different coding formats are introduced into the pretreatment process of the algorithm,and the texts scanning process is optimized in order to support the main stream format of the text and attachments of mail.The experimental results and the practical application show that the proposed algorithm is effective and real-time.
mail filtering system;Wu-Manber;multiple coding formats;real-time;attachment of mail
TP309
A
1008-0198(2015)01-0029-05
10.3969/j.issn.1008-0198.2015.01.008
田崢(1983),男,湖南長沙人,博士,從事信息通信安全技術研究等工作。
2014-09-03 改回日期:2014-11-17