董 偉,楊 晨,邵俊杰
(中國電子信息產業集團有限公司第六研究所工業控制系統信息安全技術國家工程實驗室,北京 102209)
隨著互聯網的爆炸式發展,網絡安全已上升到國家戰略層面,面對日益復雜的網絡環境,傳統的協議識別技術已不再適用。2015年微軟在Kaggle上發起了一個惡意代碼分類的比賽,而取得第一名的隊伍的三名隊員都不是安全出身,所采用的方法與常見的方法存在很大的不同,展現了機器學習在安全領域的巨大潛力[1]。特征工程作為機器學習領域極具分量的步驟,在工程中占用的時間遠超我們的想象,特征工程的好壞直接關系到學習結果,可以說特征工程決定了模型的上限。
本文以數據挖掘及機器學習的視角去看待安全問題,在網絡安全領域進行了初步實踐。
KDD99數據集來源于美國國防部高級研究計劃局(DARPA)的入侵檢測評估項目,由 MIT Lincoln實驗室進行數據集搜集,該項目始于1998 年,后經哥倫比亞大學的STOLFOS教授等人進行粗粒度數據處理后形成了一個新的數據集,該數據集用于1999年的KDD競賽上,成為了著名的KDD99數據集。雖然年代有些久遠,但KDD99數據集仍然是網絡入侵檢測領域的權威測試集[1],為基于計算智能的網絡入侵檢測研究奠定基礎。
KDD99數據集由41個特征以及1個類別標記組成,其中41個特征共分為4大類:TCP連接基本特征、TCP連接的內容的特征、基于時間的網絡流量統計特征、基于主機的網絡流量統計特征。類別標記分為兩類:正常(normal)和異常(abnormal),異常類型被分為4大類共39種攻擊類型,其中22種攻擊類型出現在訓練集中,另有17種未知攻擊類型出現在測試集中。
KDD99數據集雖已經過粗粒度的處理,但仍然不能直接用于算法中。KDD99數據集數據屬性按數據類型可分為兩大類:離散屬性(第2、3、4個特征)和連續屬性。
由于KDD99中的離散屬性都是標稱屬性,若直接將其映射為序數屬性,則會大大增加調參工作量。為此,本文采用了獨熱編碼(One-Hot Encoding)對數據進行處理,其方法是使用N位布爾變量來對N個狀態進行編碼,每個狀態都由它獨立的位表示,并有且僅有一位有效,其余N-1位全為0。獨熱編碼的方式相比映射為序數屬性的方式,不用增加調參的工作。對于線性模型來說,使用獨熱編碼后可達到非線性的效果。而對于第三個屬性,考慮其離散值較多,為避免引起“維數災難”,將其舍棄。

圖1 決策樹模型
對于連續屬性,一般而言,用較小的單位表示將導致該屬性具有較大值域,因此趨向于使該屬性擁有較大的“權重”,在基于距離的算法中,影響更甚。為了消去不同量綱對算法的影響,應對連續屬性進行規范化處理。
常用的規范化方法有三種:最小—最大規范化、z分數規范化和按小數定標規范化。本文采用最小—最大規范化,其計算方法如公式所示:
(1)

KDD99樣本經數據預處理后由52維表示,這52個屬性不僅會影響算法運行時間,而且可能會存在冗余屬性,對實驗結果造成干擾。為此一種方法是進行屬性子集選擇。常用的方法包括:逐步向前選擇、逐步向后選擇、逐步向前選擇和逐步向后刪除的組合以及決策樹歸納[2]。本文采用決策樹歸納的方法進行屬性子集選擇。
決策樹算法最初是用來分類的,當決策樹歸納用于屬性子集選擇時由給定的數據構造決策樹,出現在樹中的屬性形成規約后的屬性子集。
1.3.1評判指標
將數據標記為兩類:正常(normal)和異常(abnormal),用準確率(Precision)、召回率(Recall)、和F度量評估算法。準確率可以看作準確性的度量(即預測為正類的元組實際為正類所占的百分比),召回率是完全性的度量(即正元組預測為正的百分比),而F度量是準確率和回率的調和均值。這些度量計算公式如下:
(2)
(3)
(4)
其中,TP(True Positive)是指被分類器正確分類的正元組,FP(False Positive)是指被錯誤地標記為正元組的負元組,FN(False Negative)是指被錯誤地標記為負元組的正元組。
1.3.2實驗結果分析
實驗構建了基于信息熵的決策樹模型,顯示其前四層的樹型表示如圖1所示。
用圖1中的特征子集表征數據,將“正?!痹M標記為正類,采用10折交叉驗證的方式,在決策樹模型上進行分析,參照公式(2)、(3)、(4)的模型評判標準,其結果與用所有特征表征的數據運行結果對比如表1所示。

