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