羅俊星 陳志翔
(1. 漳州職業技術學院 信息工程學院, 福建 漳州 363000;2. 閩南師范大學 物理與信息工程學院, 福建 漳州 363000)
工業互聯網作為全新工業生態、關鍵基礎設施和新型應用模式,通過人、機、物的全面互聯,實現了全要素、全產業鏈、全價值鏈的全面連接[1]。工業互聯網安全面臨著諸多嚴峻的挑戰,如震網病毒、烏克蘭電力系統遭受攻擊、德國核電站感染病毒、勒索病毒等。作為工業互聯網體系架構中的一項重要安全技術,入侵檢測技術能夠檢測出異常操作。
結合神經網絡和深度學習來優化入侵檢測技術是一個研究方向。池亞平等人提出了基于GR-CNN算法的網絡入侵檢測模型,采用增益率算法和卷積神經網絡算法來提高模型泛化能力[2]。張定華等人提出了從傳統網絡到工業網絡的數據流特征知識遷移思想,利用卷積神經網絡處理數據流特征,實現了異常檢測[3]。
群智能算法具有控制參數少、易于實現、全局尋優能力強等特征,常應用于數據挖掘、組合優化等方面。張瑞等人提出了基于自適應變異粒子群優化算法(SVPSO)的入侵檢測模型,將遺傳算法的變異思想引入PSO算法中,以優化SVM分類器參數[4]。耿志強等人提出了一種融合隨機黑洞策略的灰狼優化算法,利用隨機黑洞策略更新種群位置,保持了算法的局部搜索能力[5]。
機器學習能在龐大的數據中識別未知攻擊,被廣泛應用于入侵檢測領域。趙國新等人提出了基于HAQPSO優化極限學習機的入侵檢測模型,利用差分策略和Levy飛行策略進行參數尋優[6]。陳鑫龍等人提出了基于機器學習的Modbus_TCP通信異常檢測方法,結合決策樹分類模型能夠有效地識別出Modbus_TCP流量中的異常數據[7]。何戡等人提出了一種基于X-Boost算法的包裹式特征選擇方法,提高了入侵檢測效率[8]。
基于前人的研究成果,本次研究提出了一種基于改進麻雀搜索算法(LSSA)的工業互聯網入侵檢測方法,通過Logistic混沌映射和Levy飛行策略來優化KELM分類器參數。
麻雀搜索算法(sparrow search algorithm, SSA)是薛建凱等人提出的一種群智能算法,把麻雀劃分為發現者和加入者,發現者具有較好的適應度,負責較大范圍覓食和為加入者提供搜索方向,同時部分加入者會通過跟蹤發現者來搶奪食物[9-10]。每次迭代時,發現者通過式(1)更新位置:
(1)
式中:Xij,t為第t次迭代時第i個發現者在第j維中的位置;tmax為最大迭代次數;α為隨機數,α∈(0,1);Q為服從正態分布的隨機數;L為1×d的矩陣,矩陣內每個元素均為1,d為待優化問題變量的維數;R2為預警值,R2∈[0,1];ST為安全閾值,ST∈[0.5,1]。R2 加入者通過式(2)更新位置: (2) 式中:A為1×d的矩陣,矩陣內每個元素隨機賦值為1或-1,A+=AT(AAT)-1;Xp,t為第t次迭代時發現者占據的最佳位置;Xw為當前全局最差位置;N為麻雀數量,i>N/2表示第i個加入者覓食失敗且適應度值較差,需要轉移搜索方向。 令發現危險的麻雀為總數的10%~20%,初始位置隨機。當麻雀發現危險時,通過式(3)更新位置: (3) 式中:Xb,t為第t次迭代時全局最佳位置;θ為步長控制參數,是服從正態分布的隨機數;K為隨機數,K∈[-1,1];ε為極小常數;fb為當前全局最佳適應度值;fw為當前全局最差適應度值;fi為第i只麻雀的適應度值。 SSA算法的局部搜索能力強、收斂速度快,但全局搜索能力較差,容易陷入局部最優[11],因此本次研究采取Levy飛行策略來優化SSA算法。 Logistic混沌映射生成的數據具有較強的遍歷性和自相關性,能夠提高初始種群的多樣性[12-13]。本次研究運用Logistic混沌映射來取代麻雀種群初始化的隨機映射。Logistic混沌映射的數學表達式如式(4)所示: yM+1=yM×λ×(1-yM),yM∈(0,1) (4) 式中:M為迭代次數;λ為Logistic參數,λ∈[1,4],λ值越大,映射分布越均勻。 當λ=4時,Logistic混沌映射工作處于完全混沌狀態。 Levy飛行策略是一種頻繁的短距離跳躍和偶爾的長距離跳躍相結合的非高斯隨機過程,能夠避免算法陷入局部最優[6,14]。Levy飛行策略的公式如式(5)所示: (5) 式中:ω一般為1.5;u、v為[0,1]區間的隨機數。 σ的計算如式(6)所示: (6) 其中: Γ(x)=(x-1)! 隨著迭代的進行,將Levy飛行策略公式代入式(2)可得: (7) 結合Logistic混沌映射和Levy飛行策略的LSSA算法流程如圖1所示。 圖1 LSSA算法流程 為了驗證LSSA算法的性能,本次研究基于 9個基準測試函數對LSSA算法、SSA算法、灰狼算法(GWO)和粒子群算法(PSO)進行對比分析?;鶞蕼y試函數及參數設置如表1所示,F1—F3是單峰函數,F4—F6是多峰函數,F7—F9是固定維數函數。算法參數設置如表2所示。將每個基準測試函數作為目標優化函數,每個算法獨立運行30次,計算其最佳值、平均值和標準差,對比結果如表3所示。 表1 基準測試函數及參數設置 表2 算法參數設置 表3 算法對比結果 續表3 由表3可知,對于單峰函數F1—F3,應用LSSA算法都能得到理論最佳值,且平均值和標準差最小,說明LSSA算法的收斂精度和魯棒性優于其他3種算法。對于多峰函數F4、F5,LSSA和SSA算法的性能相當;對于多峰函數F6,LSSA算法的收斂精度和魯棒性比SSA算法略差、比GWO算法強,PSO算法的標準差最小。對于固定維數函數F7、F9,LSSA和SSA算法都能得到理論最佳值,但LSSA算法的收斂精度和魯棒性優于其他算法;對于固定維數函數F8,LSSA和SSA算法都能得到理論最佳值,但LSSA算法的收斂精度和魯棒性優于SSA算法。綜上所述,相較于SSA、GWO和PSO算法,LSSA算法更能得到全局最佳值,且收斂精度和魯棒性更優。 HUANG G B等人提出的核極限學習機(KELM)是指在極限學習機(ELM)的基礎上引入核函數,只需要輸出權值矩陣β便能得到最佳值,具有控制參數少、泛化能力強和學習速度快等特點[15-17]。 給定n個任意樣本(Xi,ti),Xi=(xi1,xi2,…,xin)T∈Rn,ti=(ti1,ti2,…,tim)T∈Rm。設單層神經網絡有l個隱藏神經元,則極限學習機輸出公式如式(8)所示: Hβ=T (8) 式中:H是隱含層輸出矩陣;β是輸出權值矩陣;T是期望輸出矩陣。 根據KKT理論得出: (9) 式中:C是正則化系數;εi=[εi1,εi2,…,εim]是訓練輸出與樣本原始值的誤差;aij是第i個樣本的第j個輸出節點的拉格朗日乘子;h(xi)是H的行向量。 式(9)中的參數優化條件如下: (10) 求解式(9)、式(10)可得: (11) 式中:I為單位矩陣。 引入核矩陣可得: Ω=HHT=h(xi)h(xj)=k(xi,xj) (12) 求解式(11)、式(12)可得: (13) 求解式(8)、式(13)可得KELM的輸出權值: (14) 綜上所述,只需要確定核參數與正則化系數,即可得出KELM的輸出權值。本次研究采用LSSA算法來優化KELM的核參數與正則化系數,核函數選擇局部能力較強的高斯核函數,利用訓練集訓練入侵檢測模型,評估測試集。LSSA-KELM入侵檢測算法流程如圖2所示。 圖2 LSSA-KELM入侵檢測算法流程 本次研究使用KDD CUP 99的10%數據集模擬工業互聯網入侵檢測,其中訓練集和測試集各4 000條記錄。數據集分為Normal、DoS、Probe、U2R、R2L等5類;攻擊類型又細分為39類,每條數據包含屬性特征41個、類型標簽1個[18]。各數據集中的數據類型及數量如表4所示。由于數據集屬性特征值中包含大量文字,如protocol_type屬性的icmp值、service屬性的domain_u值等,這些特征值無法在LSSA-KELM中識別,導致檢測效率降低。將數據集中的文字特征向量按照陳興亮提出的方法進行數字編碼[19],將Normal、DoS、Probe、U2R、R2L分別記為0、1、2、3、4。數據集中的有效屬性特征合計33個,其余8個屬性特征不影響分類結果,可以刪除[20]。由于有效屬性特征值的大小差異懸殊,因此采用Matlab中的mapstd函數進行標準化處理。 表4 各數據集中的數據類型及數量 仿真環境為Window 10(64位),Matlab2016a,Intel i5-6200U CPU, 8 Gib內存。 本次實驗對SSA-KELM、GWO-KELM、PSO-KELM與LSSA-KELM算法進行對比分析。種群數量為20,最大迭代次數為30,維數為2,核參數和正則化系數的搜索區間為[10-5,105],其他參數設置如表2所示。采用準確率、誤報率、漏報率、精確率和召回率等指標來評價算法的優越性。 5.3.1 訓練結果分析 由不同迭代次數下4種算法訓練準確率的對比結果(見圖3)可知,LSSA-KELM算法的準確率最優,達到99.60%,約在第16代收斂到最優值;SSA-KELM算法約在第14代收斂,速度最快;GWO-KELM算法約在第21代收斂;PSO-KELM算法約在第23代收斂。由4種算法訓練準確率和運算時間的對比結果(見表5)可知,由于加入了Logistic混沌映射和Levy飛行策略,LSSA-KELM算法的運算時間比SSA-KELM算法多47.01 s。 圖3 不同迭代次數下4種算法訓練準確率的對比 表5 4種算法訓練準確率和運算時間的對比 5.3.2 測試結果分析 由4種算法的測試結果(見表6)可知,LSSA-KELM算法的準確率最高,PSO-KELM算法的準確率最低;LSSA-KELM算法的精確率和召回率最高,分別為96.38%和87.02%;LSSA-KELM算法的誤報率和漏報率最低,分別為6.08%和12.99%。 表6 4種算法的測試結果 由4種算法的樣本數據檢測率對比結果(見圖4)可知,LSSA-KELM算法對DoS、Probe、U2R、R2L等 4種攻擊類型數據的檢測率比其他算法高,各算法對Normal數據的檢測率差別不大。 4種算法的準確率和召回率偏低、誤報率和漏報率較高,與數據結果差異較大,這可能是由于測試集數據不平衡,導致有些數據類型的檢測率偏低。通過各項指標的對比結果可知,LSSA-KELM算法的檢測率高于SSA-KELM、GWO-KELM、PSO-KELM算法。 入侵檢測是工業互聯網安全技術之一。本次研究提出了基于Logistic混沌映射初始化麻雀種群和Levy飛行策略的LSSA算法,對KELM進行核參數和正則化系數尋優,建立了LSSA-KELM工業互聯網入侵檢測模型。利用KDD CUP 99的10%數據集進行仿真實驗,對SSA-KELM、GWO-KELM、PSO-KELM與LSSA-KELM算法進行對比分析。結果表明,LSSA-KELM入侵檢測模型對是否遭受異常攻擊和攻擊數據類型的識別能力更強。2 改進麻雀搜索算法
2.1 Logistic混沌映射
2.2 Levy飛行策略
3 改進麻雀搜索算法的驗證
4 基于LSSA-KELM的入侵檢測算法
5 仿真實驗與分析
5.1 數據集及預處理
5.2 仿真環境、相關參數設置及評價指標
5.3 仿真實驗結果與分析
6 結 語