寫在前面
今天我們來聊一聊基于Wireshark的S7、OPC等工業(yè)協(xié)議分析與工業(yè)網(wǎng)絡(luò)漏洞挖掘~
1工控信息安全的現(xiàn)狀分析
2工業(yè)控制系統(tǒng)的風險監(jiān)測
當前工業(yè)控制系統(tǒng)安全面臨嚴峻威脅,需要對工業(yè)控制系統(tǒng)網(wǎng)絡(luò)進行安全監(jiān)測,發(fā)現(xiàn)工業(yè)控制系統(tǒng)網(wǎng)絡(luò)內(nèi)部的安全威脅和存在的漏洞,從而采取相關(guān)的防護措施或修復相關(guān)漏洞,確保工業(yè)控制系統(tǒng)的設(shè)備和數(shù)據(jù)的安全。
2.1工控網(wǎng)絡(luò)安全監(jiān)測相關(guān)技術(shù)
2.2工控網(wǎng)絡(luò)安全分析方法
2.2.1工業(yè)協(xié)議網(wǎng)絡(luò)報文分析
3WireNmap的開發(fā)與實現(xiàn)
Wireshark與Nmap在工業(yè)協(xié)議分析與工業(yè)漏洞挖掘中是強有力的互補,而實際中兩個軟件是分立的,導致其使用效率偏低。在工業(yè)控制系統(tǒng)的應用中,Wireshark軟件對工業(yè)協(xié)議支持不完整或不全面,而Nmap自帶漏洞探測腳本有限,但其支持自主開發(fā)針對工業(yè)控制系統(tǒng)的腳本。
3.1Wireshark源碼結(jié)構(gòu)
Wireshark源碼軟件組成,如圖1所示。
圖1Wireshark源碼框架
圖1中,Core為核心調(diào)度模塊,包括報文的捕獲(Capture)、報文分析(Epan)、報文讀取與存儲(Wiretap)、界面交互與呈現(xiàn)(GTK/Qt),具體模塊的具體功能如表1所示。
表1Wireshark各模塊功能
3.2Nmap源碼結(jié)構(gòu)
4基于WireNmap的工業(yè)協(xié)議分析
WireNmap集成了自主研發(fā)的報文解析插件,如S7協(xié)議解析插件、OPC協(xié)議TAG深度解析插件等。
4.1S7協(xié)議解析插件
圖2S7協(xié)議報文結(jié)構(gòu)
表2空間類型對照表
拆分值段,值段前3個字節(jié)跳過,取值段第4字節(jié)為值的長度。
S7原生Wireshark未解析報文,如圖3所示。以圖3中數(shù)據(jù)段未解析的十六進制部分拆分為例進行方法說明,如圖4所示。
圖3S7原生Wireshark未解析報文
圖4S7協(xié)議未解析段數(shù)據(jù)結(jié)構(gòu)
(1)第1字節(jié)和第2字節(jié)為第一區(qū)字段的長度20(0x0014),第3字節(jié)和第4字節(jié)為第二區(qū)字段的長度14(0x000e),點表數(shù)據(jù)在第二區(qū);
(2)從第5字節(jié)起為第一區(qū)字段,第一區(qū)字段長度為20個字節(jié),跳過20個字節(jié);
(3)從25字節(jié)開始,25、26字節(jié)為數(shù)據(jù)點個數(shù),十六進制表達為0x0001,轉(zhuǎn)換為十進制為1,即后續(xù)數(shù)據(jù)點個數(shù)只有1個,則地址段和值段分別只有一個點;
(4)讀取地址段的空間類型,取0x22&0xf0,根據(jù)表2得到空間類型;
(5)地址值按照圖中標識部分為0x00000206,換算成十進制為518;
(6)讀取值段,值段的第3字節(jié)即圖4中的0x02為值的長度,換算為十進制,值的長度為2;
(7)讀取值為0x2acd。
根據(jù)該方法,圖3中的未解析字段在經(jīng)過二次開發(fā)后結(jié)果如圖5所示,可以得到點的個數(shù)、地址和值。
圖5S7協(xié)議二次解析后前后對比
可見,經(jīng)過開發(fā)后,S7插件可以讀取空間類型、地址以及數(shù)值等更多信息。在實際工業(yè)控制系統(tǒng)中,這些信息可以對應實際的溫度、壓力以及轉(zhuǎn)速等信息,因此可以更好地對工業(yè)控制系統(tǒng)進行指令級分析。
4.2OPC協(xié)議
OPC是基于微軟組件對象COM/DCOM/COM+等技術(shù)基礎(chǔ)的一種接口標準,在標準下能夠有效的進行信息集成和數(shù)據(jù)交換。在工業(yè)控制系統(tǒng)中,OPC協(xié)議規(guī)范中主要應用的是OPC DA規(guī)范。在OPC DA規(guī)范中,OPC由OPC服務(wù)器中包含OPC組,組內(nèi)有一個或多個對象,其結(jié)構(gòu)如圖6所示。
圖6OPC對象結(jié)構(gòu)組成
在OPC DA規(guī)范中,IOPCItemMgt類型報文在客戶端執(zhí)行添加、刪除對象時,協(xié)商客戶端和服務(wù)器對象的句柄,在協(xié)商完成后,后續(xù)通信都通過句柄對該對象執(zhí)行修改。由圖7可知,Wireshark并未對句柄進行解析。
圖7OPC原生Wireshark未解析報文示例
本文通過以下方法可以獲取句柄和句柄相關(guān)的對象名稱。
圖8OPC二次開發(fā)前后對比
由圖8可知,經(jīng)過開發(fā)后的WireNmap軟件可以獲取OPC協(xié)議的TAG名字、數(shù)據(jù)類型以及數(shù)值等更多信息。在實際的工業(yè)控制系統(tǒng)中,該信息可以與實際物理量進行轉(zhuǎn)換,從而獲取更多的數(shù)量信息。
5基于WireNmap的工業(yè)漏洞掃描技術(shù)
WireNmap同時集成了自主研發(fā)的漏洞掃描腳本插件,如NSE腳本。
5.1NSE腳本簡介
一個完整的NSE腳本包括描述性字段、行腳本的rule以及實際腳本指令的action等多個模塊,如圖9所示。它的各個模塊的主要的功能如表3所示。
圖9NSE腳本組成
表3NSE腳本各個模塊的主要的功能
圖10NSE腳本首部
5.2.2腳本portrule
這部分主要涉及一些特定的端口以及端口上的服務(wù),在對服務(wù)器的訪問中涉及到http,因此端口的選取是幾個有關(guān)http服務(wù)的端口,具體如下:
portrule=shortport.port_or_service({80,8080},”http”)
一般來說,在Apache Tomcat服務(wù)器安裝時會有默認的運行端口,端口一般為8080,有時會存在該端口被其他應用占用的情況,這時服務(wù)器啟動后不能正常工作,可以在Apache Tomcat的文件中進行默認端口的修改。
5.2.3腳本action
這是整個腳本的核心部分,利用put請求發(fā)送一個jsp格式的文件,之后判斷服務(wù)器對http的put請求返回的響應碼,若為201,說明此時服務(wù)器已經(jīng)接受請求,對文件名以及一些細節(jié)輸出即可,如圖11所示。查看該腳本在Nmap中的運行結(jié)果,如圖12所示。
圖11NSE腳本主體
圖12NSE腳本運行結(jié)果
6基于WireNmap的資產(chǎn)管理與聯(lián)合分析技術(shù)
圖13WireNmap資產(chǎn)管理界面
由圖13可以得出網(wǎng)絡(luò)中的IP段與資產(chǎn)清單,如表4所示。
表4WireNmap報文分析與IP資產(chǎn)對應關(guān)系
圖13中右側(cè)框列出了當前所有的IP資產(chǎn)清單。點擊對應的IP后,利用列舉出來的與該IP地址相關(guān)的所有通信報文,可以直接分析該IP的流量,查看是否存在異常流量,同時結(jié)合已經(jīng)開發(fā)的插件(如S7、OPC等),更好地對工業(yè)協(xié)議進行深度分析。圖13中雙擊右側(cè)IP地址,啟動如圖14所示的界面。對重點關(guān)注的資產(chǎn)IP進行深度探測,可以得出如表5所示的資產(chǎn)詳細信息。
圖14WireNmap資產(chǎn)掃描與深度探測
表5資產(chǎn)詳細信息
7結(jié)語
本文提出了一種基于Wireshark與Nmap的工業(yè)控制系統(tǒng)安全聯(lián)合分析方法,擴展了Wireshark的分析插件與Nmap的掃描插件,同時提出了將Wireshark與Nmap合并后的聯(lián)合分析軟件WireNmap。實際應用證明,WireNmap能更深層次解析工業(yè)協(xié)議,如S7、OPC協(xié)議,同時通過開發(fā)腳本能發(fā)現(xiàn)更多的漏洞,如CVE-2017-12617等。面對以竊取敏感信息和破壞關(guān)鍵基礎(chǔ)設(shè)施運行為主要目的工業(yè)控制系統(tǒng)網(wǎng)絡(luò)攻擊,所提方法能更快速、全方位地適應工業(yè)控制系統(tǒng)安全威脅的需要。
審核編輯:湯梓紅
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6856瀏覽量
113132 -
西門子
+關(guān)注
關(guān)注
98文章
3229瀏覽量
119328 -
工業(yè)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
102瀏覽量
16967 -
工業(yè)控制
+關(guān)注
關(guān)注
38文章
1579瀏覽量
87936 -
Wireshark
+關(guān)注
關(guān)注
0文章
49瀏覽量
6892
原文標題:西門子S7、OPC等工業(yè)協(xié)議分析與工業(yè)漏洞挖掘
文章出處:【微信號:智能制造之家,微信公眾號:智能制造之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何擴展工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)安全終端
怎么實現(xiàn)工業(yè)控制系統(tǒng)安全防護的設(shè)計?
五年磨一劍 工業(yè)控制系統(tǒng)信息安全防護的新高度

工業(yè)控制系統(tǒng)的信息安全分析及解決方案

淺談工業(yè)控制系統(tǒng)安全問題

工業(yè)控制系統(tǒng)安全控制應用指南,為其信息安全工作提供指導

工控系統(tǒng)的安全現(xiàn)狀和存在的問題及思想和形式說明

工業(yè)控制系統(tǒng)網(wǎng)絡(luò)安全難題怎么解決
如何提升工業(yè)控制系統(tǒng)安全終端認知

工業(yè)控制系統(tǒng)的本體安全該如何理解

加速工業(yè)4.0-擴展工業(yè)控制系統(tǒng)中的安全終端
加速工業(yè)4.0:擴展工業(yè) 控制系統(tǒng)中的安全終端

加速工業(yè)4.0:擴展工業(yè) 控制系統(tǒng)中的安全終端

加速工業(yè)4.0:擴展工業(yè)控制系統(tǒng)中的安全終端

評論