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