王加梁
(四川旅游學院 基建處,四川 成都 610100)
隨著網絡入侵現象的加劇,如蠕蟲病毒、DDoS等網絡攻擊造成了十分惡劣的影響,也讓信息安全成為社會關注的焦點[1]。為使系統資源免受網絡攻擊的威脅,網絡安全專家提出了防火墻、用戶認證、入侵檢測系統(intrusion detection system,IDS)等解決方案。
IDS是網絡安全系統的重要組成部分,實現判斷和識別非授權訪問、數據更改、信息摧毀[2]等功能,也被認為是繼防火墻后的“第2個安全門”[3]。但網絡攻擊方和防御方在技術、成本、時間上都存在嚴重的不對等,使得現有的入侵檢測系統無法防御所有攻擊,只能通過提升性能最大限度地對網絡攻擊進行防御。
流量數據由多種屬性組合表示,IDS的檢測機理是將數據各屬性通過機器學習方法構建成檢測模型,待檢測流量數據通過檢測模型后將會被判定為正常或異常。隨著機器學習模型和優化方法的改進提升,入侵檢測效率大幅提高,但始終存在:①不關注數據特征表示而使得具有代表性的特征未得到有效挑選;②為提高精確度將機器學習算法任意結合而引起時間復雜度高等問題。隨著深度學習的深入研究和計算能力的不斷提升,常通過“硬件加速+深度學習”的方式自動且快速地學習數據特征,提升了IDS性能,但也出現了過程不可解釋以及數據依賴等問題。
入侵檢測的概念由Anderson[4]提出,入侵檢測系統的設計靈感則源自20世紀80年代提出的通用入侵檢測系統框架,該框架收集網絡中各節點關鍵信息進行分析以識別網絡中存在的惡意活動,做出響應并采取相應措施[5]。
傳統入侵檢測方法大多基于主機或網絡收集到的流量數據進行統計分析,構建相關異常模式。隨著機器學習、神經網絡等方法在各領域的廣泛應用,研究人員也將其融入到IDS中[6]。學者多將入侵檢測當作一個分類問題來處理,常用的分類算法包括樸素貝葉斯、Logistic回歸、決策樹、支持向量機等,常用的神經網絡包括RNN、LSTM等,此外還將一些數據處理方法(如:降維)與分類算法結合來提升檢測效果。
高忠石等[7]設計了一種基于PCA優化LSTM網絡的入侵檢測模型,使用PCA對樣本數據進行去噪,利用LSTM的記憶功能和序列數據能力進行學習,通過調參進行模型分析,實驗結果表明該模型比傳統模型準確率更高;池亞平等[8]針對IDS在數據量大時誤報率高、泛化能力弱等問題,設計了基于SVM和Adaboost算法的入侵檢測系統,該系統利用PCA對提取的特征進行降維,將SVM-Adaboost集合算法作為檢測引擎,在NSL-KDD數據集進行訓練和測試,取得了不錯的效果;Wang等[9]提出具有增強特征的SVM入侵檢測系統,使用LMDRT將數據集轉換為新數據集后與SVM進行結合,實現了入侵檢測效率的提升;AI-Yaseen等[10]在KDD1999數據集上使用改進后的K-means減少訓練集中的特征數量,將標準化的數據進行預處理后應用SVM和極限學習機,從而構造了SVM和極限學習機相結合的多級入侵檢測模型,實驗結果表明該模型具有較高的攻擊檢測效率。
通過對傳統IDS存在的問題進行分析,結合對前文相關工作研究發現,機器學習方法將產生可解釋的結果,且對真實環境下訓練數據的依賴低于深度學習。再結合流量數據由不同類型的屬性構成及機器學習中針對不同屬性的數據進行處理的方法不盡相同等特點,設計了一種對流量數據按屬性分類建模的入侵檢測方法,并在NSL-KDD數據集上進行訓練與測試。
將訓練集按屬性劃分為離散和連續兩類屬性集合。針對離散屬性,定義最長最大支持度項集(max length maximum support item set,M2IS)表示最能代表某類別離散屬性的模式;又M2IS定義較為脆弱,易受真實環境下數據波動和噪聲的影響而使其長度變短,故定義M2IS的穩定性進行加權,即:以關聯規則挖掘算法為基礎提取各類別的M2IS,并結合M2IS的穩定性共同構成離散屬性判定模型。針對數據的連續屬性,由于離散屬性判定模型輸出為待測數據與各類別的相似度結果,為便于兩種屬性的判定結果有效融合,選擇成熟的Softmax分類器訓練后作為連續屬性判定模型。待檢測數據經過兩個模型判定后分別生成屬于各類別的概率,由于兩個模型判定結果對最終輸出產生的影響不盡相同,將兩個概率值進行線性組合以生成最終的判定結果。在NSL-KDD數據集仿真實驗,結果表明本文提出的方法較傳統的機器學習方法在精確率、召回率及F值方面都有更好的表現。
目前入侵檢測領域的研究主要集中在融合不同機器學習算法以改善模型性能、高維數據特征提取等方面。融合多種不同機器學習算法時,在損失最小化的規則驅動下建立性能更優的模型,但也將帶來更大的時間和空間開銷;對高維數據進行特征提取是選擇對數據表達有重要意義的屬性,而丟棄原始數據中不太重要的屬性,這勢必會造成信息的損失。相較以時空開銷為代價換來小幅性能的提升,或以損失原始數據信息換來概率性的性能提升而言,保留單個機器學習算法的性能并有效利用原始數據的所有屬性信息,可以作為提升入侵檢測性能的一個有效方法。
通過對入侵檢測數據集分析發現:數據由協議等離散屬性和持續時間等連續屬性共同構成。傳統IDS在構建模型時大多將離散屬性直接數值化,忽略了離散屬性本身的特征信息。為保留數據集中所有屬性并充分利用不同屬性的特征信息,本文提出基于屬性分類建模的入侵檢測方法(attibutes classification-based modeling IDS,ACBM-IDS)。該方法將數據集按屬性劃分為離散和連續兩類后分別構建判定模型,待檢測流量數據經過兩個模型后分別生成判定結果,再將兩個判定結果進行組合形成最終的判定結果。
有數據集D=[d1,d2,…,dm],D∈m×n,分為離散屬性和連續屬性兩個集合,其中Ddiscont∈m×n1、Dcont∈m×n2,且n1+n2=n。待檢測數據的離散屬性和連續屬性分別表示為:且n1+n2=n。
關聯規則挖掘是一種在大規模數據集中尋找特殊關系的任務,這種關系可用頻繁項集或關聯規則表示[11]。離散屬性判定模型的構建實質就是為每一個類別的離散屬性找到一個頻繁項集,該項集可以最大限度代表該類別數據的離散特征。基于此做出如下定義:
定義1 設第i個類別數據的離散屬性存在頻繁項集Itemi=[itemi,1,itemi,2,…,itemi,n],其支持度為1,若同時滿足:①任意子集支持度為1;②任意超集支持度均不為1,則稱Itemi為類別i的最長最大支持度項集(M2IS)。
若離散屬性Ddiscont共包含k個類別,以i類別為例,其M2IS挖掘流程如下:
(1)定義固定支持度為1;

