秦 倩,謝寶娣,顧兆軍,王 超,黃宇宮
(1.北京博維航空設(shè)施管理有限公司,北京 100000;2.北京理工大學(xué)計(jì)算機(jī)學(xué)院,北京 100000;3.中國(guó)民航大學(xué)計(jì)算機(jī)學(xué)院,天津 300300)
隨著互聯(lián)網(wǎng)絡(luò)的迅速發(fā)展,信息安全問(wèn)題越來(lái)越引起人們的重視。近年來(lái),研究基于內(nèi)容安全的網(wǎng)絡(luò)監(jiān)控、審計(jì)系統(tǒng)已逐漸成為焦點(diǎn),因?yàn)樗抢^防火墻等網(wǎng)絡(luò)安全產(chǎn)品之后作為提高網(wǎng)絡(luò)系統(tǒng)安全性的一個(gè)新的、重要的發(fā)展熱點(diǎn)[1]。目前,一些發(fā)達(dá)國(guó)家已在因特網(wǎng)上建立了規(guī)模巨大的監(jiān)控系統(tǒng)。就國(guó)內(nèi)來(lái)說(shuō),基于內(nèi)容安全網(wǎng)絡(luò)監(jiān)控的研究剛剛起步,在產(chǎn)品的可靠性、檢測(cè)的準(zhǔn)確性以及應(yīng)用領(lǐng)域和規(guī)模等方面,與國(guó)外的產(chǎn)品還有一定的差距,對(duì)會(huì)話跟蹤、信息實(shí)時(shí)還原等關(guān)鍵技術(shù)的應(yīng)用還不是很好[2],這些都需要進(jìn)一步的研究來(lái)解決。
本文研究的網(wǎng)絡(luò)監(jiān)控系統(tǒng)從網(wǎng)絡(luò)傳輸?shù)倪^(guò)程入手,采用旁路監(jiān)聽(tīng)的抓包模式,在不修改不攔截網(wǎng)絡(luò)正常通信數(shù)據(jù)的情況下,實(shí)現(xiàn)了數(shù)據(jù)捕獲、應(yīng)用數(shù)據(jù)還原、內(nèi)容分析與過(guò)濾等功能,可實(shí)現(xiàn)局域網(wǎng)內(nèi)容安全監(jiān)控。
根據(jù)網(wǎng)絡(luò)體系結(jié)構(gòu)的層次模型,本系統(tǒng)劃分為數(shù)據(jù)包捕獲、協(xié)議分析、會(huì)話重聚、應(yīng)用數(shù)據(jù)還原、內(nèi)容分析與過(guò)濾五個(gè)層次結(jié)構(gòu)進(jìn)行設(shè)計(jì)實(shí)現(xiàn),系統(tǒng)模型如圖1所示。
本系統(tǒng)從網(wǎng)絡(luò)內(nèi)容安全監(jiān)控的角度出發(fā),實(shí)現(xiàn)了基于內(nèi)容安全的網(wǎng)絡(luò)監(jiān)控系統(tǒng),主要包括以下兩大模塊:
1)網(wǎng)絡(luò)數(shù)據(jù)內(nèi)容還原
內(nèi)容還原是本系統(tǒng)的關(guān)鍵內(nèi)容之一,系統(tǒng)在網(wǎng)絡(luò)通信的中間過(guò)程進(jìn)行數(shù)據(jù)包捕獲,經(jīng)過(guò)協(xié)議分析、會(huì)話重聚、應(yīng)用數(shù)據(jù)還原等關(guān)鍵技術(shù)后,能夠逼真地重現(xiàn)用戶會(huì)話過(guò)程。在此過(guò)程中,系統(tǒng)可以可視化實(shí)時(shí)顯示網(wǎng)絡(luò)中的網(wǎng)絡(luò)狀態(tài)信息、數(shù)據(jù)包信息、會(huì)話信息等內(nèi)容,便于網(wǎng)絡(luò)管理人員分析當(dāng)前網(wǎng)絡(luò)狀態(tài)。
圖1 系統(tǒng)模型Fig.1 System model
2)內(nèi)容分析與過(guò)濾
內(nèi)容分析與過(guò)濾是本系統(tǒng)的核心內(nèi)容。對(duì)于經(jīng)過(guò)數(shù)據(jù)還原得到的文件,系統(tǒng)首先采用文本挖掘中的文本分類技術(shù),智能地分析出用戶的網(wǎng)絡(luò)數(shù)據(jù)內(nèi)容;然后采取文本過(guò)濾技術(shù)對(duì)還原后的文本進(jìn)行進(jìn)一步分析,過(guò)濾出含有敏感信息的文件。最后,為了便于審計(jì),系統(tǒng)以日志方式將內(nèi)容分析與過(guò)濾的結(jié)果和當(dāng)前網(wǎng)絡(luò)運(yùn)行狀況保存起來(lái)。
數(shù)據(jù)捕獲層在局域網(wǎng)內(nèi)容安全監(jiān)控系統(tǒng)中承擔(dān)數(shù)據(jù)采集的任務(wù)。本系統(tǒng)的數(shù)據(jù)捕獲采用Java開(kāi)源包JPcap開(kāi)發(fā)完成,由于JPcap是構(gòu)建在WinPcap基礎(chǔ)之上,并且WinPcap采用旁聽(tīng)模式工作,因此,本系統(tǒng)利用旁聽(tīng)模式進(jìn)行數(shù)據(jù)捕獲。
協(xié)議分析層主要負(fù)責(zé)對(duì)捕獲的數(shù)據(jù)包進(jìn)行協(xié)議分析、判斷該數(shù)據(jù)包所使用協(xié)議、所屬會(huì)話以及解析相關(guān)協(xié)議特征等。例如,通過(guò)解析IP數(shù)據(jù)包首部的協(xié)議字段,即可判斷該數(shù)據(jù)包使用的是TCP協(xié)議、UDP協(xié)議或其他協(xié)議,然后根據(jù)數(shù)據(jù)包類型,采用不同的數(shù)據(jù)還原策略進(jìn)行數(shù)據(jù)包重聚。
對(duì)數(shù)據(jù)包的協(xié)議分析一般要進(jìn)行多次,這是由于應(yīng)用數(shù)據(jù)的傳輸要從應(yīng)用層到物理層進(jìn)行多次封裝,在每一層都要對(duì)上層的報(bào)文添加相應(yīng)的報(bào)頭。協(xié)議分析層的設(shè)計(jì)如圖2所示。
圖2 協(xié)議分析層Fig.2 Analysis layers of protocol
會(huì)話重聚層根據(jù)當(dāng)前網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包創(chuàng)建會(huì)話,同時(shí)將相關(guān)數(shù)據(jù)包加入會(huì)話,并進(jìn)行整理,最后將整理好的會(huì)話結(jié)構(gòu)遞交給應(yīng)用數(shù)據(jù)還原層進(jìn)行還原處理。會(huì)話重聚主要解決3個(gè)問(wèn)題:①同一會(huì)話中的數(shù)據(jù)包標(biāo)識(shí)問(wèn)題;②同一會(huì)話中的數(shù)據(jù)包網(wǎng)絡(luò)層分片問(wèn)題、運(yùn)輸層分段問(wèn)題;③同一會(huì)話中的數(shù)據(jù)包重傳、丟失和亂序問(wèn)題。模塊實(shí)現(xiàn)的關(guān)鍵在于對(duì)第三個(gè)問(wèn)題的處理。本系統(tǒng)主要實(shí)現(xiàn)了基于HTTP協(xié)議、FTP協(xié)議、SMTP協(xié)議的會(huì)話重聚。由于UDP協(xié)議是面向無(wú)連接的、不可靠的協(xié)議,因此,使用UDP協(xié)議傳輸?shù)臄?shù)據(jù)包不會(huì)存在重傳、丟失和亂序等問(wèn)題。本文討論基于TCP協(xié)議的數(shù)據(jù)包重傳、丟失和亂序等情況的解決策略。
TCP協(xié)議利用其首部字段ACK應(yīng)答號(hào)、序列號(hào)、數(shù)據(jù)長(zhǎng)度以及標(biāo)志位SYN、FIN來(lái)標(biāo)記數(shù)據(jù)包的傳輸順序。因此,在了解它們之間關(guān)系后,找出了解決數(shù)據(jù)包重傳、丟失和亂序情況的策略。具體步驟如下:
1)將捕獲的數(shù)據(jù)包按其源IP地址、目的IP地址和端口分類存儲(chǔ)在不同集合。
2)將位于同一集合下的數(shù)據(jù)包,按其序列號(hào)、確認(rèn)號(hào)、時(shí)間多級(jí)排序,從而解決了數(shù)據(jù)包亂序情況。若出現(xiàn)序列號(hào)、確認(rèn)號(hào)都一致的數(shù)據(jù)包,則認(rèn)為出現(xiàn)數(shù)據(jù)包重傳情況,根據(jù)時(shí)間丟棄前面的數(shù)據(jù)包。
3)將排序好的數(shù)據(jù)包,逐一推算其序列號(hào)和確認(rèn)號(hào),若出現(xiàn)不符,則認(rèn)為出現(xiàn)數(shù)據(jù)包丟失情況,會(huì)話數(shù)據(jù)不完整。具體序列號(hào)的推算規(guī)則如下:若數(shù)據(jù)包的SYN或FIN標(biāo)志位為1,則
下一個(gè)數(shù)據(jù)包的序列號(hào)=數(shù)據(jù)包的序列號(hào)+數(shù)據(jù)包的數(shù)據(jù)長(zhǎng)度+1
否則
下一個(gè)數(shù)據(jù)包的序列號(hào)=數(shù)據(jù)包的序列號(hào)+數(shù)據(jù)包的數(shù)據(jù)長(zhǎng)度。
應(yīng)用數(shù)據(jù)還原層構(gòu)建在會(huì)話重聚層之上,網(wǎng)絡(luò)數(shù)據(jù)經(jīng)會(huì)話重聚之后已可作為有用信息呈現(xiàn)給用戶,但是,由于此時(shí)的信息比較孤立,一幅圖片、一段文字,不能很好地展現(xiàn)完整和關(guān)聯(lián)效果,需要進(jìn)一步進(jìn)行應(yīng)用數(shù)據(jù)還原。應(yīng)用數(shù)據(jù)還原層的作用是根據(jù)用戶的需求,將會(huì)話重聚層傳遞上來(lái)的整理好的會(huì)話進(jìn)行組合、還原。其關(guān)鍵技術(shù)在于資源組合、字符解碼和標(biāo)簽語(yǔ)言還原。該模塊包括基于HTTP協(xié)議的應(yīng)用數(shù)據(jù)還原、基于FTP協(xié)議的應(yīng)用數(shù)據(jù)還原和基于SMTP協(xié)議的應(yīng)用數(shù)據(jù)還原三部分,限于篇幅,本文僅討論基于HTTP協(xié)議的應(yīng)用數(shù)據(jù)還原。圖3展示了基于HTTP協(xié)議的網(wǎng)頁(yè)還原流程。
圖3 網(wǎng)頁(yè)還原流程圖Fig.3 Process of reverting to web page
如圖3所示,網(wǎng)頁(yè)還原主要實(shí)現(xiàn)以下3步即可重現(xiàn)網(wǎng)頁(yè)。
1)將經(jīng)過(guò)會(huì)話重聚后的各種資源按照其原始形式進(jìn)行還原,并按其請(qǐng)求路徑保存在本地。
2)查找網(wǎng)頁(yè)文件中的關(guān)聯(lián)的資源信息,若所請(qǐng)求資源已本地化,則修改網(wǎng)頁(yè)文件中該資源的鏈接,將其從網(wǎng)絡(luò)路徑名稱,修改為該資源在本地保存的路徑名稱。
3)重新打開(kāi)本地化的網(wǎng)頁(yè)文件。
以HTTP會(huì)話為例,系統(tǒng)對(duì)其還原結(jié)果如圖4所示。
何良諸十多年前,就領(lǐng)教了趙集的憨勁。那天,何良諸來(lái)到北大坎煤礦生活區(qū),臨街的小勺酒店,飛出猜拳喝令聲。何良諸探頭往里瞅,一個(gè)女人招呼道:“進(jìn)來(lái)呀。”店內(nèi)光線暗,酒氣、汗腥、臭腳丫子味,嗆鼻子,何良諸“啊乞”,打個(gè)噴嚏。
內(nèi)容分析的主要功能是為了快速有效地找到用戶所關(guān)注的文本內(nèi)容,采用將文本分類的方式幫助用戶分析文本的內(nèi)容。內(nèi)容過(guò)濾主要包含兩個(gè)主要的功能,一個(gè)是向關(guān)鍵詞數(shù)據(jù)庫(kù)文件中加入用于文本過(guò)濾的關(guān)鍵詞;另一個(gè)是根據(jù)關(guān)鍵詞數(shù)據(jù)庫(kù)中的關(guān)鍵詞檢索過(guò)濾所有需要分析過(guò)濾的還原結(jié)果文件,找到其中包含指定關(guān)鍵詞的文件,并以圖表等直觀的形式給出統(tǒng)計(jì)結(jié)果。內(nèi)容分析是該模塊的核心,主要為幾下幾個(gè)步驟:
在本系統(tǒng)中,采用中國(guó)科學(xué)院計(jì)算機(jī)技術(shù)研究所研制出的基于多層隱馬模型的漢語(yǔ)詞法分析系統(tǒng)ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)進(jìn)行中文分詞。文本經(jīng)中文分詞之后,得到大量詞語(yǔ),而其中包含了一些頻度高但不含語(yǔ)義的詞語(yǔ),如助詞,利用停用詞表將其過(guò)濾,以便于文本分類的后續(xù)操作。
1)文本特征提取
文本經(jīng)過(guò)中文分詞、去除停留詞后得到的詞語(yǔ)量特別大,由此構(gòu)造的文本表示維數(shù)也非常大。并且,不同的詞語(yǔ)對(duì)文本分類的貢獻(xiàn)也不同。因此,有必要進(jìn)行特征項(xiàng)選擇以及計(jì)算特征項(xiàng)的權(quán)重。
本文采用CHI算法作為特征選擇算法。CHI算法的主要思想是認(rèn)為詞匯與類別之間符合χ2統(tǒng)計(jì),χ2統(tǒng)計(jì)量的值越高,詞匯與類別之間的獨(dú)立性就越小。
χ2統(tǒng)計(jì)量計(jì)算公式如下
其中:N表示訓(xùn)練集中的文檔總數(shù);A表示屬于主題ci且包含特征項(xiàng)t的文檔個(gè)數(shù);B表示屬于主題ci但不包含特征項(xiàng)t的文檔個(gè)數(shù);C表示包含特征項(xiàng)t但不屬于主題ci的文檔個(gè)數(shù);D表示不包含特征項(xiàng)t且不屬于主題ci的文檔個(gè)數(shù)。特征項(xiàng)t對(duì)主題ci的χ2統(tǒng)計(jì)值越高,與該主題之間的相關(guān)性就越大。
具體特征項(xiàng)的選擇根據(jù)特征項(xiàng)的CHI值來(lái)判斷。當(dāng)CHI不低于某一閾值時(shí),選擇該特征項(xiàng)。
本系統(tǒng)采用以下公式作為詞語(yǔ)權(quán)重的計(jì)算方法
其中:Wik表示詞語(yǔ)k在文本i中的權(quán)重;tf表示詞語(yǔ)k在文本i中的頻率;maxtf表示文本i中詞頻最大的詞語(yǔ)的頻率;W1為詞語(yǔ)k的詞長(zhǎng);N表示分析的文本集合包含的文本數(shù);n表示在分析的文本集中包含詞語(yǔ)k的文本數(shù);maxW1表示文本i中詞長(zhǎng)最大的詞語(yǔ)的詞長(zhǎng)。
2)文本表示
文本表示是指以一定的規(guī)則和描述來(lái)表示文本或者文本類,在過(guò)濾時(shí),用這些規(guī)則和描述來(lái)評(píng)價(jià)未知文本與給定文本或文本類的相似度。目前,存在多種文本表示模型,常用的有:布爾邏輯模型、概率模型和向量空間模型等。本系統(tǒng)中,文本采用向量空間模型表示。
向量空間模型用向量 D=D(t1,wt1;t2,wt2;…;tn,wtn)的形式來(lái)表示文本,其中tk(1≤k≤n)是文本中的特征項(xiàng),wk是tk的權(quán)重。為了簡(jiǎn)化分析過(guò)程,暫時(shí)不考慮tk在文本中的順序并且tk互異。此時(shí),若把t1,t2,…,tk看成一個(gè) n 維的坐標(biāo)系,w1,w2,…,wk則為相應(yīng)的坐標(biāo)值,這樣便可將文本向量表示簡(jiǎn)記為D(w1,w2,…,wk),進(jìn)而把文本之間的表示與匹配問(wèn)題轉(zhuǎn)化為了空間向量之間的表示與匹配問(wèn)題。
3)文本分類
文本分類過(guò)程中,本系統(tǒng)采用K-近鄰分類法完成文本分類。K-近鄰分類法的原理如下:在對(duì)待測(cè)文本分類時(shí),選擇訓(xùn)練集合中的已知文本與待測(cè)文本之間距離(相似度)最近的K個(gè)文本,即K個(gè)“最近鄰”,然后將待測(cè)文本指派到它的K個(gè)“最近鄰”中的多數(shù)類。
本系統(tǒng)中文檔相似度的計(jì)算采用夾角余弦計(jì)算,計(jì)算公式如下
其中:d代表文檔向量;q代表了用戶查詢向量(也即用戶興趣向量)。文檔與用戶興趣向量相似度越高,說(shuō)明
文檔符合用戶興趣趨向。
對(duì)該還原網(wǎng)頁(yè)執(zhí)行內(nèi)容過(guò)濾,將經(jīng)過(guò)系統(tǒng)處理后的本地化文件進(jìn)行關(guān)鍵詞匹配過(guò)濾,關(guān)鍵詞數(shù)據(jù)庫(kù)中已包含1600個(gè)敏感關(guān)鍵詞。過(guò)濾檢測(cè),發(fā)現(xiàn)3份文件中包含了敏感關(guān)鍵詞。這3份文件如表1所示。
表1 內(nèi)容測(cè)試結(jié)果Tab.1 Content test results
本文實(shí)現(xiàn)的網(wǎng)絡(luò)監(jiān)控系統(tǒng)通過(guò)多層次可視化的安全監(jiān)控,使網(wǎng)絡(luò)監(jiān)控更加人性化;通過(guò)多任務(wù)的實(shí)時(shí)監(jiān)控在最短時(shí)間內(nèi)發(fā)現(xiàn)網(wǎng)絡(luò)中存在的問(wèn)題,達(dá)到了快速反應(yīng)、監(jiān)管便捷的應(yīng)用目標(biāo);通過(guò)多角度的全面監(jiān)控全面保證了網(wǎng)絡(luò)傳輸中的內(nèi)容安全;快速高效的中文分詞算法大大提高了分詞的效率和準(zhǔn)確度,從而加快了后續(xù)的內(nèi)容過(guò)濾過(guò)程。該內(nèi)容安全監(jiān)控系統(tǒng)為管理人員提供一種高效、準(zhǔn)確的網(wǎng)絡(luò)內(nèi)容安全監(jiān)控手段,實(shí)時(shí)還原用戶上網(wǎng)行為。該系統(tǒng)是在網(wǎng)絡(luò)數(shù)據(jù)包沒(méi)有加密的情況下實(shí)現(xiàn)的,下一步的工作是要采用解密技術(shù)對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行最大限度地還原。
[1]方濱興.信息安全及其關(guān)鍵技術(shù)探討[R].國(guó)家網(wǎng)絡(luò)與信息安全中心,2005.
[2]北京大學(xué)公共政策研究所.我國(guó)互聯(lián)網(wǎng)信息內(nèi)容安全及治理模式研究報(bào)告[R].北京大學(xué)公共政策研究所,2007.
[3]胡曉元,史浩山.WinPcap包截獲系統(tǒng)的分析及其應(yīng)用[J].計(jì)算機(jī)工程,2005,31(02):96-98.
[4]趙章界,余智華,張丙奇.HTTP協(xié)議流解析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31(24):38-40.
[5]黃貽望,萬(wàn) 良,李 祥.以太幀的捕獲、解析與應(yīng)用[J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,26(01):44-46.
[6]王銀利.基于啟發(fā)式規(guī)則和文本分類的信息過(guò)濾技術(shù)[D].北京:北京交通大學(xué),2007.
[7]楊曉懿.基于內(nèi)容分析的信息安全過(guò)濾技術(shù)研究[D].四川:四川大學(xué),2005.