葛軍凱,李 震,張秀峰,史令彬,徐海寧,韓 磊
(1.國網(wǎng)舟山供電公司,浙江 舟山 316000;2.哈爾濱工程大學(xué)機(jī)電工程學(xué)院,黑龍江 哈爾濱 150001)
當(dāng)前,網(wǎng)絡(luò)應(yīng)用技術(shù)與數(shù)據(jù)傳輸技術(shù)都獲得了快速發(fā)展,人們逐漸進(jìn)入大數(shù)據(jù)時代。尤其是隨著智能化運維系統(tǒng)的不斷推廣,產(chǎn)生了大量數(shù)據(jù),也因此形成了持續(xù)增加的數(shù)據(jù)維度。這就要求使用新的特征選擇方式來滿足高維度數(shù)據(jù)的需求[1-4]?,F(xiàn)階段,已有學(xué)者采用特征選擇技術(shù)處理大規(guī)模數(shù)據(jù),不過依然還有一定缺陷需要克服。在處理高維數(shù)據(jù)時,還需進(jìn)一步開發(fā)更加高效的分布式特征選擇技術(shù)[5-6]。
入侵檢測是指對可能發(fā)生的未授權(quán)訪問數(shù)據(jù)、操作信息與系統(tǒng)運行錯誤、不可靠、無法使用情況進(jìn)行檢測[7-8]。這屬于主動防御的模式。入侵檢測技正逐漸成為繼防火墻防御之后的又一項關(guān)鍵防御技術(shù)。該方法從計算機(jī)網(wǎng)絡(luò)關(guān)鍵節(jié)點進(jìn)行參數(shù)收集,在保證網(wǎng)絡(luò)正常運行的條件下,判斷是否存在惡意攻擊的情況,以此達(dá)到保護(hù)網(wǎng)絡(luò)內(nèi)部與外部環(huán)境的作用[9]。目前,已有許多研究人員針對大數(shù)據(jù)運行環(huán)境開發(fā)出了相應(yīng)的機(jī)器學(xué)習(xí)庫。Spark在內(nèi)存中具備較強(qiáng)的計算性能,可以實現(xiàn)快速迭代的作用。這使得建立在Spark平臺的開發(fā)算法被廣泛應(yīng)用于業(yè)界。雖然可以通過Spark平臺實現(xiàn)機(jī)器學(xué)習(xí)算法與大數(shù)據(jù)分布處理相結(jié)合的技術(shù),但將Spark與特征選擇算法進(jìn)行結(jié)合的文獻(xiàn)報道則較少[10]。
信息度量是指接收方在信息發(fā)送時已獲得的信息數(shù)量,是通過預(yù)測學(xué)習(xí)的信息和分類輸出特征實施關(guān)聯(lián)來實現(xiàn)的?;バ畔?mutual information,MI)已成為信息論的一項重要信息度量,代表1個隨機(jī)變量所包含的關(guān)于另一變量的信息量。
互信息計算式為:
I(A|B)=H(A)-H(A|B)=
(1)
式中:A與B為2個隨機(jī)變量;p(a,b)為A與B組成的聯(lián)合概率分布;p(a)與p(b)依次對應(yīng)a與b邊緣概率分布函數(shù);H為特征當(dāng)前集合。
MI可通過A、B、C這3個隨機(jī)變量表示:
I(A,B|C)=H(A|C)-H(A|B,C)=
(2)
式中:C為第三個隨機(jī)變量;p(c)為C的邊緣概率分布函數(shù);p(a,c)、p(b,c)與p(a,b,c)為聯(lián)合概率分布。
互信息特征選擇方法也屬于Filter方法,需根據(jù)定量指標(biāo)選擇Filter特征。這使其成為一項相關(guān)性指標(biāo)。通過評價此類特征相關(guān)性,可完成特征排序,同時選出相關(guān)性最大的要素。此外,對特征進(jìn)行選擇時,也可以選擇更復(fù)雜的標(biāo)準(zhǔn)來實現(xiàn)特征排序,判斷其冗余度是否比另一特征更大。以下是以互信息標(biāo)準(zhǔn)進(jìn)行判斷后丟棄的冗余特征。
(3)
式中:β為權(quán)重因子。
將懲罰比例加入冗余,其比例由所選特征和候選特征共同決定。
所有輸入特征X和Y的相關(guān)性(即MI值)可以使用Spark計算框架中的broadcast功能計算。Spark實現(xiàn)計算相關(guān)性偽代碼如下。
輸入:DcRDD 的元組[index,(block,vector)],設(shè)置特征的數(shù)量。
輸出:所有特征的MI值。
①ycol←Dc.lookup(yind)。
②bycol←broadcast(ycol)廣播 Y的索引。
③counter←broadcast(getMaxByFeature(Dc)廣播。
④H←getHistograns(Dc,yind,bycol,null,null)得到直方圖。
⑤joint←getProportions(H,ni)計算聯(lián)合概率分布。
⑥marginal←getProportions(aggregateByRow(joint),ni)計算邊際概率。
⑦return(computeMutualInfo(H,yind,null)返回MI值。
UNSW-NB15數(shù)據(jù)集的單條記錄總共含有49個特征。各特征對應(yīng)的屬性存在較大差異。由于特征數(shù)值變化較明顯,需對數(shù)據(jù)作歸一化處理,使不同維度特征值被限定在合適范圍內(nèi),從而確保小范圍特征不會被大范圍特征所“覆蓋”。
基于支持向量機(jī)(support vector machine,SVM)算法的入侵檢測結(jié)果如表1所示。
表1 基于SVM算法的入侵檢測結(jié)果Tab.1 Intrusion detection results based on SVM algorithm
以Spark平臺進(jìn)行試驗設(shè)計并完成測試。本試驗采用HDFS存儲數(shù)據(jù)集。為各個HDFS與Spark都設(shè)置一個主控制節(jié)點,以Hadoop的NameNode進(jìn)行HDFS與DataNode控制。通過Spark主執(zhí)行器實現(xiàn)對從節(jié)點的控制功能。Spark選擇HDFS存儲文件數(shù)據(jù)。
首先,把數(shù)據(jù)集分成訓(xùn)練集與測試集共兩類。本試驗將數(shù)據(jù)集的70%作為訓(xùn)練集,剩余30%作為測試集。然后,分別以主成分分析(principle component analysis,PCA)、MI算法在相同Spark平臺上開展測試,并比較本文設(shè)計的分布式互信息算法;同時,依次選擇不同類型的機(jī)器學(xué)習(xí)分類方法開展入侵檢測。最后,選擇具備高精度、誤報率低的評價方法對本試驗結(jié)果進(jìn)行了評價。
試驗以UNSW-NB15數(shù)據(jù)集作為測試對象。數(shù)據(jù)集總共包含了2 642 520條數(shù)據(jù),依次對8種攻擊參數(shù)實施檢測?;贜a?veBayes算法和決策樹算法的入侵檢測結(jié)果分別如表2與表3所示。
參數(shù)精確度PCAMI檢測率PCAMI誤報率PCAMIExploits0.8480.9380.7960.8820.0690.046Fuzzers0.8860.9420.8540.8960.0130.072Reconnal0.6850.8460.8060.8790.0420.103Shellcode0.7420.8680.4430.6250.0260.051Dos0.9120.9410.6100.7150.0560.063Worms0.8410.9160.4250.4180.0690.038BackDoor0.8920.9590.8060.8530.0920.036Anaylsis0.9260.9270.9590.9740.0810.038
表3 基于決策樹算法的入侵檢測結(jié)果Tab.3 Intrusion detection results based on decision tree algorithm
對測試數(shù)據(jù)進(jìn)行分析可知,相對于PCA算法,MI算法可以獲得更高的特征提取精度,提升了檢測率,降低了誤報率。因為Worms與Shellcode這2類攻擊占總體攻擊的比例很低,因此3種算法都表現(xiàn)出了對Worms與Shellcode的低檢測率。對于總體攻擊類型中占比最大的Generic類型,各算法都具備較高精確度與檢測率。通過比較3種算法可知,決策樹算法表現(xiàn)出了比其他2種算法更高的精確度。
PCA和MI的運行時間對比如表4所示。由表4可知,雖然MI具備較高精度,但也因此消耗較長時間。這是由于在Spark計算框架內(nèi)構(gòu)建分布式模型時需使用大量map與partition操作,從而在大量數(shù)據(jù)下形成了高達(dá)近萬個分區(qū),需要消耗大量時間。
表4 PCA和MI的運行時間對比Tab.4 Comparison of PCA and MI runtimes /min
運行時間與數(shù)據(jù)量的關(guān)系如圖1所示。
圖1 運行時間與數(shù)據(jù)量的關(guān)系Fig.1 Relationship between running time and data volume
從圖1中可以看出,隨著數(shù)據(jù)量的增加,形成的運行時間消耗越多,尤其是在數(shù)據(jù)量30 MB之后增加明顯。這是因為較多的數(shù)據(jù)量會增加模型分析的難度,甚至影響汽化能力。
本文選取UNSW-NB15數(shù)據(jù)集,以Spark平臺進(jìn)行試驗設(shè)計并完成測試,通過Spark主執(zhí)行器實現(xiàn)對從節(jié)點的控制功能。相對于PCA算法,MI算法可以獲得更高的特征提取精度,檢測率也明顯提升,降低了誤報率。雖然MI算法具備較高精度,但也因此消耗較長時間。當(dāng)數(shù)據(jù)量快速增加后,分布式模型表現(xiàn)出了更短的入侵檢測時間。