(4)重復步驟(3)至沒有新的項集產生;

由定義一可知,一個類別的M2IS是指該類別中每條數據均包含的最長項集,長度越長則其離散屬性特征越明顯。通過對各類別離散屬性分析發現:大部分類別的M2IS呈現隨數據量增大而長度變短的趨勢,原因主要有數據量增多導致屬性候選項增多、噪聲數據影響等?;诖?,定義穩定性對M2IS進行加權。

(1)
其中,μ為Pi的期望。stablei是對各類別M2IS長度波動情況的衡量,stablei越大則該類別中各長度為n1+1的項集占比越不均衡,則其對噪聲數據的抗干擾能力也就越強,其M2IS穩定性也越好。各類別的M2IS及其穩定性共同構成離散屬性判定模型。

i∈{1,…k}
(2)
入侵檢測數據集中包括如:“duration”、“src_bytes”等連續屬性,但取值范圍不盡相同,使用式(3)進行(0,1)標準化使各屬性的值處于同一范圍內[12]
(3)
考慮到離散屬性判定模型的輸出是離散屬性與各類別的相似度結果,將其歸一化后便對應于各類別的概率值。便于將兩個判定結果進行融合,選用較為成熟的Softmax多分類器作為連續屬性判定模型。

(4)
wc為類別c對應權重向量,樣本決策函數為
(5)
其中,WT表示各個類別權重向量共同構成的權重矩陣,樣本決策函數表示從k個類別中選擇出判定概率值最大的類別。在整個數據集上使用交叉熵損失函數作為風險函數,即
(6)

