劉紅日,呂思才,王佰玲
(哈爾濱工業(yè)大學(威海)計算機科學與技術(shù)學院,山東 威海264209)
隨著計算機及網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)安全形勢也日益嚴峻。據(jù)互聯(lián)網(wǎng)安全協(xié)會發(fā)布的《2018年網(wǎng)絡(luò)安全事件和數(shù)據(jù)泄露趨勢報告》,2018年共有超過200萬起網(wǎng)絡(luò)安全事件,至少造成450億美元的經(jīng)濟損失。網(wǎng)絡(luò)環(huán)境由互聯(lián)發(fā)展到了泛在網(wǎng)絡(luò)空間,網(wǎng)絡(luò)安全事件已經(jīng)變成網(wǎng)絡(luò)攻防常態(tài)化下的產(chǎn)物。面對越來越復雜的網(wǎng)絡(luò)環(huán)境和愈演愈烈的網(wǎng)絡(luò)安全事件,為了進行網(wǎng)絡(luò)攻防演練以及網(wǎng)絡(luò)新技術(shù)驗證,世界大國和有影響力的地區(qū)組織已率先開展了網(wǎng)絡(luò)靶場(Cyber Range)的建設(shè)[1]。
眾多研究人員和機構(gòu)在網(wǎng)絡(luò)流量模擬方面取得了很多成果,產(chǎn)生了很多成熟的流量產(chǎn)生器。例如Netperf[2]和iPerf[3]等流量產(chǎn)生器,以及商用仿真軟件OPNET和科研用仿真軟件NS2及NS3等。盡管上述流量產(chǎn)生器及仿真軟件在網(wǎng)絡(luò)設(shè)備的性能檢測及網(wǎng)絡(luò)仿真方面發(fā)揮了巨大作用,但由于上述網(wǎng)絡(luò)流量模擬技術(shù)主要是為測試網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)環(huán)境而設(shè)計的,其注重于高速、大流量、高帶寬,而在網(wǎng)絡(luò)行為的仿真模擬方面能力受限,難以保證模擬網(wǎng)絡(luò)節(jié)點的逼真度以及網(wǎng)絡(luò)用戶行為復制的逼真度,無法滿足在網(wǎng)絡(luò)空間靶場環(huán)境下對真實應(yīng)用場景完成較精準構(gòu)建的需求。
本文以實現(xiàn)逼真地模擬真實的互聯(lián)網(wǎng)行為為目標,從流量模擬和用戶的應(yīng)用行為模擬出發(fā)為切入點,研究網(wǎng)絡(luò)空間靶場虛擬網(wǎng)絡(luò)環(huán)境下的網(wǎng)絡(luò)行為模擬技術(shù)。在流量模擬方面,研究了多節(jié)點交互式網(wǎng)絡(luò)流量回放技術(shù),實現(xiàn)多節(jié)點網(wǎng)絡(luò)環(huán)境下的流量回放;在應(yīng)用行為模擬上,分別研究了群體用戶和個體用戶的應(yīng)用行為模擬方法,實現(xiàn)了不同層次、不同粒度的應(yīng)用行為模擬,以滿足靶場環(huán)境下網(wǎng)絡(luò)應(yīng)用場景的構(gòu)建需求。
現(xiàn)有的網(wǎng)絡(luò)行為模擬分類成果可以分為流量行為模擬和用戶行為模擬。其中流量行為模擬,按照流量的生成方法,又可以分為如下幾種:
(1)基于模型(model-based)的流量生成法?;诰W(wǎng)絡(luò)流量的數(shù)學統(tǒng)計模型,通過測量真實網(wǎng)絡(luò)流量特征來設(shè)置模型的參數(shù),生成網(wǎng)絡(luò)流量。典型的模型有泊松模型、馬爾科夫模型,重尾分布的ON/OFF源聚集模型[4]、M/G/∞排隊模型[5]等。這些模型大部分建立在較強的假設(shè)基礎(chǔ)之上。例如,泊松模型假設(shè)網(wǎng)絡(luò)事件是獨立分布的,但實際的網(wǎng)絡(luò)事件并不滿足這些假設(shè)。
(2)基于跟蹤(trace-based)的流量生成法。使用已有的真實的網(wǎng)絡(luò)流量,通過“錄制—回放”的方式,實現(xiàn)網(wǎng)絡(luò)流量的再現(xiàn)。通常使用TCPDum等工具對真實的網(wǎng)絡(luò)流量進行錄制,通過TCPReplay[6]、TCPivo[7]等流量工具進行回放。
(3)基于預測(prediction-based)的流量生成法。根據(jù)網(wǎng)絡(luò)流量在統(tǒng)計上的自相似性和長相關(guān)的性質(zhì)[8],利用現(xiàn)有的網(wǎng)絡(luò)流量來預測,進而生成新的網(wǎng)絡(luò)流量。
按照模擬的粒度進行分類,可以分為包級(packer-level)模擬[9]、流級(flow-level)模擬[10]和應(yīng)用級(application-level)模擬[11]。包級和流級模擬通過構(gòu)造包的長度和包的到達時間間隔的流量模擬,不研究包之間及流之間的關(guān)聯(lián)關(guān)系,適用于網(wǎng)絡(luò)出口的流量模擬,不能直接用在對網(wǎng)絡(luò)內(nèi)每個節(jié)點的流量模擬。應(yīng)用級模擬通過模擬用戶操作應(yīng)用程序來產(chǎn)生流量,是一種更接近真實用戶行為的模擬。
在用戶行為上,研究用戶網(wǎng)絡(luò)行為,有助于從用戶的角度來分析流量產(chǎn)生的機制,進而分析出用戶網(wǎng)絡(luò)行為的規(guī)律,為用戶網(wǎng)絡(luò)行為建模及行為模擬提供理論依據(jù)。用戶行為區(qū)別主要體現(xiàn)在操作對象上,按照操作對象的不同,可以分為web應(yīng)用、郵件應(yīng)用、桌面應(yīng)用等。
用戶的行為從規(guī)模上可以分為群體行為和個體行為。個體用戶行為主要是通過個人的網(wǎng)絡(luò)行為產(chǎn)生日志來進行分析。如,鼠標、鍵盤的動力學特征[12];群體用戶行為分析主要是從人類動力學角度,對用戶行為進行特征分析,并分析其產(chǎn)生的機制[13]。
在網(wǎng)絡(luò)測試床和網(wǎng)絡(luò)靶場中,流量回放被用來生成背景流量和再現(xiàn)網(wǎng)絡(luò)場景,是網(wǎng)絡(luò)安全試驗不可缺少的支撐技術(shù)。通過從真實的網(wǎng)絡(luò)中捕獲流量并在實驗中進行回放,可以在網(wǎng)絡(luò)測試床中生成背景流量,并在網(wǎng)絡(luò)靶場上再現(xiàn)真實的網(wǎng)絡(luò)場景。實現(xiàn)點到點流量回放的工具有TCPreplay、TCPivo等。然而,這些工具只處理單機到單機的回放,并不能處理多節(jié)點到多節(jié)點的交互。本文提出多節(jié)點流量回放模型,如圖1所示。
圖1 多節(jié)點網(wǎng)絡(luò)流量回放模型Fig.1 The traffic replay model for multi-node network
將多節(jié)點流量回放抽象為一個模型,原始流量(pcap文件)從網(wǎng)管交換機中抓取并存儲在存儲服務(wù)器中。按照流量的源地址將流量分為兩類:一類是客戶機流量,另一類是服務(wù)器流量。假設(shè)本地計算機(客戶機)為c1,…,cn,遠程計算機(服務(wù)器)為s1,…,s m。c i(i=1,2,…,n)和s j(j=1,2,…,m)從存儲服務(wù)器下載pca p文件后,保持原有的交互關(guān)系,實現(xiàn)流量回放。該模型實現(xiàn)了:
(1)IP映射。目標網(wǎng)絡(luò)中的IP與原始流量文件中的IP不同,同時原始流量文件中的IP數(shù)量要多于目標網(wǎng)絡(luò)中的IP數(shù)量。因此,需要將原始流量中的IP映射到目標網(wǎng)絡(luò)中的IP上。
(2)流量規(guī)約。由于有限的硬件資源,在目標網(wǎng)絡(luò)的服務(wù)器數(shù)量比在真實網(wǎng)絡(luò)中的數(shù)量少得多。因此,需要將真實網(wǎng)絡(luò)中服務(wù)器流量進行規(guī)約,并將規(guī)約的流量分配給指定數(shù)量的服務(wù)器。要解決的問題是如何將所有的服務(wù)器流量平均分配到指定數(shù)量的服務(wù)器中的同時保持原有的交互關(guān)系。
(3)低延遲交互。部署在操作系統(tǒng)上的agent轉(zhuǎn)發(fā)原始流量的負載實現(xiàn)流量回放,其需要盡可能與原始網(wǎng)絡(luò)中IP的節(jié)點保持時序一致。
本文基于人類動力學規(guī)律,給出一種基于agent的大規(guī)模用戶網(wǎng)絡(luò)web行為模擬方法。該方法將個體用戶建模為一個獨立的agent,多個agent構(gòu)成了一個虛擬的社交網(wǎng)絡(luò)。在這個虛擬社交網(wǎng)絡(luò)上,研究基于SIR模型的感染消息傳播機制,去驅(qū)動agent的網(wǎng)絡(luò)行為模擬,最終使群體用戶的web行為時間間隔服從冪律分布?;赟IR模型的web行為模擬算法(s-SIR)如算法1所示。
?
基于s-SIR算法來驅(qū)動每一個agent在指定的時間間隔進行web行為模擬,最終使全部用戶的web行為的時間間隔符合冪律分布,以實現(xiàn)群體用戶web行為的模擬。
用戶操作應(yīng)用軟件的行為一方面可以為網(wǎng)絡(luò)空間靶場產(chǎn)生前景流量,另一方面為靶場中的網(wǎng)絡(luò)攻防演習提供比較真實的靶標。用戶操作所有的軟件,本質(zhì)上是鼠標對屏幕特定位置的點擊、拖拽以及敲擊鍵盤中特定按鍵等動作,將這些操作定義為微觀行為。用戶對某個應(yīng)用軟件的使用,建立在對軟件功能的理解基礎(chǔ)上,通過鼠標和鍵盤對功能的操作,實現(xiàn)了對應(yīng)用軟件的操作,將用戶操作單個應(yīng)用的行為稱為中觀行為。為了完成一項任務(wù),用戶通常是通過操作一系列應(yīng)用軟件,形成應(yīng)用操作序列來實現(xiàn)任務(wù)目標,將用戶行為序列稱為宏觀行為。
在微觀行為上,根據(jù)鼠標移動的起點和終點坐標的元數(shù)據(jù),采用歸一化方法匹配已采集的用戶鼠標數(shù)據(jù),找到最優(yōu)模板后進行軌跡擬合,生成本次鼠標移動軌跡,最后通過消息插入的方式模擬出鼠標的移動動作,其步驟如下:
3.2.1 靜態(tài)匹配的鼠標模板生成
通過錄制用戶鼠標的行為,存儲用戶的移動軌跡,構(gòu)建用戶鼠標行為數(shù)據(jù)庫。通過比較待模擬的距離d0和角度a0,與模板庫中待匹配鼠標軌跡的距離d i和角度a i的距離公式(1),來確定命中的模板f i t L。
其中,f i t L={(x1,y1,t1),(x2,y2,t2),......,(x n,y n,t n)},是n個鼠標消息記錄。
3.2.2 動態(tài)擬合的鼠標軌跡生成
待模擬操作鼠標移動的起止點與f i t L不重合,需對f i t L進行軌跡擬合。軌跡擬合操作包括:
(1)坐標平移:使待模擬操作的起始點平移到模板序列起點位置;
(2)坐標伸縮:保證鼠標模擬操作的起止點與命中模板的起止點的直線距離相等;
(3)坐標旋轉(zhuǎn)變換:使模板的起止點的水平夾角與待模擬操作的起止點的水平夾角方向一致;
(4)時間補償:命中模板的坐標進行縮放,移動的時間也發(fā)生了變化,需修正。
通過以上靜態(tài)匹配和動態(tài)擬合,可以生成鼠標模擬的移動軌跡。
在中觀行為上,基于agent進行用戶單應(yīng)用行為模擬。agent通過強化學習方法來學習某個軟件的功能,生成軟件行為知識庫。在模擬用戶操作軟件行為時,通過從知識庫獲取agent學到的軟件功能菜單的操作序列,來實現(xiàn)軟件行為的模擬。
Agent通過強化學習,可在形成軟件的各個狀態(tài)和動作之間建立邏輯連接(知識),將知識存儲在數(shù)據(jù)庫中,構(gòu)建知識庫。進行行為模擬任務(wù)時,檢索知識庫進行知識回憶,通過Windows消息驅(qū)動和OCR驅(qū)動混合實現(xiàn)行為模擬。
在宏觀行為上,基于序列預測,實現(xiàn)了用戶連續(xù)多應(yīng)用軟件行為模擬。借助于生成式對抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)在本文生成方面的優(yōu)勢,提出了基于SeqGan[14]的用戶軟件行為序列生成算法。將用戶使用的軟件進程(一個軟件對應(yīng)一個進程名稱)進行統(tǒng)一編碼,用戶在一段時間內(nèi)使用的軟件構(gòu)成一個序列,該序列被定位為輸入樣本。算法的目的是生成用戶新的行為序列,作為用戶未來的行為序列,如圖2所示。
圖2 SeqGan示意圖Fig.2 SeqGan schematic
圖2 中,左側(cè)輸入的數(shù)據(jù)為用戶操作的軟件編號,D和G分別代表判別器和生成器,D通過真實數(shù)據(jù)和G的生成數(shù)據(jù)進行訓練。在圖的右側(cè),G由policy gradient訓練,其中最終的獎勵信號由D提供,并通過蒙特卡洛搜索傳遞回途經(jīng)的動作價值。已經(jīng)存在的白色圓點稱為現(xiàn)在的狀態(tài)(state),要生成的下一個白色圓點稱作動作(action)。因D需要對一個完整的序列評分,所以用MCTS(蒙特卡洛樹搜索)將每一個動作的各種可能性補全,D對這些完整的序列產(chǎn)生reward,回傳給G,通過增強學習更新G。用強化學習的方式,訓練出一個可以產(chǎn)生下一個最優(yōu)的action的生成網(wǎng)絡(luò)。生成器為強化學習中的agent,狀態(tài)是生成的token,動作為下一個生成的token,利用蒙特卡洛搜索去估計狀態(tài)行為值,策略梯度去訓練梯度。
本文針對網(wǎng)絡(luò)靶場中的網(wǎng)絡(luò)行為模擬進行研究,將網(wǎng)絡(luò)行為抽象建模,從用戶行為和流量行為兩個方面來模擬網(wǎng)絡(luò)行為,實現(xiàn)網(wǎng)絡(luò)場景的背景流量模擬、前景流量模擬和靶標模擬。在流量模擬方面,提出了多節(jié)點交互式流量回放算法,實現(xiàn)了錄制流量在靶場中的逼真回放;在用戶行為模擬方面,提出了粗粒度的群體用戶行為模擬和細粒度個體用戶行為模擬,又進一步對個體行為模擬從模擬層次上提出了宏觀行為模擬、中觀行為模擬和微觀行為模擬,研究了3種層面用戶行為模擬的算法。
未來工作中,在流量回放上可以圍繞流量回放資源計算問題展開,計算出回放需要的最少資源,這對于未來進行大規(guī)模的網(wǎng)絡(luò)攻防演習具有極高的應(yīng)用價值;在用戶行為建模上,目前研究的用戶行為模擬是從個人細粒度行為的模擬,沒有區(qū)分出用戶在組織中的角色,可以從網(wǎng)絡(luò)攻防演練下的用戶角色的建模方法進行深入研究。