郝怡然,盛益強(qiáng),王勁林
(1.中國科學(xué)院聲學(xué)研究所國家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京 100190;2.中國科學(xué)院大學(xué)電子電氣與通信工程學(xué)院,北京 100049)
網(wǎng)絡(luò)流量中經(jīng)常會出現(xiàn)偏離正常范圍的異常流量,主要是由DDOS攻擊、滲透攻擊等惡意的網(wǎng)絡(luò)行為引起的,這些異常行為通常會導(dǎo)致網(wǎng)絡(luò)質(zhì)量下降,甚至導(dǎo)致網(wǎng)絡(luò)直接癱瘓[1]。因此引入網(wǎng)絡(luò)安全態(tài)勢的預(yù)測來判斷網(wǎng)絡(luò)中的異常,進(jìn)而在網(wǎng)絡(luò)攻擊發(fā)生或者造成嚴(yán)重后果之前進(jìn)行預(yù)警。網(wǎng)絡(luò)安全態(tài)勢的預(yù)測是指根據(jù)態(tài)勢的歷史信息和當(dāng)前狀態(tài)對網(wǎng)絡(luò)未來的發(fā)展趨勢進(jìn)行預(yù)測。現(xiàn)有的主要安全態(tài)勢預(yù)測方法包括神經(jīng)網(wǎng)絡(luò)、機(jī)器學(xué)習(xí)(如支撐向量機(jī))等?;跈C(jī)器學(xué)習(xí)的異常檢測被認(rèn)為是一種網(wǎng)絡(luò)安全態(tài)勢預(yù)測的方法[2-3],現(xiàn)有的異常檢測算法主要是對網(wǎng)絡(luò)中的歷史數(shù)據(jù)進(jìn)行分析,進(jìn)而預(yù)測未來的網(wǎng)絡(luò)中是否具有攻擊行為?,F(xiàn)有的異常檢測方法主要分為基于規(guī)則的異常檢測[4]、基于統(tǒng)計的異常檢測[5]和基于機(jī)器學(xué)習(xí)的異常檢測[5]?;谝?guī)則的異常檢測通常需要通過人工經(jīng)驗構(gòu)建規(guī)則庫,該方法能夠準(zhǔn)確地找出符合規(guī)則的異常,但無法檢測未知的異常?;诮y(tǒng)計的異常檢測通常需要假設(shè)數(shù)據(jù)服從某種分布,之后利用數(shù)據(jù)進(jìn)行參數(shù)估計,該方法魯棒性較強(qiáng),但過于依賴假設(shè)的分布?;跈C(jī)器學(xué)習(xí)的異常檢測能夠檢測未知的異常[5],并且不需要假設(shè)數(shù)據(jù)的分布。但基于機(jī)器學(xué)習(xí)的異常檢測算法需要找到準(zhǔn)確刻畫網(wǎng)絡(luò)數(shù)據(jù)包的特征。然而,現(xiàn)有的異常檢測算法由于無法準(zhǔn)確提取網(wǎng)絡(luò)數(shù)據(jù)包的低維特征導(dǎo)致算法的性能不佳。因此,需要找到網(wǎng)絡(luò)數(shù)據(jù)包的準(zhǔn)確的低維特征表示,該低維特征表示能夠區(qū)分網(wǎng)絡(luò)數(shù)據(jù)包是正常的還是有攻擊的。
由于網(wǎng)絡(luò)中的標(biāo)簽數(shù)據(jù)較難獲得,如果對所有的數(shù)據(jù)進(jìn)行標(biāo)記需要大量的人力,但如果忽略大量的無標(biāo)記數(shù)據(jù)則會忽略大量的信息。此外,網(wǎng)絡(luò)流量中的正常網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量遠(yuǎn)遠(yuǎn)大于有攻擊的網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量,并且通常網(wǎng)絡(luò)中會有很多新的攻擊出現(xiàn),如零日攻擊等。人們無法提前把所有可能出現(xiàn)的有攻擊的網(wǎng)絡(luò)數(shù)據(jù)包都找到并打上標(biāo)簽。因此本文提出一種基于t-SNE(t-distributed Stochastic Neighbor Embedding)降維的局部異常因子(Local Outlier Factor, LOF)算法,記為t-SNE LOF。該算法首先將網(wǎng)絡(luò)流量切分成網(wǎng)絡(luò)數(shù)據(jù)包,之后將網(wǎng)絡(luò)數(shù)據(jù)包采用t-SNE算法自動學(xué)習(xí)網(wǎng)絡(luò)數(shù)據(jù)包的低維特征,最后將t-SNE算法的輸入作為LOF算法的輸入檢測異常的網(wǎng)絡(luò)數(shù)據(jù)包。值得說明的是,該算法的訓(xùn)練集中僅有正常的網(wǎng)絡(luò)數(shù)據(jù)包,測試集中有少量的有攻擊的網(wǎng)絡(luò)數(shù)據(jù)包和部分正常的網(wǎng)絡(luò)數(shù)據(jù)包。由于采用t-SNE自動學(xué)習(xí)網(wǎng)絡(luò)數(shù)據(jù)包的低維特征,因此本文提出的t-SNE LOF算法能夠更準(zhǔn)確地檢測不在訓(xùn)練集中的攻擊。
本文的主要貢獻(xiàn)如下:
1)現(xiàn)有的網(wǎng)絡(luò)數(shù)據(jù)包特征大多都是高維非線性的[6],很難得到準(zhǔn)確刻畫網(wǎng)絡(luò)數(shù)據(jù)包的低維特征進(jìn)而進(jìn)行異常檢測。本文提出基于t-SNE降維的NLOF算法,該算法首先采用t-SNE算法自動學(xué)習(xí)網(wǎng)絡(luò)數(shù)據(jù)包的低維特征,之后將得到的低維特征作為NLOF算法的輸入進(jìn)行異常檢測。其中,NLOF算法首先采用k-means算法將網(wǎng)絡(luò)數(shù)據(jù)包聚類成為K個簇,并將網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量小于N個的簇標(biāo)記為異常簇,之后將未被標(biāo)記為異常簇的網(wǎng)絡(luò)數(shù)據(jù)包作為LOF算法的輸入進(jìn)行異常檢測。由于采用t-SNE算法自動學(xué)習(xí)網(wǎng)絡(luò)數(shù)據(jù)包的低維特征,本文提出的算法能夠更準(zhǔn)確地檢測攻擊。這是因為異常檢測中提取網(wǎng)絡(luò)數(shù)據(jù)包特征時首次采用t-SNE算法提取低維的網(wǎng)絡(luò)數(shù)據(jù)包特征。此外,LOF算法僅能捕獲異常點,而本文提出的NLOF算法能夠同時捕獲異常點和異常簇。
2)現(xiàn)有的網(wǎng)絡(luò)安全態(tài)勢預(yù)測算法,如基于神經(jīng)網(wǎng)絡(luò)的入侵檢測算法等,通常僅能檢測訓(xùn)練集中包含的攻擊。本文提出的基于t-SNE降維的NLOF算法能夠檢測不在訓(xùn)練集中的攻擊。
3)實驗結(jié)果表明,基于t-SNE降維的LOF算法達(dá)到最優(yōu)性能時,準(zhǔn)確率為98.46%,精確度為98.38%,召回率為98.54%,錯誤率為0.66%,該算法比現(xiàn)有最新算法的準(zhǔn)確率、檢測率和F1分別高3.18個百分點、0.02個百分點和0.01個百分點?;趖-SNE降維的NLOF算法達(dá)到最優(yōu)性能時,準(zhǔn)確率為98.53%,精確度為98.86%,召回率為98.86%,錯誤率為0.32%,該算法比現(xiàn)有最新算法的準(zhǔn)確率、檢測率和F1分別高3.25個百分點、0.34個百分點和0.41個百分點。
現(xiàn)有的異常檢測技術(shù)已經(jīng)在數(shù)據(jù)清洗、金融欺詐檢測[7]等領(lǐng)域取得了較好的效果?,F(xiàn)有的異常檢測方法主要分為基于規(guī)則的異常檢測、基于統(tǒng)計的異常檢測和基于機(jī)器學(xué)習(xí)的異常檢測[6]。基于規(guī)則的異常檢測通常需要通過人工經(jīng)驗構(gòu)建規(guī)則庫,該方法能夠準(zhǔn)確地找出符合規(guī)則的異常,但無法檢測未知的異常?;诮y(tǒng)計的異常檢測通常需要假設(shè)數(shù)據(jù)服從某種分布,之后利用數(shù)據(jù)進(jìn)行參數(shù)估計,該方法魯棒性較強(qiáng),但過于依賴假設(shè)的分布。基于機(jī)器學(xué)習(xí)的異常檢測能夠檢測未知的異常[6-7],并且不需要假設(shè)數(shù)據(jù)的分布。
LOF算法[8-10]基于樣本的局部密度信息判斷是否有異常的網(wǎng)絡(luò)數(shù)據(jù)包。該算法的優(yōu)點是同時考慮了數(shù)據(jù)集的局部屬性和全局屬性,即使在數(shù)據(jù)集中樣本分布不均勻的情況下,該算法仍然能夠獲得較好的效果,但該算法不適用于高維數(shù)據(jù)。
Isolation Forest算法[11]從給定的特征集合中隨機(jī)地選擇特征,之后在特征的最大值和最小值之間隨機(jī)選擇一個分割值,并將小于該分割值的樣本作為該節(jié)點的左孩子,將大于該分割值的樣本作為該節(jié)點的右孩子。不斷地重復(fù)上述過程,至滿足終止條件為止,通常終止條件為所有節(jié)點均只包含一個樣本或者多個相同的樣本,或者樹的深度達(dá)到了限定的高度。這種特征的隨機(jī)劃分會使異常的網(wǎng)絡(luò)數(shù)據(jù)包在樹中生成的路徑更短,從而將異常的網(wǎng)絡(luò)數(shù)據(jù)包和正常的網(wǎng)絡(luò)數(shù)據(jù)包劃分。該算法的缺點是不適用于高維數(shù)據(jù)。
K近鄰(k-Nearest Neighbor, KNN)算法[12]采用基于距離的方式檢測是否有異常點。但該算法不適用于高維數(shù)據(jù),且該算法僅可以找出全局異常點,無法找到局部異常點。
以上算法的共同點是,都不適用于高維數(shù)據(jù)。但網(wǎng)絡(luò)數(shù)據(jù)包特征大多數(shù)都是高維的[6],因此,本文提出一種基于t-SNE降維的NLOF異常檢測算法以得到更好的異常檢測性能。
異常檢測(Anomaly Detection)[13]:是指從數(shù)據(jù)中找到和預(yù)期的行為不一致的異常行為模式。其中,異常的行為模式通常是指異常、離群點等。
奇異值檢測(Novelty Detection)[13]:是指從數(shù)據(jù)中檢測到之前從未觀察到的模式。常見的奇異值檢測算法有one class SVM算法等。
高維空間和低維空間的區(qū)別:在高維空間中,很多基于距離的度量都會失效,比如歐氏距離,且高維空間會帶來維度災(zāi)難[14]。解決維度災(zāi)難的重要途徑是降維[6](Dimension Reduction),即通過一些手段將原始高維空間數(shù)據(jù)轉(zhuǎn)變?yōu)橐粋€低維子空間[6],在這個低維的子空間中樣本密度較高,更容易計算樣本間的距離。此外,現(xiàn)有的研究沒有對低維空間和高維空間定義非常明確的劃分界限。
圖1是基于t-SNE NLOF異常檢測的算法流程圖。該異常檢測算法主要分為3個部分:1)將原始流量切分成網(wǎng)絡(luò)數(shù)據(jù)包;2)采用t-SNE算法自動預(yù)處理網(wǎng)絡(luò)數(shù)據(jù)包以獲得低維的網(wǎng)絡(luò)數(shù)據(jù)包特征;3)將得到的低維的網(wǎng)絡(luò)數(shù)據(jù)包特征作為NLOF算法的輸入進(jìn)行異常檢測。
圖1 基于t-SNE NLOF異常檢測的算法流程圖
數(shù)據(jù)預(yù)處理是提升整個入侵檢測系統(tǒng)性能的基礎(chǔ)[15],因為數(shù)據(jù)預(yù)處理提取的網(wǎng)絡(luò)數(shù)據(jù)包特征會決定整個模型性能的上限?,F(xiàn)有的網(wǎng)絡(luò)數(shù)據(jù)包特征通常都是高維的,無法適用于現(xiàn)有的異常檢測算法,因此本文提出一種基于t-SNE降維的NLOF異常檢測算法。該算法采用t-SNE自動學(xué)習(xí)得到低維的網(wǎng)絡(luò)數(shù)據(jù)包特征以得到更好的異常檢測性能。此外,LOF算法僅能捕獲異常點,提出的NLOF算法能夠同時捕獲異常點和異常簇。
作為數(shù)據(jù)降維的準(zhǔn)備步驟,本文首先將網(wǎng)絡(luò)流量轉(zhuǎn)換成了網(wǎng)絡(luò)數(shù)據(jù)包的特征。將網(wǎng)絡(luò)流量轉(zhuǎn)換成網(wǎng)絡(luò)數(shù)據(jù)包的特征的過程是:首先采用SplitCap[16]將網(wǎng)絡(luò)流量中一組源IP和目的IP的交互劃分到同一個網(wǎng)絡(luò)數(shù)據(jù)包中[14],之后將網(wǎng)絡(luò)數(shù)據(jù)包格式化以提取網(wǎng)絡(luò)數(shù)據(jù)包特征。其中,網(wǎng)絡(luò)數(shù)據(jù)包格式化的流程是:首先將網(wǎng)絡(luò)數(shù)據(jù)包的每個字節(jié)映射成為一個特征,之后對每個網(wǎng)絡(luò)數(shù)據(jù)包的特征進(jìn)行截斷,僅保留每個網(wǎng)絡(luò)數(shù)據(jù)包的前r個字節(jié)。圖2是網(wǎng)絡(luò)數(shù)據(jù)包格式化的過程。
圖2 格式化網(wǎng)絡(luò)數(shù)據(jù)包的包頭和負(fù)載信息
之后對提取的網(wǎng)絡(luò)數(shù)據(jù)包特征采用t-SNE算法進(jìn)行降維,以得到能夠準(zhǔn)確刻畫網(wǎng)絡(luò)數(shù)據(jù)包的低維特征。t-SNE算法是一種非線性降維算法,該算法能夠?qū)?shù)據(jù)從高維空間映射到低維空間。采用t-SNE算法降維主要包括以下2個步驟:首先,采用SNE在高維空間構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)包的概率分布,之后t-SNE算法在低維空間構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)包的概率分布,使高維空間的概率分布和低維空間的概率分布盡可能地相似[17]。
其中,采用SNE在高維空間構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)包的概率分布的過程如下。給定一個包含N個網(wǎng)絡(luò)數(shù)據(jù)包的集合X={x1,x2,…,xN}。對任意2個網(wǎng)絡(luò)數(shù)據(jù)包xi和xj,采用SNE將網(wǎng)絡(luò)數(shù)據(jù)包之間的高維歐幾里得距離轉(zhuǎn)換為表示網(wǎng)絡(luò)數(shù)據(jù)包間相似性的條件概率pj|i,定義如下:
(1)
其中,σi是以網(wǎng)絡(luò)數(shù)據(jù)包xi為中心的高斯分布的標(biāo)準(zhǔn)差。
為了避免不對稱的代價函數(shù)帶來的問題,采用公式(2)計算網(wǎng)絡(luò)數(shù)據(jù)包xi和xj間的距離pij。
(2)
假設(shè)t-SNE降維后的網(wǎng)絡(luò)數(shù)據(jù)包集合是Y={y1,y2,…,yN},那么該集合是高維空間X到低維空間Y的映射。也就是說,高維空間中的網(wǎng)絡(luò)數(shù)據(jù)包xi和xj在低維空間中分別對應(yīng)為yi和yj。之后,在低維空間中采用t-分布計算yi和yj之間的距離,得到網(wǎng)絡(luò)數(shù)據(jù)包之間的距離qij的計算公式為:
(3)
t-SNE算法的最終優(yōu)化目標(biāo)為KL散度,計算公式如下:
(4)
其中,由于最小化KL散度為非凸優(yōu)化,因此采用隨機(jī)梯度下降進(jìn)行求解。KL散度的梯度為:
(5)
本文將降維后的低維網(wǎng)絡(luò)數(shù)據(jù)包特征作為NLOF算法的輸入。NLOF算法能夠計算每個網(wǎng)絡(luò)數(shù)據(jù)包的離群程度因子。離群因子較大的網(wǎng)絡(luò)數(shù)據(jù)包周圍的網(wǎng)絡(luò)數(shù)據(jù)包密度相對較低。因此,具有較大離群因子的網(wǎng)絡(luò)數(shù)據(jù)包稱為離群的網(wǎng)絡(luò)數(shù)據(jù)包,又被稱為異常的網(wǎng)絡(luò)數(shù)據(jù)包。反之,離群因子較小(接近1)的網(wǎng)絡(luò)數(shù)據(jù)包被認(rèn)為是正常的網(wǎng)絡(luò)數(shù)據(jù)包[11,15]。
NLOF算法首先采用k-means算法將網(wǎng)絡(luò)數(shù)據(jù)包聚類成為K個簇,并將網(wǎng)絡(luò)數(shù)據(jù)包數(shù)量小于N個的簇標(biāo)記為異常簇,之后將未被標(biāo)記為異常簇的網(wǎng)絡(luò)數(shù)據(jù)包作為LOF算法的輸入進(jìn)行異常檢測。本文中,K的取值為4,N的取值為5。
下面詳細(xì)介紹LOF算法的一些基本概念。
第k距離(k-distance):網(wǎng)絡(luò)數(shù)據(jù)包p的第k距離是指,對于網(wǎng)絡(luò)數(shù)據(jù)包p和網(wǎng)絡(luò)數(shù)據(jù)包o之間的距離,任取一個自然數(shù)k,網(wǎng)絡(luò)數(shù)據(jù)包o滿足下面的條件:
1)存在至少k個網(wǎng)絡(luò)數(shù)據(jù)包o′∈D/{p}滿足d(p,o′)≤d(p,o);
2)最多存在k-1個網(wǎng)絡(luò)數(shù)據(jù)包o′∈D/{p}滿足d(p,o′) 其中,d(p,o)表示網(wǎng)絡(luò)數(shù)據(jù)包p和網(wǎng)絡(luò)數(shù)據(jù)包o之間的距離。 第k距離鄰域(Nk-distance(p))): 網(wǎng)絡(luò)數(shù)據(jù)包p的第k距離鄰域是指,一個包含所有和網(wǎng)絡(luò)數(shù)據(jù)包p之間距離沒有超過k-distance的網(wǎng)絡(luò)數(shù)據(jù)包的集合。 Nk-distance(p)={q|d(p,q)≤k-distance(p)} (6) 其中,Nk-distance(p))在后文中被簡化成Nk(p)。 可達(dá)距離(reach-dist(p,o)):是指網(wǎng)絡(luò)數(shù)據(jù)包p和網(wǎng)絡(luò)數(shù)據(jù)包o之間第k距離和o、p之間真實距離的最大值。網(wǎng)絡(luò)數(shù)據(jù)包p和網(wǎng)絡(luò)數(shù)據(jù)包o之間可達(dá)距離的公式如下: reach-dist(p,o)=max(k-distance(o),d(p,o)) (7) 局部可達(dá)密度(lrdk(p)):網(wǎng)絡(luò)數(shù)據(jù)包p的局部可達(dá)密度是網(wǎng)絡(luò)數(shù)據(jù)包p的第k距離鄰域內(nèi)到p的平均可達(dá)距離的倒數(shù)。 (8) 局部離群因子(LOFk(p)):網(wǎng)絡(luò)數(shù)據(jù)包p的局部離群因子是指通過網(wǎng)絡(luò)數(shù)據(jù)包p的特征判斷該網(wǎng)絡(luò)數(shù)據(jù)包的離群程度。網(wǎng)絡(luò)數(shù)據(jù)包的局部離群因子越大,該網(wǎng)絡(luò)數(shù)據(jù)包是離群點的可能性就越高。局部離群因子的計算公式如下: (9) 算法1基于t-SNE降維的NLOF異常檢測算法 輸入:網(wǎng)絡(luò)流(fi)。 輸出:測試集的評價結(jié)果。 步驟1將網(wǎng)絡(luò)流切分成網(wǎng)絡(luò)數(shù)據(jù)包。 采用Splitcap將網(wǎng)絡(luò)流切分成q個網(wǎng)絡(luò)數(shù)據(jù)包(p1,p2, …,pq)。 步驟2網(wǎng)絡(luò)數(shù)據(jù)包格式化。 取第i個網(wǎng)絡(luò)數(shù)據(jù)包的前r個字節(jié),將其中的每一個字節(jié)映射成一個特征。之后,能夠得到第i個網(wǎng)絡(luò)數(shù)據(jù)包的向量表示I=(veci1,veci2,…,vecir)。 步驟3t-SNE降維。 采用SNE在高維空間構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)包的概率分布。 t-SNE算法在低維空間構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)包的概率分布,使高維空間的概率分布和低維空間的概率分布盡可能地相似。 步驟4NLOF異常檢測。 采用k-means算法將網(wǎng)絡(luò)數(shù)據(jù)包聚成多個簇。 將網(wǎng)絡(luò)數(shù)據(jù)包個數(shù)小于N個的簇標(biāo)記為異常簇。 將未標(biāo)記為異常的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行如下計算: 4.1計算網(wǎng)絡(luò)數(shù)據(jù)包p的第k距離。 4.2比較所有網(wǎng)絡(luò)數(shù)據(jù)包和網(wǎng)絡(luò)數(shù)據(jù)包p之間的距離,獲得網(wǎng)絡(luò)數(shù)據(jù)包p的第k距離鄰域集合。 4.3計算網(wǎng)絡(luò)數(shù)據(jù)包p和網(wǎng)絡(luò)數(shù)據(jù)包o之間第k距離和o、p之間真實距離的最大值,即可達(dá)距離。 4.4計算網(wǎng)絡(luò)數(shù)據(jù)包p的第k距離鄰域內(nèi)到p的平均可達(dá)距離的倒數(shù),即網(wǎng)絡(luò)數(shù)據(jù)包p的局部可達(dá)密度。 4.5通過網(wǎng)絡(luò)數(shù)據(jù)包p的特征判斷該網(wǎng)絡(luò)數(shù)據(jù)包的離群程度,即計算網(wǎng)絡(luò)數(shù)據(jù)包p的局部離群因子。 步驟5訓(xùn)練評估模型。 采用訓(xùn)練集數(shù)據(jù)訓(xùn)練t-SNE LOF模型。 步驟6測試評估模型。 采用測試集數(shù)據(jù)測試t-SNE LOF模型。 返回測試集的評價結(jié)果。 現(xiàn)有的入侵檢測的數(shù)據(jù)集有KDD CUP 1999[18]、NSL-KDD[19]、Kyoto 2009[20]、ISCX 2012[16]和DAPAR 1998[21]。其中,只有ISCX 2012和DAPAR 1998數(shù)據(jù)集是原始流量數(shù)據(jù)。因為ISCX 2012數(shù)據(jù)集較新,因此本文采用該數(shù)據(jù)集進(jìn)行實驗。表1是該數(shù)據(jù)集的描述。本文將數(shù)據(jù)劃分成訓(xùn)練集、測試集部分。其中,訓(xùn)練集的數(shù)據(jù)為6000個正常的網(wǎng)絡(luò)數(shù)據(jù)包,測試集中包含5000個正常的網(wǎng)絡(luò)數(shù)據(jù)包和10個有攻擊的網(wǎng)絡(luò)數(shù)據(jù)包。 表1 ISCX 2012數(shù)據(jù)集的數(shù)據(jù)描述[22] 本文采用準(zhǔn)確率(ACC)、檢測率(DR)、錯誤率(FAR)和F1作為評價指標(biāo)[23]。其中,準(zhǔn)確率是描述正確檢測出是否有入侵的指標(biāo)。檢測率是描述有多少攻擊被檢測到的比例。錯誤率是指描述模型對非攻擊行為的誤判。計算公式如下: (10) (11) (12) Precision=TP/(TP+FP) (13) (14) 其中,F(xiàn)N(False Negative)是指網(wǎng)絡(luò)數(shù)據(jù)包實際是有攻擊的,但是被預(yù)測成為正常;FP(False Positive)是指網(wǎng)絡(luò)數(shù)據(jù)包實際是正常的,但是被預(yù)測成為了有攻擊的;TN(True Negative)是指網(wǎng)絡(luò)數(shù)據(jù)包實際是正常的,也被預(yù)測成為了正常的;TP(True Positive)是指網(wǎng)絡(luò)數(shù)據(jù)包實際是有攻擊的,也被預(yù)測成為了有攻擊的;Precision是精確度,精確度是由TP/(TP+FP)計算得到的?;煜仃嚾绫?所示。 表2 混淆矩陣 表3是基于t-SNE NLOF算法進(jìn)行異常檢測和基于LOF算法進(jìn)行異常檢測的性能比較。表4是采用t-SNE NLOF算法與采用其他的降維算法對異常檢測結(jié)果影響的比較。圖3是采用t-SNE算法和采用其他的降維算法對異常檢測結(jié)果影響的比較。圖3(a)是基于t-SNE LOF算法進(jìn)行異常檢測的結(jié)果圖。圖3(b)是基于LOF算法進(jìn)行異常檢測的結(jié)果圖。圖3(c)是基于主成分分析(Principal Component Analysis, PCA)算法降維,之后采用LOF算法進(jìn)行異常檢測的結(jié)果圖。圖3(d)是基于局部線性嵌入(Locally Linear Embedding, LLE)算法降維,之后采用LOF算法進(jìn)行異常檢測的結(jié)果圖。圖中灰色圈中為異常的網(wǎng)絡(luò)數(shù)據(jù)包,其余部分為正常的網(wǎng)絡(luò)數(shù)據(jù)包。從表3中可以看出,基于t-SNE LOF算法進(jìn)行異常檢測算法比基于LOF算法進(jìn)行異常檢測算法的準(zhǔn)確率、檢測率和F1分別高3.18個百分點、0.02個百分點和0.0001。基于t-SNE NLOF算法進(jìn)行異常檢測算法比基于LOF算法進(jìn)行異常檢測算法的準(zhǔn)確率、檢測率和F1分別高3.25個百分點、0.34個百分點和0.0041。從圖3可以看出,基于t-SNE NLOF算法進(jìn)行異常檢測算法得到的正常網(wǎng)絡(luò)數(shù)據(jù)包的決策邊界更加清晰,因此能夠更加準(zhǔn)確地劃分出有攻擊的網(wǎng)絡(luò)數(shù)據(jù)包?;贚OF算法進(jìn)行異常檢測算法得到的正常網(wǎng)絡(luò)數(shù)據(jù)包的決策邊界略模糊,容易將邊界處的正常的網(wǎng)絡(luò)數(shù)據(jù)包誤分為異常的網(wǎng)絡(luò)數(shù)據(jù)包。一個可能的解釋是,高維的網(wǎng)絡(luò)數(shù)據(jù)包特征中可能包含很多冗余信息,因此對LOF算法劃分正常網(wǎng)絡(luò)數(shù)據(jù)包的決策邊界造成了干擾,進(jìn)而導(dǎo)致有網(wǎng)絡(luò)數(shù)據(jù)包被誤分。從表4可以看出,本文提出的t-SNE LOF算法的準(zhǔn)確率、檢測率、精確度和F1值都比PCA LOF算法和LLE LOF算法高。也就是說,采用t-SNE算法降維后采用LOF算法進(jìn)行異常檢測能夠得到更高的異常檢測性能。一個可能的解釋是,采用t-SNE算法在降維時,通常使高維空間的概率分布和低維空間的概率分布盡可能地相似。該算法在降維時沒有信息損失。采用PCA算法降維時,只保留影響較大的特征,該算法在降維時有信息損失。因此,與PCA算法和LLE算法相比,t-SNE算法能夠更好地表征網(wǎng)絡(luò)數(shù)據(jù)包的低維特征。從表4可以看出,本文提出的t-SNE NLOF算法的準(zhǔn)確率、檢測率、精確度和F1值都比t-SNE LOF算法高。一個可能的解釋是,本文提出的t-SNE NLOF算法能夠檢測異常點和異常簇,因此具有優(yōu)于t-SNE LOF算法的性能。 表3 t-SNE NLOF算法與LOF算法的性能比較 表4 t-SNE NLOF算法與采用其他的降維算法對異常檢測結(jié)果的影響 (a) t-SNE LOF 現(xiàn)有的應(yīng)用于網(wǎng)絡(luò)安全態(tài)勢預(yù)測中的異常檢測算法主要有One class SVM[24]、Isolation Forest[25]、Elliptic Envelope和LOF[9]。這些算法通常無法很好地適用于高維特征,由于網(wǎng)絡(luò)數(shù)據(jù)包的特征大多都是高維的,因此導(dǎo)致現(xiàn)有的算法性能不高。表5給出了本文算法和現(xiàn)有最新算法的性能比較。從表5能夠看出,本文提出的t-SNE LOF算法比現(xiàn)有最新算法在準(zhǔn)確率和檢測率上分別提高3.18個百分點和0.02個百分點。本文提出算法的準(zhǔn)確率、精確度、檢測率和錯誤率分別為98.46%、98.38%、98.54%和0.66%。一個可能的解釋是,由于網(wǎng)絡(luò)數(shù)據(jù)包特征是高維的特征,且包含部分冗余信息。因此,對于Isolation Forest算法而言,部分冗余的網(wǎng)絡(luò)數(shù)據(jù)包特征會干擾異常檢測的性能,因此Isolation Forest算法的錯誤率較高。Elliptic Envelope算法通過訓(xùn)練集學(xué)習(xí)出一個橢圓型的決策邊界,采用該算法進(jìn)行異常檢測時如果內(nèi)圍分布是雙峰的或者內(nèi)圍分布不是正態(tài)分布則無法很好地擬合正常網(wǎng)絡(luò)數(shù)據(jù)包的邊界[26-28]。因此,Elliptic Envelope算法的性能相對不佳。LOF算法是基于密度的異常檢測算法,該算法考慮到數(shù)據(jù)集的局部和全局屬性。也就是說,即使異常的網(wǎng)絡(luò)數(shù)據(jù)包在具有不同潛在密度的數(shù)據(jù)集中,LOF算法仍然能夠表現(xiàn)得很好。由于高維的網(wǎng)絡(luò)數(shù)據(jù)包特征中可能包含很多冗余信息,因此對LOF算法劃分正常網(wǎng)絡(luò)數(shù)據(jù)包的決策邊界造成了干擾。因此,采用t-SNE LOF算法的準(zhǔn)確率和檢測率比LOF算法的準(zhǔn)確率和檢測率高。 表5 與現(xiàn)有最新的算法的性能比較 一個準(zhǔn)確的正常行為的邊界通常很難得到,因為經(jīng)常會有正常的網(wǎng)絡(luò)數(shù)據(jù)包處于決策邊界的位置而產(chǎn)生誤判。因此,未來可以考慮對網(wǎng)絡(luò)數(shù)據(jù)包的原始特征進(jìn)行篩選,以降低冗余特征的干擾。 本文將一個網(wǎng)絡(luò)數(shù)據(jù)包作為一個點,相當(dāng)于是捕獲一個網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)成的圖中的點異常。由于很多的網(wǎng)絡(luò)攻擊事件是有關(guān)聯(lián)的,因此未來可以考慮采用集體異常(Collective Anomalies)算法捕獲有關(guān)聯(lián)的異常。 本文提出了一種基于t-SNE降維的NLOF異常檢測算法預(yù)測有攻擊的網(wǎng)絡(luò)數(shù)據(jù)包。實驗表明提出的算法比現(xiàn)有最新算法在準(zhǔn)確率、檢測率和F1值上分別高3.25個百分點、0.34個百分點和0.0041。本文提出算法的準(zhǔn)確率、精確度、檢測率和錯誤率分別為98.53%、98.86%、98.86%和0.32%。 本文采用大量正常的網(wǎng)絡(luò)數(shù)據(jù)包訓(xùn)練模型,在測試時加入有攻擊的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行檢測。由于正常的行為也一直在演進(jìn)和發(fā)展,因此即使是現(xiàn)在定義了對正常網(wǎng)絡(luò)數(shù)據(jù)包的良好的決策劃分邊界,在未來不一定能很好地劃分異常的網(wǎng)絡(luò)數(shù)據(jù)包。此外,隨著入侵者調(diào)整其網(wǎng)絡(luò)攻擊以逃避現(xiàn)有入侵檢測解決方案,異常的性質(zhì)會隨著時間不斷變化。因此,未來可以考慮對正常網(wǎng)絡(luò)數(shù)據(jù)包的決策邊界進(jìn)行修正以適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境。3 評 估
3.1 數(shù)據(jù)集
3.2 評價指標(biāo)
3.3 幾種降維方法對算法性能影響的比較
3.4 與最新的技術(shù)比較
4 討 論
5 結(jié)束語