(7)
(8)
傳統入侵檢測與機器學習算法結合時常將所有屬性統一處理,忽略了各屬性的特征意義及屬性間的關聯關系。ACBM-IDS基于流量數據由離散、連續兩種屬性共同構成這一觀察,基于不同類別的流量數據具有不同“固有模式”這一假設進行設計。算法流程如圖1所示。

圖1 ACBM-IDS流程
從圖1可以看出,ACBM-IDS方法的實現主要包括以下幾個步驟:
(1)已知流量數據劃分:將已知流量數據集劃分成離散屬性數據集Ddiscont和連續屬性數據集Dcont;
(2)離散屬性判定模型構建:針對離散屬性數據集Ddiscont,按定義一中的流程挖掘各類別最長最大支持度項集(M2IS),即:I=[Item(1),Item(2),…,Item(k)],再使用式(1)計算各類別M2IS的穩定性,由各類別的M2IS及其穩定性共同構成離散屬性判定模型;
(3)連續屬性判定模型構建:針對連續屬性數據集Dcont,使用(0,1)標準化處理各屬性使得取值在同一數量級內,再依據式(4)~式(6)訓練出式(7)對應的Softmax模型作為連續屬性判定模型;


(7)判定結果融合:由于Scont為概率而Sdiscont僅為相似度計算結果,使用式(9)將Sdiscont中各個值轉化為概率值,即
(9)
假定最終的判定結果僅由離散屬性判定模型和連續屬性判定模型共同決定,將Scont和Sdiscont′構建如式(10)所示的線性組合
Y=α×Sdiscont′+(1-α)×Scont
(10)
(8)判定結果輸出:依據式(10)得到待測數據屬于各類別的判定概率,概率值最大項對應下標在類別標簽中的對應類別即為最終判定結果。
仿真實驗環境:Windows 10系統,Intel(R)Core(TM)i5-7200 2.50 GHz,4 GB?;鶞史诸惼鞑捎肳eka 3.8.3實現,本文方法的開發工具為PyCharm Community,開發語言為Python3.7。
數據集:NSL-KDD數據集是UCI機器學習資源庫的一個基準數據集[14],包含兩種格式(.txt和.arff)的8個子數據集。由于.txt格式的子數據集中“class”標簽包括如“normal”、“neptune”、“smurf”等詳細流量類型,為便于執行多分類任務,選用“KDDTrain+.txt”作為訓練集、“KDDTest+.txt”作為測試集,其分別包含125 972和22 544條數據。其中訓練集和測試集的類別標簽共分為Normal和4大類攻擊(39個小類),數據量分別為:①Normal:67 342條;②Dos:45 927條;③Probe:11 656條;④R2L:995條;⑤U2R-52條。4大類攻擊又包含39個小類,在訓練集中出現了一部分攻擊類型,為便于測試模型的泛化能力,部分攻擊又作為新增類型出現在了測試集中。
入侵檢測實際上是一個分類過程,分類結果主要包括真陽性(TP)、真陰性(TN)、假陽性(FP)、假陰性(FN)這4種,若TP和TN盡量大、FP和FN盡量小,則分類效果越好。本文選擇將4種分類結果綜合考量后的精確率、召回率以及F值作為評價指標,其各自定義如下:
精確率:分類模型預測為Positive的結果中模型預測對的比重,計算如式(11)所示
(11)
召回率:真實值為Positive的結果中模型預測正確的比重,計算如式(12)所示
(12)
為將精確率和召回率結合起來綜合衡量分類器效果,定義了F值指標,如式(13)所示
(13)
ACBM-IDS構建離散屬性判定模型時,不僅定義M2IS作為某類數據離散屬性的代表特征,還定義穩定性對M2IS進行加權,因此首先對穩定性加權的必要性進行驗證。僅使用M2IS作為離散屬性判定模型和使用“M2IS+穩定性”的組合作為離散屬性判定模型時的性能如圖2所示。

