基于SVM的Modbus TCP通訊的異常檢測方法
【技術(shù)領(lǐng)域】
[0001] 本文發(fā)明的是一種工業(yè)控制系統(tǒng)通訊流量異常檢測的方法,利用支持向量機方法 對功能碼序列進行異常檢測,屬于工業(yè)控制系統(tǒng)網(wǎng)絡(luò)信息安全領(lǐng)域。
【背景技術(shù)】
[0002] 工業(yè)控制系統(tǒng)在設(shè)計之初由于普遍采用專有的通信協(xié)議、操作系統(tǒng)、硬件設(shè)備,并 且與其他網(wǎng)絡(luò)隔離,更多關(guān)注的是物理安全和功能安全,欠缺信息與網(wǎng)絡(luò)安全方面的考慮。 伴隨著信息化的需求,工業(yè)控制系統(tǒng)的封閉性正在不斷被打破;TCP/IP技術(shù)、開放的工業(yè) 通訊協(xié)議、通用操作系統(tǒng)等應用得越來越廣泛,使得"天生"存在很多信息安全與網(wǎng)絡(luò)安全 缺陷的工業(yè)控制系統(tǒng)更加容易遭受攻擊。Mo化USTCP協(xié)議廣泛應用于石油化工、能源、冶 煉、電力等工業(yè)控制系統(tǒng)和SCADA系統(tǒng)中,確保Mo化USTCP通訊安全具有重要意義。
[0003] 保證工業(yè)控制系統(tǒng)網(wǎng)絡(luò)安全是一個繁雜的系統(tǒng)工程,需要從安全管理與安全技術(shù) 兩個方面同時入手,構(gòu)建有效的防御體系,任何依賴單一技術(shù)或者單一管理流程的方式,都 無法有效應對可能出現(xiàn)的信息安全挑戰(zhàn)與威脅。從信息安全防御技術(shù)的角度來看,保障工 業(yè)控制系統(tǒng)中Mo化USTCP通訊安全的技術(shù)主要有有防火墻技術(shù)、隔離網(wǎng)間、加密傳輸技術(shù)、 入侵檢測技術(shù)、Mo化US通訊"白名單"等。
[0004] 防火墻主要提供傳輸層與網(wǎng)絡(luò)層的訪問控制機制,體現(xiàn)了系統(tǒng)管理的安全策略。 但是防火墻技術(shù)缺乏對于應用層協(xié)議的支持,無法應對利用應用層協(xié)議缺陷發(fā)起的攻擊行 為。隔離網(wǎng)間技術(shù)阻斷對重要設(shè)施的直接訪問,可W極大程度減少系統(tǒng)風險,但是隔離網(wǎng)間 的部署需要依賴于工業(yè)控制系統(tǒng)合理的層次劃分與拓撲設(shè)計,而往往由于業(yè)務需要不能進 行盡善盡美的結(jié)構(gòu)設(shè)計。加密傳輸技術(shù)可W防止通訊信息遭受竊取與篡改,但是會加重信 息處理的負擔,會對工業(yè)控制系統(tǒng)通訊的實時性造成一定的影響,另外工業(yè)設(shè)備中的芯片 處理能力也難W支持復雜的加密方法。入侵檢測技術(shù)將網(wǎng)絡(luò)中捕獲的流量與已知的攻擊特 征模式進行匹配,識別出攻擊行為,可作為其他安全技術(shù)的有力補充。但是該方法需要建立 在已知攻擊特征的基礎(chǔ)之上,無法應對攻擊特征未知的情況。Mo化US通訊"白名單"可W實 現(xiàn)應用層協(xié)議的解析,能夠精確地對應用層協(xié)議的關(guān)鍵字段結(jié)合實際的業(yè)務需要進行訪問 控制,最大程度地減少風險敞口,但是該種方法仍然無法完全確保Mo化USTCP通訊的安全 性,因為攻擊者可W利用和白名單策略中相同的策略,構(gòu)造McxlbusTCP通訊的攻擊序列。
[0005] 綜上,現(xiàn)有的防護方法從設(shè)置合理的安全策略、劃分科學的拓撲結(jié)構(gòu)、通訊加密傳 輸、入侵檢測、應用層協(xié)議過濾等幾個方面,構(gòu)建了工業(yè)控制系統(tǒng)安全防御的體系。不過,在 該體系統(tǒng)中仍然存在著一個主要的缺失,就是如何辨識未知特征的攻擊或者入侵行為,也 不能攔截恰好利用防火墻規(guī)則或者"白名單"訪問控制表發(fā)起的攻擊行為。
[0006] 為解決該問題本文提出選取Mcxlbus功能碼該一重要字段作為研究對象,設(shè)計了 能夠處理包含不同數(shù)目Mcxlbus功能碼的序列的預處理方法,結(jié)合支持向量機算法,提出了 一種基于支持向量機的Mo化USTCP通訊功能碼序列異常檢測方法,并采用微粒子群算法對 模型參數(shù)進行尋優(yōu),建立了工業(yè)控制系統(tǒng)中Mo化USTCP通訊的異常檢測模型,W實現(xiàn)辨識 防火墻與入侵檢測系統(tǒng)未能識別的攻擊行為或者異常行為。
【發(fā)明內(nèi)容】
[0007] 針對在【背景技術(shù)】中提出幾種Mo化USTCP通訊安全防護技術(shù)存在的無法識別特征 未知的攻擊行為的問題,本文發(fā)明了一種基于PS0-SVM的Mo化US通訊異常檢測方法。
[0008] 本發(fā)明為實現(xiàn)上述目的所采用的技術(shù)方案是:一種基于SVM的Mo化USTCP通訊的 異常檢測方法,包括W下步驟:
[0009] 流量采集;利用Linux內(nèi)核的Netfilter機制采集工業(yè)控制系統(tǒng)中Mo化usTCP通 訊流量,按照會話進行存儲并且剔除不必要的信息,轉(zhuǎn)化為僅包含Mo化US功能碼的序列;
[0010] 數(shù)據(jù)預處理;設(shè)定固定長度的滑動窗口,獲取所有不同滑動窗口長度的短模式序 列構(gòu)成集合,按照其中每一個元素出現(xiàn)的頻率,處理正常與異常Mo化USTCP通訊流量中的 功能碼序列,從而轉(zhuǎn)化成為長度一致的SVM能夠處理的向量形式;
[0011] PS0優(yōu)化;將初始化的粒子傳遞給SVM異常識別模型作為參數(shù)懲罰因子C和高斯 徑向基參數(shù)0,利用SVM模型返回的交叉驗證意義下的分類準確率,作為PS0優(yōu)化模型中的 適應度值,并據(jù)此進行粒子群迭代更新;
[001引 SVM異常檢測;利用PS0流程傳遞的參數(shù),建立C-SVM流程模型進行異常檢測,并 且返回交叉驗證意義下的分類正確率。
[0013] 所述流量采集包括W下步驟:
[0014] 利用Linux內(nèi)核Netmter機制進行流量抓取,從而捕獲工業(yè)控制系統(tǒng)中 Mo化usTCP通訊流量,并且按照源于目的地址對進行分類存儲;
[0015] 剔除Mo化USTCP通訊中不包含Mo化US功能碼的數(shù)據(jù)包,并且進一步剔除Mo化us 服務器向客戶機回應的相關(guān)數(shù)據(jù)包。
[0016] 剔除Mo化US功能碼之外的所有其他信息,并將Mo化US功能碼按照時間先后順序 進行排列;
[0017] 將Mo化US功能碼序列隨機分割成不同長度的Mo化US功能碼短序列。
[0018] 所述不包含Mo化US功能碼的數(shù)據(jù)包包括握手、確認與重傳。
[0019] 所述數(shù)據(jù)預處理包括W下步驟:
[0020] 獲取正常與異常Mo化USTCP通訊流量集合,并且賦予相應的類別標簽;
[0021] 設(shè)定短序列長度r,且保證r長度不大于Mo化US功能碼樣本集合中長度最小的個 數(shù);
[0022] 用長度為r滑動窗口依次處理Mo化US功能碼樣本集合的每一個樣本,提取所有可 能的r長度短序列;
[0023] 去除C中重復成分,對于每一個不同的r長度短序列僅保留一份,得到模式短序列 集合M;
[0024] 利用短序列模式集合M將功能碼序列中的每個元素表示成維數(shù)相同的支持向量 機能夠處理的向量模式。
[00巧]所述PS0優(yōu)化包括W下步驟:
[0026] 設(shè)置PS0算法在終止條件始終無法滿足情況下的最大迭代步數(shù)km"與粒子位置與 速度的限定范圍;
[0027] 隨機生成種群W及相關(guān)參數(shù)初始化,其中每個粒子包含兩個分量分別為支持向量 機懲罰因子C和徑向基核參數(shù)0,并且針對每一個粒子設(shè)置初始化速度向量;
[0028] 將粒子進行SVM訓練并作為支持向量機的懲罰因子和高斯徑向基參數(shù),返回交叉 驗證意義下的分類準確率作為粒子適應度值;
[0029] 根據(jù)適應度值的情況更新個體極值及群體極值;如果出現(xiàn)了更優(yōu)的適應度值則更 新相應的個體或者群體適應度值;
[0030] 判斷是否滿足退出迭代條;如果超過迭