潘 峰,王世偉,薛 萍
(1.茅臺學院,貴州 遵義 564507;2. 太原科技大學,山西 太原 030024)
在“中國制造2025”和“互聯網+”行動推進過程中,制造業與互聯網融合發展不斷加快,工業控制系統不再是物理環境上隔離的封閉系統,而是與互聯網緊密相連,因此遭受網絡攻擊的隱患不斷增加。
工業防火墻是專門為保護工業控制網絡安全而設計的。它結合工業控制網絡的特點,狀態有限且行為穩定規律,在網絡防火墻功能基礎上增加工業協議深度過濾模塊進行防護[1]。過濾模塊中的核心部分就是基于白名單策略的規則表。工業防火墻過濾規則的配置深入協議內部,配置較復雜,人為配置規則在效率和準確率上差異大,將很大影響工業防火墻性能[2],所以研究自學習生成過濾規則的方法是十分必要的。
文獻[3]中Byoung-Koo Kim等設計了工業防火墻系統,其中的訪問控制過濾器是采用基于白名單策略的過濾規則進行訪問控制,阻止未被識別的訪問流量進入控制網絡。文獻[4]提出的算法不僅可以自學習生成白名單規則而且準確率達到人工設置水平。由于生成的規則表是五元組信息組成的,不能在應用層對工業協議內部數據進行深度檢查。本文提出基于SVM的工業防火墻規則自學習方法,對工控網絡數據流深入工業協議內部解析提取針對本工控網絡的行為特征,然后分析工控數據特點,通過對樣本數據和SVM模型參數進行優化,利用生成的識別模型識別出正常數據流并按一定模式自動加入規則表。
工業防火墻是在通用防火墻模塊基礎上在應用層訪問控制中增加工業協議深度過濾模塊,如圖1所示。通用防火墻模塊阻止系統被非法訪問,防止病毒、惡意代碼等肆意傳播。工業協議過濾模塊對工業協議識別和過濾,阻止非法指令通過工控設備。

圖1 工業防火墻系統結構
工業協議過濾模塊采用白名單策略,對工控網絡數據的正常行為進行分析,總結其具有的特征,并將這些特征用防火墻規則形式描述,創建只允許合法數據通過的過濾規則表。在過濾時將數據包與規則表內的規則進行匹配,如果與其中的某一條吻合,則被認為是合法數據允許通過[5]。
本文通過設計規則,自學習模塊使用機器學習算法自動學習工控網絡數據流的行為規律并生成白名單規則表,避免了人工配置規則的復雜性,提高防火墻效率和性能。
支持向量機(Support Vector Machine, SVM)是一種有效的分類算法,通過核函數將原始特征空間中的非線性分類界面映射到更高維的特征空間中,使分類界面在高維特征空間中變得線性可分,從而獲得良好的分類效果[6]。
在工控網絡中主要是將正常數據流和異常數據流兩類進行分類。以兩類訓練樣本集為例,設給定的訓練樣本集為{(x1,y1),(x2,y2), …,(xn,yn)},yi∈{+1,-1},i=1,2, …,n代表樣本類別。構造代價函數使其最小化得到:
(1)
約束條件為:
yi(wTxi+b)≥1-ξi
ξi≥0,i=1,2,…,n
(2)
判決函數:
f(x)=(w·x)+b
(3)
其中,ξi是松弛變量,表示訓練樣本的錯分程度;C是懲罰常數,控制對錯分樣本的懲罰程度;w和b分別為判決函數的權向量和閾值。利用核函數映射到更高維計算求得判別函數為:
(4)

根據所求得的判別函數f(x),將待檢測的數據經特征提取得到的特征向量x輸入判別函數,根據輸出結果判別,若輸出為1,則認為數據正常,將其按一定模式加入規則表;若輸出為-1,則認為是異常數據。
通過對工控網絡數據流分析,發現正常數據流數量遠大于異常數據流數量,兩類具有明顯的不均衡特征。利用標準的SVM算法對不均衡數據集進行分類時,少數類樣本的分類精度是非常低的。因此,當對少數類即異常數據進行判別時,出現錯分的幾率會很高,就會將異常數據誤判為正常數據加入規則集中。這種錯分后果將是嚴重的,工業防火墻性能將大大降低。
本文結合工控網絡特點采用過抽樣法,設計了生成工控異常數據的方法,合理增加少數類樣本數據改善工控數據不均衡性,并且利用改進的網格搜索法對影響判別模型本身的參數C及核函數參數尋優,綜合優化使識別模型整體性能有較大提高。
基于SVM的工業防火墻規則自學習方法,如圖2所示。規則自學習方法主要分為三個部分:工控數據特征提取、優化生成判別模型、檢測生成過濾規則。

