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