高智強, 張亞加, 邱啟蒙, 邵建龍
(昆明理工大學 信息工程與自動化學院, 云南 昆明 650500)
全球互聯(lián)網(wǎng)通信的增加,在給人們的學習和生活帶來眾多便利的同時,也使得網(wǎng)絡安全在科學研究和工業(yè)生產(chǎn)中備受關(guān)注?,F(xiàn)在網(wǎng)絡攻擊造成的不良影響越來越大,防火墻的重要性也越來越高[1]。作為控制計算機網(wǎng)絡安全重要的一環(huán),防火墻的正確配置至關(guān)重要。由于在防火墻中不允許冗余策略的存在,然而根據(jù)網(wǎng)絡的規(guī)模而定,網(wǎng)絡中用戶產(chǎn)生的信息數(shù)據(jù)量極大,人工進行這些訪問策略的配置不僅耗費大量的時間和人力,而且容易出錯[2]。
目前,機器學習和深度學習得到了廣泛應用,通過使用機器學習方法用于發(fā)現(xiàn)和揭示數(shù)據(jù)集中的關(guān)系來進行防火墻的配置無疑是解決防火墻配置策略冗余這一問題的有效方法。在這一方面,Golnabi等[3]使用數(shù)據(jù)挖掘的技術(shù)對防火墻策略規(guī)則進行分析。Breier等[4]試圖基于數(shù)據(jù)挖掘技術(shù)的日志文件提出一個異常檢測的方法來創(chuàng)建防火墻動態(tài)規(guī)則。郝欣達[5]研究基于深度學習的異常流量檢測方法并設計和實現(xiàn)高效的WAF防火墻。但是以上方法存在實驗所要求的樣本數(shù)據(jù)量極大、訓練時間過長的缺點。李洪林[6]選取了ID3決策樹模型并實現(xiàn)了在防火墻中的應用。但是ID3決策樹模型存在生成效率過慢且容易過擬合的問題。
支持向量機(Support Vector Machine,SVM)作為機器學習中的重要算法,具有對訓練數(shù)據(jù)集數(shù)據(jù)量小的優(yōu)點,可以利用較小的訓練數(shù)據(jù)得到算法模型,學習效率高,實時性好,可以用于實時檢測,并且可以有效解決特征維度過高的問題和非線性問題[6]?;诖耍疚幕贚ibsvm工具包,利用主成分分析法進行特征提取,使用改進的新型群體智能優(yōu)化算法蜉蝣算法(Improved Mayfly Algorithm,IMA)優(yōu)化SVM來進行防火墻日志文件的訓練和策略配置。
蜉蝣算法(Mayfly Algorithm,MA)是一種新型群體智能優(yōu)化算法,具有尋優(yōu)性能好、收斂速度快等優(yōu)點,研究價值較高。其靈感源于蜉蝣的社會行為,特別是它們的交配過程。該算法首先隨機產(chǎn)生兩組蜉蝣,分別代表雄性和雌性種群,將每個蜉蝣隨機放置在問題解的空間中,由d維向量x=(x1,x2,…,xd)表示,并根據(jù)目標函數(shù)f(x)進行評價,再定義蜉蝣的速度為v=(v1,v2,…,vd),每個蜉蝣的飛行方向是個體和社會飛行經(jīng)驗的動態(tài)交互作用。從飛行行為和蜉蝣的交配過程來看,該算法結(jié)合了飛行算法和進化算法的主要優(yōu)點[7]。
1.1.1 雄性蜉蝣的運動
適應度值較差雄性蜉蝣的速度定義為
(1)
(2)
式中Xi表示pbest或者gbest,Xij表示pbest或者gbest在j維度的取值,xi表示蜉蝣個體i,xij表示蜉蝣i在j維度的取值,n是蜉蝣維度的上限。
1.1.2 雌性蜉蝣的運動
(3)
(4)
1.1.3 蜉蝣交配
交叉算子代表兩個蜉蝣的交配過程:從雄性種群和雌性種群中各選擇一個親本。選擇父母的方式與雄性吸引雌性的方式相同。選擇可以是隨機的,也可以基于它們的適應度函數(shù)。在后者中,最好的雌性與最好的雄性繁殖,次好的雌性與次好的雄性繁殖。交叉的結(jié)果產(chǎn)生兩個后代,其產(chǎn)生方式為
(5)
式中male是父本,female是母本,兩者均為矩陣的形式;L是一個位于區(qū)間[-1,1]內(nèi)的隨機數(shù),為標量;·表示矩陣運算中的數(shù)乘。
1.1.4 蜉蝣算法的流程
基本蜉蝣算法的流程如下:
步驟1 初始化雌性蜉蝣、雄性蜉蝣,設定參數(shù);
步驟2 計算適應度值,并且排序,獲取全局最優(yōu)解和個體最優(yōu)解;
步驟3 依次更新雄性蜉蝣、雌性蜉蝣位置,并且交配;
步驟4 計算適應度,并更新全局最優(yōu)解和個體最優(yōu)解;
步驟5 是否滿足停止條件,如果滿足則退出,輸出結(jié)果,否則重復執(zhí)行步驟3—步驟5。
1.2.1 蜉蝣種群改進的Tent混沌映射初始化
在分析基本的蜉蝣優(yōu)化算法后,發(fā)現(xiàn)蜉蝣算法在種群初始化階段存在問題,基本的蜉蝣算法中初始種群采用隨機過程,雖然隨機過程可以保證在大多數(shù)情況下初始種群分布均勻,但個體的質(zhì)量不能保證[8]。若初始化不佳,使得蜉蝣群體多樣性變差,會使算法迭代增加,可能使算法陷于局部最優(yōu)解,浪費計算資源。因此嘗試采用混沌映射初始化種群的位置,其原理是在不改變蜉蝣群體初始化的隨機本質(zhì)下,利用混沌映射的分布均勻性、不可重復性、不可預測性、不確定性和遍歷性特點初始化種群位置,提高種群的多樣性和算法搜索的遍歷性,使得算法具有較高的收斂速度和全局搜索能力。目前常用的混沌映射有Logistic混沌映射和Tent混沌映射,相比于Logistic混沌映射,Tent混沌映射產(chǎn)生的混沌序列分布更為均勻,由于采用了貝努利移位變換,迭代速度也更快[9]。針對Tent混沌映射序列迭代可能會落入小周期點和不穩(wěn)定周期點,文獻[9]在初始的Tent混沌映射中添加隨機變量rand(0,1)/NT,優(yōu)化后的Tent混沌映射為
(6)
式中zi表示第i次映射的函數(shù)值,初始的z1取范圍[0,1]之間的隨機數(shù),rand(0,1)取區(qū)間[0,1]中的隨機數(shù),NT表示序列內(nèi)的種群數(shù)量。
設所求解的維度為n,則蜉蝣群體的初始化按以下流程進行:
步驟1 隨機生成n維度第一個蜉蝣個體;
步驟2 根據(jù)上個蜉蝣個體的某個維度,根據(jù)改進的Tent映射生成下個蜉蝣個體該維度的值,重復進行,直到達到種群上限;
步驟3 對所有的蜉蝣群體根據(jù)各個維度的上下限生成具體的位置,設某個維度的上限為ub,下限為lb,某個蜉蝣個體該維度的值為zi,則具體位置為
xi=lb+(ub-lb)×zi。
(7)
1.2.2 變異策略
遺傳算法是一種汲取自然進化思想尋求最優(yōu)解的方法[10]。通過選擇、交叉、變異等遺傳算子來交換種群的信息,最終得到符合優(yōu)化目標的參數(shù)。而基本的蜉蝣算法結(jié)合了粒子群優(yōu)化算法粒子不斷更新速度和遺傳算法選擇、交叉的特性,并沒有引入變異策略。因此,嘗試引入遺傳算法中的變異算子來改進基本的蜉蝣算法,使其有更多的種群多樣性可以跳出局部最優(yōu)。本文引入的高斯變異因子為[11]
mutation(x)=x(1+N(0,1)),
(8)
式中x為原始的參數(shù)值,N(0,1)表示期望為0、標準差為1的正態(tài)分布隨機數(shù),mutation(x)為高斯變異后的數(shù)值。
由正態(tài)分布特性可知,高斯變異的重點搜索區(qū)域為原個體附近的某個局部區(qū)域。高斯分布有較好的局部搜索能力,對于大量局部極小值的優(yōu)化問題,使得算法能夠高精度地找到全局極小值點,并且也提高了算法的魯棒性[12]。
1.2.3 引入縮小系數(shù)
在基本的粒子群改進算法中,最常見的莫過于對粒子速度權(quán)重g的改變。由此得到啟發(fā),對基本蜉蝣算法中蜉蝣群體的速度權(quán)重進行迭代遞減,在程序的調(diào)試過程中發(fā)現(xiàn),類似的變量還有隨機舞蹈系數(shù)和隨機游走系數(shù),對這些變量引入一個縮小系數(shù),使變量的取值隨迭代次數(shù)的變化而穩(wěn)定遞減。引入縮小系數(shù)后,前期蜉蝣群體的慣性速度、舞蹈系數(shù)和隨機游走系數(shù)較大,有利于算法的全局搜索;后期蜉蝣群體的慣性速度、舞蹈系數(shù)和隨機游走系數(shù)較小,有利于算法的局部搜索,且有利于引入高斯變異后的收斂。在本次實驗中,所做的改進是使變量呈指數(shù)遞減,縮小系數(shù)用下面的公式求?。?/p>
(9)
式中n取最大迭代次數(shù)的80%。因此在測試函數(shù)時,rf取值0.995;在防火墻應用中,rf取值0.95。
為全面評估IMA的性能,本文選取4個經(jīng)典測試函數(shù),包括單峰測試函數(shù)和多峰測試函數(shù),其中f1、f2為單峰函數(shù),用來評估算法的局部搜索能力;f3、f4為多峰函數(shù),用來評估算法的全局能力和算法跳出局部極小值的能力。函數(shù)表達式見表1。
表1 測試函數(shù)
為了保證實驗的合理性,引入飛行行為算法的粒子群算法(PSO)和進化算法的遺傳算法(GA),將IMA與MA、PSO、GA等算法進行比較分析,種群規(guī)模設置為40,變量維度為5,最大迭代次數(shù)為500,分別獨立運行30次,以實驗得到的曲線繪制各算法的平均收斂曲線,如圖1所示。
圖1 測試函數(shù)收斂曲線
由圖1(a)、(b)、(d)可知,相比于PSO和GA,MA算法的收斂曲線具有較高斜率,但在圖(c)中可以明顯看出MA全局搜索性能較差且陷入局部最優(yōu)。而IMA在各個測試函數(shù)上表現(xiàn)最佳,達到收斂的迭代次數(shù)最少且求得的解比PSO、GA和MA更接近于最優(yōu)解,說明IMA的收斂速度和跳出局部最優(yōu)解的能力明顯優(yōu)于PSO、GA和MA。4個基準測試函數(shù)結(jié)果表明,IMA使算法以較大的斜率收斂到全局最優(yōu)解附近,克服了算法早熟的問題,并使算法具有較快的收斂速度。同時引入的高斯變異有效地幫助算法跳出了局部最優(yōu)解,IMA算法中蜉蝣群體的速度權(quán)重g和隨機游走系數(shù)fl、隨機舞蹈系數(shù)d等以指數(shù)形式隨迭代次數(shù)遞減有效地克服了高斯變異帶來的不穩(wěn)定性,使算法的全局搜索和局部搜索能力達到有效平衡,實現(xiàn)了算法的穩(wěn)定性。但是,由于IMA單步迭代中引入了多余操作,使得復雜度和計算量略有所增加,單步迭代運行時間小許增加,這是目前IMA算法存在的最大問題。
SVM是人工智能機器學習領(lǐng)域的一個郵件的學習方法,通常用來進行模式識別、分類預計回歸分析[13]。其核心目標在于尋找一個最優(yōu)分類超平面,處于超平面兩邊的數(shù)據(jù)各為一類,從而完成樣本分類[14]。影響SVM性能的主要參數(shù)為核函數(shù)參數(shù)g和懲罰參數(shù)c[15]。在本實驗中,IMA通過適應度函數(shù)對SVM這兩個參數(shù)進行動態(tài)調(diào)整,并將優(yōu)化后的SVM用于建立防火墻配置策略模型。由于防火墻日志文件具有較多的維度,為了提高SVM的分類效率,首先通過主成分分析方法對數(shù)據(jù)進行預處理,減少數(shù)據(jù)集的維度,之后對處理后的數(shù)據(jù)進行SVM分類和測試,建立分類模型。建立PCA-IMA-SVM防火墻配置策略的流程如圖2所示。
圖2 PCA-IMA-SVM防火墻數(shù)據(jù)處理流程
對圖2流程圖的詳細說明如下:
(1)選取訓練集和測試集。首先從原始數(shù)據(jù)中選取一部分樣本數(shù)據(jù),并按照一定比例劃分訓練集和測試集。
(2)數(shù)據(jù)的規(guī)范化。在進行主成分分析之前,首先對數(shù)據(jù)集進行規(guī)范化,以m表示樣本的維數(shù),n表示數(shù)據(jù)樣本的數(shù)量,對樣本矩陣作變換[16]:
(10)
(3)PCA數(shù)據(jù)降維。由于原始防火墻配置數(shù)據(jù)的各個維度不一定完全相互獨立,因此在進行參數(shù)尋優(yōu)和模型訓練之前需要對原始數(shù)據(jù)進行降維,以便于在提取主成分消除樣本數(shù)據(jù)之間相關(guān)性的同時,減少模型的訓練時間,提高模型的分類準確率。其基本原理為盡可能代表原始數(shù)據(jù)信息的條件下,將高維特征空間的數(shù)據(jù)通過線性變換映射到低維樣本空間[17]。本文對原始數(shù)據(jù)進行主成分分析,將原始的11維數(shù)據(jù)轉(zhuǎn)化為4維數(shù)據(jù),主成分分析對原始數(shù)據(jù)的解釋度為90.5%。
(4)蜉蝣算法參數(shù)設定及其種群初始化。對蜉蝣算法中的隨機游走系數(shù)、變異概率、迭代次數(shù)等參數(shù)進行設定,對蜉蝣群體進行改進的Tent混沌映射初始化。
(5)計算種群適應度并排序,確定個體最優(yōu)及種群最優(yōu)。訓練過程中的種群適應度值以十折交叉驗證下的SVM模型準確率取值。
(6)蜉蝣群體位置更新并更新個體和種群最優(yōu)。根據(jù)個體最優(yōu)和種群最優(yōu)來確定雄性蜉蝣的速度取值,并根據(jù)雄性的適應度來確定雌性的速度取值。以速度取值進行蜉蝣群體的位置更新,重新確定個體最優(yōu)和種群最優(yōu)。
(7)蜉蝣群體交配,確定子代最優(yōu),更新群體最優(yōu)。雌雄個體交配,子代為雌雄個體線性組合,更新子代最優(yōu)和群體最優(yōu)。
(8)子代變異,確定變異個體最優(yōu),更新種群最優(yōu)。對子代以一定概率進行高斯變異,確定變異個體的個體最優(yōu),更新種群最優(yōu)。
(9)群體適應度排序,根據(jù)種群數(shù)量選擇新一代群體。若設定的蜉蝣群體種群數(shù)量為n,則根據(jù)個體適應度的優(yōu)劣程度進行排序,選取適應度值最優(yōu)的n個個體為新一代種群,剔除適應度差的個體。選擇后的種群重新按照適應度取值分為雌雄個體。
(10)根據(jù)求得的參數(shù)確定SVM模型,對測試集分類并輸出結(jié)果。根據(jù)訓練集結(jié)合IMA算法求得c和g確定SVM并對測試集進行數(shù)據(jù)處理并輸出。以IMA算法求得的c和g帶入SVM模型中,對測試集樣本數(shù)據(jù)預測,并與其標簽值進行對比,求得準確率、誤報率和漏報率等指標。
本文的實驗操作平臺為Window 10,應用軟件為MATLAB 2019b,基于AMD 3600處理器。實驗所用數(shù)據(jù)來自于UCI,該數(shù)據(jù)是土耳其Firat大學防火墻設備一部分日志文件,數(shù)據(jù)集選取源端口、目標端口、NAT源端口、NAT目標端口、運行時間、字節(jié)數(shù)、發(fā)送字節(jié)數(shù)、接受字節(jié)數(shù)、包數(shù)、發(fā)送包數(shù)和接受包數(shù)11個影響因素作為防火墻日志文件分類指標,以防火墻的配置為分類結(jié)果,一共有允許(allow)、否定(deny)、放棄(drop)和重置(reset-both)4類。數(shù)據(jù)集共有65 532個樣本,本文選取前3類部分數(shù)據(jù)進行操作,其中選取3類樣本各100個,選取各類樣本數(shù)據(jù)的75%為訓練集,剩余25%為測試集。
為評估IMA-SVM在防火墻配置上的應用性能,本文將該算法與基于MA算法、粒子群算法(PSO)和遺傳算法(GA)構(gòu)造的防火墻配置模型進行比較分析。實驗中SVM模型中c和g的取值范圍分別為區(qū)間[0.01,100]和區(qū)間[0.001,1000],PSO、MA和IMA的個體維度速度取各維度上限的10%,速度下限取上限的相反數(shù)。實驗過程中各算法基本參數(shù)的詳細設置見表2。
表2 各算法的詳細參數(shù)設置
本文對各類算法進行50次迭代,每種模型獨立運行30次,取結(jié)果的平均值。本文使用分類準確率(AC)、誤報率(FA)和漏報率(MA)指標評估算法性能:
(11)
(12)
(13)
其中TP表示正確分類的正例,TN表示正確分類的反例,F(xiàn)P表示錯誤分類的正例,F(xiàn)N表示錯誤分類的反例。在實驗中,以各類分別為正例求取各個指標參數(shù)并去平均,得到IMA算法與其他算法實驗結(jié)果,見表3。
表3 IMA算法與其他算法實驗結(jié)果比較
由表3可知,IMA尋優(yōu)的參數(shù)能更好地優(yōu)化SVM模型,防火墻策略正確配置的準確率高達97.33%,誤報率最低,僅2.67%,在保證高準確率的同時也保證了低的漏報率,且算法運行時間較其他算法較快。遺傳算法在準確率和漏報率方面表現(xiàn)最差,而且算法運行的時間開銷比較大。原始的MA算法具有較好的性能,運行時間最短,但準確率略微欠佳。
圖3 各算法的最佳適應度曲線圖
從迭代過程各算法訓練過程中的最佳適應度的收斂曲線(圖3)來看,IMA多次迭代時跳出局部最優(yōu)區(qū)域,第13次迭代時收斂精度近99%,而原始的MA算法卻陷入局部最優(yōu)解中,在迭代前期,IMA算法曲線的斜率較高,表明算法具有更好的搜索能力和收斂速度,在訓練集的訓練過程中求得的SVM的模型參數(shù)最佳。而遺傳算法在第24次迭代后陷入了局部最優(yōu),后期的多次迭代依舊無法跳出,表明遺傳算法模型不適用于防火墻配置策略數(shù)據(jù)。而粒子群算法達到收斂的迭代次數(shù)較MA和IMA較多。綜上,改進策略有效地提高了蜉蝣算法的尋優(yōu)性能。
本文基于IMA優(yōu)化SVM的懲罰參數(shù)和內(nèi)核參數(shù),將優(yōu)化后的SVM用于防火墻配置策略。IMA引入了改進的Tent混沌映射初始化蜉蝣群體,引入了遺傳算法中的概率高斯變異策略,并依據(jù)迭代次數(shù)動態(tài)調(diào)整蜉蝣群體的速度權(quán)重、隨機游走系數(shù)和舞蹈系數(shù)。實驗結(jié)果表明,改進的蜉蝣算法提高了SVM模型的參數(shù)優(yōu)化結(jié)果,在保證較高的準確的同時,運行時間也得到了減少,保證了防火墻配置策略模型的快速生成。