寫(xiě)在前面
今天我們來(lái)聊一聊基于Wireshark的S7、OPC等工業(yè)協(xié)議分析與工業(yè)網(wǎng)絡(luò)漏洞挖掘~
1工控信息安全的現(xiàn)狀分析

2工業(yè)控制系統(tǒng)的風(fēng)險(xiǎn)監(jiān)測(cè)
當(dāng)前工業(yè)控制系統(tǒng)安全面臨嚴(yán)峻威脅,需要對(duì)工業(yè)控制系統(tǒng)網(wǎng)絡(luò)進(jìn)行安全監(jiān)測(cè),發(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)測(cè)相關(guān)技術(shù)

2.2工控網(wǎng)絡(luò)安全分析方法
2.2.1工業(yè)協(xié)議網(wǎng)絡(luò)報(bào)文分析

3WireNmap的開(kāi)發(fā)與實(shí)現(xiàn)
Wireshark與Nmap在工業(yè)協(xié)議分析與工業(yè)漏洞挖掘中是強(qiáng)有力的互補(bǔ),而實(shí)際中兩個(gè)軟件是分立的,導(dǎo)致其使用效率偏低。在工業(yè)控制系統(tǒng)的應(yīng)用中,Wireshark軟件對(duì)工業(yè)協(xié)議支持不完整或不全面,而Nmap自帶漏洞探測(cè)腳本有限,但其支持自主開(kāi)發(fā)針對(duì)工業(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空間類型對(duì)照表

拆分值段,值段前3個(gè)字節(jié)跳過(guò),取值段第4字節(jié)為值的長(zhǎng)度。
S7原生Wireshark未解析報(bào)文,如圖3所示。以圖3中數(shù)據(jù)段未解析的十六進(jìn)制部分拆分為例進(jìn)行方法說(shuō)明,如圖4所示。

圖3S7原生Wireshark未解析報(bào)文

圖4S7協(xié)議未解析段數(shù)據(jù)結(jié)構(gòu)
(1)第1字節(jié)和第2字節(jié)為第一區(qū)字段的長(zhǎng)度20(0x0014),第3字節(jié)和第4字節(jié)為第二區(qū)字段的長(zhǎng)度14(0x000e),點(diǎn)表數(shù)據(jù)在第二區(qū);
(2)從第5字節(jié)起為第一區(qū)字段,第一區(qū)字段長(zhǎng)度為20個(gè)字節(jié),跳過(guò)20個(gè)字節(jié);
(3)從25字節(jié)開(kāi)始,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)地址值按照?qǐng)D中標(biāo)識(shí)部分為0x00000206,換算成十進(jìn)制為518;
(6)讀取值段,值段的第3字節(jié)即圖4中的0x02為值的長(zhǎng)度,換算為十進(jìn)制,值的長(zhǎng)度為2;
(7)讀取值為0x2acd。
根據(jù)該方法,圖3中的未解析字段在經(jīng)過(guò)二次開(kāi)發(fā)后結(jié)果如圖5所示,可以得到點(diǎn)的個(gè)數(shù)、地址和值。

圖5S7協(xié)議二次解析后前后對(duì)比
可見(jiàn),經(jīng)過(guò)開(kāi)發(fā)后,S7插件可以讀取空間類型、地址以及數(shù)值等更多信息。在實(shí)際工業(yè)控制系統(tǒng)中,這些信息可以對(duì)應(yīng)實(shí)際的溫度、壓力以及轉(zhuǎn)速等信息,因此可以更好地對(duì)工業(yè)控制系統(tǒng)進(jìn)行指令級(jí)分析。
4.2OPC協(xié)議
OPC是基于微軟組件對(duì)象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è)對(duì)象,其結(jié)構(gòu)如圖6所示。

圖6OPC對(duì)象結(jié)構(gòu)組成
在OPC DA規(guī)范中,IOPCItemMgt類型報(bào)文在客戶端執(zhí)行添加、刪除對(duì)象時(shí),協(xié)商客戶端和服務(wù)器對(duì)象的句柄,在協(xié)商完成后,后續(xù)通信都通過(guò)句柄對(duì)該對(duì)象執(zhí)行修改。由圖7可知,Wireshark并未對(duì)句柄進(jìn)行解析。

圖7OPC原生Wireshark未解析報(bào)文示例
本文通過(guò)以下方法可以獲取句柄和句柄相關(guān)的對(duì)象名稱。


