999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于suricata 的IEC104 插件設計與實現*

2021-01-26 04:00:56張周晶申玲鈺
通信技術 2021年1期
關鍵詞:信息

張周晶,申玲鈺

(1.中國電子科技網絡信息安全有限公司,四川 成都 610041;2.中國電子科技集團公司第三十研究所,成都 610041)

0 引言

隨著工業互聯網的發展,工業網絡單獨組網的狀態正在被改變,為了將人、數據和設備進行有效連接,國外眾多大型公司已根據其自身產品及產業特點構建了對應的工業互聯網平臺,我國在該領域也正在建立更加完善的框架。

中國工業互聯網聯盟設計并提出了工業互聯網平臺架構[1],如圖1 所示,在該平臺架構設計中,工業安全防護貫穿了應用層、平臺層、Iaas 層以及邊緣層。在工業互聯網的架構中,互聯網可以訪問工業網絡的情況也變得更加普遍,工業互聯網的安全防護從底層到應用層都有關鍵技術,覆蓋工業互聯網全架構。在四個層面的安全防護中,數據安全包括數據存儲安全和數據傳輸安全是重點和難點。上傳和下發指令的工業協議會直接影響產品的質量、設備的運行狀態,如果指令不當,將對生產造成實際的損失,情況嚴重將毀壞生產設備,因此監測防護設備對于工業協議的指令級行為監測需求也在穩步提高。

在工業協議中,IEC104 協議被廣泛應用于電力行業和軌道交通行業[2]。通過IEC104 協議,實體設備之間能夠通過數據傳輸進行設備的行為控制,例如控制主站能夠遠程讀取子站設備狀態,操作設備行為,調整設備參數,子站設備能夠主動定時上傳狀態及相關監測數據。如果主站下達指令通過協議錯誤地發送給子站,會影響子站設備的正常行為,而子站上傳狀態錯誤則會影響主站對子站實際情況的監測,因此IEC104 協議指令級的監測、檢測和審計是工業環境中入侵檢測設備的必要功能。

圖1 工業互聯網平臺架構

在當前的入侵檢測軟件系統中,suricata 框架提供多平臺支持,能夠根據實際情況進行配置,并且具有高效的采集能力,自帶協議解析器引擎和基于snort 規則的檢測引擎,能夠滿足當前工業環境中的流量監測、TCP 會話監測及部分通用協議的指令監測。因此在suricata 當前的解析器引擎、監測引擎和輸出引擎內增加IEC104 協議的解析器、檢測器和日志輸出器能夠補充suricata 入侵檢測軟件框架在IEC104 協議監測上的不足,為工業互聯網提供一個能夠進行指令級的可審計的入侵監測系統。

1 Suricata 軟件框架

suricata 支持三種工作模式,分別是single 模式、autofp 模式和workers 模式。single 模式為單線程工作模式,即只啟動一個線程完成采集、分析、會話管理、檢測、日志輸出的功能;autofp 模式通常采用多采集線程,在采集和解析完成后發送給會話管理線程做后續處理;worker 模式采用多線程模式,每個線程完整地進行采集、每個線程獨立完成采集、分析、會話管理、檢測、輸出功能,驅動層就做了適當的負載均衡,單個數據包都在一個線程里處理。

Suricata 系統[3]采用自定義信號—與槽機制,用中斷信號進行中斷,從而調用對應回調函數的方式觸發流程,因此在程序初始化時,即依據配置信息初始化了回調函數。以auto 模式為例,數據包在被接收后,數據的流向如圖3 所示。先查找包對應的流,再根據數據包的信息更新對應的流,在StreamTcp 中判斷包是否需要校驗,然后根據StreamTcpPacket 更新數據包對應的流以及應用層數據;在檢測[4]的時候根據流監測結果采用DetectFlow 或者DetectNoFlow,根據會話信息和規則內容進行匹配。在數據檢測結束后,進行日志的輸出。

圖2 suricata 三種工作模式流程圖