圖2 離散屬性判定模型性能對比
由圖2可以看出,在M2IS的基礎上結合穩定性加權后,模型性能小幅度提升,其原因是數據集中的部分類別存在屬性分布不均衡的情況,使得這些類別的M2IS受小樣本屬性的影響而長度變短,進而影響最終的模型性能。穩定性加權后使得離散屬性判定模型的抗干擾能力加強,實現了模型性能的提升。
ACBM-IDS構建連續屬性判定模型時,使用數據集中的連續屬性(32維)訓練Softmax多分類器,再將連續屬性判定模型與其它基準分類器進行性能比較?;鶞史诸惼髦饕赪eka3.8.3仿真實現,包括:樸素貝葉斯、SVM、Logistic、KNN、Decision Tree、Random Forest。性能對比結果如圖3所示。

圖3 連續屬性判定模型性能對比
從圖3可以看出,僅使用連續屬性構建分類器時,Softmax的性能較隨機森林、決策樹、KNN、SVM都要差。究其原因是,決策樹在不用任何參數假設的情況下可快速轉化為分類規則,且能處理有缺失屬性的數據;而隨機森林是對決策樹的一種集成學習方式,是對決策樹性能的一種優化;而KNN以時間為代價使每條數據都將與其它數據進行運算,也保證了較高的分類性能;相較而言,Softmax分類器作為Logistic分類器在多分類問題上的擴展,在數據集上學習模型參數來構建分類器,這將受到數據集質量的巨大影響,而訓練集中諸多屬性存在取值為0的情況,這將對參數學習產生影響,進而影響最終性能。
ACBM-IDS算法實現過程中,假定其最終判定結果僅由這兩個模型的輸出決定,而兩個模型的輸出對最終判定結果產生的影響不盡相同,因此還需要決定參數α的值。將α從0開始、以0.1為步長依次增加至1.0,模型性能見表1。

表1 不同α時模型性能
從表1可以看出:參數α實現了兩個模型輸出對最終判定結果的權重分配,具有重要的意義。當α=0時表示僅使用連續屬性判定模型生成最終判定結果,此時模型性能較好,這是因為Softmax作為一個成熟的多分類器且使用高質量數據進行訓練,進而得到了較好的分類效果;隨著α的遞增而補充了離散屬性信息使得模型性能增加,當α=0.3時性能最優;但α的繼續遞增使得離散屬性對最終判定結果的影響越來越大,模型性能也因此受到影響;當α=1時表示僅使用離散屬性判定模型,此時模型性能最差,這是因為訓練數據集中部分類別數據量大且離散屬性取值分散,使得這些類別的M2SI長度短、穩定性差,進而影響最終的判定結果。
為驗證ACBM-IDS模型的性能,使用數據集上全部屬性(41維)構建分類器、超參數選取α=0.3時與其它分類器進行對比,對比的基準分類器與連續屬性判定模型采用的基準分類器一致,此外還包括連續屬性判定模型。對比結果如圖4所示。

圖4 ACBM-IDS模型性能對比
從圖4可以看出,諸如NB、SVM、KNN、決策樹以及隨機森林的性能均有微量提升,這是因為離散屬性的加入為模型帶來了新信息,但各分類器均直接將離散屬性數值化而未保留所攜帶的領域意義,因而帶來的提升是有限的。Logistic回歸分類器既可以處理離散屬性也可以處理連續屬性,且不需要對特征進行縮放和調整就能得到較好的預測概率,因而離散屬性的加入大大提升了Logistic回歸分類器的性能,與此同時也促進了Softmax分類器性能的提升。ACBM-IDS方法在Softmax分類器的基礎上結合離散屬性帶來的特征信息,再為離散、連續屬性對判定結果的重要性確定最優權重,取得了較其它分類器更優的性能。
針對傳統入侵檢測與機器學習結合時忽略屬性特征這一現象,提出了基于連續屬性和離散屬性分別構建判定模型的ACBM-IDS方法。離散屬性判定模型基于關聯挖掘算法并結合定義的穩定性概念共同構成,連續屬性則由高質量數據集訓練的Softmax分類器構成,將兩個模型的判定結果線性組合后作為最終結果。實驗結果表明,ACBM-IDS方法與傳統入侵方法相比,在精確率、召回率、F值上均有所提升,實現了入侵檢測性能的提升。但本文提出的方法中,離散屬性判定模型對數據分布不均衡的情況較為敏感,這也將是未來繼續研究的內容。