圖8OPC二次開(kāi)發(fā)前后對(duì)比
由圖8可知,經(jīng)過(guò)開(kāi)發(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腳本簡(jiǎn)介
一個(gè)完整的NSE腳本包括描述性字段、行腳本的rule以及實(shí)際腳本指令的action等多個(gè)模塊,如圖9所示。它的各個(gè)模塊的主要的功能如表3所示。

圖9NSE腳本組成
表3NSE腳本各個(gè)模塊的主要的功能


圖10NSE腳本首部
5.2.2腳本portrule
這部分主要涉及一些特定的端口以及端口上的服務(wù),在對(duì)服務(wù)器的訪問(wèn)中涉及到http,因此端口的選取是幾個(gè)有關(guān)http服務(wù)的端口,具體如下:
portrule=shortport.port_or_service({80,8080},”http”)
一般來(lái)說(shuō),在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請(qǐng)求發(fā)送一個(gè)jsp格式的文件,之后判斷服務(wù)器對(duì)http的put請(qǐng)求返回的響應(yīng)碼,若為201,說(shuō)明此時(shí)服務(wù)器已經(jīng)接受請(qǐng)求,對(duì)文件名以及一些細(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)對(duì)應(yīng)關(guān)系

圖13中右側(cè)框列出了當(dāng)前所有的IP資產(chǎn)清單。點(diǎn)擊對(duì)應(yīng)的IP后,利用列舉出來(lái)的與該IP地址相關(guān)的所有通信報(bào)文,可以直接分析該IP的流量,查看是否存在異常流量,同時(shí)結(jié)合已經(jīng)開(kāi)發(fā)的插件(如S7、OPC等),更好地對(duì)工業(yè)協(xié)議進(jìn)行深度分析。圖13中雙擊右側(cè)IP地址,啟動(dòng)如圖14所示的界面。對(duì)重點(diǎn)關(guān)注的資產(chǎn)IP進(jìn)行深度探測(cè),可以得出如表5所示的資產(chǎn)詳細(xì)信息。

圖14WireNmap資產(chǎn)掃描與深度探測(cè)
表5資產(chǎn)詳細(xì)信息

7結(jié)語(yǔ)
本文提出了一種基于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í)通過(guò)開(kāi)發(fā)腳本能發(fā)現(xiàn)更多的漏洞,如CVE-2017-12617等。面對(duì)以竊取敏感信息和破壞關(guān)鍵基礎(chǔ)設(shè)施運(yùn)行為主要目的工業(yè)控制系統(tǒng)網(wǎng)絡(luò)攻擊,所提方法能更快速、全方位地適應(yīng)工業(yè)控制系統(tǒng)安全威脅的需要。
審核編輯:湯梓紅
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6986瀏覽量
114374 -
西門子
+關(guān)注
關(guān)注
98文章
3369瀏覽量
120683 -
工業(yè)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
118瀏覽量
17443 -
工業(yè)控制
+關(guān)注
關(guān)注
38文章
1696瀏覽量
92257 -
Wireshark
+關(guān)注
關(guān)注
0文章
51瀏覽量
6975
原文標(biāo)題:西門子S7、OPC等工業(yè)協(xié)議分析與工業(yè)漏洞挖掘
文章出處:【微信號(hào):智能制造之家,微信公眾號(hào):智能制造之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何擴(kuò)展工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)安全終端
怎么實(shí)現(xiàn)工業(yè)控制系統(tǒng)安全防護(hù)的設(shè)計(jì)?
五年磨一劍 工業(yè)控制系統(tǒng)信息安全防護(hù)的新高度
工業(yè)控制系統(tǒng)的信息安全分析及解決方案
淺談工業(yè)控制系統(tǒng)安全問(wèn)題
工業(yè)控制系統(tǒng)安全控制應(yīng)用指南,為其信息安全工作提供指導(dǎo)
工控系統(tǒng)的安全現(xiàn)狀和存在的問(wèn)題及思想和形式說(shuō)明
工業(yè)控制系統(tǒng)網(wǎng)絡(luò)安全難題怎么解決
如何提升工業(yè)控制系統(tǒng)安全終端認(rèn)知
工業(yè)控制系統(tǒng)的本體安全該如何理解
加速工業(yè)4.0-擴(kuò)展工業(yè)控制系統(tǒng)中的安全終端
加速工業(yè)4.0:擴(kuò)展工業(yè) 控制系統(tǒng)中的安全終端
加速工業(yè)4.0:擴(kuò)展工業(yè) 控制系統(tǒng)中的安全終端
加速工業(yè)4.0:擴(kuò)展工業(yè)控制系統(tǒng)中的安全終端
基于Wireshark與Nmap的工業(yè)控制系統(tǒng)安全聯(lián)合分析方法
評(píng)論