圖2 基于SVM的規則自學習方法流程圖
在SCADA后臺與控制網絡之間使用抓包工具捕獲工控網絡數據流,然后利用工業協議解析工具對其進行深度解析,提取代表原數據包的特征屬性。在對特征屬性進行選擇時,屬性選擇越多,能代表原數據包的信息就越全面,然而每增加一種屬性就會在樣本數據中增加一個維度。SVM算法因其特點雖不會出現維數災難,但計算量也會相應增大。因此,在提取數據的特征屬性時,對不同類型數據進行分類提取,將每一類可以描述其行為特性的代表屬性按一定格式生成SVM算法可識別文本[7],完成訓練樣本集中正常類數據的收集。
識別模型是對樣本數據的行為特征屬性進行訓練生成的,用來檢測數據流是否符合正常數據流的行為特征。因此如何生成準確率高的識別模型將是規則自學習方法的關鍵。在用SVM算法生成識別模型過程中,將影響模型的兩個重要部分進行優化。
一是在樣本層面對具有明顯不均衡特征的工控數據集進行改善。本文通過分析工控網絡中的攻擊行為,設計生成工控異常數據的方法,如圖3所示。設定本PLC已使用的功能碼和地址列表,將已用功能碼和地址列表之外的有效功能碼和地址列表列出,通過對列出的功能碼和地址進行合成生成異常類數據樣本集。生成的異常類數據可分為三類:功能碼正確地址錯誤、功能碼錯誤地址正確、功能碼和地址均錯誤。從而改善訓練樣本中多數類與少數類數據的不均衡。

圖3 生成工控異常數據流程圖
二是在算法層面,對網格搜索法中的參數進行改進[8],優化SVM模型參數。對網格搜索法的搜索范圍和步長進行調整,先通過大范圍較長步長搜索,然后在較小范圍精細尋優,搜索流程如圖4所示。

圖4 改進網格搜索參數設置流程
將待檢測數據輸入識別模型,輸出為1的是正常數據流,按一定模式加入規則表中。例如,允許IP為192.168.0.10訪問1號PLC,并且只能使用06功能碼在4x0000地址中寫入值,則規則設置如下:
[Action: Allow] [IP: 192.168.0.10->192.168.0.1] [502->3524] [Unit: 01] [FC: 06] [SA: 4x0000]
識別模型性能評價方法采用不均衡數據下的評價標準,列出二分類問題混合矩陣如表1所示[9]。

表1 二分類問題的混合矩陣
正常類數據預測精度(Precision):TP/(TP+FN)。
異常類數據預測精度:TN/(FP+TN)。
少數類查準率(Recall):TP/(TP+FN)。
(5)
(6)
幾何均值G-Mean是少數類精度與多數類精度的平方根。當兩者的值都大時幾何均值才大,合理地評價不均衡數據集的總體分類性能。F-Measure值可以有效評價不均衡數據集的少數類的分類性能,是查準率Precision和查全率Recall的組合,β通常取值為1。
首先模擬真實工業生產過程搭建了一個簡單的工控系統仿真實驗環境,如圖5所示。操作員站采用WinCC系統進行監控操作,工程師站對PLC配置編程。PLC使用S7-300,CPU為315-2 PN/DP。利用通信模塊及Modbus函數庫在操作員監控系統和PLC之間建立Modbus TCP通信。實驗中通過工程師站對PLC配置并編程步進電機的工作程序下載到PLC內來模擬車間的一個工作程序。工業防火墻規則自學習模塊布置在操作員監控系統與PLC之間,其主要由抓包工具、工業協議解析工具及SVM算法程序組成,在這里使用林智仁教授開發的LIBSVM程序[10]。

