黃 寧,劉 淵,王曉鋒
(江南大學(xué) 人工智能與計(jì)算機(jī)學(xué)院,江蘇 無錫 214122)
隨著網(wǎng)絡(luò)安全形勢日趨嚴(yán)峻,網(wǎng)絡(luò)靶場[1]已經(jīng)成為支撐網(wǎng)絡(luò)空間安全技術(shù)研究、攻防對抗試驗(yàn)的重要基礎(chǔ)設(shè)施,為大規(guī)模網(wǎng)絡(luò)用戶行為仿真提供靈活逼真的仿真環(huán)境。同時(shí)網(wǎng)絡(luò)用戶行為仿真作為網(wǎng)絡(luò)靶場的重要組成部分,也為靶場平臺(tái)提供了注入背景流量、構(gòu)建真實(shí)網(wǎng)絡(luò)場景的有效手段,對于真實(shí)網(wǎng)絡(luò)場景重現(xiàn)、網(wǎng)絡(luò)安全態(tài)勢評估、網(wǎng)絡(luò)安全實(shí)驗(yàn)等方面研究具有重要意義。
網(wǎng)絡(luò)用戶行為仿真[2]的關(guān)鍵目標(biāo)在于如何能夠真實(shí)地還原現(xiàn)實(shí)網(wǎng)絡(luò)用戶行為,主要體現(xiàn)在仿真的逼真性及規(guī)模性。傳統(tǒng)的網(wǎng)絡(luò)用戶行為主要通過對單個(gè)行為特征分析建立通用仿真模型,然后在NS3[3]、OPNET[4]等網(wǎng)絡(luò)仿真軟件上進(jìn)行模擬,仿真的用戶行為類型較為單一,無法體現(xiàn)網(wǎng)絡(luò)用戶行為多樣性的特點(diǎn),仿真的逼真度不高,且NS3 等軟件仿真的規(guī)模有限,無法支撐大規(guī)模高逼真的網(wǎng)絡(luò)用戶行為仿真。流量回放近年來在網(wǎng)絡(luò)安全、網(wǎng)絡(luò)測試評估[5]等領(lǐng)域越發(fā)受到關(guān)注,通過流量回放的方式重現(xiàn)真實(shí)網(wǎng)絡(luò)場景,對目標(biāo)設(shè)備進(jìn)行評估。隨著云平臺(tái)[6]興起,可將回放目標(biāo)擴(kuò)大為整個(gè)虛擬網(wǎng)絡(luò),使得通過流量回放的方式在虛擬網(wǎng)路中復(fù)現(xiàn)真實(shí)網(wǎng)絡(luò)場景,將網(wǎng)絡(luò)流量作為用戶行為仿真的載體,向虛擬目標(biāo)網(wǎng)絡(luò)注入背景流量的方案變得可行。
本文結(jié)合真實(shí)流量回放的方式進(jìn)行大規(guī)模高逼真網(wǎng)絡(luò)用戶行為仿真,向虛擬目標(biāo)網(wǎng)絡(luò)注入現(xiàn)實(shí)網(wǎng)絡(luò)中的用戶行為流量,設(shè)計(jì)一個(gè)面向云平臺(tái)的網(wǎng)絡(luò)用戶行為仿真系統(tǒng)。通過真實(shí)流量回放的網(wǎng)絡(luò)注入多樣化的網(wǎng)絡(luò)用戶行為,解決基于仿真模型模擬用戶行為單一、逼真度低的問題,在此基礎(chǔ)上,研究復(fù)雜目標(biāo)網(wǎng)絡(luò)回放時(shí)確保回放的交互性和逼真度,以及基于互動(dòng)式流量回放驅(qū)動(dòng)的大規(guī)模高逼真網(wǎng)絡(luò)行為仿真的可行性與逼真性。
與本文相關(guān)的工作主要體現(xiàn)在基于模型驅(qū)動(dòng)的流量生成方法、基于真實(shí)流量驅(qū)動(dòng)的回放方法和用戶行為建模與仿真方法3 個(gè)方面。
在基于模型驅(qū)動(dòng)的流量生成方法[7]方面,文獻(xiàn)[8-10]基于流量模型的回放方法根據(jù)真實(shí)網(wǎng)絡(luò)中流量的數(shù)學(xué)特征建立相關(guān)模型生成仿真流量,由于該方式回放的流量逼真性取決于建立的相關(guān)流量模型是否逼真準(zhǔn)確。而真實(shí)網(wǎng)絡(luò)場景復(fù)雜多變,幾乎難以建立一個(gè)與真實(shí)網(wǎng)絡(luò)場景完全一致的流量模型,因此該方式存在一定的局限性。
在基于真實(shí)流量驅(qū)動(dòng)的回放方法方面,由于該回放方式生成的流量直接來自真實(shí)網(wǎng)絡(luò)中,因此能夠完整且精確地重現(xiàn)真實(shí)網(wǎng)絡(luò)中的用戶流量以及數(shù)據(jù)包層面的內(nèi)容。相比基于流量模型回放的方式,該回放方式關(guān)注在回放過程中數(shù)據(jù)報(bào)文層面的應(yīng)用有效載荷,更加符合網(wǎng)絡(luò)用戶行為仿真的高逼真需求。目前基于真實(shí)流量驅(qū)動(dòng)的流量方式研究熱點(diǎn)開始轉(zhuǎn)向交互式流量回放,即更加注重回放過程中報(bào)文狀態(tài)交互準(zhǔn)確。文獻(xiàn)[11]提出交互式流量回放這一概念,并開發(fā)了交互式回放系統(tǒng)TCPOpera,通過模擬TCP/IP 協(xié)議棧維護(hù)請求與響應(yīng)端的會(huì)話狀態(tài),基于狀態(tài)判定控制報(bào)文的收發(fā)。文獻(xiàn)[12]提出一種有狀態(tài)流量回放方式,維護(hù)請求響應(yīng)端的交互狀態(tài),重放應(yīng)用層的流量用于測試應(yīng)用代理服務(wù)器的安全性能。文獻(xiàn)[13]引入收發(fā)平衡機(jī)制,提出一種基于收發(fā)平衡和狀態(tài)判斷相結(jié)合的TCP 流量回放方法,在發(fā)送報(bào)文前通過優(yōu)先收法平衡判定,減少狀態(tài)判定的開銷,提高回放性能。但是以上方法都只局限于物理回放設(shè)備,并且是單個(gè)DUT 設(shè)備的回放場景,無法在虛擬網(wǎng)絡(luò)中進(jìn)行回放。針對現(xiàn)有回放方法難以在復(fù)雜的虛擬目標(biāo)網(wǎng)絡(luò)上實(shí)現(xiàn)回放問題,文獻(xiàn)[14]論述了網(wǎng)絡(luò)環(huán)境對回放的影響,通過計(jì)算物理網(wǎng)絡(luò)與虛擬網(wǎng)絡(luò)的相似度和IP 映射的方法將流量回放到虛擬網(wǎng)絡(luò)中,但該方法并沒有實(shí)現(xiàn)交互式流量回放。文獻(xiàn)[15]提出一種基于云平臺(tái)的虛擬網(wǎng)絡(luò)交互回放的方法ITRM,重點(diǎn)研究在一個(gè)縮小規(guī)模的虛擬網(wǎng)絡(luò)場景下如何進(jìn)行多節(jié)點(diǎn)的交互流量回放的問題,但該方法回放規(guī)模相對較小,前提條件需要保證各回放節(jié)點(diǎn)時(shí)鐘高度同步,虛擬網(wǎng)絡(luò)中時(shí)鐘同步的精度無法滿足此需求,而且該方法并未考慮到延時(shí)等網(wǎng)絡(luò)環(huán)境對回放造成的影響,因此無法在復(fù)雜的目標(biāo)網(wǎng)絡(luò)場景下保證流量回放的交互性。
目前關(guān)于大規(guī)模多用戶的行為仿真的研究較少,文獻(xiàn)[16]基于目前用戶網(wǎng)絡(luò)行為研究現(xiàn)狀,將目前研究方向細(xì)分為個(gè)人與群體網(wǎng)絡(luò)行為,將用戶網(wǎng)絡(luò)行為定義為用戶通過操作某個(gè)或某種應(yīng)用程序與他人或服務(wù)進(jìn)行交互的行為以及產(chǎn)生的網(wǎng)絡(luò)流量。文獻(xiàn)[17]對用戶訪問HTTP 服務(wù)的行為進(jìn)行了建模,并以此模型對HTTP 協(xié)議流量進(jìn)行模擬,且模擬的網(wǎng)絡(luò)流量滿足流量的自相似性。但上述方法都只是針對單個(gè)用戶行為進(jìn)行仿真研究,且模型無法靈活模擬真實(shí)用戶的行為,仿真的逼真性不高。文獻(xiàn)[18]提出一種基于云平臺(tái)的多用戶行行仿真的方法,針對天地一體化網(wǎng)絡(luò)[19]中的多用戶并發(fā)行為,通過模型驅(qū)動(dòng)衛(wèi)星用戶行為仿真,但是該研究只停留在窄帶用戶行為。文獻(xiàn)[20]提出基于“錄制-回放”策略的網(wǎng)絡(luò)桌面應(yīng)用行為仿真方案,通過錄制單個(gè)用戶的應(yīng)用操作行為,然后在虛擬機(jī)上進(jìn)行回放,由此仿真出具有真實(shí)負(fù)載的交互流量,但該方法耗費(fèi)的資源相對較高,仿真規(guī)模會(huì)受到一定的限制。
本文提出一種面向目標(biāo)網(wǎng)絡(luò)的流量回放方法,并設(shè)計(jì)一套多用戶行為仿真架構(gòu),以解決無法在目標(biāo)網(wǎng)絡(luò)中進(jìn)行精確交互流量回放以及目前用戶行為仿真規(guī)模逼真度不高的問題。
目前大部分的交互式回放工具為面向DUT 設(shè)備(如路由器、防火墻)測試的應(yīng)用需求而設(shè)計(jì)[21],因此回放場景通常是回放設(shè)備的端口與DUT 設(shè)備串接測試,如圖1(a)所示,無需考慮鏈路延時(shí)等網(wǎng)絡(luò)環(huán)境對回放性能的影響,這顯然與基于云平臺(tái)的目標(biāo)網(wǎng)絡(luò)仿真場景需求不符:即鏈路回放的場景更為復(fù)雜。圖1(b)所示為一個(gè)目標(biāo)網(wǎng)絡(luò)的回放場景,回放的對象為虛擬目標(biāo)網(wǎng)絡(luò),即回放的流量需要經(jīng)過整條鏈路,因此在面向云平臺(tái)設(shè)計(jì)時(shí),需要考慮延時(shí)導(dǎo)致的數(shù)據(jù)包亂序問題。同時(shí),在進(jìn)行大規(guī)模行為仿真實(shí)驗(yàn)時(shí),設(shè)計(jì)的體系架構(gòu)需滿足多條鏈路并發(fā)交互式回放的需求。
圖1 DUT 串接回放場景和目標(biāo)網(wǎng)絡(luò)鏈路回放場景對比Fig.1 Comparison of DUT serial replay scene and target network link replay scene
本文提出的用戶行為仿真架構(gòu)面向OpenStack作為仿真平臺(tái),采用分布式架構(gòu)可按需靈活地將用戶行為仿真節(jié)點(diǎn)加載到任意目標(biāo)網(wǎng)絡(luò)實(shí)驗(yàn)中,較好地滿足用戶行為仿真對多樣性和靈活性的需求。該仿真體系如圖2 所示。其中仿真控制端部署在控制節(jié)點(diǎn)上,仿真用戶節(jié)點(diǎn)由KVM 或Docker生成。
圖2 基于流量回放的網(wǎng)絡(luò)用戶行為仿真體系架構(gòu)Fig.2 Network user behavior emulation architecture based on traffic replay
具體仿真流程如下:
1)用戶行為流量模板生成。控制端負(fù)責(zé)用戶行為仿真模板的生成、配置和下發(fā),并且具有一個(gè)用戶行為數(shù)據(jù)庫,用于存放各種類型的用戶行為流量模板。試驗(yàn)人員可以將現(xiàn)實(shí)網(wǎng)絡(luò)中采集的混雜流量導(dǎo)入仿真控制端,仿真控制端首先按照輸入配置對輸入流量過濾清洗,然后匹配流量中各個(gè)報(bào)文的五元組(源/目的IP 地址、源/目的MAC 地址、協(xié)議類型)識別特征行為流量,再根據(jù)協(xié)議的端口號、狀態(tài)碼、載荷抽取出單個(gè)完整的會(huì)話流,按照請求-響應(yīng)標(biāo)記分類,最后生成行為流量模板存入用戶行為數(shù)據(jù)庫中。
2)行為仿真任務(wù)配置與下發(fā)。在一次行為仿真任務(wù)過程中,首先仿真控制端解析試驗(yàn)人員的配置文件,獲取目標(biāo)網(wǎng)絡(luò)部署信息,創(chuàng)建所需的回放節(jié)點(diǎn)并接入到目標(biāo)網(wǎng)絡(luò)中,并根據(jù)配置文件在目標(biāo)網(wǎng)絡(luò)中自動(dòng)化配置路由。同時(shí),從用戶行為數(shù)據(jù)庫中加載對應(yīng)類型的用戶行為流量模板進(jìn)行處理,修改數(shù)據(jù)包MAC 地址等字段保證用戶行為流量能夠在目標(biāo)網(wǎng)絡(luò)中轉(zhuǎn)發(fā)。然后建立用戶行為仿真模型,該模型包括目標(biāo)網(wǎng)絡(luò)鏈路信息以及用戶規(guī)模數(shù)、行為類型、仿真時(shí)間等具體的仿真運(yùn)行參數(shù),將生成的仿真模型以及流量模板通過配置下發(fā)模塊下發(fā)至對應(yīng)的仿真節(jié)點(diǎn)中。
3)行為仿真任務(wù)并行控制。在所有實(shí)例模型以及流量模板下發(fā)到回放節(jié)點(diǎn)后,仿真控制端通過消息隊(duì)列控制各仿真節(jié)點(diǎn)啟動(dòng)運(yùn)行,按照時(shí)間線實(shí)現(xiàn)對不同節(jié)點(diǎn)不同用戶行為仿真事件的集群調(diào)度。仿真節(jié)點(diǎn)在收到仿真指令后,調(diào)用回放模塊報(bào)文發(fā)送函數(shù)將用戶行為流量注入到虛擬目標(biāo)網(wǎng)絡(luò)中,并實(shí)時(shí)采集仿真運(yùn)行狀態(tài)。
交互式流量回放最為關(guān)鍵的目標(biāo)就是保證回放流量過程中數(shù)據(jù)包的時(shí)序狀態(tài)以及報(bào)文內(nèi)容與原始流量一致,該目標(biāo)也是評估回放逼真性的重要指標(biāo)之一。為實(shí)現(xiàn)該目標(biāo),現(xiàn)有主流的交互式回放方法普遍將請求和響應(yīng)端放在同一服務(wù)器上,以便于更加精確地協(xié)同控制請求和響應(yīng)。本文采用此架構(gòu),但是回放的對象為目標(biāo)網(wǎng)絡(luò),即回放的流量需要經(jīng)過整條鏈路,因此,需要考慮延時(shí)導(dǎo)致的數(shù)據(jù)包亂序問題:
1)原始流量文件中可能出現(xiàn)部分相鄰報(bào)文間隔極短的特殊情況,造成此情況的原因之一可能是采集過程中采集點(diǎn)沒有選取請求與響應(yīng)端鏈路的中點(diǎn),或者是在一個(gè)超低延時(shí)的網(wǎng)絡(luò)環(huán)境下進(jìn)行流量采集。因此,有必要針對該情況進(jìn)行時(shí)間戳校正。
2)回放過程中鏈路延時(shí)、抖動(dòng)以及回放節(jié)點(diǎn)處理延時(shí)對回放效果的影響。面向云平臺(tái)的流量回放相比于DUT 測試場景更為復(fù)雜,延時(shí)和抖動(dòng)會(huì)隨著鏈路的復(fù)雜度增大而增加,尤其是大規(guī)模的網(wǎng)絡(luò)試驗(yàn)場景。不同于實(shí)物回放設(shè)備,在時(shí)間精度方面,實(shí)物網(wǎng)卡往往可以達(dá)到微秒級時(shí)鐘控制,而虛擬機(jī)的時(shí)鐘無法達(dá)到此精度,因此,還需要考慮報(bào)文處理階段虛擬機(jī)的I/O 性能,包處理能力等造成的回放誤差。
基于上述問題,本文設(shè)計(jì)一種基于RTT 校正的時(shí)間戳修復(fù)算法和延時(shí)補(bǔ)償策略,通過對原始流量文件進(jìn)行RTT 時(shí)間戳修正,鏈路延時(shí)補(bǔ)償,解決因延時(shí)造成的誤差。在保證報(bào)文順序準(zhǔn)確的前提下,盡可能將回放時(shí)間誤差降至最低。
此外,在基于流量回放的用戶行為仿真過程中,保證回放數(shù)據(jù)包的順序準(zhǔn)確性優(yōu)先級比保證時(shí)序的精確性更高。因?yàn)椴杉臄?shù)據(jù)包的時(shí)間戳是按網(wǎng)卡接收數(shù)據(jù)包的時(shí)間記錄的,從而無法獲取數(shù)據(jù)包真實(shí)發(fā)送時(shí)間,而且有的協(xié)議例如TCP 協(xié)議具有延時(shí)確認(rèn)機(jī)制。較小的時(shí)間誤差(微秒級)通常對一個(gè)會(huì)話流狀態(tài)的影響很小,但是請求與響應(yīng)順序會(huì)決定會(huì)話流的協(xié)議狀態(tài)。因此,設(shè)計(jì)回放算法的原則應(yīng)在保證回放數(shù)據(jù)包順序一致的前提下盡可能將時(shí)間精度誤差降低,以維持重放的會(huì)話狀態(tài),保證用戶行為仿真的逼真度。為此,本文采用的報(bào)文發(fā)送函數(shù)基于相鄰報(bào)文時(shí)間間隔進(jìn)行發(fā)送,而非距離第1 個(gè)報(bào)文的時(shí)間間隔進(jìn)行發(fā)送,該方式能夠有效確保報(bào)文順序的精確性。
回放時(shí)需要維持整個(gè)會(huì)話的狀態(tài),即數(shù)據(jù)報(bào)文交互的順序需與原始流量文件保持一致,否則將會(huì)導(dǎo)致協(xié)議狀態(tài)錯(cuò)亂。圖3 所示為一個(gè)TCP 會(huì)話建立連接過程,當(dāng)采集點(diǎn)不是客戶/服務(wù)端之間的中間節(jié)點(diǎn),或者是采集網(wǎng)絡(luò)延遲非常低時(shí),流量會(huì)話中SYN請求報(bào)文與SYN-ACK 響應(yīng)報(bào)文的時(shí)間間隔非常短,則回放時(shí)就有可能因?yàn)閭鬏斞訒r(shí)出現(xiàn)SYN-ACK 響應(yīng)報(bào)文比SYN 請求報(bào)文先到達(dá)目標(biāo)節(jié)點(diǎn)的狀態(tài)錯(cuò)亂情況。因此,有必要對采集的用戶行為流量進(jìn)行延時(shí)修復(fù)處理,保證其在回放過程中順序的一致性,以維持正確的用戶行為協(xié)議狀態(tài)。
圖3 TCP 會(huì)話3 次握手過程Fig.3 Process of TCP 3-way handshake
本文提出一個(gè)基于RTT 修復(fù)算法解決流量采集時(shí)采集點(diǎn)不在中間節(jié)點(diǎn)的問題。其中心思想是:根據(jù)TCP 會(huì)話3 次握手中第1 次握手SYN 報(bào)文與第3 次握手SYN-ACK 時(shí)間戳可計(jì)算出原網(wǎng)絡(luò)RTT 往返延時(shí),再根據(jù)RTT 將報(bào)文修復(fù)為在中心節(jié)點(diǎn)采集時(shí)的時(shí)間戳,具體的偽代碼描述如算法1 所示。
因?yàn)镽TT 修復(fù)算法只有在原始流量中包含TCP會(huì)話時(shí)才有效,當(dāng)原始流量中不包含完整TCP 會(huì)話則無法預(yù)估采集時(shí)的RTT 延時(shí),所以需要對其他低延時(shí)的情況進(jìn)行延時(shí)補(bǔ)償。假設(shè)原始流量相鄰報(bào)文間隔為Td,回放時(shí)鏈路的抖動(dòng)為Tj,當(dāng)Tj>Td時(shí),則有可能發(fā)生數(shù)據(jù)包亂序的情況,為盡可能避免這一問題,本文提出一種低時(shí)延補(bǔ)償策略。通過對報(bào)文較小的包進(jìn)行延時(shí)補(bǔ)償,盡可能消除抖動(dòng)對回放造成的誤差。
本文具體策略如下:在仿真實(shí)驗(yàn)前,設(shè)定一組等同數(shù)量具有固定間隔的流量文件進(jìn)行回放。比較原始流量與回放流量中每對相鄰報(bào)文的時(shí)間間隔Δo、Δr,得到一個(gè)誤差均值。計(jì)算公式如下:
將得到的誤差均值對原始流量進(jìn)行補(bǔ)償,具體操作如下:從原始流量中第2 個(gè)報(bào)文開始順序遍歷,當(dāng)報(bào)文滿足Δoi<且與上一條報(bào)文不同側(cè)時(shí),則對當(dāng)前報(bào)文的時(shí)間戳Tsi進(jìn)行誤差補(bǔ)償:Tsi=Tsi-1+,并更新報(bào)文時(shí)間戳,直至最后一個(gè)報(bào)文。使得每個(gè)報(bào)文間隔始終不小于平均誤差,以此減小延時(shí)在回放延時(shí)中造成的誤差。
本節(jié)對基于交互式流量回放的用戶行為仿真方法進(jìn)行實(shí)驗(yàn)驗(yàn)證。
該用戶行為仿真體系部署在基于Openstack Mitaka 版本搭建的云平臺(tái)上,控制節(jié)點(diǎn)采用Intel Xeon E5-2620 v2×4 機(jī)架式處理器,內(nèi)存為32 GB;網(wǎng)絡(luò)節(jié)點(diǎn)處理器為Intel Xeon E5-4607 v2×8,內(nèi)存為32 GB;計(jì)算節(jié)點(diǎn)1 處理器為Intel Xeon E5-2620 v3×4,內(nèi)存為32 GB;計(jì)算節(jié)點(diǎn)2、3、4 處理器均為IntelXeon E5-2620 v3×4,內(nèi)存為32 GB;采用OVS 提供虛擬網(wǎng)絡(luò);所有節(jié)點(diǎn)的操作系統(tǒng)均為CentOS 7.5。
實(shí)驗(yàn)場景如圖4 所示,目標(biāo)網(wǎng)絡(luò)為一個(gè)普通的多尺度虛擬網(wǎng)絡(luò)拓?fù)?,圖中灰色節(jié)點(diǎn)均為虛擬路由器,實(shí)驗(yàn)場景兩端為本仿真方法生成的用戶節(jié)點(diǎn),中心黑色路由節(jié)點(diǎn)為實(shí)驗(yàn)采集點(diǎn)。共設(shè)計(jì)了3 個(gè)驗(yàn)證實(shí)驗(yàn)分別對鏈路交互流量回放方法的逼真性與精準(zhǔn)度,以及用戶行為仿真的可行性與逼真性進(jìn)行驗(yàn)證。
4.2.1 交互式流量鏈路回放方法逼真性驗(yàn)證實(shí)驗(yàn)
為驗(yàn)證本文所提出的鏈路交互式流量回放方法可滿足大規(guī)模高逼真用戶行為仿真的需求,對該方法進(jìn)行逼真性實(shí)驗(yàn)評估。在圖4 的目標(biāo)網(wǎng)絡(luò)中,創(chuàng)建一個(gè)回放節(jié)點(diǎn)接入目標(biāo)網(wǎng)絡(luò)中,仿真一對Web 請求響應(yīng)會(huì)話;鏈路延時(shí)為1.21 ms,在整條鏈路上回放了5 組采集自互聯(lián)網(wǎng)的真實(shí)的TCP 流量文件(數(shù)據(jù)報(bào)文個(gè)數(shù)依次為2 萬、5 萬、10 萬、20 萬、30 萬個(gè)),對本文所設(shè)計(jì)的交互式流量鏈路回放方法在順序的準(zhǔn)確性以及時(shí)間的精確度2 個(gè)方面進(jìn)行評估,以驗(yàn)證該回放方法的逼真性?;谠撛u估方法對比直接回放方法,具體的評估方法如下:
通過對回放后的流量文件與原始流量文件進(jìn)行遍歷,比較兩組在同一位置的每個(gè)報(bào)文內(nèi)容是否相同,統(tǒng)計(jì)錯(cuò)誤的報(bào)文數(shù)以驗(yàn)證該方法的順序準(zhǔn)確性。通過計(jì)算回放與原始流量中每個(gè)相鄰報(bào)文的時(shí)間間隔的誤差驗(yàn)證時(shí)間精確度,即設(shè)Δr為回放流量中2 個(gè)相鄰報(bào)文的時(shí)間間隔,Δo為原始流量中對應(yīng)的2 個(gè)相鄰報(bào)文的時(shí)間間隔,可以計(jì)算出:
在5 組回放實(shí)驗(yàn)中,本文方法產(chǎn)生的亂序報(bào)文數(shù)分別為2、4、4、6、4 個(gè)。如圖5 所示,隨著回放數(shù)據(jù)包的增多,直接回放方法產(chǎn)生的亂序報(bào)文數(shù)明顯增多,在回放30 萬個(gè)數(shù)據(jù)包時(shí),直接回放共產(chǎn)生亂序報(bào)文5 900 個(gè),而本文方法僅為4 個(gè)。
圖5 本文方法與直接回放方法的亂序報(bào)文數(shù)對比Fig.5 Comparison of the out-of-order packets number between the method in this paper and direct replay method
本文所提出延遲補(bǔ)償策略極大地減少了回放中產(chǎn)生錯(cuò)誤數(shù)據(jù)包的數(shù)量,在回放的順序準(zhǔn)確性上具有一定的優(yōu)勢,能夠保證流量回放不亂序這一基本目標(biāo)。相比未經(jīng)過延時(shí)補(bǔ)償?shù)闹苯踊胤欧椒?,本文方法?jīng)過延時(shí)補(bǔ)償后回放產(chǎn)生的亂序報(bào)文數(shù)并不會(huì)隨著回放報(bào)文數(shù)增加而大幅增加,回放的準(zhǔn)確率穩(wěn)定在99.99%。
由于直接回放法在報(bào)文的順序準(zhǔn)確率低,無法準(zhǔn)確驗(yàn)證其回放誤差,因此本文通過對比經(jīng)典單機(jī)流量回放軟件Tcpreplay 回放效果進(jìn)行時(shí)間精確度驗(yàn)證。對比結(jié)果如圖6 所示,本文所設(shè)計(jì)的鏈路交互式流量回放方法平均誤差均小于0.026 ms,與流量回放軟件Tcpreplay 基本持平,但是Tcpreplay 為單機(jī)回放,無需考慮鏈路延時(shí)問題,且無法實(shí)現(xiàn)在鏈路中交互回放。
圖6 本文方法與Tcpreplay 單機(jī)回放方法平均誤差對比Fig.6 Average error comparison of the this paper method and Tcpreplay stand-alone replay method
表1 為本文方法與目前主流的回放方法的對比分析。在回放的逼真性方面,Tcpreplay 由于是單機(jī)回放,在時(shí)序的準(zhǔn)確性和精確度上要略優(yōu)于本文方法,但是其無法面向目標(biāo)網(wǎng)絡(luò)回放,ITRM 和本文方法都是面向虛擬網(wǎng)絡(luò)回放的,但是其無法保證各回放節(jié)點(diǎn)的高精度的同步時(shí)鐘,且其回放機(jī)制是根據(jù)第1 個(gè)報(bào)文間隔進(jìn)行回放,沒有考慮到復(fù)雜網(wǎng)絡(luò)環(huán)境產(chǎn)生亂序報(bào)文的問題。因此,本文設(shè)計(jì)的鏈路交互式流量回放方法在回放時(shí)間和順序的精確性上具有一定的逼真性,特別是在復(fù)雜網(wǎng)絡(luò)的情況下,能夠滿足用戶行為仿真對于回放逼真度的需求。
表1 不同回放方法的對比分析Table 1 Comparative analysis of different playback methods
4.2.2 交互式流量鏈路回放方法多樣性驗(yàn)證實(shí)驗(yàn)
真實(shí)網(wǎng)絡(luò)中多用戶行為具有多樣化、大規(guī)模并發(fā)的特點(diǎn)。因此,多用戶行為仿真也應(yīng)具備大規(guī)模實(shí)驗(yàn)的能力。為驗(yàn)證本文仿真方法的多樣性與規(guī)模,在圖4 網(wǎng)絡(luò)場景下設(shè)計(jì)了基于Web 請求、數(shù)據(jù)庫操作、郵件操作3 種行為的多用戶并發(fā)仿真實(shí)驗(yàn),目標(biāo)網(wǎng)絡(luò)兩端為本文方法創(chuàng)建的3 組仿真節(jié)點(diǎn),通過消息隊(duì)列下發(fā)用戶仿真配置參數(shù),并進(jìn)行分布式協(xié)同控制。本次仿真規(guī)模為36 000 個(gè)用戶,仿真時(shí)間設(shè)置為315 s,共回放了917 000 個(gè)報(bào)文。具體的行為參數(shù)及回放結(jié)果如表2 所示。
表2 并發(fā)行為仿真流量回放結(jié)果Table 2 Replay result of concurrent behavior simulation traffic
在保證不丟包和回放的數(shù)據(jù)包內(nèi)容與原始報(bào)文一致的前提下,表2 結(jié)果顯示在回放的917 000 個(gè)數(shù)據(jù)報(bào)文中共產(chǎn)生了66 個(gè)亂序報(bào)文,3 種行為仿真準(zhǔn)確率均維持在99.99%,回放的精確度能夠滿足多用戶并發(fā)行為仿真的逼真需求。
4.2.3 惡意用戶行為仿真逼真性驗(yàn)證安全實(shí)驗(yàn)
惡意用戶行為仿真對于網(wǎng)絡(luò)安全研究有著重要意義,本文通過重放復(fù)現(xiàn)攻擊場景進(jìn)行惡意用戶為行為分析。本文用戶行為仿真方法亦可構(gòu)建惡意用戶行為模型,根據(jù)基于重放攻擊的安全實(shí)驗(yàn)驗(yàn)證惡意用戶行為模型的逼真性。在圖4 目標(biāo)網(wǎng)絡(luò)中設(shè)置了一組通話節(jié)點(diǎn)sip_client1 與sip_client2,并在中間路由節(jié)點(diǎn)添加了一個(gè)通信代理服務(wù)節(jié)點(diǎn)sip_server,該節(jié)點(diǎn)集成開源通信代理軟件SIPp,對通話進(jìn)行驗(yàn)證。采用本文行為仿真方法創(chuàng)建惡意用戶節(jié)點(diǎn)mal_user 進(jìn)行重放攻擊,具體攻擊流程如下:首先截獲sip_client1 到sip_server 的通話請求流量,構(gòu)造通話用戶行為模型,具體的通話用戶模型如表3 所示。然后在惡意用戶節(jié)點(diǎn)mal_user 上進(jìn)行重放攻擊,即在鏈路2(mal_user->sip_server)中重放鏈路1 中(sip_client1->sip_server)的通話請求行為。
表3 通話行為仿真流量模型Table 3 Simulation traffic model of call behavior
本次實(shí)驗(yàn)共重放500 組用戶通話行為,圖7 為代理節(jié)點(diǎn)sip_server 實(shí)時(shí)統(tǒng)計(jì)的通話成功數(shù),圖8 為通話節(jié)點(diǎn)sip_client2 最終顯示的通話成功用戶數(shù)。在圖7 中,曲線呈線性增長的趨勢符合預(yù)設(shè)的正常通話速率。實(shí)驗(yàn)結(jié)果證明,通過惡意節(jié)點(diǎn)重放的通話流量能夠通過代理服務(wù)器的交互驗(yàn)證,并實(shí)現(xiàn)與SIP_c2 節(jié)點(diǎn)上的用戶成功通話對正常通話行為進(jìn)行干擾。該行為仿真方法具有一定的逼真性。
圖7 代理服務(wù)器sip_server 節(jié)點(diǎn)實(shí)時(shí)統(tǒng)計(jì)的通話成功數(shù)Fig.7 Number of successful calls counted by the call proxy server sip_server node in real time
圖8 通話節(jié)點(diǎn)sip_client2 最終通話成功數(shù)Fig.8 Number of successful final calls of call node sip_client2
本文通過流量回放的方式進(jìn)行網(wǎng)絡(luò)用戶行為仿真,提出一種交互式流量鏈路回放的方法。將回放對象從單個(gè)節(jié)點(diǎn)擴(kuò)大到整個(gè)目標(biāo)網(wǎng)絡(luò)鏈路,并基于該方法設(shè)計(jì)一個(gè)高逼真大規(guī)模的網(wǎng)絡(luò)用戶行為仿真體系。實(shí)驗(yàn)結(jié)果表明,該方法能夠在保證會(huì)話順序與內(nèi)容的準(zhǔn)確性前提下,達(dá)到與現(xiàn)有單機(jī)回放方法同等的精確性及逼真性?;谠摶胤欧椒ǖ木W(wǎng)絡(luò)安全仿真體系具有可行性,其仿真體系可實(shí)現(xiàn)靈活構(gòu)建大規(guī)模高逼真的用戶行為仿真目標(biāo),從而滿足基于云平臺(tái)構(gòu)建的目標(biāo)網(wǎng)絡(luò)注入網(wǎng)絡(luò)用戶行為背景流量的需求。下一步將融合虛實(shí)互連技術(shù),研究面向大規(guī)模目標(biāo)網(wǎng)絡(luò)的高逼真用戶行為仿真方法。