渠東雨,潘 峰,2
(1.太原科技大學(xué)電子信息工程學(xué)院,太原 030024;2.茅臺學(xué)院釀酒工程自動化系,貴州 仁懷 564507)
步入21世紀(jì)以來,傳統(tǒng)的工業(yè)系統(tǒng)正在信息化的新時代里不斷地完善自身,工控信息化的趨勢愈演愈烈。令人堪憂的是在二者的融合形勢下,弊端也隨之顯現(xiàn),安全事故層出不窮。一旦工控系統(tǒng)受到了侵害,會對工控系統(tǒng)產(chǎn)生一系列的影響,不僅僅會迫使生產(chǎn)停止,更有甚者會造成人員的傷亡[1]。
工控系統(tǒng)中的防火墻中一般使用的是白名單自學(xué)習(xí)規(guī)則庫,通俗的講,可以設(shè)置允許規(guī)則,只要流過的傳輸數(shù)據(jù)與規(guī)則庫數(shù)據(jù)的規(guī)律特征相匹配,就能夠保證數(shù)據(jù)的正常流動,否則將對其進(jìn)行阻止[2]。這樣就保障了資源的合法使用。由此可見,對于工業(yè)防火墻的白名單技術(shù)研究是很有必要的。
文獻(xiàn)[3]中將支持向量機(jī)算法(SVM)中的c,g參數(shù)利用粒子群算法(PSO)對其進(jìn)行優(yōu)化,在一定程度上優(yōu)化了算法功能,但仍在搜索能力方面有所欠缺。文獻(xiàn)[4]利用則是將支持向量機(jī)的相關(guān)核參數(shù)利用改進(jìn)的遺傳算法進(jìn)行尋優(yōu),雖然分類效果較為良好,但仍存在算法過早收斂的不足。針對單一使用PSO或者GA結(jié)合優(yōu)化SVM所存在的問題,文中提出了基于遺傳差分進(jìn)化算法(GA-DE)的智能算法來優(yōu)化支持向量機(jī)的算法,提升了工業(yè)防火墻白名單的分類學(xué)習(xí)效果。
存在于工控網(wǎng)絡(luò)信息系統(tǒng)的安全隱患日漸明顯,工業(yè)防火墻應(yīng)用而生。相較于傳統(tǒng)的防火墻,工業(yè)防火墻除了安全功能之外,還內(nèi)置了部分模塊,實現(xiàn)了針對工控協(xié)議的解析與過濾。同時可以提取其數(shù)據(jù)包特征集,以智能算法優(yōu)化的支持向量機(jī)通過白名單技術(shù),對錯誤異常指令進(jìn)行阻止以及對非工控協(xié)議進(jìn)行攔截,實現(xiàn)了防火墻的功能,對于工控系統(tǒng)起到了保護(hù)的作用。其系統(tǒng)結(jié)構(gòu)如圖 1 所示。
工業(yè)防火墻主要有三個功能模塊構(gòu)成:數(shù)據(jù)包的采集與控制、訪問控制和過濾報警模塊,而文中主要涉及對于工控數(shù)據(jù)的分析,以及對于異常數(shù)據(jù)的阻攔則是隸屬于訪問控制模塊。
應(yīng)用與工業(yè)防火墻的訪問控制模塊,是工控網(wǎng)絡(luò)安全的重要一環(huán)。
(1)正常運(yùn)行的工控數(shù)據(jù)通過訪問控制模塊時,應(yīng)用白名單技術(shù)不會對工控數(shù)據(jù)的完整性和安全性做出更改,確保系統(tǒng)運(yùn)行數(shù)據(jù)是合法的數(shù)據(jù)。
(2)白名單規(guī)則庫是由白名單算法分類并輸出的正確運(yùn)行數(shù)據(jù)構(gòu)成。而工控防火墻在進(jìn)行對于工控數(shù)據(jù)流的過濾就是利用規(guī)則庫與運(yùn)行時的數(shù)據(jù)包進(jìn)行匹配,符合規(guī)則庫中的部分特征時,可被判定為合法數(shù)據(jù),并允許數(shù)據(jù)進(jìn)行傳輸。不同的工控通訊協(xié)議的數(shù)據(jù)特征均可以加入白名單規(guī)則庫[5]。
支持向量機(jī)是一種通過映射于高維空間從而正確分類樣本數(shù)據(jù)的機(jī)器學(xué)習(xí)過程。
y(x)=ωTφ(x)+b
(1)
其中,將已獲得數(shù)據(jù)映射到高維特征空間的映射函數(shù)是φ(x).支持向量機(jī)分類問題引入不可分代價目標(biāo)函數(shù)為:
f(ω,ξ)=
(2)
式中:C為懲罰函數(shù),表示對于錯分樣本的程度。
文中算法所涉及的函數(shù)是高斯核函數(shù)。該核函數(shù)是具有較強(qiáng)的局部搜索能力的核函數(shù),該函數(shù)主要是對線性不可分的數(shù)據(jù)進(jìn)行處理,通過相互映射,得到想要的數(shù)據(jù)。由于其具有較強(qiáng)的局部搜索能力,所以應(yīng)用廣泛,可以處理不同類型的樣本數(shù)據(jù),與多項式核函數(shù)相比,它的優(yōu)點是參數(shù)變量較少,計算速度快[6]。其計算公式為:
(3)
為使目標(biāo)函數(shù)最小化,由公式可以看出,當(dāng)C值很大時,只能使ξ(i)趨近于0,說明樣本的錯分率此刻比較小,擬合度較好;當(dāng)C值很小時,就會使處在邊界之間的樣本數(shù)據(jù)增多,錯分樣本數(shù)據(jù)變多,擬合效果不好。所以C值只有適中時,擬合效果才可能達(dá)到最好。
核參數(shù)gamma對SVM算法的分類性能的影響也是極大的。由RBF公式可得,核參數(shù)的公式為:
(4)
核參數(shù)最終會影響到支持向量機(jī)所作用的數(shù)據(jù)的分類范圍,從而影響其泛化能力。參數(shù)g過大,會導(dǎo)致過度擬合,而值越小,會導(dǎo)致擬合缺陷[7]。
遺傳算法是基于生物遺傳學(xué)說,將實質(zhì)性存在的生物工程模型進(jìn)行抽象化,形成了一種全局尋優(yōu)搜索的智能算法。
類似于生物遺傳,在算法的計算流程中,通過選擇、變異、交叉等操作。個體在選擇變異中不斷進(jìn)化,最終最適宜的個體,即為問題的最優(yōu)解[8]。在實驗仿真中,可以通過適應(yīng)度曲線觀察進(jìn)化的效果,在算法的最后得到的結(jié)果適應(yīng)度最優(yōu)。
差分進(jìn)化算法同樣是由生物學(xué)的基礎(chǔ)理論提煉升華而來,與遺傳算法不同的是,對種群個體的編碼。對于DE的重點簡而言之,就是隨機(jī)的從父代形成差分矢量,再抽取隨即個體與之求和形成新的實驗個體[9]。最后在種群個體之中進(jìn)行選擇,保存合適個體,繼續(xù)進(jìn)行遺傳過程。
差分進(jìn)化的關(guān)鍵一環(huán)是種群的變異,主要是個體之間的變異是通過差分策略完成的。該過程可表述為:
vi(g+1)=xr1(g)+F·(xr2(g)-
xr3(g)),i≠r1≠r2≠r3
(5)
其中,F為縮放因子,xi(g)表示第g代中的第i個個體。
對第g代種群{xi(g)}及其變異的子代個體{vi(g+1)}進(jìn)行種群之中的交叉操作,即
uj,i(g+1)=
(6)
其中,CR為交叉概率,jrand為[1,2,…D]中任一整數(shù)。
對于選擇操作,下一代個體種群通常利用的是貪婪算法:
xi(g+1)=
(7)
上式中的{xi(g)}是上一代種群,{ui(g)}是指進(jìn)行交叉以后的種群。
在工控防火墻的白名單技術(shù)的實際應(yīng)用中,其分類訓(xùn)練的效果和SVM參數(shù),包括懲罰因子和高斯核參數(shù)都有著緊密的聯(lián)系。
一般地,使用智能算法與支持向量機(jī)相結(jié)合來達(dá)到優(yōu)化SVM的目的。但傳統(tǒng)的GA或者DE優(yōu)化支持向量機(jī)存在的一些不足,使用遺傳算法結(jié)合SVM分類時,在進(jìn)化操作的后期,算法的收斂速度逐漸變緩[10]。而且處理復(fù)雜樣本時,可能會導(dǎo)致算法及早的收斂影響尋優(yōu)效果或者在局部最優(yōu)陷入循環(huán),從而造成算法停滯不前的局面。而使用DE-SVM時則可能會存在樣本的多樣性不足的問題,導(dǎo)致后期的種群進(jìn)化停止,致使全局搜索能力較不穩(wěn)定。
在遺傳算法和差分進(jìn)化算法對于種群的操作中不難發(fā)現(xiàn)。存在上述不足的一部分原因是GA中的交叉操作重點顧及了搜索的全局性,而DE的變異則是對于局部性的提升。所以為二者的結(jié)合改進(jìn)提供了前提條件。再者二者在算法流程和原理上有相通之處,且兩種算法的擴(kuò)展性都比較好,容易和別的算法相結(jié)合。故而文中將GA與DE相互結(jié)合,綜合GA、DE各自的優(yōu)點,對算法搜索能力的整體性有了一定程度的提升。
GA-DE-SVM算法的流程圖如圖2所示。具體流程如下:
圖2 GA-DE-SVM算法流程圖
(1)開始,將抓到的工控數(shù)據(jù)先進(jìn)行整理得到數(shù)據(jù)分析所用的數(shù)據(jù)組。
(2)DE算法初始化種群,對數(shù)據(jù)組進(jìn)行編碼。
(3)利用DE進(jìn)行變異、交叉操作,臨時種群。
(4)GA算法初始化種群,對數(shù)據(jù)進(jìn)行編碼。
(5)GA算法進(jìn)行適應(yīng)度計算,準(zhǔn)備進(jìn)行下一次遺傳操作。
(6)利用DE得到的兩種算子,進(jìn)行變異、交叉操作。
(7)終止條件判斷,利用迭代次數(shù)或者適應(yīng)度進(jìn)行判別,如果判定結(jié)果為否,返回(6).
(8)終止條件判斷,利用迭代次數(shù)。不滿足條件則DE重新進(jìn)行變異交叉,同時GA進(jìn)行適應(yīng)度計算,開始新的遺傳操作。
(9)滿足條件則得到最優(yōu)值,即c,g參數(shù)。
由于在實際生活中,工控數(shù)據(jù)較為保密,所以采用實驗室模擬工控系統(tǒng)的方式來獲得校驗算法的理論數(shù)據(jù)。模擬環(huán)境如圖3所示。在該工控實驗平臺中,使用STEP 7對兩臺CPU為414-3的PLC400進(jìn)行編程,實驗過程的監(jiān)測由WINCC實現(xiàn),最后在WINCC與PLC之間通過BCNet-s7建立通訊聯(lián)系,實現(xiàn) MODBUS TCP 通信功能正常。
圖3 實驗環(huán)境系統(tǒng)圖
由于Modbus TCP工控協(xié)議在系統(tǒng)正常運(yùn)行時,其報文信息具有一定的規(guī)律特征。而報文中功能碼和線圈或寄存器地址保持正常對于工控系統(tǒng)的信息傳輸具有關(guān)鍵作用。本次試驗中正常數(shù)據(jù)是由正常功能碼和寄存器的地址組成;異常數(shù)據(jù)的生成主要有以下三種情況:(1)未使用的或者是沒有明確意義的功能碼和錯誤的地址;(2)正常功能碼和異常的地址;(3)未使用的或者是沒有明確意義的功能碼和正常已使用的地址。
仿真實驗平臺選用一般的筆記本電腦,其具體配置為CPU 3.40 GHz,8.0 GB,Windows 10系統(tǒng)。采用MATLAB 2018b軟件進(jìn)行實驗,通過編寫的GA-DE算法結(jié)合支持向量機(jī)尋找最優(yōu)的懲罰因子和高斯核參數(shù),并帶入 SVM 編寫的程序中得到對于模擬實驗的工控數(shù)據(jù)的測試準(zhǔn)確率。
文中訓(xùn)練數(shù)據(jù)分為7組,并對這7組數(shù)據(jù)進(jìn)行編號,7組數(shù)據(jù)中包含異常數(shù)據(jù)的個數(shù)在逐漸增加,但是測試樣本所占的比例不變。分別使用PSO、GA、DE-GA優(yōu)化后的支持向量機(jī)對數(shù)據(jù)進(jìn)行分類訓(xùn)練,后再利用不同的算法對數(shù)據(jù)組進(jìn)行準(zhǔn)確率測試。
對于數(shù)據(jù)的分類結(jié)果,假設(shè)正確測試的異常數(shù)據(jù)表示為FC,錯誤測試的異常數(shù)據(jù)表示為FF,正確測試的正常數(shù)據(jù)表示為TC,錯誤測試的正常數(shù)據(jù)表示為TF.則正常數(shù)據(jù)的測試準(zhǔn)確率為:
(8)
異常數(shù)據(jù)的測試準(zhǔn)確率為:
(9)
PSO算法得到的SVM的最佳c,g參數(shù)如表1所示。
表1 PSO算法得到的SVM參數(shù)
將得到的支持向量機(jī)參數(shù)帶入SVM對于數(shù)據(jù)進(jìn)行分類測試,得到如圖4的測試準(zhǔn)確率。
圖4 PSO算法測試準(zhǔn)確率
GA算法得到的SVM的最佳c,g參數(shù)如表2所示。
表2 GA算法得到的SVM參數(shù)
將得到的支持向量機(jī)參數(shù)帶入SVM對于數(shù)據(jù)進(jìn)行分類測試,得到如圖5的測試準(zhǔn)確率。
圖5 GA算法測試準(zhǔn)確率
GA-DE算法得SVM的最佳c,g參數(shù)如表3所示。
表3 GA-DE算法得到的SVM參數(shù)
將得到的支持向量機(jī)參數(shù)帶入SVM對于數(shù)據(jù)進(jìn)行分類測試,得到如圖6的測試準(zhǔn)確率。
圖6 GA-DE測試準(zhǔn)確率
圖7表示不同算法對于正常數(shù)據(jù)的測試準(zhǔn)確率,雖然隨著異常數(shù)據(jù)的增多,準(zhǔn)確率均有所下降。但是由圖可以較為明顯的看出利用GA-DE的數(shù)據(jù)測試準(zhǔn)確率高于其他兩種算法。
圖7 正常數(shù)據(jù)測試準(zhǔn)確率
圖8表示的是不同算法對于異常數(shù)據(jù)的測試準(zhǔn)確率,不難看出異常數(shù)據(jù)的測試準(zhǔn)確率不斷上升,GA-DE對于數(shù)據(jù)的處理效果稍強(qiáng)于PSO、GA的效果。
圖8 異常數(shù)據(jù)測試準(zhǔn)確率
實驗結(jié)果表明,GA-DE相較于PSO與GA,對于數(shù)據(jù)的測試準(zhǔn)確率有一定的提高。對于白名單的生成的準(zhǔn)確性有所提高,改善了工業(yè)防火墻的性能。
針對于之前工業(yè)防火墻白名單所使用的PSO、GA存在的不足,文中提出的基于GA-DE算法與支持向量機(jī)所結(jié)合的算法實現(xiàn)了對于支持向量機(jī)的c,g參數(shù)的優(yōu)化,如此將支持向量機(jī)使用優(yōu)化后的參數(shù),對實驗所抓取數(shù)據(jù)進(jìn)行測試。結(jié)果表明使得對于正常數(shù)據(jù)和異常數(shù)據(jù)的測試準(zhǔn)確率都有所提升,即表明白名單技術(shù)的分類準(zhǔn)確性有所提高,完成了對工業(yè)防火墻性能的改善。