因此,IEC104 協議的插件包括三個部分:解析插件、檢測插件和日志輸出插件。協議解析插件能夠完成對于IEC104 報文的十六進制碼的分析,將IEC104 協議的報文解析成具有可讀性的結構化數據;檢測插件部分能夠根據解析器輸出的結構化數據和規則進行匹配比對,從而對指令級別的內容進行檢測,并記錄警告;日志輸出插件能夠將每條IEC104 報文的可讀性指令輸出。

2 IEC104 解析模塊設計

2.1 IEC104 解析模塊注冊

在圖2 中可見,入口為AppLayerParseSetup 中調用的注冊函數RegisterIEC104Parse。其中包括以下內容:

(1)注冊協議端口和協議名稱;

(2)注冊預處理函數,預處理函數使用位置在AppLayer 層判斷數據包的應用層類型時調用,預處理協議即會將數據傳入對應的應用層協議解析器,進行十六進制數據包解析;

(3)注冊解析函數IEC104RequestParse 和IEC104ResponseParse,分別處理請求和響應數據包;

(4)注冊應用層會話管理函數IEC104State Alloc,IEC104StateFree,IEC104StateTxFree

分別管理應用層狀態空間的分配、清理以及清理每個會話中的傳輸對象;

圖3 suricata 內部插件調用流程

(5)注冊傳輸對象相關函數,如獲取當前傳輸對象IEC104GetTx,獲取總的傳輸對象個數IEC104GetTxCnt;

(6)注冊日志相關函數,如傳輸對象日志狀態IEC104GetTxLogged,IEC104SetTxLogged;

(7)注冊IEC104GetAlstateProgressCompletionS tatus,返回當前應用層會話狀態。

重點關注解析函數內部的實現,即IEC104Parser。

2.2 IEC104 協議說明及解析函數設計

IEC104 規約發布于1992 年,更新于2002 年,當前使用較多的是2002 年版本。基于TCP/IP 的IEC104協議格式稱為應用規約數據單元(Application Protocol Data Unit,APDU),其中分為應用規約控制信息(Application Protocol Control Information,APCI)和應用服務數據單元(Application Service Data Unit,ASDU),根據傳輸需求分為不編號的控制功能格式(U 幀)、編號的監視功能格式(S 幀)和編號的信息傳輸格式(I 幀)。

I 幀用于傳輸應用數據,根據類型標識的不同,數據格式各有差異,一般而言為APCI+ASDU 兩部分組成,總格式見圖4,其中控制域1 和控制域2為發送序號,控制域3 和控制域4 為接收序號,類型標識定義了信息對象的結構類型和格式,傳送原因標識了協議發出的原因,詳表見表1。ASDU 包含公共體地址和信息體地址,其中公共體地址長度為2 字節,其低位表示標志裝置地址;信息體地址長度為3 字節,對應點表的點號。

例如請求和響應的十六進制數如下所示,解釋如括號中所示。

請求:68(啟動符) 12(APDU 長度)02 c7(發送序號)ce ca(接收序號) 01(type)02(可變結構限定詞)03

響應:00(傳送原因) 01 00 (公共體地址),49 01 00 (信息體地址)01(信息體元素)4a 01 00(信息對象地址) 00(信息體元素)…

U 幀為控制用報文,其格式見圖6,只有APCI格式部分一共只有啟動/啟動確認、停止傳送/停止傳送確認以及鏈路測試/鏈路測試確認共3 類6種命令。

S 幀用于無應用數據可傳輸時確認對方的發送,只有APCI 部分,其控制域如圖5 所示,控制域1和控制域2 已經被固定,即不存在發送序號,只有接收序號。

圖4 IEC104 報文結構

圖5 IEC104 報文S 幀結構

圖6 IEC104 報文U 幀結構

IEC104 協議中,U 幀和S 幀只有APCI 部分,僅I 幀有ASDU 部分,因此將IEC104 的解析區分為APCIParser 和ASDUParser。APCIParser 需要解析啟動字符為0x68,APDU 長度,控制域1,控制域2,控制域3 和控制域4,每個控制域為一個字節。根據1.1 節可知,能夠通過控制域1 的低2 位來區分幀格式,若低2 位為0x00,則為I 幀,0x01 為S 幀,0x03 為U 幀。