表1 數據對比表
如表1所示,采用所選特征子集對數據進行特征選擇后,各度量值雖都略有所下降,但相差無幾,故在后續研究中,選用上述特征子集進行運算分析,節約了時間成本。
回歸是研究自變量和因變量之間關系的一種預測模型技術?;貧w分析的目的是預測數值型的目標值,最直觀的表現形式是依據輸入構造目標值的計算公式,該公式就是回歸方程(Regression Equation),求解回歸方程的回歸系數的過程就是回歸。回歸分析包含多種預測模型,常見的有線性回歸(Linear Regression)、邏輯回歸(Logistic Regression)、多項式回歸(Polynomial Regression)、逐步回歸(Stepwise Regression)、嶺回歸(Ridge Regression)、套索回歸(Lasso Regression)、回歸(ElasticNet)等。
邏輯回歸是比較常用的機器學習算法,原因在于它不但能指出自變量和因變量之間的顯著關系,允許比較不同尺度的度量,還能快速地用較低的代價吸收新數據更新模型。因此,針對KDD99數據集數據類型復雜、特征維數較多的特點,選用邏輯回歸算法來進行異常檢測。
邏輯回歸是一種廣義線性回歸,處理的是分類問題。線性回歸的公式如下:
z=ω1x1+ω2x2+ω3x3+…+ωnxn+b=WTX+b
(5)
其中,XT=[x1x2x3…xn]是輸入的樣本特征,WT=[ω1ω2ω3…ωn]是方程的回歸系數,b是常量。對于邏輯回歸來說,其思想也是基于線性回歸,但是回歸公式并不是直接輸出結果Z,而是增加激活函數,將方程的值域映射到某特定的取值空間(應根據目標值的要求選取適合的激活函數),構造損失函數,求使損失函數最小的回歸參數。
邏輯回歸中單個樣本的n維特征正向傳播過程如圖2所示。

圖2 邏輯回歸正向傳播
單個樣本的n維特征表現為正向傳播的輸入向量XT=[x1x2x3…xn],回歸系數是輸入向量WT=[ω1ω2ω3…ωn]。由回歸方程可知,此時無論迭代多少次,輸出的z都是輸入的線性映射,這是回歸分析的一般結果,此時的回歸模型只具有線性映射能力,而訓練目標是識別數據集中的異常數據,屬于二分類問題,因此必須加入激活函數將輸出z映射到特定的值域,表示該數據標記為異?;蛘祿目赡苄?。簡而言之,激活函數(Activation Function)就是為算法提供非線性建模學習能力的,幾種常見的激活函數如下,如圖3所示。

圖3 幾種常見的激活函數
Sigmoid函數:
(6)
Tanh函數:
(7)
RuLU函數:
g(x)=max(0,x)
(8)
Sigmoid函數是使用范圍最廣的一類激活函數,具有指數函數的形狀,由于它將輸入映射到(0,1)之間,可以用來表示概率,因此將其用于異常檢測輸出結果用來表示數據異?;蛘5母怕省?/p>
損失函數是用來估量模型的預測值和真實值的不一致程度,這里用Loss(a,y)來表示,a表示預測類別,y表示真實類別。常用的損失函數有平方損失函數、log損失函數、指數損失函數等。
在Sigmoid激活函數的作用下:
標簽取值的概率可表為:
P(y/x;ω)=(Gω(x))y(1-Gω(x))1-y
(9)
取似然函數為:
(10)
對數似然函數為:
(11)
取損失函數為:
(12)
(13)
其中,γ是學習率。
訓練數據集的平均損失稱為經驗風險,為了防止過擬合,需要在經驗風險的基礎上加上表示模型復雜度的正則化項(regularization)或者罰項(penalty term),在本算法中取正則項為平方損失,即參數的L2范數,此時模型的損失函數為:
(14)
其中,β為常量。
正則化后的梯度下降算法ω的更新過程變為:
(15)
綜上所述,該方法的常規流程為,根據數據集及目標結果選擇合適的訓練模型,尋找預測函數(G(z)),構造損失函數,求使損失函數最小的模型參數,構造訓練模型。
本文的異常檢測算法是基于KDD99數據集實現的,原始的訓練數據集包含494 021條連接記錄,測試數據集包含311 029條連接記錄,每條連接記錄的最后有一個標簽來標明其類別信息,試驗中將正常連接標記為1,異常連接標記為0。在對數據集進行非線性處理后,用訓練數據集訓練邏輯回歸模型,效果如圖4所示。

圖4 邏輯回歸模型評估
將算法迭代100次,并用每次迭代求出的回歸系數測試待測數據集的回歸程度,結果顯示,在取學習率α=0.8時,模型在迭代45次左右后收斂。
將測試集帶入模型,結果如圖5所示。

圖5 測試集預測結果
從圖5中可以看出,隨著迭代次數的增加,模型的準確率快速收斂,漏報率隨有所增加,但未超過0.1%。
試驗中選用KDD99數據集,由于該數據集的每條記錄都是以一次網絡連接為單位,每條記錄包含字符型、離散型和連續型數據,且各特征度量尺度不同,難以處理,因此選用非線性預處理的方式處理數據,將原始數據轉化為可以直接輸入邏輯回歸模型學習的矩陣形式。實驗結果表明,邏輯回歸對測試集中的異常連接有較好的識別能力,但是隨著迭代次數的增加,回歸系數逐漸收斂,測試集的漏報率也有所增加,關于這一問題,未來還會進行針對性的研究來改進工作。
[1] 劉焱.Web全之機器學習入門[M].北京:機械工業出版社,2017.
[2] Han Jiawei, KAMBER M. Pei Jian.數據挖掘:概念與技術(第3版)[M]. 北京:機械工業出版社,2012.