劉紅日,呂思才,王佰玲
(哈爾濱工業大學(威海)計算機科學與技術學院,山東 威海264209)
隨著計算機及網絡技術的不斷發展,網絡安全形勢也日益嚴峻。據互聯網安全協會發布的《2018年網絡安全事件和數據泄露趨勢報告》,2018年共有超過200萬起網絡安全事件,至少造成450億美元的經濟損失。網絡環境由互聯發展到了泛在網絡空間,網絡安全事件已經變成網絡攻防常態化下的產物。面對越來越復雜的網絡環境和愈演愈烈的網絡安全事件,為了進行網絡攻防演練以及網絡新技術驗證,世界大國和有影響力的地區組織已率先開展了網絡靶場(Cyber Range)的建設[1]。
眾多研究人員和機構在網絡流量模擬方面取得了很多成果,產生了很多成熟的流量產生器。例如Netperf[2]和iPerf[3]等流量產生器,以及商用仿真軟件OPNET和科研用仿真軟件NS2及NS3等。盡管上述流量產生器及仿真軟件在網絡設備的性能檢測及網絡仿真方面發揮了巨大作用,但由于上述網絡流量模擬技術主要是為測試網絡設備和網絡環境而設計的,其注重于高速、大流量、高帶寬,而在網絡行為的仿真模擬方面能力受限,難以保證模擬網絡節點的逼真度以及網絡用戶行為復制的逼真度,無法滿足在網絡空間靶場環境下對真實應用場景完成較精準構建的需求。
本文以實現逼真地模擬真實的互聯網行為為目標,從流量模擬和用戶的應用行為模擬出發為切入點,研究網絡空間靶場虛擬網絡環境下的網絡行為模擬技術。在流量模擬方面,研究了多節點交互式網絡流量回放技術,實現多節點網絡環境下的流量回放;在應用行為模擬上,分別研究了群體用戶和個體用戶的應用行為模擬方法,實現了不同層次、不同粒度的應用行為模擬,以滿足靶場環境下網絡應用場景的構建需求。
現有的網絡行為模擬分類成果可以分為流量行為模擬和用戶行為模擬。其中流量行為模擬,按照流量的生成方法,又可以分為如下幾種:
(1)基于模型(model-based)的流量生成法。基于網絡流量的數學統計模型,通過測量真實網絡流量特征來設置模型的參數,生成網絡流量。典型的模型有泊松模型、馬爾科夫模型,重尾分布的ON/OFF源聚集模型[4]、M/G/∞排隊模型[5]等。這些模型大部分建立在較強的假設基礎之上。例如,泊松模型假設網絡事件是獨立分布的,但實際的網絡事件并不滿足這些假設。
(2)基于跟蹤(trace-based)的流量生成法。使用已有的真實的網絡流量,通過“錄制—回放”的方式,實現網絡流量的再現。通常使用TCPDum等工具對真實的網絡流量進行錄制,通過TCPReplay[6]、TCPivo[7]等流量工具進行回放。
(3)基于預測(prediction-based)的流量生成法。根據網絡流量在統計上的自相似性和長相關的性質[8],利用現有的網絡流量來預測,進而生成新的網絡流量。
按照模擬的粒度進行分類,可以分為包級(packer-level)模擬[9]、流級(flow-level)模擬[10]和應用級(application-level)模擬[11]。包級和流級模擬通過構造包的長度和包的到達時間間隔的流量模擬,不研究包之間及流之間的關聯關系,適用于網絡出口的流量模擬,不能直接用在對網絡內每個節點的流量模擬。應用級模擬通過模擬用戶操作應用程序來產生流量,是一種更接近真實用戶行為的模擬。
在用戶行為上,研究用戶網絡行為,有助于從用戶的角度來分析流量產生的機制,進而分析出用戶網絡行為的規律,為用戶網絡行為建模及行為模擬提供理論依據。用戶行為區別主要體現在操作對象上,按照操作對象的不同,可以分為web應用、郵件應用、桌面應用等。
用戶的行為從規模上可以分為群體行為和個體行為。個體用戶行為主要是通過個人的網絡行為產生日志來進行分析。如,鼠標、鍵盤的動力學特征[12];群體用戶行為分析主要是從人類動力學角度,對用戶行為進行特征分析,并分析其產生的機制[13]。
在網絡測試床和網絡靶場中,流量回放被用來生成背景流量和再現網絡場景,是網絡安全試驗不可缺少的支撐技術。通過從真實的網絡中捕獲流量并在實驗中進行回放,可以在網絡測試床中生成背景流量,并在網絡靶場上再現真實的網絡場景。實現點到點流量回放的工具有TCPreplay、TCPivo等。然而,這些工具只處理單機到單機的回放,并不能處理多節點到多節點的交互。本文提出多節點流量回放模型,如圖1所示。

