褚騰飛1,,王建章2,許德森2,,李東垣2,趙鵬2,,王國(guó)相1,,錢明1
(1. 北京郵電大學(xué), 北京 100876; 2. 中華通信系統(tǒng)有限責(zé)任公司,,北京 100070)
摘要:隨著互聯(lián)網(wǎng)的迅猛發(fā)展,,單位內(nèi)部用戶的監(jiān)管和網(wǎng)上行為責(zé)任追溯審計(jì)方法成為必需。文中根據(jù)局域網(wǎng)的特點(diǎn),,針對(duì)局域網(wǎng)網(wǎng)絡(luò)行為審計(jì)問(wèn)題,,對(duì)相關(guān)技術(shù)進(jìn)行了一定的研究和分析,提出了一種有效的基于TCP重組和快速多字符匹配的局域網(wǎng)行為審計(jì)方法,,應(yīng)用該方法可以更為高效地實(shí)現(xiàn)局域網(wǎng)中網(wǎng)絡(luò)行為的審計(jì),,實(shí)際測(cè)試表明該方法具有更高的效率和可操作性。
關(guān)鍵詞:局域網(wǎng),;行為審計(jì),;TCP重組,;字符匹配
中圖分類號(hào):TP306+.3;TP309.2文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.05.023
引用格式:褚騰飛,,王建章,,許德森,等.一種面向局域網(wǎng)的網(wǎng)絡(luò)行為審計(jì)方法的研究[J].微型機(jī)與應(yīng)用,,2017,36(5):76-79.
0引言
隨著互聯(lián)網(wǎng)的迅猛發(fā)展,,許多單位內(nèi)部局域網(wǎng)都和互聯(lián)網(wǎng)相連,互聯(lián)網(wǎng)給人們工作,、生活帶來(lái)了極大的方便,,同時(shí)也造成新的安全隱患。解決網(wǎng)絡(luò)安全主要采取的技術(shù)手段一般有防火墻,、入侵檢測(cè)系統(tǒng)(IDS)[1],、加密應(yīng)用等,它們對(duì)防止系統(tǒng)入侵[2]都有一定的效果,,但在監(jiān)控和處理網(wǎng)絡(luò)內(nèi)部用戶訪問(wèn)外部網(wǎng)絡(luò),、預(yù)防用戶泄漏重要資料等方面卻不盡如人意。審計(jì)[3]能夠提供系統(tǒng)事件的記錄,,可更迅速和系統(tǒng)地識(shí)別問(wèn)題,,是網(wǎng)絡(luò)事故處理的重要依據(jù)。近年來(lái),,上網(wǎng)行為審計(jì)系統(tǒng)已成為網(wǎng)絡(luò)安全領(lǐng)域的研究重點(diǎn)之一,,國(guó)內(nèi)外相繼提出了一些安全審計(jì)系統(tǒng)的模型[4],如通過(guò)修改Linux內(nèi)核實(shí)現(xiàn)的基于主機(jī)的安全審計(jì)系統(tǒng)[5],,以及利用防火墻日志實(shí)現(xiàn)的安全審計(jì)系統(tǒng)[6]等,,其審計(jì)的重點(diǎn)也逐步從傳統(tǒng)的本主機(jī)和系統(tǒng)調(diào)用過(guò)渡到網(wǎng)絡(luò)的訪問(wèn)行為和網(wǎng)絡(luò)中的各種數(shù)據(jù),但相關(guān)研究尚處在探索階段,。
1局域網(wǎng)審計(jì)系統(tǒng)架構(gòu)
根據(jù)局域網(wǎng)的特點(diǎn),,一般情況下,局域網(wǎng)內(nèi)的主機(jī)通過(guò)交換機(jī)再經(jīng)由網(wǎng)關(guān)和路由器連接外部互聯(lián)網(wǎng),。所以,,本系統(tǒng)采用旁路的方式利用交換機(jī)鏡像技術(shù)[7]將局域網(wǎng)內(nèi)的數(shù)據(jù)映射到被審計(jì)主機(jī)的端口,同時(shí)采用JPCAP技術(shù)[8]設(shè)置審計(jì)主機(jī)網(wǎng)卡為混雜模式來(lái)獲取通過(guò)網(wǎng)卡的所有數(shù)據(jù),。本系統(tǒng)通過(guò)對(duì)網(wǎng)絡(luò)數(shù)據(jù)的采集,、分析、識(shí)別[9],,實(shí)時(shí)動(dòng)態(tài)監(jiān)測(cè)通信內(nèi)容,、網(wǎng)絡(luò)行為和網(wǎng)絡(luò)流量,發(fā)現(xiàn)和捕獲各種敏感信息,、違規(guī)行為,,實(shí)時(shí)報(bào)警響應(yīng),,全面記錄網(wǎng)絡(luò)系統(tǒng)中的各種會(huì)話和事件,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)信息的智能關(guān)聯(lián)分析[10],、評(píng)估及安全事件的準(zhǔn)確定位,。系統(tǒng)部署環(huán)境如圖1。
1.1系統(tǒng)體系
局域網(wǎng)審計(jì)系統(tǒng)由三層構(gòu)成,,分別為數(shù)據(jù)采集層,、數(shù)據(jù)分析處理層以及應(yīng)用展示層,該架構(gòu)使得技術(shù)和業(yè)務(wù)有了良好的結(jié)合,,IT基礎(chǔ)結(jié)構(gòu)復(fù)雜性低,整體軟件開(kāi)發(fā),、支持和維護(hù)成本較低,,應(yīng)用程序移植性良好,網(wǎng)絡(luò)訪問(wèn),、管理簡(jiǎn)便,。系統(tǒng)架構(gòu)如圖2。
數(shù)據(jù)采集層主要功能是基于JPCAP技術(shù)捕獲流經(jīng)審計(jì)主機(jī)網(wǎng)卡的數(shù)據(jù),,并根據(jù)被審計(jì)主機(jī)的規(guī)則配置過(guò)濾掉無(wú)用的數(shù)據(jù)包,,為數(shù)據(jù)分析處理層提供可靠的數(shù)據(jù)源。
數(shù)據(jù)分析處理層的主要功能包括:TCP重組,、協(xié)議解析,、內(nèi)容審計(jì)。由于局域網(wǎng)的特性,網(wǎng)卡獲取到的TCP數(shù)據(jù)包有可能會(huì)出現(xiàn)重復(fù)包,、序號(hào)錯(cuò)亂和丟包等情況,所以線程進(jìn)行內(nèi)容還原操作之前,還需要對(duì)TCP數(shù)據(jù)包進(jìn)行重組,保證截獲到的數(shù)據(jù)的有效性,。TCP重組模塊將重組成功的TCP鏈接放入緩存隊(duì)列中,協(xié)議解析模塊將緩存隊(duì)列中的TCP鏈接取出并根據(jù)其端口號(hào)判斷所屬協(xié)議,,根據(jù)相應(yīng)的協(xié)議對(duì)數(shù)據(jù)包進(jìn)行解析和內(nèi)容還原,。本系統(tǒng)主要針對(duì)郵件收發(fā)協(xié)議SMTP和POP以及HTTP協(xié)議進(jìn)行解析。內(nèi)容審計(jì)模塊對(duì)協(xié)議解析后得到的文本內(nèi)容進(jìn)行分析,,根據(jù)數(shù)據(jù)庫(kù)中的敏感詞匯進(jìn)行查找和匹配并生成相應(yīng)的告警信息。
應(yīng)用展示層基于B/S結(jié)構(gòu),,采用SSH框架實(shí)現(xiàn)了Web端的行為審計(jì)系統(tǒng)平臺(tái),,該平臺(tái)功能包括審計(jì)系統(tǒng)的各種配置、審計(jì)結(jié)果的展示,、審計(jì)人員管理等,。
2關(guān)鍵算法
2.1TCP重組算法
TCP重組模塊在整個(gè)系統(tǒng)中處于承上啟下的位置,也是系統(tǒng)最重要的一環(huán),。捕獲網(wǎng)絡(luò)中的數(shù)據(jù)包有很多開(kāi)源的工具包,,例如Linux系統(tǒng)下的Libcap,、Windows系統(tǒng)下的Winpcap[11]以及Java中間件JPCAP,。但是,,單單捕獲數(shù)據(jù)包并不能保證數(shù)據(jù)的正確性。因?yàn)橥粩?shù)據(jù)流中的數(shù)據(jù)包可能經(jīng)過(guò)不同的網(wǎng)絡(luò)路徑到達(dá)目的地,,造成數(shù)據(jù)包的不同時(shí)延,、丟失,、亂序等現(xiàn)象出現(xiàn),。因此,,將從網(wǎng)絡(luò)中間鏈路捕獲來(lái)的數(shù)據(jù)包整合成有序的、不丟失的有序數(shù)據(jù)流的技術(shù)成為了很多安全系統(tǒng)研究的關(guān)鍵技術(shù),。
基于以上考慮,,本文基于哈希表和TCP鏈接序列號(hào)的TCP數(shù)據(jù)重組算法[12],根據(jù)TCP鏈接的特點(diǎn)提出了一個(gè)高效的TCP算法,,使得哈希映射的沖突盡可能的低,同時(shí)利用哈希表實(shí)現(xiàn)簡(jiǎn)單的特點(diǎn),,提高了TCP重組的效率,。其基本思想是:對(duì)于一個(gè)捕獲的數(shù)據(jù)包,需要根據(jù)一個(gè)哈希函數(shù)將其映射到哈希表中,,同時(shí)根據(jù)哈希表中TCP鏈接數(shù)據(jù)流的接收序列號(hào)來(lái)判斷該數(shù)據(jù)包是否合法,。利用哈希表查找的高效性保證高速大流量TCP數(shù)據(jù)流重組,利用數(shù)據(jù)包的序列號(hào)保證數(shù)據(jù)包接收的正確性,。TCP重組算法流程圖如圖3所示,。
TCP會(huì)話重組算法的基本流程如下:
(1)利用JPCAP抓取TCP數(shù)據(jù)包,,提取其四元組信息并記錄其序列號(hào),、確認(rèn)號(hào)和標(biāo)識(shí)位。對(duì)于任何一個(gè)TCP鏈接,,都存在唯一的四元組:<源IP地址,,目的IP地址,源端口,,目的端口>,。
將四元組的信息傳入哈希函數(shù)中會(huì)得到該TCP鏈接的一個(gè)哈希值,根據(jù)該哈希值可以定位到哈希表中該鏈接,。
?。?)在新的數(shù)據(jù)包到達(dá)時(shí),,如果這個(gè)包SYN為1,,ACK為0,,說(shuō)明這是一個(gè)請(qǐng)求同步包,所以創(chuàng)建一個(gè)新的TCP鏈接放入HASH表中,。同時(shí)初始化該鏈接中發(fā)送流的信息:狀態(tài)為SYN_SENT,,下一個(gè)包的序列號(hào)為當(dāng)前包的SEQ+1。
?。?)如果數(shù)據(jù)包的SYN為1,,ACK為1,根據(jù)該包的四元組的哈希值去哈希表中查找,,如果找到,,表示服務(wù)器同意建立鏈接,如果該數(shù)據(jù)包的ACK_NUM等于客戶端的下一個(gè)包的序列號(hào),,那么初始化該鏈接中服務(wù)器端的信息:狀態(tài)為SYN_RCVD,,設(shè)置服務(wù)器端的期望接收序列號(hào)為數(shù)據(jù)包的ACK_NUM。
?。?)如果數(shù)據(jù)包ACK為1,,來(lái)自客戶端,且客戶端的狀態(tài)為SYN_SENT,服務(wù)器端狀態(tài)為SYN_RCVD,,且它的序列號(hào)與服務(wù)器端期待接收的序列號(hào)相等,,則連接建立成功,更新客戶端和服務(wù)器端狀態(tài)為ESTABLISHED,。
?。?)如果數(shù)據(jù)包長(zhǎng)度不為0或者標(biāo)志位FIN為1,說(shuō)明這是普通的數(shù)據(jù)包或者釋放連接的包,。如果當(dāng)前包的序列號(hào)等于接收數(shù)據(jù)流中期待接收的序列號(hào),,則把當(dāng)前包加入到接收流中,如果這個(gè)包FIN為1,,則要設(shè)置發(fā)送流的狀態(tài)為FIN_SENT,如果ACK同時(shí)也為1,,通過(guò)接收流狀態(tài)為FIN_SENT,則更新其狀態(tài)為CONFIRMED,更新接收流的期待接收序列號(hào)為:數(shù)據(jù)包的長(zhǎng)度+1,;如果這個(gè)包FIN為0,,則更新接收流的期待接收序列號(hào)為:數(shù)據(jù)包的長(zhǎng)度。更新后遍歷接收流中的亂序包緩沖區(qū),,判斷是否有包符合接收流期待的序列號(hào),如果有重復(fù)該步驟,。
?。?)如果包ACK為1,,且接收流狀態(tài)為FIN_SENT,則更新其狀態(tài)為CONFIRMED,,如果接收流和發(fā)送流都為CONFIRMED,,則TCP鏈接完成接收。
?。?)如果包RST為1,,在哈希表中移除該鏈接。
2.2快速多字符串匹配算法
協(xié)議解析完成后,,需要對(duì)解析后的文本內(nèi)容進(jìn)行敏感詞匯匹配,,檢索是否存在敏感信息,從而保證局域網(wǎng)的安全,。目前關(guān)于敏感詞匹配算法的研究已經(jīng)比較成熟,,其中使用范圍最為廣泛的是單模式和多模式匹配算法。單字符查找算法中,,最著名的兩個(gè)是KMP算法和BM算法[13],。這兩個(gè)算法在最壞情況下均具有線性的查找時(shí)間。但是如果模式字符串不止一個(gè)而是多個(gè)模式字符串組成的集合,,那么BM算法就不太適合,。WM算法是一種典型的多模式匹配算法,它是在BM算法基礎(chǔ)上改進(jìn)而來(lái)的高效匹配算法,,WM算法具有很多優(yōu)點(diǎn),,它使用多個(gè)字符組成的字符塊來(lái)進(jìn)行匹配,不像其他算法的單個(gè)字符比較,。前綴表的恰當(dāng)運(yùn)用,,使其顯著降低了匹配過(guò)程中所消耗的時(shí)間,因此能夠取得良好的實(shí)際效果,,使其在多模式匹配領(lǐng)域得到了很快的發(fā)展,。
本系統(tǒng)實(shí)現(xiàn)了一種基于改進(jìn)Trie樹(shù)的有限自動(dòng)機(jī)(DFA)多模式匹配算法,DFA的基本功能是可以通過(guò)event和當(dāng)前的state得到下一個(gè)state,,即event+state=nextstate,。在敏感詞匹配系統(tǒng)中,為了能夠應(yīng)付較高的并發(fā),,應(yīng)該盡量減少計(jì)算,,而在DFA中基本沒(méi)有什么計(jì)算,有的只是狀態(tài)轉(zhuǎn)移,。本系統(tǒng)采用改進(jìn)Trie樹(shù)比矩陣更為簡(jiǎn)單地實(shí)現(xiàn)DFA算法,。改進(jìn)的Trie樹(shù)由首字哈希表和子節(jié)點(diǎn)構(gòu)成,每個(gè)敏感詞都能構(gòu)成一棵Trie樹(shù),構(gòu)造Trie樹(shù)的過(guò)程中把字符參與構(gòu)詞的位置信息定義成不同的狀態(tài),,這樣就構(gòu)成一個(gè)有限的自動(dòng)機(jī),。如果一個(gè)字符不是某個(gè)敏感詞的尾字,稱為中間態(tài),,用0表示,,反之如果是尾字則用1表示,稱為結(jié)尾態(tài),。
根據(jù)以上描述,,改進(jìn)的Trie樹(shù)結(jié)構(gòu)邏輯圖如圖4所示。
子節(jié)點(diǎn)是所有以當(dāng)前字符為前綴的字符集合,,子節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)采用哈希結(jié)構(gòu),。敏感詞的首字形成的節(jié)點(diǎn)存放在首字哈希表中,子節(jié)點(diǎn)采用哈希結(jié)構(gòu),,狀態(tài)用來(lái)判斷是否到達(dá)詞尾,,改進(jìn)的Trie樹(shù)邏輯結(jié)構(gòu)如圖5所示。
在進(jìn)行敏感詞匯匹配之前,,需要把敏感詞庫(kù)加載到內(nèi)存中構(gòu)造Trie樹(shù),,構(gòu)造Trie樹(shù)的算法如下:
(1)讀取字條首字,,判斷Trie樹(shù)中是否有該字符,,如果有跳轉(zhuǎn)步驟(2);如果沒(méi)有將其作為一棵Trie樹(shù)的頭節(jié)點(diǎn)插入首字符哈希表中,,并設(shè)置狀態(tài)為中間態(tài),。
(2)讀取下一個(gè)字符,,判斷Trie樹(shù)中是否存在該字符,,如果有重復(fù)步驟(2);如果沒(méi)有則插入該字符,,如果該字符為該詞的最后一個(gè)字符,,設(shè)置狀態(tài)為結(jié)尾態(tài),反之為中間態(tài),。
?。?)重復(fù)步驟(2),直至最后一個(gè)字符,。
?。?)重復(fù)步驟(1),直至所有敏感詞插入完畢,,Trie樹(shù)構(gòu)造完成,。
Trie樹(shù)構(gòu)造完成之后就可以對(duì)文本進(jìn)行快速多字符匹配了。匹配算法如下:
(1)依次讀取待匹配的字符,,在Trie樹(shù)中首字符哈希表中查找是否有匹配的字符,,如果沒(méi)有,跳轉(zhuǎn)(1),,反之跳轉(zhuǎn)(2);
?。?)判斷當(dāng)前字符狀態(tài),,如果為中間態(tài),讀取待匹配文本的下一個(gè)字符,,在當(dāng)前的子節(jié)點(diǎn)中查找是否存在該字符,,如果不存在跳轉(zhuǎn)(1),反之跳轉(zhuǎn)(2),。如果當(dāng)前字符為結(jié)尾態(tài),,則匹配成功,跳轉(zhuǎn)步驟(1)直至待匹配文本匹配完成,。
2.3審計(jì)系統(tǒng)模型測(cè)試結(jié)果分析
本系統(tǒng)是基于TCP重組算法和快速多字符匹配算法的安全審計(jì)系統(tǒng),,針對(duì)這兩種算法對(duì)系統(tǒng)進(jìn)行了測(cè)試。通過(guò)搭建一個(gè)小的局域網(wǎng)環(huán)境,,瀏覽一定數(shù)量的網(wǎng)頁(yè),,記錄實(shí)際的TCP鏈接個(gè)數(shù)以及重組成功的TCP鏈接個(gè)數(shù),測(cè)試結(jié)果如圖6,。
從圖6中可以看出,,隨著TCP鏈接個(gè)數(shù)的增多,基于該TCP重組算法的重組成功率會(huì)下降,,這主要是因?yàn)樵跀?shù)據(jù)包數(shù)據(jù)比較多,、網(wǎng)絡(luò)比較復(fù)雜的情況下,由丟包或者數(shù)據(jù)包亂序?qū)е铝酥亟M失敗,。
為了測(cè)試快速多字符串匹配算法的效率,,選擇5 MB的字符串與AC算法和WM算法進(jìn)行比較,測(cè)試環(huán)境為Win7,,內(nèi)存4 GB,。測(cè)試結(jié)果如圖7。
由圖可知,,快速多字符串匹配算法可以在一定程度上提高匹配的效率,,并且隨著模式串?dāng)?shù)據(jù)的增加,本文的算法匹配速度就越有優(yōu)勢(shì),。
3結(jié)束語(yǔ)
本文介紹了網(wǎng)絡(luò)行為審計(jì)的相關(guān)背景和研究現(xiàn)狀,,分析了相關(guān)的技術(shù),并以此為基礎(chǔ)提出了基于TCP重組和敏感詞匹配的局域網(wǎng)審計(jì)系統(tǒng),該系統(tǒng)可以有效地檢測(cè)用戶的網(wǎng)絡(luò)訪問(wèn)行為,,及時(shí)發(fā)現(xiàn)非法訪問(wèn)并發(fā)出報(bào)警,,保證內(nèi)部網(wǎng)絡(luò)的安全,更好地維護(hù)網(wǎng)絡(luò)安全并提高網(wǎng)絡(luò)信息的使用效率,。另外,,本文提出的TCP重組算法可以有效地實(shí)現(xiàn)TCP重組;快速多字符串匹配算法也比傳統(tǒng)的多字符匹配算法的效率高,,實(shí)現(xiàn)簡(jiǎn)單,。
本文方法在前人的研究基礎(chǔ)上取得了一定的進(jìn)步,但是仍舊存在著很大的不足,,比如,,在大并發(fā)量的情況下本系統(tǒng)還是會(huì)出現(xiàn)重組失敗以及匹配失敗的情況,所以如何使系統(tǒng)承受大的網(wǎng)絡(luò)吞吐量以及如何提高重組算法的成功率和敏感詞匹配算法的效率是需要繼續(xù)研究的課題,。
參考文獻(xiàn)
?。?] 周遠(yuǎn)大.面向用戶行為的內(nèi)網(wǎng)安全管理系統(tǒng)研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2014.
[2] KUMAR G D, RAO C V G, SINGH M K, et al. Using jpcap API to monitor, analyze, and report network traffic for DDoS attacks[C]. 14th International Conference on Computational Science and Its Applications,2014:35-39.
?。?] 王斌.上網(wǎng)行為審計(jì)系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京交通大學(xué),,2011.
[4] 黃媛.基于局域網(wǎng)的安全審計(jì)組件的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2014.
?。?] 王波.LINUX內(nèi)核級(jí)安全審計(jì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2008,2(14):57-58.
?。?] Xia Qing.Log based network security audit system research and design[J].Advanced Materials Research, 2010, 129-131:1426-1431.
[7] 于進(jìn)玉.面向無(wú)線局域網(wǎng)的輿情監(jiān)控框架設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2015.
?。?] SHEN Z, WANG H.Network data packet capture and protocol analysis on jpcap based[C].International Conference on Information Management, 2009:329-332.
?。?] 張運(yùn)明.協(xié)議行為審計(jì)關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué), 2010.
[10] 趙燦明,李祝紅.基于數(shù)據(jù)挖掘及數(shù)據(jù)分析的局域網(wǎng)用戶網(wǎng)絡(luò)訪問(wèn)行為審計(jì)系統(tǒng)[J].通訊世界,2015(1):41-43.
?。?1] 付強(qiáng),左仁輝.基于winpcap實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)聽(tīng)技術(shù)[J].電腦知識(shí)與技術(shù), 2008, 2(13):624-627.
?。?2] 梁勇.網(wǎng)絡(luò)TCP數(shù)據(jù)流重組技術(shù)研究[J].信息通信,2012(6):35-36.
[13] WANG X, GE B Z, WANG W.A BM algorithm oriented on network security audit system[C].International Conference on E-business & Information System Security,2010:1-4.