ASDUParser 僅解析I 幀報文的ASDU 結構體,ASDU 為變長結構體和定長結構體兩部分,定長結構體能夠解析內容為報文類型,傳送質量、傳送信息體個數、原因、測試以及對象地址,變長部分為信息體地址及其結構體。由于變長部分有自定義內容,因此只檢查報文的完整性,不做內容具體解析。從應用層第7 字節開始,獲取定長結構體信息,再根據解析到的信息體個數完成已知信息體格式的結構體解析。

例如,若報文為I 類型報文,其應用層報文為:

68(啟動字符) 0e (長度) 04 00(RX) 00 00(TX)03 01 01 00 01 00 00 00 00 00

第一字節到第七字節由APCIParser 解析,剩余部分由ASDUParser 解析,解析結果如表1 所示。

表1 parser 處理內容及對應關系

在注冊完成后,流操作線程會根據數據流走向調用對應的已經注冊的IEC104 函數,從而進行創建、設置和解析。這也是suricata 框架的一大優點,即解析器的狀態分配都是可以被流操作線程控制的。重點關注的是請求和響應的解析函數。由于IEC104 數據報文的請求和響應都是I 幀、U幀和S 幀,其實完成的是同一個IEC104Parser。IEC104Parser 的流程圖如圖所示,其總流程為:收到應用層數據包并檢測會話狀態、流狀態;然后解析APCI 頭部的固定格式,若完成解析則給當前State 創建Tx,根據APCI 頭部信息檢查包類型,若為I 幀,則調用ASDUParser 進行解析,直到解析完成,并處理可能存在的待組包層應用層信息。流程圖如圖6 所示。

3 IEC104 監測模塊的設計

監測模塊以解析模塊為基礎,輸入為解析結果,如自定義IEC104 結構transaction 等,IEC104 協議監測模塊針對數據包類型PacketType 和TypeId。入口函數為SigTableSetup[5],需要將PacketType 和TypeId 的三類函數,即setup,free,match 函數進行注冊,同時注冊IEC104 的監測模塊到主引擎。

suricata 引擎首先確定了回調函數的參數,應用層協議注冊監測模塊時,setup、free、match 的回調函數需要按照固定參數注冊。在PacketType 中對I 幀、U 幀、S 幀進行告警。若I 幀進行警告日志的輸出,在初始化時,s 引擎將該規則轉換成可用數據,存儲在DetectIEC104 結構中,通過與解析結果進行比對,即可得到結果。PacketType 的檢測流程為:通過match 函數獲取解析結構transaction 和預置規則結構DetectIEC104,通過比對transaction 中packetType 和檢測結構中的packetType 即可得出結果,若相同則返回1,表示需要輸出警告信息,否則輸出0,不進行警告信息輸出。

4 IEC104 日志模塊的設計

suricata 框架的日志模塊為獨立模塊,在worker模式下日志模塊的結構圖如圖8 所示。注冊的table包括告警表、應用層協議日志表等,在應用層日志輸出時,在調用時按照數據包日志表、傳輸日志表、文件日志表、文件內容日志表及流日志表的順序輪詢,在查到傳輸數據表時也按照圖8 第二行注冊的表信息依次輪詢,首先找到alert 表,查看alert 表是否有警告信息需要輸出,若有則調用回調函數進行輸出,若沒有,則繼續查詢到應用層日志事件表,若有輸出,則調用輸出函數進行輸出,5 張數據表中都注冊有一到多個子表。

