王加梁
(四川旅游學(xué)院 基建處,四川 成都 610100)
隨著網(wǎng)絡(luò)入侵現(xiàn)象的加劇,如蠕蟲病毒、DDoS等網(wǎng)絡(luò)攻擊造成了十分惡劣的影響,也讓信息安全成為社會關(guān)注的焦點[1]。為使系統(tǒng)資源免受網(wǎng)絡(luò)攻擊的威脅,網(wǎng)絡(luò)安全專家提出了防火墻、用戶認證、入侵檢測系統(tǒng)(intrusion detection system,IDS)等解決方案。
IDS是網(wǎng)絡(luò)安全系統(tǒng)的重要組成部分,實現(xiàn)判斷和識別非授權(quán)訪問、數(shù)據(jù)更改、信息摧毀[2]等功能,也被認為是繼防火墻后的“第2個安全門”[3]。但網(wǎng)絡(luò)攻擊方和防御方在技術(shù)、成本、時間上都存在嚴(yán)重的不對等,使得現(xiàn)有的入侵檢測系統(tǒng)無法防御所有攻擊,只能通過提升性能最大限度地對網(wǎng)絡(luò)攻擊進行防御。
流量數(shù)據(jù)由多種屬性組合表示,IDS的檢測機理是將數(shù)據(jù)各屬性通過機器學(xué)習(xí)方法構(gòu)建成檢測模型,待檢測流量數(shù)據(jù)通過檢測模型后將會被判定為正?;虍惓!kS著機器學(xué)習(xí)模型和優(yōu)化方法的改進提升,入侵檢測效率大幅提高,但始終存在:①不關(guān)注數(shù)據(jù)特征表示而使得具有代表性的特征未得到有效挑選;②為提高精確度將機器學(xué)習(xí)算法任意結(jié)合而引起時間復(fù)雜度高等問題。隨著深度學(xué)習(xí)的深入研究和計算能力的不斷提升,常通過“硬件加速+深度學(xué)習(xí)”的方式自動且快速地學(xué)習(xí)數(shù)據(jù)特征,提升了IDS性能,但也出現(xiàn)了過程不可解釋以及數(shù)據(jù)依賴等問題。
入侵檢測的概念由Anderson[4]提出,入侵檢測系統(tǒng)的設(shè)計靈感則源自20世紀(jì)80年代提出的通用入侵檢測系統(tǒng)框架,該框架收集網(wǎng)絡(luò)中各節(jié)點關(guān)鍵信息進行分析以識別網(wǎng)絡(luò)中存在的惡意活動,做出響應(yīng)并采取相應(yīng)措施[5]。
傳統(tǒng)入侵檢測方法大多基于主機或網(wǎng)絡(luò)收集到的流量數(shù)據(jù)進行統(tǒng)計分析,構(gòu)建相關(guān)異常模式。隨著機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)等方法在各領(lǐng)域的廣泛應(yīng)用,研究人員也將其融入到IDS中[6]。學(xué)者多將入侵檢測當(dāng)作一個分類問題來處理,常用的分類算法包括樸素貝葉斯、Logistic回歸、決策樹、支持向量機等,常用的神經(jīng)網(wǎng)絡(luò)包括RNN、LSTM等,此外還將一些數(shù)據(jù)處理方法(如:降維)與分類算法結(jié)合來提升檢測效果。
高忠石等[7]設(shè)計了一種基于PCA優(yōu)化LSTM網(wǎng)絡(luò)的入侵檢測模型,使用PCA對樣本數(shù)據(jù)進行去噪,利用LSTM的記憶功能和序列數(shù)據(jù)能力進行學(xué)習(xí),通過調(diào)參進行模型分析,實驗結(jié)果表明該模型比傳統(tǒng)模型準(zhǔn)確率更高;池亞平等[8]針對IDS在數(shù)據(jù)量大時誤報率高、泛化能力弱等問題,設(shè)計了基于SVM和Adaboost算法的入侵檢測系統(tǒng),該系統(tǒng)利用PCA對提取的特征進行降維,將SVM-Adaboost集合算法作為檢測引擎,在NSL-KDD數(shù)據(jù)集進行訓(xùn)練和測試,取得了不錯的效果;Wang等[9]提出具有增強特征的SVM入侵檢測系統(tǒng),使用LMDRT將數(shù)據(jù)集轉(zhuǎn)換為新數(shù)據(jù)集后與SVM進行結(jié)合,實現(xiàn)了入侵檢測效率的提升;AI-Yaseen等[10]在KDD1999數(shù)據(jù)集上使用改進后的K-means減少訓(xùn)練集中的特征數(shù)量,將標(biāo)準(zhǔn)化的數(shù)據(jù)進行預(yù)處理后應(yīng)用SVM和極限學(xué)習(xí)機,從而構(gòu)造了SVM和極限學(xué)習(xí)機相結(jié)合的多級入侵檢測模型,實驗結(jié)果表明該模型具有較高的攻擊檢測效率。
通過對傳統(tǒng)IDS存在的問題進行分析,結(jié)合對前文相關(guān)工作研究發(fā)現(xiàn),機器學(xué)習(xí)方法將產(chǎn)生可解釋的結(jié)果,且對真實環(huán)境下訓(xùn)練數(shù)據(jù)的依賴低于深度學(xué)習(xí)。再結(jié)合流量數(shù)據(jù)由不同類型的屬性構(gòu)成及機器學(xué)習(xí)中針對不同屬性的數(shù)據(jù)進行處理的方法不盡相同等特點,設(shè)計了一種對流量數(shù)據(jù)按屬性分類建模的入侵檢測方法,并在NSL-KDD數(shù)據(jù)集上進行訓(xùn)練與測試。
將訓(xùn)練集按屬性劃分為離散和連續(xù)兩類屬性集合。針對離散屬性,定義最長最大支持度項集(max length maximum support item set,M2IS)表示最能代表某類別離散屬性的模式;又M2IS定義較為脆弱,易受真實環(huán)境下數(shù)據(jù)波動和噪聲的影響而使其長度變短,故定義M2IS的穩(wěn)定性進行加權(quán),即:以關(guān)聯(lián)規(guī)則挖掘算法為基礎(chǔ)提取各類別的M2IS,并結(jié)合M2IS的穩(wěn)定性共同構(gòu)成離散屬性判定模型。針對數(shù)據(jù)的連續(xù)屬性,由于離散屬性判定模型輸出為待測數(shù)據(jù)與各類別的相似度結(jié)果,為便于兩種屬性的判定結(jié)果有效融合,選擇成熟的Softmax分類器訓(xùn)練后作為連續(xù)屬性判定模型。待檢測數(shù)據(jù)經(jīng)過兩個模型判定后分別生成屬于各類別的概率,由于兩個模型判定結(jié)果對最終輸出產(chǎn)生的影響不盡相同,將兩個概率值進行線性組合以生成最終的判定結(jié)果。在NSL-KDD數(shù)據(jù)集仿真實驗,結(jié)果表明本文提出的方法較傳統(tǒng)的機器學(xué)習(xí)方法在精確率、召回率及F值方面都有更好的表現(xiàn)。
目前入侵檢測領(lǐng)域的研究主要集中在融合不同機器學(xué)習(xí)算法以改善模型性能、高維數(shù)據(jù)特征提取等方面。融合多種不同機器學(xué)習(xí)算法時,在損失最小化的規(guī)則驅(qū)動下建立性能更優(yōu)的模型,但也將帶來更大的時間和空間開銷;對高維數(shù)據(jù)進行特征提取是選擇對數(shù)據(jù)表達有重要意義的屬性,而丟棄原始數(shù)據(jù)中不太重要的屬性,這勢必會造成信息的損失。相較以時空開銷為代價換來小幅性能的提升,或以損失原始數(shù)據(jù)信息換來概率性的性能提升而言,保留單個機器學(xué)習(xí)算法的性能并有效利用原始數(shù)據(jù)的所有屬性信息,可以作為提升入侵檢測性能的一個有效方法。
通過對入侵檢測數(shù)據(jù)集分析發(fā)現(xiàn):數(shù)據(jù)由協(xié)議等離散屬性和持續(xù)時間等連續(xù)屬性共同構(gòu)成。傳統(tǒng)IDS在構(gòu)建模型時大多將離散屬性直接數(shù)值化,忽略了離散屬性本身的特征信息。為保留數(shù)據(jù)集中所有屬性并充分利用不同屬性的特征信息,本文提出基于屬性分類建模的入侵檢測方法(attibutes classification-based modeling IDS,ACBM-IDS)。該方法將數(shù)據(jù)集按屬性劃分為離散和連續(xù)兩類后分別構(gòu)建判定模型,待檢測流量數(shù)據(jù)經(jīng)過兩個模型后分別生成判定結(jié)果,再將兩個判定結(jié)果進行組合形成最終的判定結(jié)果。
有數(shù)據(jù)集D=[d1,d2,…,dm],D∈m×n,分為離散屬性和連續(xù)屬性兩個集合,其中Ddiscont∈m×n1、Dcont∈m×n2,且n1+n2=n。待檢測數(shù)據(jù)的離散屬性和連續(xù)屬性分別表示為:且n1+n2=n。
關(guān)聯(lián)規(guī)則挖掘是一種在大規(guī)模數(shù)據(jù)集中尋找特殊關(guān)系的任務(wù),這種關(guān)系可用頻繁項集或關(guān)聯(lián)規(guī)則表示[11]。離散屬性判定模型的構(gòu)建實質(zhì)就是為每一個類別的離散屬性找到一個頻繁項集,該項集可以最大限度代表該類別數(shù)據(jù)的離散特征?;诖俗龀鋈缦露x:
定義1 設(shè)第i個類別數(shù)據(jù)的離散屬性存在頻繁項集Itemi=[itemi,1,itemi,2,…,itemi,n],其支持度為1,若同時滿足:①任意子集支持度為1;②任意超集支持度均不為1,則稱Itemi為類別i的最長最大支持度項集(M2IS)。
若離散屬性Ddiscont共包含k個類別,以i類別為例,其M2IS挖掘流程如下:
(1)定義固定支持度為1;
(4)重復(fù)步驟(3)至沒有新的項集產(chǎn)生;
由定義一可知,一個類別的M2IS是指該類別中每條數(shù)據(jù)均包含的最長項集,長度越長則其離散屬性特征越明顯。通過對各類別離散屬性分析發(fā)現(xiàn):大部分類別的M2IS呈現(xiàn)隨數(shù)據(jù)量增大而長度變短的趨勢,原因主要有數(shù)據(jù)量增多導(dǎo)致屬性候選項增多、噪聲數(shù)據(jù)影響等?;诖?,定義穩(wěn)定性對M2IS進行加權(quán)。
(1)
其中,μ為Pi的期望。stablei是對各類別M2IS長度波動情況的衡量,stablei越大則該類別中各長度為n1+1的項集占比越不均衡,則其對噪聲數(shù)據(jù)的抗干擾能力也就越強,其M2IS穩(wěn)定性也越好。各類別的M2IS及其穩(wěn)定性共同構(gòu)成離散屬性判定模型。
i∈{1,…k}
(2)
入侵檢測數(shù)據(jù)集中包括如:“duration”、“src_bytes”等連續(xù)屬性,但取值范圍不盡相同,使用式(3)進行(0,1)標(biāo)準(zhǔn)化使各屬性的值處于同一范圍內(nèi)[12]
(3)
考慮到離散屬性判定模型的輸出是離散屬性與各類別的相似度結(jié)果,將其歸一化后便對應(yīng)于各類別的概率值。便于將兩個判定結(jié)果進行融合,選用較為成熟的Softmax多分類器作為連續(xù)屬性判定模型。
(4)
wc為類別c對應(yīng)權(quán)重向量,樣本決策函數(shù)為
(5)
其中,WT表示各個類別權(quán)重向量共同構(gòu)成的權(quán)重矩陣,樣本決策函數(shù)表示從k個類別中選擇出判定概率值最大的類別。在整個數(shù)據(jù)集上使用交叉熵損失函數(shù)作為風(fēng)險函數(shù),即
(6)
(7)
(8)
傳統(tǒng)入侵檢測與機器學(xué)習(xí)算法結(jié)合時常將所有屬性統(tǒng)一處理,忽略了各屬性的特征意義及屬性間的關(guān)聯(lián)關(guān)系。ACBM-IDS基于流量數(shù)據(jù)由離散、連續(xù)兩種屬性共同構(gòu)成這一觀察,基于不同類別的流量數(shù)據(jù)具有不同“固有模式”這一假設(shè)進行設(shè)計。算法流程如圖1所示。
圖1 ACBM-IDS流程
從圖1可以看出,ACBM-IDS方法的實現(xiàn)主要包括以下幾個步驟:
(1)已知流量數(shù)據(jù)劃分:將已知流量數(shù)據(jù)集劃分成離散屬性數(shù)據(jù)集Ddiscont和連續(xù)屬性數(shù)據(jù)集Dcont;
(2)離散屬性判定模型構(gòu)建:針對離散屬性數(shù)據(jù)集Ddiscont,按定義一中的流程挖掘各類別最長最大支持度項集(M2IS),即:I=[Item(1),Item(2),…,Item(k)],再使用式(1)計算各類別M2IS的穩(wěn)定性,由各類別的M2IS及其穩(wěn)定性共同構(gòu)成離散屬性判定模型;
(3)連續(xù)屬性判定模型構(gòu)建:針對連續(xù)屬性數(shù)據(jù)集Dcont,使用(0,1)標(biāo)準(zhǔn)化處理各屬性使得取值在同一數(shù)量級內(nèi),再依據(jù)式(4)~式(6)訓(xùn)練出式(7)對應(yīng)的Softmax模型作為連續(xù)屬性判定模型;
(7)判定結(jié)果融合:由于Scont為概率而Sdiscont僅為相似度計算結(jié)果,使用式(9)將Sdiscont中各個值轉(zhuǎn)化為概率值,即
(9)
假定最終的判定結(jié)果僅由離散屬性判定模型和連續(xù)屬性判定模型共同決定,將Scont和Sdiscont′構(gòu)建如式(10)所示的線性組合
Y=α×Sdiscont′+(1-α)×Scont
(10)
(8)判定結(jié)果輸出:依據(jù)式(10)得到待測數(shù)據(jù)屬于各類別的判定概率,概率值最大項對應(yīng)下標(biāo)在類別標(biāo)簽中的對應(yīng)類別即為最終判定結(jié)果。
仿真實驗環(huán)境:Windows 10系統(tǒng),Intel(R)Core(TM)i5-7200 2.50 GHz,4 GB。基準(zhǔn)分類器采用Weka 3.8.3實現(xiàn),本文方法的開發(fā)工具為PyCharm Community,開發(fā)語言為Python3.7。
數(shù)據(jù)集:NSL-KDD數(shù)據(jù)集是UCI機器學(xué)習(xí)資源庫的一個基準(zhǔn)數(shù)據(jù)集[14],包含兩種格式(.txt和.arff)的8個子數(shù)據(jù)集。由于.txt格式的子數(shù)據(jù)集中“class”標(biāo)簽包括如“normal”、“neptune”、“smurf”等詳細流量類型,為便于執(zhí)行多分類任務(wù),選用“KDDTrain+.txt”作為訓(xùn)練集、“KDDTest+.txt”作為測試集,其分別包含125 972和22 544條數(shù)據(jù)。其中訓(xùn)練集和測試集的類別標(biāo)簽共分為Normal和4大類攻擊(39個小類),數(shù)據(jù)量分別為:①Normal:67 342條;②Dos:45 927條;③Probe:11 656條;④R2L:995條;⑤U2R-52條。4大類攻擊又包含39個小類,在訓(xùn)練集中出現(xiàn)了一部分攻擊類型,為便于測試模型的泛化能力,部分攻擊又作為新增類型出現(xiàn)在了測試集中。
入侵檢測實際上是一個分類過程,分類結(jié)果主要包括真陽性(TP)、真陰性(TN)、假陽性(FP)、假陰性(FN)這4種,若TP和TN盡量大、FP和FN盡量小,則分類效果越好。本文選擇將4種分類結(jié)果綜合考量后的精確率、召回率以及F值作為評價指標(biāo),其各自定義如下:
精確率:分類模型預(yù)測為Positive的結(jié)果中模型預(yù)測對的比重,計算如式(11)所示
(11)
召回率:真實值為Positive的結(jié)果中模型預(yù)測正確的比重,計算如式(12)所示
(12)
為將精確率和召回率結(jié)合起來綜合衡量分類器效果,定義了F值指標(biāo),如式(13)所示
(13)
ACBM-IDS構(gòu)建離散屬性判定模型時,不僅定義M2IS作為某類數(shù)據(jù)離散屬性的代表特征,還定義穩(wěn)定性對M2IS進行加權(quán),因此首先對穩(wěn)定性加權(quán)的必要性進行驗證。僅使用M2IS作為離散屬性判定模型和使用“M2IS+穩(wěn)定性”的組合作為離散屬性判定模型時的性能如圖2所示。
圖2 離散屬性判定模型性能對比
由圖2可以看出,在M2IS的基礎(chǔ)上結(jié)合穩(wěn)定性加權(quán)后,模型性能小幅度提升,其原因是數(shù)據(jù)集中的部分類別存在屬性分布不均衡的情況,使得這些類別的M2IS受小樣本屬性的影響而長度變短,進而影響最終的模型性能。穩(wěn)定性加權(quán)后使得離散屬性判定模型的抗干擾能力加強,實現(xiàn)了模型性能的提升。
ACBM-IDS構(gòu)建連續(xù)屬性判定模型時,使用數(shù)據(jù)集中的連續(xù)屬性(32維)訓(xùn)練Softmax多分類器,再將連續(xù)屬性判定模型與其它基準(zhǔn)分類器進行性能比較?;鶞?zhǔn)分類器主要基于Weka3.8.3仿真實現(xiàn),包括:樸素貝葉斯、SVM、Logistic、KNN、Decision Tree、Random Forest。性能對比結(jié)果如圖3所示。
圖3 連續(xù)屬性判定模型性能對比
從圖3可以看出,僅使用連續(xù)屬性構(gòu)建分類器時,Softmax的性能較隨機森林、決策樹、KNN、SVM都要差。究其原因是,決策樹在不用任何參數(shù)假設(shè)的情況下可快速轉(zhuǎn)化為分類規(guī)則,且能處理有缺失屬性的數(shù)據(jù);而隨機森林是對決策樹的一種集成學(xué)習(xí)方式,是對決策樹性能的一種優(yōu)化;而KNN以時間為代價使每條數(shù)據(jù)都將與其它數(shù)據(jù)進行運算,也保證了較高的分類性能;相較而言,Softmax分類器作為Logistic分類器在多分類問題上的擴展,在數(shù)據(jù)集上學(xué)習(xí)模型參數(shù)來構(gòu)建分類器,這將受到數(shù)據(jù)集質(zhì)量的巨大影響,而訓(xùn)練集中諸多屬性存在取值為0的情況,這將對參數(shù)學(xué)習(xí)產(chǎn)生影響,進而影響最終性能。
ACBM-IDS算法實現(xiàn)過程中,假定其最終判定結(jié)果僅由這兩個模型的輸出決定,而兩個模型的輸出對最終判定結(jié)果產(chǎn)生的影響不盡相同,因此還需要決定參數(shù)α的值。將α從0開始、以0.1為步長依次增加至1.0,模型性能見表1。
表1 不同α?xí)r模型性能
從表1可以看出:參數(shù)α實現(xiàn)了兩個模型輸出對最終判定結(jié)果的權(quán)重分配,具有重要的意義。當(dāng)α=0時表示僅使用連續(xù)屬性判定模型生成最終判定結(jié)果,此時模型性能較好,這是因為Softmax作為一個成熟的多分類器且使用高質(zhì)量數(shù)據(jù)進行訓(xùn)練,進而得到了較好的分類效果;隨著α的遞增而補充了離散屬性信息使得模型性能增加,當(dāng)α=0.3時性能最優(yōu);但α的繼續(xù)遞增使得離散屬性對最終判定結(jié)果的影響越來越大,模型性能也因此受到影響;當(dāng)α=1時表示僅使用離散屬性判定模型,此時模型性能最差,這是因為訓(xùn)練數(shù)據(jù)集中部分類別數(shù)據(jù)量大且離散屬性取值分散,使得這些類別的M2SI長度短、穩(wěn)定性差,進而影響最終的判定結(jié)果。
為驗證ACBM-IDS模型的性能,使用數(shù)據(jù)集上全部屬性(41維)構(gòu)建分類器、超參數(shù)選取α=0.3時與其它分類器進行對比,對比的基準(zhǔn)分類器與連續(xù)屬性判定模型采用的基準(zhǔn)分類器一致,此外還包括連續(xù)屬性判定模型。對比結(jié)果如圖4所示。
圖4 ACBM-IDS模型性能對比
從圖4可以看出,諸如NB、SVM、KNN、決策樹以及隨機森林的性能均有微量提升,這是因為離散屬性的加入為模型帶來了新信息,但各分類器均直接將離散屬性數(shù)值化而未保留所攜帶的領(lǐng)域意義,因而帶來的提升是有限的。Logistic回歸分類器既可以處理離散屬性也可以處理連續(xù)屬性,且不需要對特征進行縮放和調(diào)整就能得到較好的預(yù)測概率,因而離散屬性的加入大大提升了Logistic回歸分類器的性能,與此同時也促進了Softmax分類器性能的提升。ACBM-IDS方法在Softmax分類器的基礎(chǔ)上結(jié)合離散屬性帶來的特征信息,再為離散、連續(xù)屬性對判定結(jié)果的重要性確定最優(yōu)權(quán)重,取得了較其它分類器更優(yōu)的性能。
針對傳統(tǒng)入侵檢測與機器學(xué)習(xí)結(jié)合時忽略屬性特征這一現(xiàn)象,提出了基于連續(xù)屬性和離散屬性分別構(gòu)建判定模型的ACBM-IDS方法。離散屬性判定模型基于關(guān)聯(lián)挖掘算法并結(jié)合定義的穩(wěn)定性概念共同構(gòu)成,連續(xù)屬性則由高質(zhì)量數(shù)據(jù)集訓(xùn)練的Softmax分類器構(gòu)成,將兩個模型的判定結(jié)果線性組合后作為最終結(jié)果。實驗結(jié)果表明,ACBM-IDS方法與傳統(tǒng)入侵方法相比,在精確率、召回率、F值上均有所提升,實現(xiàn)了入侵檢測性能的提升。但本文提出的方法中,離散屬性判定模型對數(shù)據(jù)分布不均衡的情況較為敏感,這也將是未來繼續(xù)研究的內(nèi)容。