網絡安全態勢感知技術與應用

時間:2022-07-26 10:59:25

導語:網絡安全態勢感知技術與應用一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

網絡安全態勢感知技術與應用

為了應對日趨復雜的網絡安全問題,傳統的基于規則的網絡安全監測技術無法預知未知的網絡入侵方法。網絡安全態勢感知是一種基于環境的、動態的、整體的數據融合方法,可以從宏觀角度把數據融合起來。通過機器學習算法發現數據之間的相關性,而不是人為制定規則,可以發現數據之間潛在的聯系。支持向量機是機器學習中較為通用的一種算法,通過對KDDCUP99數據集的訓練和測試,得到的模型有效地對網絡安全測試數據進行了預測。態勢感知技術是網絡安全強有力的監控技術和保障技術,面對傳統網絡安全技術無法較好地檢測網絡狀態和探究其變化規律等問題,本文結合機器學習在大數據分析于預測方面的優勢,通過數據融合的方式將入侵檢測系統、日志文件、防火墻、網絡設備等數據進行歸一化操作,然后基于這些統一的數據進行進一步的態勢評估和預測,并對不同機器學習算法在網絡安全態勢感知評估與預測效果和數據訓練耗時方面進行了對比。

1網絡安全態勢感知的相關概念

狀態是指一個物質系統中各個對象所處的狀況,由一組測度來表征,態勢是系統中各個對象狀態的綜合,是一個整體和全局的概念。任何單一的狀態均不能成為態勢,它強調系統及系統中對象之間的關系[1]。態勢感知是指獲取一個系統中各對象要素的數據以及對這些數據表征的系統的理解和預測。文獻[2]探討了網絡安全態勢感知的概念,認為它是“在大規模網絡環境中,對能夠引起網絡態勢發生變化的安全要素進行獲取、理解、顯示以及預測未來的發展趨勢”。國外對網絡安全態勢感知的研究工作進行得較早且相對系統化,最早是1988年Endsley定義網絡安全態勢感知分為3步,即“在網絡的特定時空環境下,對網絡要素的獲取、態勢理解、對未來的預測”,如圖1所示:

2網絡安全態勢感知的關鍵技術

文獻[3]對網絡安全態勢評估的算法有較大篇幅的論述,他把網絡安全態勢評估的算法分為以下幾類:基于邏輯關系的融合方法、基于數學模型的融合方法、基于概率統計的融合方法、基于規則推理的融合方法。在網絡安全態勢預測方面,一般采用神經網絡、時間序列預測法和支持向量機等方法。文獻[4]對網絡安全態勢評估的算法分為以下3類:知識推理方法、統計方法、灰度理論方法。文獻[5]對網絡安全態勢感知的關鍵技術分為基于層次化分析、機器學習、免疫系統、博弈論的態勢感知方法。文獻[6]通過應用不同的機器學習算法于同一數據集進行網絡安全態勢感知進行評估與預測,比較不同算法在平均絕對誤差、均方差和訓練時間上的差別。從以上3篇綜述文章可以看出,在網絡安全態勢感知研究的早期,屬于機器學習的神經網絡、時間序列預測法和支持向量機等方法,僅用于網絡安全態勢預測方面。今年,機器學習逐漸成為網絡安全態勢感知技術中一個單獨的分類。以“機器學習”和“網絡安全態勢”為關鍵字檢索到7篇論文[7-13]均為2015年之后發表的碩士和博士論文,說明應用機器學習技術進行網絡安全態勢感知的研究,所涵蓋的知識深度和內容足夠廣泛。

3基于支持向量機的網絡安全態勢感知技術研究

3.1支持向量機

