一種面向Modbus協議的數據流異常分析方法與流程
2023-10-19 19:58:52 3

本文發明屬於工業控制系統的安全技術領域,具體的說,涉及一種面向工控網絡Modbus協議的數據流異常分析方法。
背景技術:
工業領域中超過80%的關鍵基礎設施依靠工業控制系統來實現自動化作業。近年來,針對工業控制系統的網絡安全事件頻繁發生例如:2010年「震網」病毒針對伊朗布希爾核電站實施了「擺渡」攻擊,導致20%離心機報廢以及有毒的放射性物質洩漏;2012年「火焰」病毒攻擊了中東能源行業,收集了伊朗石油行業大量關鍵信息,意圖打擊石油國家的經濟命脈;2016年「黑暗力量」對烏克蘭智能電網工控系統進行了攻擊,導致家庭供電被迫大規模中斷。這些裡程碑式的安全事件標誌工業控制系統安全已經開始影響國計民生,一旦遭到破壞,造成的損失將難以估量。
隨著針對工控系統的傳統簡單攻擊手段已經演變為高級可持續性威脅(Advanced Persistent Threat,APT),其對國家關鍵基礎設施已造成了嚴重的安全威脅,APT具有複雜性、可持續性、隱蔽性等特點,目前還沒有有效的防禦手段,唯一的方式就是在攻擊者掌握「0-day」漏洞之前,發現「0-day」漏洞,對現場設備漏洞進行補丁升級。
在工業控制系統(Industry Control System,ICS)中,應用的通用協議類型主要包括Modbus、OPC等,同時Modbus協議也是國內工控研發廠商、集成商採用最多的協議之一,已在多個行業如能源、石化、冶金等領域應用廣泛。
所以目前由於在工控領域中Modbus協議廣泛的應用場景及APT攻擊的出現,需要對Modbus協議進行有效的安全告警及異常分析,有利於工業控制系統安全問題的發現,發現現場系統中關於Modbus協議數據流的異常流量及異常行為,給出實時的報警信息,有利於系統維護人員進行有針對性的修復及應急響應。
綜上,本發明的數據流異常分析方法能發現工業控制系統領域Modbus協議的未知的攻擊方式,通過流量分析、報文分析兩種融合的方式,將提高系統異常的檢測效率,發現不同種類的攻擊。
技術實現要素:
本發明要解決的技術問題是克服上述缺陷,提供了一種面向工控網絡Modbus協議的數據流異常分析方法,在初始化階段,建立點對點流量模型和正常的用戶訪問、數據傳輸等模式;在系統運行階段,判斷Modbus協議數據流的運行狀態及實時判斷數據流中是否有偏離正常行為模式的數據報文出現,有效地對Modbus協議現場控制網絡進行異常分析與報警。
為解決上述問題,本發明所採用的技術方案是:
一種面向工控網絡Modbus協議的數據流異常分析方法,其特徵在於:包括以下步驟:
步驟一:初始化階段,通過自學習控制狀態開啟,生成Modbus協議數據流量異常分析模型;
步驟二:初始化階段,通過自學習控制狀態開啟,生成Modbus協議自學習正常行為模型;
步驟三:運行階段,通過匹配Modbus協議數據流的周期性變化規律,判斷Modbus協議數據流量的運行狀態;
步驟四:運行階段,通過匹配Modbus協議數據流中是否有偏離正常行為模式的數據報文,判斷Modbus協議數據報文的正常/異常行為狀態;
步驟五:對步驟三和步驟四中的結果進行可視化呈現。
作為一種優化的技術方案,所述在初始化階段,生成Modbus協議數據流量異常分析模型為:
自學習功能:在系統初始化階段,應將方法實現的狀態設置為自學習狀態,提示目前產生的集合為訓練集合;
協議數據流分類:將捕獲的Modbus協議數據流進行端到端分類,分類特徵如IP位址、MAC地址、終端名稱等;
數據流統計:端到端分類的數據流統計其時間序列,基於等時間間隔來進行觀測值統計,形成時間序列的數據流統計;
時間序列預測模型:基於特定方法建立時間序列預測模型,如指數平滑方法、AR模型等。
作為一種優化的技術方案,所述在初始化階段,生成Modbus協議自學習正常行為模式模型為:
自學習功能:在系統初始化階段,應將方法實現的狀態設置為自學習狀態,提示目前產生的集合為訓練集合;
協議解析:將捕獲的Modbus協議數據流進行協議解析,解析包括網絡層、通信層、應用層數據;
特徵提取:基於協議解析的屬性,提取安全相關的屬性,包括源IP位址、目的IP位址、IP包頭部長度、源埠、目的埠、事務處理標識符、協議標識符、長度、單元標識符、功能碼、數據地址、數據量;
歸一化處理:將特徵提取屬性數據進行歸一化轉換。
正常行為模式:通過自學習結束標誌,建立完整的訓練庫,通過BP神經網絡方法建立正常行為模型。
作為一種優化的技術方案,所述在運行階段,判斷Modbus協議數據流量的運行狀態為:
數據捕獲:基於接口庫進行數據流捕獲;
協議數據流分類:對Modbus協議數據流基於IP位址、MAC地址、終端名稱等特徵進行分類;
數據流統計:端到端分類的數據流統計其時間序列;
時間序列預測判定:時間序列代入判定函數,基於時間序列預測值與真實值進行一定範圍誤差內的判定。
作為一種優化的技術方案,所述在運行階段,判斷Modbus協議數據報文的正常/異常行為狀態為:
數據捕獲:基於接口庫進行數據流捕獲;
協議解析:將捕獲的Modbus協議數據流進行協議解析;
特徵提取:基於協議解析的屬性,提取安全相關的屬性;
歸一化處理:將特徵提取屬性數據轉換為0-1之間的數據。
正常行為判定:將特徵屬性代入BP神經網絡判定函數,基於BP神經網絡計算結果判定正常/異常行為。
由於採用了上述技術方案,與現有技術相比,本發明在深入理解Modbus協議及異常分析技術的基礎上設計,有很好的全面性與實用性,能有提高異常分析的效率,使之能高效的發現工業控制系統中存在的Modbus異常數據流。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖,均應落入本發明的保護範圍。
圖1為本發明中Modbus協議數據流異常分析方法整體流程圖;
圖2為本發明中時間序列分析過程示意圖;
圖3為本發明中神經網絡結構示意圖;
圖4為本發明中基於Modbus協議的數據包格式域圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
考慮到工業現場控制系統的數據流異常分析與IT系統的異常分析在工業通信協議、數據流周期性、數據流穩定性等方面的不同,工業控制系統數據流異常分析更適合數據流量異常分析、數據報文異常行為分析方法,準確率理論上較傳統IT網絡上實現此方法更高。本發明提供了針對這些功能的解決方案,同時此發明實現流量異常分析及數據流報文異常行為分析兩種方法,在檢測不同類型攻擊目的上實現了互補,更有效地檢測網絡風暴、DDos攻擊、數據指令異常行為、誤操作行為等存在的數據流異常狀態。
圖1是本發明方法的整體數據流異常分析方法流程,以下根據圖1的具體實現模塊功能,實現針對工控網絡Modbus協議數據流異常的發現,其中實現的工具可應用在工控系統中所有支持Modbus TCP/IP層協議的網絡層次,如現場控制網絡層、SCADA監控傳輸層等。
基於圖1,本發明實現主要有5個功能模塊初始化階段自學習生成Modbus協議數據流量異常分析模型、初始化階段自學習生成Modbus協議自學習正常行為模型、運行階段判斷Modbus協議數據流量的運行狀態方法、運行階段判斷Modbus協議數據報文的正常/異常行為狀態方法、對判定結果進行可視化呈現。
第一部分功能模塊,初始化階段自學習生成Modbus協議數據流量異常分析模型,具體地,系統運行此階段,系統狀態調整為自學習狀態,以標識此階段數據為訓練數據,通過libpcap接口函數庫對設備數據流進行混雜模式捕獲,之後對捕獲數據流通過埠號、協議標識、IP位址等特徵,對數據流進行過濾及分類,形成端到端分類數據流,以此為數據源,通過統計間隔性時間序列觀測值,在結束指令下達之後,形成完整的時間序列的數據流統計訓練集合,基於指數平滑等方法,建立時間序列預測模型。
第二部分功能模塊,初始化階段自學習生成Modbus協議自學習正常行為模型,具體地,系統運行此階段,系統狀態調整為自學習狀態,以標識此階段數據為訓練數據,共享第一部分模型捕獲的數據報文,並對報文進行協議解析,Modbus協議域規定了請求與響應報文均封裝為IP頭、TCP頭、MBAP頭(包括事務處理標識符、協議標識符、長度、單元標識符)、功能碼、數據,其中按標準規定的功能碼分類為:21類功能碼(1~21)、保留擴展功能碼(22~64)、保留以備用戶所用功能碼(65~72)、非法功能功能碼(73~119)、內部作用(120~127)、異常應答(128~255)。基於協議解析的屬性,提取安全相關的屬性,包括源IP位址、目的IP位址、IP包頭部長度、源埠、目的埠、事務處理標識符、協議標識符、長度、單元標識符、功能碼、數據地址、數據量12種,之後將將特徵提取屬性數據轉換為0-1之間的數據,在結束指令下達之後,建立訓練庫矩陣n*13矩陣序列訓練庫,包括序號、源IP位址、目的IP位址、IP包頭部長度、源埠、目的埠、事務處理標識符、協議標識符、長度、單元標識符、功能碼、數據地址、數據量,通過BP神經網絡方法建立正常行為模型。
第三部分功能模塊,運行階段判斷Modbus協議數據流量的運行狀態方法,具體地,系統運行此階段,系統狀態調整為運行狀態,以標識此階段為實時判定階段,基於libpcap接口進行數據流捕獲,對Modbus協議數據流基於IP位址、MAC地址、終端名稱等特徵進行分類,主要指標參考源IP、目的IP,將端到端分類的數據流統計其時間序列,記錄之前時間序列到集合中{Ti,Xi},則稱Xi為T時間軸上的觀測值,將觀測到的Xi值與時間序列預測模型進行計算,參考圖2示意圖,一定範圍誤差內的認定為是正常系統流量狀態。
第四部分功能模塊,運行階段判斷Modbus協議數據報文的正常/異常行為狀態方法,具體地,系統運行此階段,系統狀態調整為運行狀態,以標識此階段為實時判定階段,基於libpcap接口進行數據流捕獲,將捕獲的Modbus協議數據流進行協議解析,Modbus協議域規定了請求與響應報文均封裝為IP頭、TCP頭、MBAP頭(包括事務處理標識符、協議標識符、長度、單元標識符)、功能碼、數據,其中功能碼分類參考第二部分,根據Modbus/TCP和典型攻擊行為的模式,選擇12種TCP/IP和應用層協議數據特徵屬性為入侵檢測特徵屬性,參考第二部分屬性定義,之後將將特徵提取屬性數據轉換為0-1之間的數據,將特徵屬性代入BP神經網絡判定函數,基於BP神經網絡計算結果判定正常/異常行為。
第五部分功能模塊,對判定結果進行可視化呈現,具體地,可視化呈現可通過C/S或B/S結構呈現,呈現內容將主要包括異常報警日誌數據查詢、排序等功能,以及異常報警日誌的存儲。
本發明不局限於上述的優選實施方式,任何人應該得知在本發明的啟示下做出的結構變化,凡是與本發明具有相同或者相近似的技術方案,均屬於本發明的保護範圍。