圖1 多節點網絡流量回放模型Fig.1 The traffic replay model for multi-node network
將多節點流量回放抽象為一個模型,原始流量(pcap文件)從網管交換機中抓取并存儲在存儲服務器中。按照流量的源地址將流量分為兩類:一類是客戶機流量,另一類是服務器流量。假設本地計算機(客戶機)為c1,…,cn,遠程計算機(服務器)為s1,…,s m。c i(i=1,2,…,n)和s j(j=1,2,…,m)從存儲服務器下載pca p文件后,保持原有的交互關系,實現流量回放。該模型實現了:
(1)IP映射。目標網絡中的IP與原始流量文件中的IP不同,同時原始流量文件中的IP數量要多于目標網絡中的IP數量。因此,需要將原始流量中的IP映射到目標網絡中的IP上。
(2)流量規約。由于有限的硬件資源,在目標網絡的服務器數量比在真實網絡中的數量少得多。因此,需要將真實網絡中服務器流量進行規約,并將規約的流量分配給指定數量的服務器。要解決的問題是如何將所有的服務器流量平均分配到指定數量的服務器中的同時保持原有的交互關系。
(3)低延遲交互。部署在操作系統上的agent轉發原始流量的負載實現流量回放,其需要盡可能與原始網絡中IP的節點保持時序一致。
本文基于人類動力學規律,給出一種基于agent的大規模用戶網絡web行為模擬方法。該方法將個體用戶建模為一個獨立的agent,多個agent構成了一個虛擬的社交網絡。在這個虛擬社交網絡上,研究基于SIR模型的感染消息傳播機制,去驅動agent的網絡行為模擬,最終使群體用戶的web行為時間間隔服從冪律分布。基于SIR模型的web行為模擬算法(s-SIR)如算法1所示。