圖5 工控系統仿真實驗環境
運行仿真實驗平臺,工業防火墻自學習模塊對通訊網絡進行抓包、解析、提取特征生成正常類流量樣本數據。通過設定本PLC使用的功能碼和地址列表,利用未使用的功能碼和地址與已使用的進行合成,生成異常類數據。訓練樣本中正常類數據為1 000個,異常類樣本數據逐漸增加,比例分別為1/100,1/60,1/50,1/40,1/35,1/30,1/25,依次編號為1至7號。用于測試的樣本數據中正常類與異常類數據各60個,比例為1/1。
首先對五組異常數據與正常數據比例為1/100的訓練樣本,在標準LIBSVM中學習、參數優化,生成的識別模型對測試數據中的正常與異常數據分別預測,結果如圖6所示。

圖6 不均衡數據下數據預測精度
從圖6可知,在樣本不均衡性較大時,對正常數據的預測精度在90%以上甚至100%,對異常數據的預測準確率在40%以下。
然后將改善的工控數據樣本、LIBSVM算法程序及改進前優化參數,如表2所示,導入MATLAB仿真軟件中運行,得到正常類和異常類數據預測精度,如圖7所示。

表2 各樣本尋優C和gamma參數

圖7 不同均衡數據比例正常與異常數據預測精度
從實驗結果圖7看出,當正常類樣本與異常類樣本比例1/100時,識別模型對正常類(多數類)數據的預測精度在90%,而此時對異常類(少數類)數據預測精度在30%~40%之間。隨著兩類數據比例減小,識別模型對正常類數據預測精度有一定下降,在1/25時下降到78%,下降了12%;對異常數據預測精度大幅提高,在1/25時升高到88%,升高了50%。
計算參數改進前的F-Measure值和G-Mean值,如圖8所示。

圖8 不同均衡數據比例G-Mean和F-Measure值
從圖8得知,在多數類和少數類比例逐漸減小時,模型整體性能G-Mean值和代表少數類預測性能的F-Measure值都有顯著提高。
最后將改進網格搜索后優化的C和gamma參數導入LIBSVM,計算F-Measure值和G-Mean值與改進前對比結果如圖9和圖10所示。

圖9 模型參數優化前后G-Mean值對比

圖10 模型參數優化前后F-Measure值對比
實驗結果表明,在使用SVM算法對工控網絡數據識別過程,通過樣本層面優化對工控樣本固有的不均衡性改善可以大幅提升識別模型性能,再通過對模型參數優化,識別模型可以更精確預測工控數據行為。
針對人工配置工業防火墻規則受限制,影響工業防火墻性能。本文提出基于SVM的工業防火墻規則自學習方法對工控網絡數據深入工業協議內部解析,使用過抽樣方法生成異常數據優化訓練樣本不均衡,使用改進的網格搜索法尋優模型參數,從而使得到的識別模型對正常類與異常類數據都有高預測率,生成過濾工控行為的白名單規則表,提升工業防火墻整體性能。
[1] 尚文利,雷艷晴,萬明,等. 基于哈希算法的工業防火墻規則
自學習方[J]. 計算機工程與設計,2016,37(3):613-617.
[2] 尚文利,喬全勝,萬明,等. 工業防火墻規則生成與優化的自學習方法[J]. 計算機工程與設計,2016,37(7):1752-1756.
[3] BYOUNG K K, DONG H K, JUNG C N, et al. Abnormal traffic filtering mechanism for protecting ICS networks [C]//18th International Conference on Adcanced Communication, 2016:436-440.
[4] 雷艷晴,尚文利,萬明,等. 工業防火墻規則自學習算法設計[J]. 計算機工程與設計,2016,37(12):3141-3145.
[5] 程超. 工業控制網絡Modbus TCP協議深度包檢測技術研究與實現[D]. 成都:電子科技大學,2016.
[6] 陶新民,劉福榮,杜寶祥. 不均衡數據SVM分類算法及其應用[M]. 哈爾濱:黑龍江科學技術出版社,2011:29-30.
[7] 李琳,尚文利,姚俊,等. 工業控系統PCA-OCSVM入侵檢測算法[J]. 計算機工程與設計,2016,37(11):2928-2933.
[8] 王健峰,張磊,陳國興,等. 基于改進的網格搜索法的SVM參數優化[J]. 應用科技,2012,39(3):28-31.
[9] 陶新民,徐晶,童智靖,等. 不均衡數據下基于陰性免疫的過抽樣新算法[J]. 控制與決策,2010,25(6):867-872.
[10] CHANG C C, LIN C J, LIBSVM: a library for support vector machines[C]//ACM Transactions on Intelligent Systems and Technology, 2011,2(3):1-27.