曾 建 華
(上饒師范學(xué)院數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院 江西 上饒 334001)
當(dāng)前互聯(lián)網(wǎng)的快速發(fā)展和普及,一方面給人們的工作和生活帶來了很大的便利,另一方面也帶來了一定的網(wǎng)絡(luò)安全隱患。因此,網(wǎng)絡(luò)安全的研究將為確保網(wǎng)絡(luò)正常安全運(yùn)行提供有力的保障,具有重要的現(xiàn)實(shí)意義。其中網(wǎng)絡(luò)異常的分析和研究是當(dāng)前網(wǎng)絡(luò)安全領(lǐng)域中一個(gè)非常熱門的研究方向。網(wǎng)絡(luò)異常就是現(xiàn)有的網(wǎng)絡(luò)不能正常運(yùn)行,產(chǎn)生網(wǎng)絡(luò)異常的因素錯(cuò)綜復(fù)雜,有內(nèi)部的網(wǎng)絡(luò)故障也有外來網(wǎng)絡(luò)攻擊的影響等。主要表現(xiàn)為網(wǎng)絡(luò)運(yùn)行的故障、路由器設(shè)備故障、黑客入侵、拒絕服務(wù)攻擊、蠕蟲攻擊等[1-3]。
主成分分析PCA是一種統(tǒng)計(jì)分析方法,在高維數(shù)據(jù)的處理方面具有較強(qiáng)的優(yōu)勢,是一種降維的主要工具,具有較好的無監(jiān)督學(xué)習(xí)能力,該方法在網(wǎng)絡(luò)流量異常檢測方面得到了廣泛的研究[4-7]。Kobi Cohen等[8]采用主動(dòng)假設(shè)檢驗(yàn)的方法對網(wǎng)絡(luò)的異常情況進(jìn)行了統(tǒng)計(jì)分析,并采用了一種漸進(jìn)最優(yōu)方法對網(wǎng)絡(luò)多元異常過程進(jìn)行了研究,取得了較好的分析結(jié)果。文獻(xiàn)[9]基于主動(dòng)學(xué)習(xí)技術(shù)對網(wǎng)絡(luò)異常進(jìn)行了分析,提出了一種融合支持向量機(jī)和主動(dòng)學(xué)習(xí)的網(wǎng)絡(luò)異常檢測方法,該方法不需要利用較多的標(biāo)記數(shù)據(jù),能夠有效地提升網(wǎng)絡(luò)檢測性能。
隨著云計(jì)算、大數(shù)據(jù)的發(fā)展,當(dāng)前基于云網(wǎng)絡(luò)異常的檢測研究得到了高度關(guān)注和深入研究。李春林等[10]提出了一種面向云計(jì)算環(huán)境的網(wǎng)絡(luò)異常流量分組方法。該方法首先采用聚類分析技術(shù)對在云計(jì)算環(huán)境下產(chǎn)生的大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行預(yù)處理,然后提取網(wǎng)絡(luò)數(shù)據(jù)聚類后的統(tǒng)計(jì)特征,并進(jìn)行分組研究,最終得到網(wǎng)絡(luò)流量的分類結(jié)果和流量異常分組結(jié)果。文獻(xiàn)[11]采用支持向量機(jī)方法,提出了一種并行網(wǎng)絡(luò)流量的分類方法,具有較高的準(zhǔn)確率。但是該方法的計(jì)算復(fù)雜,計(jì)算開銷大,難以實(shí)時(shí)檢測出網(wǎng)絡(luò)流量的異常情況,在實(shí)際應(yīng)用中的推廣力度受限?;诖耍墨I(xiàn)[12]提出了一種在線的自適應(yīng)網(wǎng)絡(luò)流量分析方法,取得了較好的實(shí)時(shí)異常檢測效果。
本文受文獻(xiàn)[12]的啟發(fā),同時(shí)根據(jù)文獻(xiàn)[13]指出的PCA在網(wǎng)絡(luò)異常檢測中出現(xiàn)的問題,即基于PCA的網(wǎng)絡(luò)異常檢測算法前提是假設(shè)網(wǎng)絡(luò)流量數(shù)據(jù)滿足高斯分布,且提取數(shù)據(jù)的非線性結(jié)構(gòu)無能為力。因此,為了解決PCA在網(wǎng)絡(luò)異常檢測方面存在的問題,提出了一種基于核主成分分析的實(shí)時(shí)網(wǎng)絡(luò)流量異常檢測算法,最后通過仿真分析和比較,證實(shí)了該算法的有效性。
一般來說,網(wǎng)絡(luò)異常的研究通?;趫D論或矩陣的數(shù)學(xué)方法來進(jìn)行。一般采用矩陣對網(wǎng)絡(luò)的數(shù)據(jù)流進(jìn)行描述,稱為網(wǎng)絡(luò)數(shù)據(jù)流矩陣。該矩陣可以反映一個(gè)網(wǎng)絡(luò)中所有源節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的流量情況。網(wǎng)絡(luò)中的節(jié)點(diǎn)主要包括路由器、交換機(jī)、鏈路等。
網(wǎng)絡(luò)數(shù)據(jù)流矩陣的表示過程可以總結(jié)為:給定某個(gè)網(wǎng)絡(luò),其已經(jīng)部署了n個(gè)路由器節(jié)點(diǎn)。首先基于固定時(shí)間間隔對該網(wǎng)絡(luò)中任意一對節(jié)點(diǎn)之間的網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行測量,然后將測量后的網(wǎng)絡(luò)流量數(shù)據(jù)排列成一個(gè)N×T的矩陣X,其中X表示網(wǎng)絡(luò)中的數(shù)據(jù)流矩陣。其中T為測量的固定周期數(shù),N表示在每個(gè)測量周期內(nèi)測出的數(shù)據(jù)流值的數(shù)量;網(wǎng)絡(luò)數(shù)據(jù)流矩陣X中的第i列表示在第i個(gè)測量周期內(nèi)的測量值向量,一般用Xi表示,第j行表示第j個(gè)節(jié)點(diǎn)對之間流量測量值的時(shí)間序列。
在網(wǎng)絡(luò)數(shù)據(jù)流異常檢測的過程中,其核心步驟是建立用戶正常的行為模式,并且假設(shè)所有的網(wǎng)絡(luò)入侵行為都與正常行為不同。因此,建立網(wǎng)絡(luò)數(shù)據(jù)流的常態(tài)模型是前提條件,然后在此條件下來研究網(wǎng)絡(luò)數(shù)據(jù)流的行為模式,并與正常的行為模式進(jìn)行比較,以確定它們是否正常。網(wǎng)絡(luò)數(shù)據(jù)流異常的檢測方式主要有兩種,即離線方式和在線方式?;陔x線方式的網(wǎng)絡(luò)數(shù)據(jù)流異常檢測通常以批處理的方法建立常態(tài)模型,然后去發(fā)現(xiàn)在這批網(wǎng)絡(luò)數(shù)據(jù)流中是否存在異常。基于在線方式的網(wǎng)絡(luò)數(shù)據(jù)流異常檢測一般采用增量的方法建立常態(tài)模型,每步只對單個(gè)網(wǎng)絡(luò)測量值進(jìn)行分析,以發(fā)現(xiàn)該測量值是否正常,并利用該測量值對常態(tài)模型進(jìn)行迭代更新。
根據(jù)文獻(xiàn)[14],網(wǎng)絡(luò)數(shù)據(jù)流可以看成是來自p個(gè)源的多變量時(shí)間序列S={Si(t)},i∈[1,p]。p表示網(wǎng)絡(luò)數(shù)據(jù)流的維度,每個(gè)源表示網(wǎng)絡(luò)中的節(jié)點(diǎn)(如路由器、鏈路等)。如果將網(wǎng)絡(luò)中的所有節(jié)點(diǎn)間的數(shù)據(jù)流測量值作為一個(gè)輸入向量Xi,那么Xi可以認(rèn)為是存在于高維空間p中的一個(gè)多元變量,亦即數(shù)據(jù)流矩陣X就可以看成是高緯空間p中多元變量的時(shí)間序列其中T表示網(wǎng)絡(luò)測量的周期數(shù)。由于KPCA是基于核的特征提取方法中最有效的非線性特征提取技術(shù)之一,也是一種處理類似網(wǎng)絡(luò)數(shù)據(jù)流矩陣高維數(shù)據(jù)的有效技術(shù)手段,它通過引入核函數(shù),將核矩陣代替測量值協(xié)方差矩陣。通過核矩陣求解特征值和特征向量,無需在整個(gè)特征空間中求解特征向量,相比主成分分析方法減小了計(jì)算量,又能進(jìn)行非線性映射處理。因此,KPCA具有較好的降維性能。
(1)
一般來說Φ(xi)Φ(xi)T求解困難,因此引入核函數(shù)來代替協(xié)方差,定義N×N維矩陣K:
K=[Ki,j]N×N=K(xi,xj)
(2)
(3)
(4)
通過計(jì)算KC·V=λ·V,求解核矩陣KC的特征值λi和特征值所對應(yīng)的特征向量V:
V=[vi]i=1,2,…,p
(5)
那么網(wǎng)絡(luò)數(shù)據(jù)流矩陣的主成分(即投影向量矩陣)可以表示為:
A=VTKC=〈KCV〉
(6)
將每個(gè)輸入向量Xi向正常子空間S投影,可以得到投影向量ai:
(7)
式中:Vk表示k個(gè)最大的特征值對應(yīng)的特征向量組成的矩陣。顯然,輸入向量Xi能夠被投影向量ai在最小均方誤差意義下得到重構(gòu):
Xi=Vkai
(8)
(9)
其中:
(10)
首先使用式(7)將該輸入向量向當(dāng)前的正常子空間S進(jìn)行投影,得到投影向量at+1,然后計(jì)算重構(gòu)Xt+1對應(yīng)的殘余向量范數(shù):
(11)
式(11)表示為殘余向量范數(shù),該范數(shù)衡量原始輸入向量和重構(gòu)輸入向量之間的誤差程度,預(yù)設(shè)一誤差閾值T,當(dāng)誤差超過該閾值時(shí),則認(rèn)為輸入向量出現(xiàn)異常。
由于Q與當(dāng)前特征空間相互垂直,因此將Q進(jìn)行歸一化后,并添加到特征向量V中:
(12)
然后對A(t)作如下處理:
(13)
新的特征向量添加到已有的特征空間中,需要對已有的特征向量作旋轉(zhuǎn)變換處理,因此,對投影向量矩陣A′執(zhí)行KPCA算法,獲得特征向量矩陣R,其中R表示已旋轉(zhuǎn)后的特征向量。
最后,特征向量矩陣V和投影向量矩陣A分別更新如下:
(14)
A(t+1)=RT(A′-η1)
(15)
綜合以上分析,網(wǎng)絡(luò)數(shù)據(jù)流異常檢測算法的具體步驟描述如表1所示。
表1 基于KPCA的網(wǎng)絡(luò)異常檢測算法步驟
續(xù)表1
本文采用Abilene數(shù)據(jù)集[4,6],并使用Intel Core 4,4 GHz,8 GB內(nèi)存,Windows 7的PC機(jī)在MATLAB 2010a上進(jìn)行仿真實(shí)驗(yàn)。其中Abilene數(shù)據(jù)集的具體描述見表2。表2中的數(shù)據(jù)集為因特網(wǎng)實(shí)際測量的網(wǎng)絡(luò)流量數(shù)據(jù),包括網(wǎng)絡(luò)的異常流量數(shù)據(jù)和突發(fā)流量數(shù)據(jù)。常見的網(wǎng)絡(luò)流量異常包括:阿爾法(alpha)異常、(分布式)拒絕服務(wù)攻擊(DoS/DDoS)、端口掃描Port Scan異常、突發(fā)流(flash crowd)、Worms異常等。
表2 Abilene流量矩陣
為評價(jià)網(wǎng)絡(luò)異常檢測算法的性能,采用由誤報(bào)率和檢測率組成的接收機(jī)工作特性曲線(ROC)作為評價(jià)指標(biāo)。其中誤報(bào)率指的是將網(wǎng)絡(luò)正常流量誤判為異常流量的比例,將其作為ROC曲線的橫坐標(biāo);檢測率指的是正常檢測出異常流量的比例,將其作為ROC曲線的縱坐標(biāo)。接收機(jī)工作特性曲線體現(xiàn)的是對網(wǎng)絡(luò)檢測率和誤報(bào)率之間保持平衡的一種折衷,如果接收機(jī)工作特性曲線中的檢測率隨著誤報(bào)率的逐漸增加而快速靠近ROC曲線圖中的左上角。同時(shí)ROC曲線下方覆蓋的區(qū)域面積也越大,那么表明算法具有較好的檢測性能。因此,本節(jié)基于表2的4種數(shù)據(jù)集,采用這一評價(jià)指標(biāo)與PCA網(wǎng)絡(luò)異常檢測算法[5]和文獻(xiàn)[9]進(jìn)行了比較,其結(jié)果如圖1-圖4所示。
圖1 網(wǎng)絡(luò)異常檢測算法對實(shí)測數(shù)據(jù)DataSet1的檢測性能
圖2 網(wǎng)絡(luò)異常檢測算法對實(shí)測數(shù)據(jù)DataSet2的檢測性能
圖3 網(wǎng)絡(luò)異常檢測算法對實(shí)測數(shù)據(jù)DataSet3的檢測性能
圖4 網(wǎng)絡(luò)異常檢測算法對實(shí)測數(shù)據(jù)DataSet4的檢測性能
從圖1-圖4中可以看出,本文提出的基于KPCA的網(wǎng)絡(luò)異常檢測算法性能優(yōu)于傳統(tǒng)的PCA檢測算法,當(dāng)誤報(bào)率大于0.4時(shí),與文獻(xiàn)[9]基于主動(dòng)學(xué)習(xí)的網(wǎng)絡(luò)異常檢測算法性能相當(dāng)?;贙PCA的網(wǎng)絡(luò)異常檢測算法主要引入了核函數(shù),相比傳統(tǒng)PCA來說,對網(wǎng)絡(luò)流量數(shù)據(jù)的非線性特征具有較好的刻畫能力,而且同時(shí)具有較強(qiáng)的降維能力,在處理網(wǎng)絡(luò)數(shù)據(jù)流矩陣方面的性能優(yōu)于傳統(tǒng)PCA。文獻(xiàn)[9]主要基于單分類支持向量機(jī)和主動(dòng)學(xué)習(xí)對網(wǎng)絡(luò)異常進(jìn)行檢測,該方法采用了無監(jiān)督學(xué)習(xí)技術(shù)來建立支持向量機(jī)模型,并利用主動(dòng)學(xué)習(xí)對該模型進(jìn)行了參數(shù)優(yōu)化,取得了較好的檢測結(jié)果。本文提出的算法在網(wǎng)絡(luò)數(shù)據(jù)的表示上比文獻(xiàn)[9]更為清晰。
在攻擊行為日趨多樣化的當(dāng)今網(wǎng)絡(luò)環(huán)境下,如何有效地檢測出網(wǎng)絡(luò)中的異常行為是對網(wǎng)管人員的一大挑戰(zhàn)。針對網(wǎng)絡(luò)中流量的異常檢測,提出了一種基于核主成分分析的異常檢測算法。該算法以Abilene實(shí)測的網(wǎng)絡(luò)流量數(shù)據(jù)為研究對象,通過引入核函數(shù)機(jī)制,采用基于核的特征空間表示網(wǎng)絡(luò)流量數(shù)據(jù),較好地提升了對網(wǎng)絡(luò)流量數(shù)據(jù)的非線性表示能力。仿真實(shí)驗(yàn)結(jié)果表明提出的KPCA算法取得了較好的檢測性能。
[1] Bhuyan M H, Bhattacharyya D K, Kalita J K. Network Anomaly Detection: Methods, Systems and Tools[J]. IEEE Communications Surveys & Tutorials, 2014, 16(1):303-336.
[2] Chandola V, Banerjee A, Kumar V. Anomaly detection: A survey[J]. ACM Computing Surveys, 2009,41(3):1-58.
[3] Nguyen T, Armitage G. A Survey of Techniques for Internet Traffic Classification using Machine Learning[J]. IEEE Commun. Surveys Tutorials, 2008, 10(4): 56-76.
[4] Lakhina A, Crovella M, Diot C. Diagnosing network-wide traffic anomalies[J]. Acm Sigcomm Computer Communication Review, 2004, 34(4):219-230.
[5] Huang L, Nguyen X L, Garofalakis M, et al. In-network PCA and anomaly detection[C]//International Conference on Neural Information Processing Systems. MIT Press, 2006:617-624.
[6] Lakhina A, Crovella M, Diot C. Mining anomalies using traffic feature distributions[C]//Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. ACM, 2005:217-228.
[7] 錢葉魁,陳鳴,葉立新,等. 基于多尺度主成分分析的全網(wǎng)絡(luò)異常檢測方法[J]. 軟件學(xué)報(bào),2012,23(2):361-377.
[8] Cohen K, Zhao Q. Active Hypothesis Testing for Anomaly Detection[J]. IEEE Transactions on Information Theory, 2015, 61(3):1432-1450.
[9] 劉敬,谷利澤,鈕心忻,等. 基于單分類支持向量機(jī)和主動(dòng)學(xué)習(xí)的網(wǎng)絡(luò)異常檢測研究[J].通信學(xué)報(bào),2015,36(11):136-146.
[10] 李春林,黃月江,牛長喜. 一種面向云計(jì)算的網(wǎng)絡(luò)異常流量分組方法[J].計(jì)算機(jī)應(yīng)用研究,2014,31(12):3704-3706.
[11] 裴楊,王勇,陶曉玲,等.基于SVM 的并行網(wǎng)絡(luò)流量分類方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(8) : 2646-2649.
[12] Khan F, Hosein N, Chuah C N, et al. Streaming Solutions for Fine-Grained Network Traffic Measurements and Analysis[J]. IEEE/ACM Transactions on Networking, 2011, 22(2):377-390.
[13] Ringberg H, Soule A, Rexford J, et al. Sensitivity of PCA for traffic anomaly detection[J]. Acm Sigmetrics Performance Evaluation Review, 2007, 35(1):109-120.
[14] Teixeira P H S, Milidiú R L. Data stream anomaly detection through principal subspace tracking[C]//ACM Symposium on Applied Computing. ACM, 2010:1609-1616.