俞永飛
(合肥財經(jīng)職業(yè)學(xué)院人工智能學(xué)院,安徽 合肥 230601)
計算機(jī)和互聯(lián)網(wǎng)在全球范圍內(nèi)的用戶和流量呈現(xiàn)指數(shù)型增長,其自身具有的開放擴(kuò)展性方便了信息的收集與讀取,與此同時也伴隨著大量網(wǎng)絡(luò)安全問題的產(chǎn)生,對于網(wǎng)絡(luò)日常的穩(wěn)定安全運(yùn)行造成了很大的阻礙[1]。網(wǎng)絡(luò)上的一些攻擊流量主要來源于網(wǎng)絡(luò)攻擊腳本或網(wǎng)絡(luò)設(shè)備線路的故障,網(wǎng)絡(luò)攻擊流量主要的危害就是降低網(wǎng)絡(luò)性能,占用寬帶內(nèi)存,竊取用戶數(shù)據(jù)等[2]。在對計算機(jī)和互聯(lián)網(wǎng)的運(yùn)行狀態(tài)進(jìn)行檢測和防御的過程中,就需要對攻擊流量有目的地進(jìn)行攔截,因此,就必須準(zhǔn)確地對這些腳本所產(chǎn)生的網(wǎng)絡(luò)攻擊流量進(jìn)行自動辨識[3]。網(wǎng)絡(luò)中的攻擊流量樣本就成為了非常重要的網(wǎng)絡(luò)攻擊流量的判斷依據(jù),因此,網(wǎng)絡(luò)攻擊流量的自動辨識就成為了保障網(wǎng)絡(luò)正常運(yùn)轉(zhuǎn)和采集攻擊流量樣本的重要方法[4]。
茍峰等[5]提出基于CUSUM算法的LDoS攻擊檢測方法?;谕蛔兗僭O(shè)檢驗(yàn),對流量分析變點(diǎn)前后的特征進(jìn)行分析,將分析得到的結(jié)果與設(shè)定門限值進(jìn)行比較,以此實(shí)現(xiàn)對LDoS攻擊的檢測。該方法對攻擊流量的特征進(jìn)行分類或篩選,但是不適用于大量網(wǎng)絡(luò)流量下的應(yīng)用,識別性能不佳。葛菁等[6]針對LDoS的檢測方法進(jìn)行研究,引入SOM神經(jīng)網(wǎng)絡(luò),通過網(wǎng)絡(luò)流量的速率、生存周期等特征,優(yōu)化SOM神經(jīng)網(wǎng)絡(luò)的輸入層,實(shí)現(xiàn)對LDoS的有效檢測。該方法雖然在一般網(wǎng)絡(luò)中的網(wǎng)絡(luò)攻擊流量識別較好,但是應(yīng)用在大量網(wǎng)絡(luò)流量環(huán)境下,識別性能會有所降低。
因此,筆者提出一種基于人工蜂群算法的網(wǎng)絡(luò)攻擊流量自動辨識方法,對此展開研究。
在正常的網(wǎng)絡(luò)運(yùn)行中,產(chǎn)生的流量數(shù)量龐大,更新速度十分迅速,因此具有攻擊性的流量在對網(wǎng)絡(luò)和計算機(jī)進(jìn)行攻擊時,如果將所有攻擊流量都進(jìn)行留樣處理,對于網(wǎng)絡(luò)中交換機(jī)來說是一個巨大的挑戰(zhàn)[7]。為了保證交換機(jī)與網(wǎng)絡(luò)的正常運(yùn)行,設(shè)計一種網(wǎng)絡(luò)攻擊流量的采樣策略,在大規(guī)模流量下進(jìn)行數(shù)據(jù)包的動態(tài)抽取,對采樣得到的攻擊流量進(jìn)行特征分析[8]。
實(shí)現(xiàn)流量采樣,需要重新定義數(shù)據(jù)包在通信過程中的網(wǎng)絡(luò)協(xié)議。筆者采用的網(wǎng)絡(luò)協(xié)議模型是TCP協(xié)議,在該協(xié)議的基礎(chǔ)上進(jìn)行分層解析處理,解析結(jié)構(gòu)見圖1。
圖1 協(xié)議解析層次結(jié)構(gòu)Fig. 1 Protocol parsing hierarchy
圖1 中的解析層次總共劃分為4層,分別為應(yīng)用層、運(yùn)輸層、網(wǎng)絡(luò)層、鏈路層,得到TCP/IP協(xié)議,數(shù)據(jù)包在網(wǎng)絡(luò)協(xié)議上的各個層中添加攻擊流量的特征信息并進(jìn)行解析,在以上網(wǎng)絡(luò)協(xié)議的支撐下,將外部系統(tǒng)采集到的攻擊流量樣本輸入到內(nèi)部接口處,通過統(tǒng)計流量的特征選取網(wǎng)絡(luò)攻擊流量的屬性集合[9]:
對于網(wǎng)絡(luò)流量的攻擊行為來說,流量序列可以表示為一個矩陣,寫作:
式(2)中,xn,i表示在第n條網(wǎng)絡(luò)第i個屬性上的歸一化取值,在流量序列矩陣上構(gòu)造協(xié)方差矩陣,求解均值向量之后,利用方差貢獻(xiàn)率篩選用以辨識的攻擊流量屬性[10]。至此完成網(wǎng)絡(luò)攻擊流量的采集和特征提取。
人工蜂群算法是一種模仿蜂群采蜜行為的一種算法[11],其中高度模仿了角色分工和轉(zhuǎn)化的特點(diǎn),各個蜜蜂之間分享并擇優(yōu)選擇蜜源,即快速尋找最優(yōu)解[12]。在人工蜂群算法中,主要的組成部分包括蜜源、雇傭蜂和非雇傭蜂,雇傭蜂一般情況下是與蜜源的數(shù)量相對應(yīng)的;非雇傭蜂主要是根據(jù)雇傭蜂提供的信息來進(jìn)行選擇和尋找新的蜜源[13]。人工蜂群的蜜源具體尋優(yōu)過程見圖2。
圖2 人工蜂群算法的采蜜過程Fig. 2 Honey collection process of artificial bee colony algorithm
蜜蜂之間的信息交流是通過跳舞進(jìn)行交流。搖擺舞是蜜蜂之間常用的交流形式,雇傭蜂通過跳舞能夠傳遞蜜源方向以及大致距離等,非雇傭蜂根據(jù)這些信息能夠?qū)γ墼促|(zhì)量進(jìn)行評價。以這種方式,人工蜂群可以快速完成蜜源尋優(yōu),在全局范圍內(nèi)的尋優(yōu)具有較高的收斂性,且能夠避免陷入局部最優(yōu)。筆者將人工蜂群算法與模糊神經(jīng)網(wǎng)絡(luò)相結(jié)合,優(yōu)化網(wǎng)絡(luò)中的隸屬度函數(shù)中心和寬度[14]。優(yōu)化的過程實(shí)際上是人工蜂群算法對于輸入樣本的聚類,隨后確定各個聚類中心,也就是蜜源。建立適應(yīng)度目標(biāo)函數(shù):
式(3)中,J 代表各個聚類的總數(shù)量,ci表示聚類中第i 類的中心,θj表示第j 類聚類中心的數(shù)據(jù)集合,當(dāng)構(gòu)建的適應(yīng)度目標(biāo)函數(shù)的值越小,說明得到的聚類結(jié)果就越緊湊。
此時聚類結(jié)果一般為輸入樣本的軌跡數(shù)據(jù),根據(jù)輸入范圍確定模糊神經(jīng)網(wǎng)絡(luò)輸入域的范圍。模糊神經(jīng)的結(jié)構(gòu)分為5層。第1層的節(jié)點(diǎn)為輸入雇傭蜂提供的信息;第2層的節(jié)點(diǎn)為模糊產(chǎn)生器的節(jié)點(diǎn);第3層的節(jié)點(diǎn)為模糊神經(jīng)網(wǎng)絡(luò)的模糊規(guī)則;第4層的節(jié)點(diǎn)為模糊神經(jīng)網(wǎng)絡(luò)推理判斷機(jī)制;第5層的節(jié)點(diǎn)為輸出節(jié)點(diǎn)。
通過樣本的變化確定模糊子集的中心隸屬度函數(shù):
式(4)中,u 為模糊子集的寬度,χk,...,χh為子區(qū)域c 內(nèi)的模糊隸屬函數(shù)個數(shù),σ 為各個函數(shù)中心點(diǎn)間距離。
對應(yīng)的隸屬度函數(shù)中心點(diǎn)位置計算公式為:
在確定子區(qū)域內(nèi)模糊神經(jīng)網(wǎng)絡(luò)中心點(diǎn)位置后,設(shè)輸入與輸出的樣本空間數(shù)為z,輸入和輸出的變量分別為a 和b。根據(jù)模糊規(guī)則計算模糊神經(jīng)網(wǎng)絡(luò)總相似測度為:
式(6)中,L 為最佳節(jié)點(diǎn)數(shù)。若使計算的S 得到最小值,則出現(xiàn)最優(yōu)模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
在實(shí)際的蜂群采蜜過程中,是以蜜源中蜂蜜含量的多少來判斷蜜源是否優(yōu)質(zhì),在這種判斷條件下,可以將式(6)變形,對人工蜂群的種群初始化,重新設(shè)置蜜源量、迭代次數(shù)上限以及閾值范圍[15]。將得到的攻擊流量特征參數(shù)劃分出一個可知的范圍,并在該范圍內(nèi)隨機(jī)產(chǎn)生一個初始值,根據(jù)式(6)能夠計算出初始化后的種群適應(yīng)度值。隨著雇傭蜂對初始值進(jìn)行搜索,此時能夠發(fā)現(xiàn)新的蜜源,用公式可以表示為:
式(7)中,k 的取值最大不能超過蜜源的數(shù)量,j 表示初始解的維度數(shù)量,φij為大于等于-1小于等于1的隨機(jī)數(shù)[16]。通過式(7)計算適應(yīng)度并與初始值進(jìn)行對比并判斷,擇優(yōu)保留;判斷是否需要放棄蜜源,如果有,則隨機(jī)產(chǎn)生新的蜜源進(jìn)行更換,最后輸出最優(yōu)蜜源,則得到隸屬度函數(shù)的中心。
在寬度的確定中,根據(jù)得到的隸屬度函數(shù)中心周圍樣本,通過下式進(jìn)行計算:
式(8)中,Mj表示第 j 個訓(xùn)練樣本集中的總樣本數(shù)量,用式(8)求解出來的寬度能夠描述出各個聚類中新的數(shù)據(jù)散布程度,求得聚類中心之間的平均距離。至此完成模糊神經(jīng)網(wǎng)絡(luò)的優(yōu)化。
在以上算法設(shè)計的支撐下,需要將算法真正植入到網(wǎng)絡(luò)中進(jìn)行流量的自動辨識。本文的自動辨識流程中分為訓(xùn)練和檢測兩部分,一旦有攻擊流量發(fā)生時,會在相關(guān)的特征維度分析過程中被模糊神經(jīng)網(wǎng)絡(luò)區(qū)分出差異性變化。構(gòu)建模糊神經(jīng)網(wǎng)絡(luò)訓(xùn)練集,已知正常流量和攻擊流量在訓(xùn)練集中的情況,經(jīng)過訓(xùn)練之后得到網(wǎng)絡(luò)攻擊流量的特征,通過學(xué)習(xí)網(wǎng)絡(luò)攻擊流量特征后確定特征之間的聚類中心和寬度,并在特征范圍內(nèi)設(shè)定上下范圍閾值,利用優(yōu)化后的模糊神經(jīng)網(wǎng)絡(luò)進(jìn)行判斷,如果在該閾值之內(nèi),說明是網(wǎng)絡(luò)攻擊流量?;谌斯し淙核惴ǖ木W(wǎng)絡(luò)攻擊流量自動辨識流程如圖3所示。
圖3 網(wǎng)絡(luò)攻擊流量自動辨識流程Fig. 3 Automatic identification process of network attack traffic
在圖3所示的自動辨識流程中,需要注意的是,采集的流量是流經(jīng)網(wǎng)絡(luò)設(shè)備的,因此,采集窗口需要根據(jù)網(wǎng)絡(luò)的實(shí)際情況進(jìn)行設(shè)置,時間窗的大小在一定程度上也影響著攻擊流量辨識的性能,根據(jù)時間窗設(shè)計緩存區(qū),對流量數(shù)據(jù)進(jìn)行過濾。至此完成基于人工蜂群算法的網(wǎng)絡(luò)攻擊流量自動辨識方法的研究。
為了驗(yàn)證本文設(shè)計的基于人工蜂群算法的網(wǎng)絡(luò)攻擊流量自動辨識方法的有效性,需要設(shè)計實(shí)驗(yàn)進(jìn)行驗(yàn)證。在實(shí)驗(yàn)中采用的是劍橋大學(xué)實(shí)驗(yàn)室提供的Moore_set流量集,該流量集中的流量類型等信息見表1。
表1 Moore_set流量集信息數(shù)據(jù)Tab. 1 Moore_ set traffic set information data
從表1中可以看出,不同類型的流量總數(shù)也不相同。因此在實(shí)驗(yàn)中,選擇流量集中流量類型數(shù)量最多的前4 個流量類型作為實(shí)驗(yàn)流量,從每個流量類型中隨機(jī)抽取3 000 條后將其混合,并重新劃分為10個流量集,從中選取1個流量集作為測試集,其余作為訓(xùn)練集。
對聚類流量簇進(jìn)行分析,是辨識網(wǎng)絡(luò)攻擊流量的有效手段,根據(jù)分析結(jié)果可對全網(wǎng)流量異常提供依據(jù),有利于保障網(wǎng)絡(luò)通信安全。在方法的設(shè)計部分中,提取了網(wǎng)絡(luò)攻擊流量的若干個特征屬性作為研究和識別的依據(jù)。原始訓(xùn)練集需要經(jīng)過引力聚類、孤立流和初始聚類質(zhì)心處理之后進(jìn)行訓(xùn)練,在經(jīng)過訓(xùn)練之后,得到的流量簇的聚類質(zhì)心點(diǎn)位置,可以判斷出經(jīng)過訓(xùn)練之后,網(wǎng)絡(luò)攻擊流量的自動辨識算法基本達(dá)到收斂,且具有較強(qiáng)的穩(wěn)定性,得到的聚類后流量簇見圖4。
圖4 經(jīng)過訓(xùn)練之后的聚類流量簇結(jié)果Fig. 4 Clustering traffic cluster results after training
在以上實(shí)驗(yàn)條件下,分別使用本文設(shè)計的基于人工蜂群算法的網(wǎng)絡(luò)攻擊流量自動辨識方法和文獻(xiàn)[5]提出的基于CUSUM 方法和文獻(xiàn)[6]提出的基于SOM神經(jīng)網(wǎng)絡(luò)方法進(jìn)行性能比較。對于它們的識別性能進(jìn)行分析。識別率的計算公式為:
式(9)中,NAdetected表示被正常識別出的攻擊流量的數(shù)量,NAall表示實(shí)際存在的所有攻擊流量數(shù)量。誤識別率的計算公式為:
式(10)中,NAFdetected表示被誤辨識為攻擊流量的數(shù)量,NNall表示所有非攻擊流量的數(shù)量。在上述實(shí)驗(yàn)環(huán)境下,設(shè)置攻擊流量的類型和數(shù)量,分別使用3種方法進(jìn)行檢測,并對實(shí)驗(yàn)結(jié)果進(jìn)行分析。
在以上的條件下,將3種方法進(jìn)行性能比較,在測試過程中,選擇時間窗口為20 s,利用識別率和誤識別率結(jié)合ROC曲線來分析攻擊流量識別的效果,曲線見圖5。
圖5 3種方法的ROC曲線對比Fig. 5 ROC curves comparison of three methods
從圖5 中可以明顯看出,本文設(shè)計的方法與2 種傳統(tǒng)方法相比,在相同識別率條件下的誤識別率更低,隨著識別率的增加,誤識別率也相應(yīng)有所提高,但是本文方法的誤識別率提升速率較慢,在實(shí)際的攻擊流量應(yīng)用中可將識別率設(shè)定在0.8左右比較合適,能夠兼顧識別率和誤識別率。在檢測過程中,取識別率為0.8,對所選流量集中的攻擊流量實(shí)例進(jìn)行識別,得到的3種方法結(jié)果見表2。
表2 識別結(jié)果對比Tab. 2 Comparison of identification results
根據(jù)表2中的結(jié)果可以看出,對于實(shí)驗(yàn)中給出的不同類型的攻擊流量,本文方法的識別效果明顯優(yōu)于2種傳統(tǒng)方法,主要是由于人工蜂群算法在攻擊流量識別尋優(yōu)過程中的效果較好,在個別的攻擊類型中出現(xiàn)了一些漏識別情況,但是總體上的識別性能是比較好的,沒有對整體的識別效果產(chǎn)生較大的影響。驗(yàn)證了本文設(shè)計的攻擊流量識別算法具有一定的有效性。
網(wǎng)絡(luò)管理的復(fù)雜程度與互聯(lián)網(wǎng)技術(shù)的發(fā)展程度是成正比的,越來越多的數(shù)據(jù)依靠互聯(lián)網(wǎng)進(jìn)行保存和傳輸,人們對于過程的可靠性和安全性要求也越來越高。筆者針對網(wǎng)絡(luò)攻擊流量,設(shè)計了一種基于人工蜂群算法的自動辨識方法,該方法的成功應(yīng)用在很大程度上緩解了網(wǎng)絡(luò)安全方面的威脅,并在方法測試中得到了驗(yàn)證。
雖然取得了階段性成果,但是受到研究條件和時間等限制,將本文方法實(shí)際應(yīng)用到互聯(lián)網(wǎng)中還有一些細(xì)節(jié)需要完善,例如,目前的辨識只針對局域網(wǎng),想要形成一套整體適用性比較高的管理系統(tǒng)來說,在今后的研究中還需要從全局角度實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)控,因此,在通信機(jī)制方面還需要進(jìn)一步完善。
內(nèi)蒙古民族大學(xué)學(xué)報(自然科學(xué)版)2022年4期