IEC104 日志模塊通過OutputRegisterLoggers()調用IEC104 的日志注冊函數,注冊函數JsonIE C104Register 注冊了ToServer 和ToClient 的線程啟停管理函數,配置讀取函數及日志輸出函數,并在Init 時通過AppLayerParserRegisterLogger 將IEC104的日志模塊注冊到日志的module 里。在軟件初始化時,調用狀態初始化函數JsonIEC104LogInitCtx初始化讀取到的配置信息,配置信息包括文件類型、文件狀態,根據配置信息完成文件創建、文件狀態初始化,JsonIEC104LogDeInitCtx 完成文件的清理。JsonIEC104LoggerToClient 和JsonIEC104 LoggerToServer 分別生成請求及響應的報文日志。在生成日志前,傳入參數傳輸對象Tx,Tx 中存儲解析后的內容,如APCI 頭部結構,ASDU 內部結構,通過讀取Tx 結構體能夠將關心的參數如typeId,causeTx 等信息提取至json 格式中。通過調用CreateJSONHeader,能夠將該數據包的流信息輸出到json 格式中暫存,通過OutputJSONBuffer 將js數據寫入buffer 中,并將buffer 通過LogFileWrite 的方式輸出,輸出結構是根據配置信息中的logType進行區分,根據配置和依賴項可以支持寫入syslog文件、unix socket 或者redis 服務器上。

圖7 解析函數設計流程圖

圖8 日志模塊數據結構設計

5 IEC104 插件實現結果

IEC104 插件實現后,會有以下日志結果發生變化。首先是suricata 的運行日志,其中會增加應用層IEC104 的數據解析個數、transaction 個數信息。其示例如圖9 所示。

圖9 stats 增加數據結構

其次,能夠在日志中看到iec104 的日志信息,其示例如下:

6 結語

通過在suricata 軟件框架下設計及實現IEC104插件,當前的版本能夠統計IEC104 的報文個數、流量情況,能根據IEC104 解析器解析結果報告指令、傳輸原因和公共體地址信息。該設計增強了suricata 的功能,提供了針對性的檢測和告警信息。能夠完成工業互聯網的指令級檢測。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
大眾創業(2009年10期)2009-10-08 04:52:00
展會信息
展會信息
展會信息
展會信息
展會信息
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 精品中文字幕一区在线| 欧美另类第一页| 99视频在线精品免费观看6| 国产黄在线免费观看| 四虎国产永久在线观看| 2020最新国产精品视频| 99精品福利视频| 精品少妇人妻一区二区| 婷婷色婷婷| 欧美精品另类| 成年A级毛片| 毛片免费观看视频| 天天婬欲婬香婬色婬视频播放| 国产无码精品在线| 国产精品视频导航| 免费一极毛片| 精品综合久久久久久97超人| 国产精品成人免费视频99| 成AV人片一区二区三区久久| 自拍中文字幕| 57pao国产成视频免费播放| 55夜色66夜色国产精品视频| 婷婷五月在线视频| 国产成人一区二区| 欧美国产日产一区二区| 2021亚洲精品不卡a| 狼友视频一区二区三区| 精品视频一区二区三区在线播| 欧美精品在线视频观看| 欧亚日韩Av| 欧美啪啪精品| 国产91成人| 亚洲国产成熟视频在线多多| 国产主播喷水| 日本免费福利视频| 久久精品无码中文字幕| 亚洲性一区| 国产精品成人免费综合| 孕妇高潮太爽了在线观看免费| 丁香婷婷在线视频| 啊嗯不日本网站| 污网站在线观看视频| 日韩免费中文字幕| 无码综合天天久久综合网| 国产凹凸一区在线观看视频| 无码中文字幕精品推荐| 九九久久99精品| 日韩精品免费一线在线观看| 欧美精品一区在线看| 美女一级毛片无遮挡内谢| 国产无码高清视频不卡| 青草精品视频| 欧美一区二区精品久久久| 久久黄色视频影| 国产成人精品免费av| 久久亚洲黄色视频| 国产成人a在线观看视频| 91精品久久久无码中文字幕vr| 无码内射在线| 色九九视频| 四虎国产永久在线观看| 国产精品国产三级国产专业不| 天天视频在线91频| 婷五月综合| 国产亚洲精品自在线| 亚洲视频无码| 久久影院一区二区h| 欧美一区精品| 一级毛片免费不卡在线| 91亚洲影院| 最新国产网站| 小13箩利洗澡无码视频免费网站| 欧美激情网址| 国产精品无码在线看| 天天摸天天操免费播放小视频| 在线精品亚洲一区二区古装| 国产jizzjizz视频| 国产在线视频欧美亚综合| 日本一区高清| 亚洲综合专区| 亚洲国产高清精品线久久| 久草中文网|