王景中 張春飛
北方工業大學信息工程學院 北京 100144
隨著 Internet的不斷發展,網絡安全已經逐漸成為人們越來越關心的問題,防火墻、反病毒軟件、內容過濾器和驗證系統等常規的安全工具逐漸被越來越多的用戶接受,成為許多公司安全武器庫當中的必要部分。但是隨著網絡變得日益復雜起來,這些工具越來越不能迅速識別及挫敗越來越狡猾的威脅。基于網絡流量的異常檢測和網絡性能監控,可從流量檢測的角度來管理網絡及安全。
本系統主要分為三個模塊,分別是流量監控模塊、網絡攻擊仿真模塊和網絡行為分析模塊。這三個模塊相互獨立,網絡攻擊仿真模塊利用工具對網絡進行攻擊,流量監控模塊采集數據,并進行流量的可視化展現,在流量分析的基礎上進行網絡行為分析。系統框架如圖1所示。

圖1 系統框架圖
本系統的數據采集主要利用WinPcap庫來實現,數據采集的流程圖如圖2所示。

圖2 數據采集的流程圖
流量可視化展現是指系統采用圖形顯示技術,用直觀、清晰的方法顯示網絡流量的變化情況,從而可以直觀的了解網絡的運行狀況。流量的可視化展現如圖3所示。

圖3 流量的可視化展現
網絡流量是指網絡上傳輸的數據量,本系統以秒為單位時間,記錄了Packet/S和Byte/S的數據量。為便于計算流量,定義兩個結構體。

根據上面兩個結構體的成員變量來計算 1S的時間。定義一個struct pcap_pkthdr類型的數據包頭header,再定義一個struct timeval類型的headerTimeBack并初始化為第一個數據包的時間,通過(header->ts).tv_sec!=headerTimeBack.tv_sec)來控制 1S時間間隔,把數據傳遞給圖形顯示函數,headerTimeBack記錄當前時間。在大流量的情況下采用這種計時方法,誤差可以忽略。
選用按鈕控件來顯示流量。從 CButton類派生出CMyButton類用于自繪制,當按鈕上面任何可見的部分發生變化的時候,都要調用DrawItem()函數進行重繪。自繪制按鈕必須設定BS_OWNERDRAW屬性,確保這個Button是用來繪制而不是接收按下消息的,設置的代碼在PreSubclassWindows()函數中完成。為了動態顯示流量,使用SetTimer()定時器函數,它每隔一段時間就向WM_TIMER發出消息,然后在 WM_TIMER的消息處理函數 OnTimer()中進行下一步的處理,最后重繪窗口。
對每一時刻t,定義時間間隔t1-tn內的峰值P、谷值L、均值M、方差S2、頻率F等變量,在采集流量的基礎上,進行特征分析。計算公式如(1)-(5)所示。

方差用來度量隨機變量和其數學期望(即均值)之間的偏離程度。方差越大,表示流量的波動越大,越容易出現峰值或谷值,說明網絡不是很穩定。
采用Hussain提出的網絡流量的頻率表示方法,假設發出的所有數據包都是同樣大小,發送一個數據包所需時間T=S/B(其中S代表數據包大小,B表示網絡帶寬),那么發送數據包的間隔時間是相同的,這就表明頻率領域有周期性,并且周期等于發送數據包的間隔時間。因此,不同的帶寬或不同的攻擊方式產生流量峰值的頻率不一樣,并且在這個頻率的周期處都會出現流量的峰值。
DDoS(分布式拒絕服務型)攻擊是使用大量的數據包攻擊系統,使系統無法接受正常用戶的請求,或者主機掛起不能提供正常的工作。DDoS攻擊和其他類型的攻擊不同之處在于:攻擊者的目地并非尋找進入內部網絡的入口,而是阻止合法用戶訪問網絡資源。
典型的DDoS攻擊系統如圖4所示,由攻擊者(黑客)、主控機(控制傀儡機)、實施攻擊的代理機(攻擊傀儡機)、被攻擊的目標主機四部分組成。主控機和攻擊代理機分別用作控制和實際發起攻擊,對目標機而言,DDoS的實際攻擊包來自攻擊代理機,攻擊代理機可以數十臺甚至上百臺,可以瞬間造成目標機網絡擁塞。

圖4 分布式拒絕服務攻擊體系結構
本系統中流量監控采用端口鏡像的方法,把交換機的一個或多個端口的數據鏡像到一個或多個端口。其目的主要是方便對一個或多個網絡接口的流量進行分析。交換機型號是D-link,把PC機的IP設置為192.168.0.2,網關為192.168.0.1,在瀏覽器里輸入192.168.0.1登入交換機的管理界面進行設置:監控主機的端口(Sniffer Port)、被監控主機的端口(Source Port)。
CC(Challenge Collapsar)攻擊是DDoS的一種形式,原理就是攻擊者控制某些主機不停地發大量數據包給對方服務器造成服務器資源耗盡,一直到崩潰。CC主要是用來攻擊頁面的,當一個網頁訪問的人數特別多的時候,打開網頁就慢了。利用Storm Attack Tool進行CC攻擊,需要在主控機上生成服務端(攻擊傀儡機端),在傀儡機上運行生成的Sever.exe文件,其系統類型、內存、CPU等參數都會在主控機上顯示。CC攻擊的參數設置如圖5所示。

圖5 CC攻擊的參數設置
流量監控軟件的過濾 IP為目標 IP,使用兩臺傀儡機進行攻擊,流量監控界面產生的流量變化如圖6所示。

圖6 CC攻擊時產生的流量變化
攻擊開始之后,正常用戶的訪問請求得不到響應。圖 6中紅色代表實際流量,綠色代表流量的平均值;t1-t2時段為正常流量,實際流量在平均值上下浮動;t2-t3時段為攻擊時產生的流量,分析得出結果:(1)攻擊剛開始的時候,流量出現峰值;(2)實際流量遠高于平均值;(3)實際流量很大并持續一段時間然后趨向于平穩;(4)其余的特征有待進一步發現。
由此可以發現,流量的峰值、均值等特征可以描述某些網絡攻擊行為。
基于流量的網絡行為分析可以檢測出具有明顯流量異常的網絡攻擊,對于有大量數據需要處理的網絡攻擊檢測來說,使用較少的行為算法,能夠捕捉到大部分的問題,然后再把重點轉向具體的方面,這樣可以節省分析系統的開銷。本文提出的系統方案解決了以往網絡行為分析和數據收集相脫離的問題,對實際網絡的保護具有較好的實時性。
[1]李一.網絡行為一個網絡社會學概念的簡要分析[J].蘭州大學學報.2006.
[2]基于宏觀網絡流相關性的DDoS攻擊檢測.計算機工程.2011.
[3]孫向陽,鄧勝蘭.一個基于NS2的拒絕服務攻擊與防御模擬系統. 2008年《全國計算機安全學術交流會論文集(第二十三卷)》.
[4]李慧萍,魯曉帆,張凱.基于Winpcap的數據包捕獲技術的研究.網絡安全技術與應用.2010.
[5]王景中,胡柳武,段建勇.網絡行為數據的獲取與解析實現.網絡安全技術與應用.2011.
[6]張毅,劉強.基于流量行為的DDoS檢測系統.計算機工程.2011.