?
基于s-SIR算法來驅動每一個agent在指定的時間間隔進行web行為模擬,最終使全部用戶的web行為的時間間隔符合冪律分布,以實現群體用戶web行為的模擬。
用戶操作應用軟件的行為一方面可以為網絡空間靶場產生前景流量,另一方面為靶場中的網絡攻防演習提供比較真實的靶標。用戶操作所有的軟件,本質上是鼠標對屏幕特定位置的點擊、拖拽以及敲擊鍵盤中特定按鍵等動作,將這些操作定義為微觀行為。用戶對某個應用軟件的使用,建立在對軟件功能的理解基礎上,通過鼠標和鍵盤對功能的操作,實現了對應用軟件的操作,將用戶操作單個應用的行為稱為中觀行為。為了完成一項任務,用戶通常是通過操作一系列應用軟件,形成應用操作序列來實現任務目標,將用戶行為序列稱為宏觀行為。
在微觀行為上,根據鼠標移動的起點和終點坐標的元數據,采用歸一化方法匹配已采集的用戶鼠標數據,找到最優模板后進行軌跡擬合,生成本次鼠標移動軌跡,最后通過消息插入的方式模擬出鼠標的移動動作,其步驟如下:
3.2.1 靜態匹配的鼠標模板生成
通過錄制用戶鼠標的行為,存儲用戶的移動軌跡,構建用戶鼠標行為數據庫。通過比較待模擬的距離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 動態擬合的鼠標軌跡生成
待模擬操作鼠標移動的起止點與f i t L不重合,需對f i t L進行軌跡擬合。軌跡擬合操作包括:
(1)坐標平移:使待模擬操作的起始點平移到模板序列起點位置;
(2)坐標伸縮:保證鼠標模擬操作的起止點與命中模板的起止點的直線距離相等;
(3)坐標旋轉變換:使模板的起止點的水平夾角與待模擬操作的起止點的水平夾角方向一致;
(4)時間補償:命中模板的坐標進行縮放,移動的時間也發生了變化,需修正。
通過以上靜態匹配和動態擬合,可以生成鼠標模擬的移動軌跡。
在中觀行為上,基于agent進行用戶單應用行為模擬。agent通過強化學習方法來學習某個軟件的功能,生成軟件行為知識庫。在模擬用戶操作軟件行為時,通過從知識庫獲取agent學到的軟件功能菜單的操作序列,來實現軟件行為的模擬。
Agent通過強化學習,可在形成軟件的各個狀態和動作之間建立邏輯連接(知識),將知識存儲在數據庫中,構建知識庫。進行行為模擬任務時,檢索知識庫進行知識回憶,通過Windows消息驅動和OCR驅動混合實現行為模擬。
在宏觀行為上,基于序列預測,實現了用戶連續多應用軟件行為模擬。借助于生成式對抗網絡(Generative Adversarial Networks,GAN)在本文生成方面的優勢,提出了基于SeqGan[14]的用戶軟件行為序列生成算法。將用戶使用的軟件進程(一個軟件對應一個進程名稱)進行統一編碼,用戶在一段時間內使用的軟件構成一個序列,該序列被定位為輸入樣本。算法的目的是生成用戶新的行為序列,作為用戶未來的行為序列,如圖2所示。

圖2 SeqGan示意圖Fig.2 SeqGan schematic
圖2 中,左側輸入的數據為用戶操作的軟件編號,D和G分別代表判別器和生成器,D通過真實數據和G的生成數據進行訓練。在圖的右側,G由policy gradient訓練,其中最終的獎勵信號由D提供,并通過蒙特卡洛搜索傳遞回途經的動作價值。已經存在的白色圓點稱為現在的狀態(state),要生成的下一個白色圓點稱作動作(action)。因D需要對一個完整的序列評分,所以用MCTS(蒙特卡洛樹搜索)將每一個動作的各種可能性補全,D對這些完整的序列產生reward,回傳給G,通過增強學習更新G。用強化學習的方式,訓練出一個可以產生下一個最優的action的生成網絡。生成器為強化學習中的agent,狀態是生成的token,動作為下一個生成的token,利用蒙特卡洛搜索去估計狀態行為值,策略梯度去訓練梯度。
本文針對網絡靶場中的網絡行為模擬進行研究,將網絡行為抽象建模,從用戶行為和流量行為兩個方面來模擬網絡行為,實現網絡場景的背景流量模擬、前景流量模擬和靶標模擬。在流量模擬方面,提出了多節點交互式流量回放算法,實現了錄制流量在靶場中的逼真回放;在用戶行為模擬方面,提出了粗粒度的群體用戶行為模擬和細粒度個體用戶行為模擬,又進一步對個體行為模擬從模擬層次上提出了宏觀行為模擬、中觀行為模擬和微觀行為模擬,研究了3種層面用戶行為模擬的算法。
未來工作中,在流量回放上可以圍繞流量回放資源計算問題展開,計算出回放需要的最少資源,這對于未來進行大規模的網絡攻防演習具有極高的應用價值;在用戶行為建模上,目前研究的用戶行為模擬是從個人細粒度行為的模擬,沒有區分出用戶在組織中的角色,可以從網絡攻防演練下的用戶角色的建模方法進行深入研究。