支持向量機(SupportVectorMachines,SVM)是一種二分類模型,它的基本模型是定義在特征空間上的間隔最大的線性分類器,間隔最大使它有別于感知機;SVM還包括核技巧,這使它成為實質上的非線性分類器。SVM的學習策略就是間隔最大化,可形式化為一個求解凸二次規劃的問題,也等價于正則化的合頁損失函數的最小化問題。SVM的學習算法就是求解凸二次規劃的最優化算法。線性支持向量機學習算法如下:輸入:訓練數據集T={(x1,y1),(x2,y1),…,(xN,yN)},其中,xi∈Rn,yi∈{+1,-1},i=1,2,…N;輸出:分離超平面和分類決策函數(1)選擇懲罰參數C>0,構造并求解凸二次規劃問題:minα1/2∑Ni=1∑Nj=1αiαjyiyj(xi·xj)-∑Ni=1αi(1)s.t.∑Ni=1αiyi=00<αi≤C,i=1,2,......,N得到最優解α*=(α1*,α2*,…,αN*)T(2)計算:w*=∑Ni=1α1*yixi(2)選擇α*的一個分量αj*滿足條件0<αj*<C,計算b*=yj-∑Ni=1α1*yi(xi·xj)(3)(3)求分離超平面:w*·x+b*=0(4)分類決策函數:f(x)=sign(w*·x+b*)(5)

3.2網絡安全態勢感知數據集

利用機器學習對網絡安全態勢感知進行研究,需要足夠數據的數據集。數據集可以采用私有數據集,也可以采用公開的數據集。采用公開的數據集的好處是很多已公開發布的研究成果采用的是公開的數據集,不同研究成果算法之間可以在同一基礎上進行比較和借鑒。公開的可以獲得的網絡安全數據集包括:KDDCUP99數據集、CICIDS2017數據集、HoneyNet-data數據集等。本文采用的數據集是KDDCUP99數據集。該數據集是從一個模擬的美國空軍局域網上采集來的9個星期的網絡連接數據,分成具有標識的訓練數據和未加標識的測試數據。測試數據和訓練數據有著不同的概率分布,測試數據包含了一些未出現在訓練數據中的攻擊類型,這使得入侵檢測更具有現實性。在訓練數據集中包含了1種正常的標識類型Normal和22種訓練攻擊類型,如表1所示。另外有14種攻擊僅出現在測試數據集中。KDDCUP99訓練數據集中每個連接記錄包含了41個固定的特征屬性和1個類標識,標識用來表示該條連接記錄是正常的,或是某個具體的攻擊類型。在41個固定的特征屬性中,9個特征屬性為離散(Symbolic)型,其他均為連續(Continuous)型。KDDCUP99數據集由500萬條記錄構成,特征屬性采用41個特征屬性中的duration、wrong_fragment、num_failed_logins、logged_in、root_shell、dst_host_same_src_port_rate、dst_host_serror_rate、dst_host_rerror_rate這8個特征屬性。

3.3數據預處理

數據的預處理包括數據的歸一化和數據的標準化、標簽編碼。數據的歸一化是將訓練集和測試集中某一列特征的值縮放到0和1之間。方法如式(6)所示:Xnorm=(X-Xmin)/(Xmax-Xmin)(6)數據的標準化是將訓練集和測試集中某一列特征的值縮成均值為0,方差為1的狀態。方法如式(7)所示:z=(x-μ)/σ(7)

3.4基于scikitlearn類庫的支持向量機算法的實現和評估

機器學習類庫scikitlearn包含了支持向量機算法的實現,可以用以下幾行代碼實現:#支持向量機fromsklearnimportsvmclf=svm.SVC()clf.fit(X_train,y_train)y_pred=clf.predict(X_test)evaluation(y_test,y_pred,index_name=[clf])對KDDCUP99數據集應用高斯樸素貝葉斯算法的效果如下:平均絕對誤差:0.1355均方差:0.2717訓練時間:2.8601ms。

4總結

機器學習技術經過幾年的飛速發展日趨成熟,在應用機器學習算法到網絡安全態勢感知評估和預測方面,可以利用已有的第三方模塊中的模型便捷地進行數據的訓練和測試及預測。利用支持向量機算法對所采用的數據集進行訓練,可以達到較為良好的效果。本文只對特定的數據集中數據的部分特征進行了訓練,需要進一步研究的是對所選數據集的全部特征訓練需要縮短訓練時間,也需要對其它數據集進行訓練和模型構建,驗證支持向量機算法對其它數據集的有效性。

作者:魏孔鵬 王菊 谷洪彬 單位:盤錦職業技術學院