朱亞鋒 程光



摘 要:建設網絡靶場具有重大戰略意義,為了使網絡靶場更加逼真地模擬真實環境,需要在其中模擬產生真實網絡中必然存在著的惡意流量。論文在對網絡惡意流量的空間和時間特征分析的基礎之上,提出一種基于時空特性的網絡惡意流量生成方法。將用于入侵檢測系統的Snort規則庫反向解析翻譯成腳本,用以構建惡意流量的空間特征。選用泊松模型,模擬惡意流量數據包的到達速率,模擬其時間特征。最后借助Libnet函數庫,依據時間特性發送構造好的數據報文,模擬產生網絡惡意流量。實驗表明,這種方法模擬產生的惡意流量符合真實流量特性,并且可以定制產生特定行為模式的惡意流量。
關鍵詞:網絡靶場;惡意流量;Snort;泊松模型
中圖分類號:TP393.08 文獻標識碼:A
A malicious traffic simulation approach based on time and space features
Abstract: It is of great importance in constructing the Cyber Range. To make the Cyber Range more realistic, simulating the inevitable malicious traffic in the real network is very essential. An approach of simulating the malicious traffic based on time and space feathers is brought out in this paper. Snort Rules are reversely used to construct the spatial features and Poisson Model is applied to modeling the temporal characteristics. Finally, the packets are sent by Libnet. Experimental results indicate that the traffic generated by the proposed method satisfies the properties of the real one. Further more, it can be used to generate some specific pattern of traffic.
Key words: cyber Range; malicious traffic; snort; poisson model
1 引言
網絡靶場在支撐網絡空間安全技術演示和網絡攻防對抗演練中起著至關重要的作用[1],越來越受到世界各國的重視。為了更加逼真地模擬現實網絡環境,需要對網絡靶場中的網絡流量進行模擬生成。在真實網絡中,惡意流量的存在不容忽視,所以在網絡靶場流量模擬中,惡意流量也必須考慮。目前,主要有兩種主流的惡意流量產生方式。一是使用攻擊代碼對目標網絡設備發動攻擊,采集獲得這些攻擊流量(如攻擊測試數據集DARPA99[2])。雖然這種方法獲取的是真實的網絡惡意流量,但是也有其缺點。首先,很多網絡攻擊代碼不會公開,獲取的可能性極低,即使能夠獲取也存在滯后性。其次,攻擊代碼一般是基于不同平臺不同語言編寫的,對研究人員的素質和能力等方面的要求非常高。最后,若網絡攻擊不能得到很好的控制,將會造成極大的損失。這些缺點讓很多科研人員轉向研究另一種惡意流量的產生方法:對網絡惡意流量特征進行分析,通過搭建虛擬網絡環境,并根據這些特征模擬產生惡意流量。這種方法不需要發動真實攻擊就可以生成惡意流量的方法成本低,可行度高,受到學術界的廣泛應用。本文基于這一方向,通過分析網絡惡意流量的時間和空間特征,提出一種基于時空特性的網絡惡意流量產生方法。
2 相關研究
網絡應用的多樣化使得網絡流量呈現出自相似性[3,4],科研人員在研究中提出了不同的基于自相似性的網絡流量模型。主要分為單源模型(如Pareto分布)和聚合模型(ON/OFF模型[5]、分形布朗運動FBM模型[6]、小波變換模型[7]、自回歸積分滑動模型ARIMA[8]、多分形小波模型MWM[9]等)。從模型驅動方式上看,網絡流量生成技術主要分為兩類:一類是通過數學方法合成,模擬出這種自相似性;另一種就是根據網絡流量數據生成流量,最簡單的就是將這些數據按包序列再發一次。但這并不能反映網絡的普遍特性,而只能反映某個時刻。更普遍的是獲取網絡流量,分析其統計特征,構建流量模型,再生成所需流量。從發展歷程上看,網絡流量生成技術與IDS等的評測技術密不可分。Templeton和Levitt在文獻[10]中提出了一套網絡攻擊建模語言JIGSAW來測試入侵檢測性能。文中提到使用JIGSAW生產網絡攻擊流量的思路,但并未真實實現。Wan和Yang介紹了一種測試入侵檢測算法性能的平臺[11],該平臺通過將入侵事件插入正常網絡事件流中,來模擬網絡攻擊。然而這種模擬的輸出結果依舊為入侵事件,而不是真實的攻擊數據包。王永杰等人[12]基于有限狀態自動機提出一種網絡攻擊行為建模方法,但其流量產生器仍屬實驗性質,已建立的網絡攻擊行為模型還不夠豐富。曹龍江等人為了解決網絡設備測試軟件無法構造含有特定內容的應用層協議流量,提出一種網絡應用層流量模擬技術[13],能夠構造含有特定內容的網絡數據并模擬HTTP、POP3等特定業務流量數據。
3 基于時空特性的網絡惡意流量模擬方法
3.1 網絡惡意流量分析
雖然網絡惡意流量產生原因很多,但是大部分惡意流量表現出異常時,會在時間或空間上呈現出一定的特征。在時間關系上,宏觀上主要表現為流量的突發性,直觀表現為網絡流量波形圖中的尖刺形狀;在微觀上,主要表現為數據包到達的過程以及數據包的發送時間。在空間關系上,主要表現在兩方面:節點產生大量流量、報文內容異?;蛘唛L度異常等。對于空間特性,可從不同的協議層進行分析。網絡層上主要表現為源宿IP地址空間的異常。如發生DDoS攻擊時,會出現大量相同宿地址和端口的報文。在傳輸層上,惡意流量主要表現在流量使用的協議和報文字段上,不同的攻擊報文會出現SYN、ACK和FIN等標志位的不同組合。在應用層上,異常流量主要表現為含有特定字段或者包含特定負載的攻擊。例如,在Winnti1.0 C&C;服務器通信中,Winnti平臺傳輸的數據流量都會以一個特征碼0xdeadface開始。特定流長度或報文長度同樣可以使流量在空間上呈現出異常特征,如UDP泛洪攻擊,其報文長度一般為固定長度。
3.2 網絡惡意流量空間特征構造
Snort規則庫[14]是入侵檢測系統中的重要組成部分。這些規則正是基于網絡惡意流量所表現出的空間特征而設置的。Snort規則由規則頭和規則體兩部分組成,可以用括號進行區分。規則頭部位于括號之前,規則體位于括號之中。規則頭定義了規則被觸發時的具體動作,同時包含了使用的網絡協議、原宿IP及原宿端口等信息。規則體則是真實的特征,主要為Snort規則選項的具體設置信息。下面是一條Snort規則實例,Alert tcp EXTERNAL_NET any->131.163.67.8 23764(msg:"DDoS mstream client to handler";content:">";flags:A+; sid:1497;),含義是目的IP 為131.163.67.8,端口號為23764的TCP連接中,報文字段中含有“>”,并且 TCP標志位中的ACK位置為1時,便向網管發出警報,提示這是一條DDoS僵尸機與控制機的連接報文。
3.2.1預處理模塊-規則腳本的生成
Snort規則選項字段有很多,但其最主要的選項可以歸納為三個部分,即報文流向、網絡層和傳輸層的頭部字段以及報文的負載內容。其余更為詳細的選項則是為了提高檢出效率而設置的,而在構造惡意流量報文時只需關注每個字段的取值,因而這部分規則可以忽略。所以,對于Snort規則文件可以添加一步預處理工作,讀取一條Snort規則,將關鍵規則選項翻譯成結構體數組中的一個元素,以二進制格式文件單獨存儲,稱為規則腳本文件。一個結構體數組元素就對應著一條Snort規則,存儲的是一個攻擊報文各字段取值的值域。該結構體的各變量及取值描述如表1所示。然后程序讀取結構體,從各變量的值域中選取合適的值填寫報文字段,構造一個攻擊報文案例。
3.2.2 報文翻譯時字段取值策略
翻譯程序讀取規則腳本文件中具體的結構體,在結構體的每個變量描述的值域中選取一個特定的值,將每個變量進行組合就會構成一個攻擊報文案例。值的選擇可以采用最簡單的隨機法。對于IP地址來說,每個報文都擁有此字段,若采用隨機法生成,可能會遇到問題:隨機生成出的IP地址會生成一些在真實網絡環境中不會被路由器采集下來的地址,如私有地址,環回測試地址以及網絡地址全0或者主機地址全1的地址等。如表3對這些地址做了統計分析。
從表3的統計可以計算出,若使用純隨機法獲取IP地址,則出現非法IP的概率約為13.8%,可以有兩種方法解決上述問題。一是在IP的值選取時,依托于真實的網絡流量。由于邊界路由器抓取的流量,其源宿IP分別為內外網IP,由于內網IP是已知的,所以只需對外網IP地址進行統計,然后根據出現概率的大小選取外網IP地址。二是,對于非常規攻擊,受攻擊主機都會跟遠端的命令與控制服務器(C&C;)進行通信,安全公司對這些C&C;服務器的IP地址進行了整理總結,所以源宿IP的網外地址可以從這些IP中隨機選取。
對于IP頭部、TCP頭部或者UDP頭部,除了依據Snort規則填充相應字段外,其余字段的值域都是確定的,因而可以用隨機法進行填充。
對于應用層負載來說,每個Snort規則描述的字符串取值的可能性很多,且可能出現同一條規則含有多個特征串選項,即含有多個SignatureStr結構體。使用排列組合方法,如果每個SignatureStr有個取值,共有個數據組合,文中采用隨機法依次選擇某個規則的某個特征串,用于構建負載內容。這樣既可以實現對已知惡意流量的模擬,同時也可以通過組合不同的特征串模擬出某種未知的惡意流量。
3.3 惡意流量時間特性
在上文分析中提到,網絡惡意流量的時間特性主要體現在數據包的到達過程或數據包的發送時間。從到達過程考慮,可以近似認為滿足三個特點[15]。
(1)在不同的時間段內,數據包的到達相互獨立。
(2)在任意小的時間段Δt內,一個數據包到達的概率與起始時間無關。
(3)在任意小的時間段Δt內,到達的數據包個數服從0-1分布。
用λ表示單位時間內到達的數據包概率,吖Pk(t)表示t時間內到達k個數據包。則在任意小的時間Δt內到達一個包的概率為λΔt,將時間t分成n個時間段,則t內到達k個數據包的概率為:
(1)
當n→∞時,推導可知該二項分布近似服從泊松分布,最后得到:
(2)
從公式(2)可知,在t時間內到達k個數據包的概率符合參數為λt的泊松分布。推導可知數據包到達時間間隔服從參數為λ的指數分布。泊松模型假設網絡事件只與一個單一的速率參數λ有關。通過給定攻擊強度,設置發包時間服從指數分布,即可模擬出泊松到達的數據包。
3.4 網絡惡意流量生成
根據上文分析的時空特性,按照如圖1所示的網絡惡意流量模擬生成流程圖模擬生成惡意網絡流量。從Snort規則庫的選擇一條規則,將規則翻譯成攻擊腳本,生成一個腳本文件文件,從該文件中讀取一個結構體,按照需求配置網絡惡意流量的報文內容。流量發生器根據指數分布的時間間隔,借助Libnet函數庫將構造好的數據報文發送出去,同時使用Libpcap抓取流量存入模擬流量庫中。
4 實驗分析
實驗網絡環境如圖2所示。其中控制端和接收端是真實主機,使用交換機連接入校園網。其余均為借助VMware搭建出的虛擬機,與主機橋接,整個實驗環境可以視為同一局域網。匯集點是一個裝有Ubuntu的虛擬機,通過設置net.ipv4.ip_forward=1使其具有路由功能,虛擬機的默認路由均指向該匯集點??刂贫诉\行Snort翻譯程序,并將需要構造的攻擊流量的腳本發送至各虛擬機。虛擬機讀取來自控制端的腳本,根據要求構造出惡意流量報文,根據設置好的時間間隔發送數據包產生流量。匯集點采集這些流量并保存發送至接收端。
對于常規攻擊,如DDoS、掃描等,這些攻擊基本上沒有特定的應用層負載,需要控制的主要是數據包的到達速率,以模擬不同強度的攻擊。如圖3所示模擬的是攻擊強度為3500個/秒的UDP Flood攻擊,持續時間為28秒。圖中橫坐標表示攻擊持續的時間,縱坐標表示報文的到達速率。
對于非常規攻擊,例如“IXESHE”利用攜帶惡意附件的電子郵件來破壞受害者的系統。一旦惡意軟件被安裝,它就開始和三臺遠程命令與控制服務器通信,服務器通常配置三個端口:80、443和8080。網絡通信通過HTTP協議傳輸,其URL遵循下面的格式:/[ACD][EW]S[Some Numbers].jsp?[Encrypted Base64 Blob]。通信模式是每30秒發送一個跟C&C;服務器的通信報文。如圖4所示是實驗模擬的具有該特征的網絡異常流量。左上角框標記的是按照其通信模式生成的時間戳;右下角框標記的是符合其通信特征的負載;中間箭頭標記的是其與服務器的80端口通信。
5 結束語
本文在國家網絡靶場研究的大背景下,研究網絡惡意流量的生成技術。通過對網絡惡意流量特征的分析,提出一種基于時空特性的網絡惡意流量生成技術。通過對Snort規則庫的解析翻譯,分別配置網絡惡意流量報文網絡層、傳輸層和應用層的數據內容,以模擬惡意流量的空間特征。利用泊松模型模擬包的到達速率,以刻畫網絡惡意流量的時間特征。最后,通過Libnet按照計算得出的時間序列,發送構造出的數據包。同時使用Libpcap抓取這些數據包并存儲得到模擬的惡意網絡流量。實驗表明,本文提出的方法可以不依賴于攻擊代碼模擬產生惡意網絡流量。同時由于文中提出的時間和空間特性均可配置,所以本文方法是可以擴展的,只要給定各層報內容特征,并賦予一定的時間序列特性,就可以對未知惡意流量進行模擬生成。
基金項目:
論文獲得國家重點研發計劃:SDN/NFV與NDN安全研究(項目編號:2017YFB0801703)和國家自然科學基金青年基金:基于網絡編碼的信息中心網絡研究(項目編號:61602114)支持。
參考文獻
[1]方濱興, 賈焰, 李愛平,等.網絡空間靶場技術研究[J].信息安全學報, 2016, 1(3):1-9.
[2] 郝震華,矯文成,郝大為,等.基于ON/OFF模型的網絡流量產生器的設計與實現[J].科學技術與工程, 2008, 8(12):3219-3223.
[3] 盧穎,裴承艷,陳子辰,等.基于FBM模型的自相似流量建模仿真[J].電子設計工程, 2011, 19(17):101-104.
[4]胡俊,胡玉清,肖中卿.基于小波變換的網絡流量預測模型[J].計算機工程, 2008, 34(19):112-114.
[5]崔文亮.基于ARIMA模型的網絡流量預測[J].軟件, 2012, 33(11):221-223.
[6] 王永杰,鮮明,陳志杰,等.一種網絡攻擊流量生成器的設計與實現[J].計算機科學, 2007, 34(2):64-67.
[7] 曹龍江,張勖,王錕,等.網絡應用流量模擬技術[J].軟件, 2015(2):14-19.
[8] 劉華陽.網絡系統仿真中的流量模型研究[J].軍民兩用技術與產品, 2006(2):42-43.