期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘 要:針對蜜網系統易被攻擊者通過時延特征進行識別的問題,提出一種基于集成學習的業務網絡時延模擬算法。該方法首先采集業務服務所在局域網內的網絡流量和時延信息,經數據預處理后,得到數據集。其次,基于Stacking集成學習方法,以隨機森林為元學習器,將Boosting簇三種模型作為初級學習器進行預測,預測結果經融合后作為時延預測的基準值。接著,以分段回歸樹為模型預測時延抖動特征。最后,將時延基準和抖動特征疊加,得到符合局域網時延抖動特性的綜合時延模型,基于該模型實現蜜網系統時延模擬,從而降低被攻擊者識別概率。最終實驗結果表明,與GBDT、XGBoost和CatBoost算法相比,本文方法預測結果在MSE(Mean Square Error,均方誤差)和MAPE(Mean Absolute Percentage Error,平均絕對百分比誤差)上分別提升了35.5%和21.3%,在細節方面有較強表達能力。
關鍵詞:集成學習;網絡時延;Boosting;Stacking;蜜網
1 引言(Introduction)
隨著互聯網技術的普及,網絡為人們帶來便利的同時,也帶來了未知的威脅。傳統安全防御技術判斷手段單一,處理能力有限,不能實時有效地保護真實主機。為了改變攻防雙方在網絡對抗中不平等的狀態,安全人員引入了蜜網技術[1]。蜜網由多個蜜罐組合而成,是一種通過誘餌資源構建真實網絡環境,誘騙攻擊者攻擊虛假資源從而保護業務系統安全的網絡主動防御技術,其首要問題是如何保護蜜網不被攻擊者輕易識別。
傳統網絡中數據傳輸時延受通信協議、路由算法等因素影響,呈現隨機變化的非線性特征。而在蜜網系統中,過長、過短或者一直穩定的網絡時延,都有可能引起攻擊者的警覺。本文假設蜜網部署于局域網內用于保護真實業務主機,為模擬真實主機的時延特性,提出了一種基于集成學習[2-3]的業務網絡時延模擬模型。該模型融合Boosting簇三種算法進行時延基準的預測,同時根據分段回歸樹模型進行抖動特征預測,最后通過兩者疊加來模擬符合局域網的綜合時延。實驗結果表明,該模型與其他模型相比有較好的預測效果。
2 數據獲取與預處理(Data acquisition and preprocessing)
2.1 源數據獲取
本文數據集來源于某實驗室真實局域網網關中的流量。該數據集時間跨度為三天,以分鐘為時間顆粒度,每分鐘的流量數據利用軟件以pcap包的方式保存,以便后續進行分析。采用shell腳本獲取網絡時延數據,結果如圖1所示。從圖1中看出,網絡時延隨時間變化,在一定基準范圍內抖動。在日常工作時間點上,實驗室使用網絡頻繁,引起時延抖動幅度變化較大。
2.2 數據預處理
分析原始數據包發現,由于協議多且復雜,部分協議出現數次之后再也未出現,當數據集將這些協議作為特征記錄時,導致所采集到的數據存在大量無效值。因此為了提高數據質量用于建模分析,需要對數據進行預處理。本文數據預處理包括數據清洗、數據轉換和數據增強三部分,具體步驟如圖2所示。
2.3 特征選擇
數據預處理后,在剩余數據中,部分字段包含在另外一個字段下,例如“DNS Response”和“DNS Query”都屬于“DNS”屬性,數據集分類不清晰,故需要進行特征提取。
特征提取的目的是從所有流量數據中提取更多隱藏在數據中的特征,以達到更好的訓練效果。過多的特征會引起模型出現過擬合現象,適當地選擇特征,不僅能減少學習模型的訓練時間,還能降低學習任務的復雜度,優化學習模型的泛化能力[4]。本文數據集主要以HTTP、HTTPS、SSDP、DNS等應用層協議作為特征選擇。
3 基于Stacking的時延預測算法(Stacking-based delay prediction algorithm)
3.1 移動窗口平均時延基準和時延抖動
移動窗口平均法適用于分析時間序列,其計算方式是按照時間序列逐項推移,計算出窗口內數值的平均值,用于消除預測中的隨機波動。由圖1可知,時延基準數值圍繞一定數值上下波動,在不同時間段內抖動的幅度是不同的。為求得時延在時間序列上的基準值,本文將9:00至22:30劃分為工作時間,其余時間為休息時間。工作時間內時延波動幅度較大,將窗口設置為3;休息時間抖動幅度較小,將窗口設定為5,求得平均時延特征后作為時延基準值。抖動特征則根據時間段劃分為兩部分,分別用于工作時間和休息時間的抖動預測。
3.2 算法描述
(1)時延基準預測。時延基準是指在一定時間范圍內,時延的大致數值。本文采用Stacking框架將Boosting簇模型融合,進行時延基準預測。
本節將經預處理的數據集作為輸入,將時延基準值作為輸出,按照8:2的比例將數據集劃分為訓練集和測試集。定義訓練集為
其中,為輸入特征向量,則本文提出的算法步驟如下:
輸入:訓練數據集D;
輸出:算法模型以及預測值。
步驟1:利用n 折交叉驗證將數據集分成n 份,每一份表示為
取其中1 折作為驗證集,其余N-1 折作為訓練數據。
步驟2:建立n 個算法k的模型。對于模型,,設置驗證集為數據集的第c 份,其余部分為訓練數據,將數據傳入模型,模型產生第c 折驗證集的預測結果。
重復n 次得到n 個算法k的模型和驗證集預測值,并用生成的模型對測試集進行預測得到,。將按照順序拼接后得到算法k模型對訓練集的預測結果,記為
每個模型都對測試集進行預測后,求平均得到對測試集的預測結果,記為。
算法k模型對測試集的預測結果,由n 個值取平均后求得,記為
步驟3:用同樣的方式訓練不同算法,得到K 個訓練集預測值和測試集預測值。將K 個訓練集預測值和真實時延作為新的訓練集數據,將K 個測試集預測值作為新的測試集數據。
步驟四:利用元學習器對新數據集建模預測,預測出最終的時延基準值為。
(2)抖動預測。Boosting簇算法是加法模型和前向分布的結合,在GBDT[5]中表現為加權加法模型,因此削弱了數據隨機波動特性。故本文采用決策樹DCRT對時延抖動誤差進行模擬,得到抖動預測。考慮到工作時間和休息時間內抖動幅度不同,本文采用分段回歸樹模型預測不同時間段的抖動值,記為
其中,和為工作時間和休息時間的模型函數。
(3)由時延基準預測和抖動預測得到最終的時延結果為
4 實驗結果與分析(Experimental results and analysis)
本節實驗目標是驗證時延預測方案的有效性,具體包括數據預處理的有效性,提出算法模型的性能對比,以及對于Stacking的元學習器選擇。實驗環境如表1所示。
實驗所使用的數據集來自2.1部分所述,經預處理后隨機將數據分為訓練集和測試集,其中訓練集占數據總量的80%,測試集占數據總量的20%。為在效果圖中呈現清晰的曲線圖像,在圖中取2%的點進行表示。