朱 健,盧秉亮,張春宇
(1.沈陽航空職業(yè)技術(shù)學(xué)院,沈陽110034;2.沈陽航空航天大學(xué)計(jì)算機(jī)學(xué)院,沈陽110136;3.中國電子科技集團(tuán)公司第四十七研究所,沈陽110032)
隨著Internet的迅速發(fā)展和用戶對網(wǎng)絡(luò)信息安全需求的不斷增加,信息過濾以及相關(guān)技術(shù)取得了很大進(jìn)展。Denning于1982年提出了“信息過濾”[1]的概念,利用“內(nèi)容過濾器”對實(shí)時的電子郵件進(jìn)行信息過濾。1987年,Malone等人研制了基于內(nèi)容過濾(Content-based Filtering)的“Information Lens”[1]。上世紀(jì)八十年代末,由美國 DARPA(高級研究計(jì)劃局)資助的“Message Understanding Engineer”[3]極大地推動了信息過濾技術(shù)的發(fā)展。在我國,清華大學(xué)的曾春等根據(jù)不同用戶的興趣不同及多樣性的特點(diǎn),提出了基于內(nèi)容的個性化搜索算法[4],田范江等人從用戶要求的不同角度出發(fā)完善算法,不斷提高信息過濾的質(zhì)量和速度[5]。
網(wǎng)絡(luò)上的內(nèi)容信息是以數(shù)據(jù)包(Packet)進(jìn)行傳送的。每個包都有一個源IP地址和一個目的IP地址,包過濾可以通過檢查數(shù)據(jù)包的IP地址來過濾信息內(nèi)容。但I(xiàn)P地址和內(nèi)容并不是一一對應(yīng)關(guān)系,往往會對合法內(nèi)容造成誤判,不能滿足基于內(nèi)容安全的保護(hù)需求,需要采用內(nèi)容過濾技術(shù)。
內(nèi)容過濾是對應(yīng)用層內(nèi)容協(xié)議中所傳輸?shù)男畔?nèi)容進(jìn)行分析,并根據(jù)預(yù)先設(shè)置的過濾條件,控制信息的下一步傳送方向。內(nèi)容過濾主要有兩種實(shí)現(xiàn)形式:白名單(White List)也稱為包含過濾 (Inclusion Filtering),只有在此名單中的信息才能被訪問,具有較高的安全性,但“白名單”數(shù)據(jù)量大,在進(jìn)行關(guān)鍵字匹配時需要較多的時間,影響了網(wǎng)絡(luò)速度,同時也增大了維護(hù)的代價?!昂诿麊巍?Black List)也稱為排除過濾(Exclusion Filtering),是目前比較常用的過濾策略,其思想是將影響到網(wǎng)絡(luò)安全的信息加入黑名單,使其不能被其他網(wǎng)絡(luò)用戶訪問,對于那些不在黑名單中的信息都可以被訪問到。很明顯,這個黑名單將小得多,但需要對黑名單不斷更新以保證其安全性。
關(guān)鍵字過濾就是對信息的內(nèi)容進(jìn)行關(guān)鍵字匹配,通常用黑名單來實(shí)現(xiàn)。只要站點(diǎn)包含有與關(guān)鍵字相匹配的信息,它就會被禁止訪問。
IP和URL數(shù)據(jù)庫過濾是根據(jù)用戶的需求把用戶認(rèn)為有問題、有危險性的IP地址或URL進(jìn)行控制,一旦發(fā)現(xiàn)有該IP地址或URL的網(wǎng)頁則立即將其過濾掉。因?yàn)閁RL對應(yīng)的是具體的網(wǎng)頁而不是網(wǎng)頁所在的服務(wù)器,克服了傳統(tǒng)包過濾的缺點(diǎn),大大提高了過濾的準(zhǔn)確性。
網(wǎng)絡(luò)信息過濾系統(tǒng)必須要保證眾多用戶同時與互聯(lián)網(wǎng)聯(lián)網(wǎng)時的速度和質(zhì)量,為保證信息過濾的準(zhǔn)確性和高效性,系統(tǒng)采用分級匹配過濾的策略,在保留IP地址、URL和關(guān)鍵字過濾的基礎(chǔ)上,增加內(nèi)容分析過濾。其過濾的過程如圖1所示。
首先建立信息關(guān)鍵字?jǐn)?shù)據(jù)庫、非法網(wǎng)頁的IP數(shù)據(jù)庫和URL數(shù)據(jù)庫,當(dāng)信息進(jìn)入到過濾系統(tǒng)所在的服務(wù)器緩存中時,系統(tǒng)首先將此信息與服務(wù)器中IP、URL數(shù)據(jù)庫、關(guān)鍵字?jǐn)?shù)據(jù)庫進(jìn)行比對。如果與關(guān)鍵字?jǐn)?shù)據(jù)庫中的關(guān)鍵字相同或網(wǎng)頁的IP、URL與數(shù)據(jù)庫中的某IP、URL相同時,系統(tǒng)就會屏蔽這個信息,這樣就免除了重復(fù)過濾,緩解了系統(tǒng)壓力,提高了響應(yīng)速度。
圖1 系統(tǒng)主要過程圖
應(yīng)用層的內(nèi)容過濾與網(wǎng)絡(luò)端口處理相比,要求大量的計(jì)算資源,如果在網(wǎng)絡(luò)邊緣對內(nèi)容進(jìn)行處理,帶來的問題是必然導(dǎo)致性能下降。為了能夠?qū)?yīng)用層數(shù)據(jù)進(jìn)行內(nèi)容過濾,突破內(nèi)容處理障礙,達(dá)到實(shí)時分析網(wǎng)絡(luò)內(nèi)容和行為,首先需要識別應(yīng)用層協(xié)議類型,然后針對不同的協(xié)議給出相應(yīng)的具體處理方法。一般的協(xié)議類型識別方法是利用RFC規(guī)定的協(xié)議默認(rèn)端口來判斷協(xié)議的類型,然而這種方法的準(zhǔn)確性并不高,系統(tǒng)通過增加對后續(xù)數(shù)據(jù)報文內(nèi)容的分析來綜合判斷協(xié)議類型。
相對于網(wǎng)絡(luò)層的協(xié)議而言,應(yīng)用層的協(xié)議沒有統(tǒng)一的表示來表明協(xié)議的類型,除了少數(shù)協(xié)議,如DNS和SMTP協(xié)議可以通過TCP連接的目的端口判定以外,其他的協(xié)議均可以變換連接端口,比如HTTP協(xié)議默認(rèn)使用80端口,但是實(shí)際應(yīng)用中,也可以采用1080、8080等其他端口。因此,對于應(yīng)用層協(xié)議的判定要通過對數(shù)據(jù)內(nèi)容進(jìn)行分析來進(jìn)行協(xié)議識別,如圖2所示,每個數(shù)據(jù)報文按自上而下的順序依次傳遞給處理子程序進(jìn)行網(wǎng)絡(luò)協(xié)議識別并進(jìn)行相應(yīng)的處理。
當(dāng)捕獲到一個TCP連接的建立信息時,系統(tǒng)將這個連接建立的信息提交所有的TCP協(xié)議處理子程序進(jìn)行處理。所有的子程序都必須對當(dāng)前連接的內(nèi)容進(jìn)行處理,判定當(dāng)前連接的類型是否是自己所能處理的協(xié)議。如果不是,則通知系統(tǒng)放棄當(dāng)前連接的處理權(quán),如果子程序識別出當(dāng)前連接的協(xié)議和其所能處理的協(xié)議吻合,則通知系統(tǒng)獲得對當(dāng)前連接的處理控制權(quán)。對于那些根據(jù)當(dāng)前信息還不能進(jìn)行有效判斷的連接,則通知系統(tǒng)等待更多的數(shù)據(jù)到來以完成有效的判斷,直到找到當(dāng)前連接的處理子程序或者所有的處理子程序均放棄對當(dāng)前連接的處理權(quán)為止。
圖2 TCP報文識別
對于經(jīng)過關(guān)鍵字過濾和IP、URL過濾后仍無法確認(rèn)該信息是否合法,則繼續(xù)進(jìn)行基于文本內(nèi)容的過濾,即將被測文本分詞與分詞字典進(jìn)行匹配,若在詞典中找到某個字符串,則匹配成功(識別出一個詞)。
系統(tǒng)采用KNN(K-Nearest Neighbor)這樣一種基于統(tǒng)計(jì)的模式識別算法,其基本思想是:在給定新文本后,考慮在訓(xùn)練文本集中與該文本距離最近(最相似)的K篇文本,根據(jù)這K篇文本所屬的類別來判斷新文本所屬的類別。也就是說,把每一篇文本都看作是一個N維向量,計(jì)算新文本與這K篇文本之間的距離,通過這些距離和K篇文本所屬的類別來確定新文本的類別。具體的算法步驟如下:
1)根據(jù)特征項(xiàng)集合重新描述訓(xùn)練文本向量。
2)當(dāng)出現(xiàn)一個新文本后,對新文本進(jìn)行分詞處理,分詞的依據(jù)是使用特征詞,進(jìn)而確定新文本的向量表示。即使用向量空間模型,文本用向量表示。
3)在訓(xùn)練文本集中選出與新文本最相似的K篇文檔,計(jì)算文本相似度,可轉(zhuǎn)換為兩個文本向量的夾角余弦值。給定文本 di(di1,di2,…din)和dj(dj1,dj2,…djn)的相似度計(jì)算公式為:
4)在新文本的K個鄰居中,依次計(jì)算權(quán)重,計(jì)算公式為:
其中,x為新文本的特征向量,sim(x,d)為相似度計(jì)算公式,Y(di,Cj)為類別屬性函數(shù),如果di屬于類Cj,那么函數(shù)值為1,否則為0。
5)對類的權(quán)重進(jìn)行比較,將文本分到權(quán)重最大的那個類別中。
在具體操作中,按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優(yōu)先匹配的情況,可以分為最大(最長)匹配和最小(最短)匹配;系統(tǒng)采取雙向最大匹配分詞策略[6],如果兩者切分結(jié)果相同,說明沒有歧義,直接輸出分詞結(jié)果。如果不一致,則輸出最短路徑的那個結(jié)果,如果長度相同,則選擇少的那一組切分作為結(jié)果。如果單字也相同,則選擇正向分詞作為結(jié)果。
內(nèi)容過濾服務(wù)器端使用Win2003 server操作系統(tǒng),利用Winpcap進(jìn)行抓包。測試方案從Internet上整理600份網(wǎng)頁作為測試庫,其中,正常網(wǎng)頁、非法網(wǎng)頁各300份。利用開發(fā)出的系統(tǒng)對這600份網(wǎng)頁進(jìn)行過濾,以測試該過濾系統(tǒng)的性能。
英國學(xué)者克里維頓(C.M.Cleverdon)首次將查全率(Recall)和查準(zhǔn)率(Precision)[7]作為信息檢索和過濾系統(tǒng)效率的評價指標(biāo)以后,這兩個指標(biāo)就一直成為對信息系統(tǒng)進(jìn)行評價和試驗(yàn)的重要指標(biāo)。查全率指系統(tǒng)在實(shí)施某一檢索作業(yè)時,檢出相關(guān)文獻(xiàn)的能力;查準(zhǔn)率指系統(tǒng)在實(shí)施某一檢索作業(yè)時,拒絕不相關(guān)文獻(xiàn)的能力,分別用公式(3)和公式(4)表示。
文獻(xiàn)[8]使用了另外一種評價指標(biāo),如公式(5)所示。
對于這三個評價指標(biāo),可以得到相應(yīng)的測試結(jié)果,如表1所示。
表1 測試結(jié)果表
由測試結(jié)果可以看出,查全率達(dá)到85%以上,準(zhǔn)確率達(dá)到87%以上,F(xiàn)1的值達(dá)到了86.671%(一般情況下要求F1的值達(dá)到75%以上),此方案的過濾效果比較理想。
系統(tǒng)利用Winpcap對進(jìn)出網(wǎng)絡(luò)的信息進(jìn)行數(shù)據(jù)包的抓取,采用分階段過濾策略,通過對查準(zhǔn)率和查全率的測試,實(shí)驗(yàn)結(jié)果表明過濾效果比較理想。由于在一個報文的匹配中,最為耗時的匹配運(yùn)算是在報文中匹配多個串,為了提高響應(yīng)速度,可以考慮引入AC算法、WM算法等多模匹配算法。
[1] 劉輝.網(wǎng)頁信息過濾系統(tǒng)的研究與設(shè)計(jì)[D].江蘇:蘇州大學(xué),2009.
[2] 黃曉明,夏明春.網(wǎng)絡(luò)信息過濾的成本效益分析[J].情報科學(xué),2003,21(11):1129-1132.
[3] Lynette Hirschman.Comparing MUCK- Ⅱ and MUC-3:Assessing the difficulty of different tasks[C].Proceedings of the 3rd Conference(MUC-3).DARPA,Morgan Kaufmann,1991:25-30.
[4] 曾春,刑春曉,周立柱.基于內(nèi)容過濾的個性化搜索算法[J].軟件學(xué)報,2003 14(5):999-1004.
[5] 田范江,李叢蓉,王鼎興.進(jìn)化式信息過濾方法研究[J].軟件學(xué)報,2000,11(3):328-333.
[6] 馮是聰.搜索引擎?zhèn)€性化查詢服務(wù)研究[J].計(jì)算機(jī)應(yīng)用,2002(3):45-50.
[7] Thorsten Joachims.Text Categorization with Support Vector Machines:Learning with Many Relevant Features[C].The 10th European Conference on Learning(ECML),1998.
[8] 賈美娟,李娟.基于分級匹配的信息過濾研究[J].大慶師范學(xué)院學(xué)報,2007,27(5):14-17.