亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Wireshark與Nmap的工業(yè)協(xié)議分析與工業(yè)漏洞挖掘的實(shí)現(xiàn)*

        2021-03-20 12:49:56朱振乾張周晶馬慧慧魏黎明
        通信技術(shù) 2021年3期
        關(guān)鍵詞:工控腳本插件

        朱振乾,張周晶,馬慧慧,魏黎明

        (中國電子科技網(wǎng)絡(luò)信息安全有限公司,四川 成都 610041)

        0 引言

        隨著工業(yè)控制系統(tǒng)的通用化、網(wǎng)絡(luò)化和智能化發(fā)展,工業(yè)控制系統(tǒng)信息安全形勢(shì)日漸嚴(yán)峻。一方面?zhèn)鹘y(tǒng)的互聯(lián)網(wǎng)信息安全威脅正在向工業(yè)控制系統(tǒng)蔓延,另一方面針對(duì)關(guān)鍵基礎(chǔ)設(shè)施及其控制系統(tǒng),以竊取敏感信息和破壞關(guān)鍵基礎(chǔ)設(shè)施運(yùn)行為主要目的攻擊愈演愈烈[1]。近年來發(fā)生了一系列針對(duì)工控網(wǎng)絡(luò)的攻擊行為,如2010 年伊朗核設(shè)施遭遇了前所未有的嚴(yán)重攻擊,國際核能組織發(fā)現(xiàn)伊朗的濃縮鈾工廠的離心機(jī)不斷被破壞,報(bào)廢的數(shù)量接近伊朗濃縮鈾工廠離心機(jī)總數(shù)的1/4。這就是震驚全世界的著名的“Stuxnet(震網(wǎng))”病毒武器的攻擊,從此針對(duì)工業(yè)控制系統(tǒng)的網(wǎng)絡(luò)信息安全事件引起了全世界的高度關(guān)注。震網(wǎng)病毒能過被感染的U 盤或移動(dòng)介質(zhì)進(jìn)入伊朗核設(shè)施網(wǎng)絡(luò)。當(dāng)U 盤或移動(dòng)介質(zhì)插入計(jì)算機(jī)時(shí),震網(wǎng)病毒通過Windows 系統(tǒng)自動(dòng)播放特性被植入伊朗核設(shè)施網(wǎng)絡(luò),然后在網(wǎng)絡(luò)中不斷復(fù)制并感染其他設(shè)備。震網(wǎng)病毒在伊朗核設(shè)施網(wǎng)絡(luò)中尋找西門子公司的STEP7 控制軟件,并經(jīng)過欺騙和控制該軟件達(dá)到破壞的目的。西門子公司的STEP7 軟件用于控制伺服馬達(dá)、電路開關(guān)和氣體液體閥門,廣泛應(yīng)用于各行各業(yè)。該病毒找到西門子控制軟件后,截獲控制軟件給可編程邏輯控制設(shè)備(Programmable Logic Controller,PLC)的指令,找出并識(shí)別應(yīng)用在離心機(jī)上的軟件發(fā)出虛假指令,使得離心機(jī)轉(zhuǎn)速不正常而造成設(shè)備損壞。在一系列工業(yè)信息安全事件爆發(fā)后,工信部在2011年下發(fā)了《關(guān)于加強(qiáng)工業(yè)控制系統(tǒng)信息安全管理的通知》,要求各級(jí)政府和國有大型企業(yè)切實(shí)加強(qiáng)工業(yè)控制系統(tǒng)安全管理。對(duì)于工業(yè)企業(yè)而言,工業(yè)控制信息系統(tǒng)安全還是一個(gè)全新的領(lǐng)域,在技術(shù)工具、設(shè)備設(shè)施以及人員等方面缺乏儲(chǔ)備,同時(shí)缺乏相關(guān)的標(biāo)準(zhǔn)和規(guī)范,因此迫切需要開展相關(guān)的基礎(chǔ)研究和產(chǎn)品開發(fā),以支持用戶開展相關(guān)工作。Wireshark 與Nmap是網(wǎng)絡(luò)開發(fā)和信息安全技術(shù)人員最常用的工具之一,能從二進(jìn)制報(bào)文中分析并提取有效信息,并結(jié)合報(bào)文插件或漏洞數(shù)據(jù)庫匹配相應(yīng)的結(jié)果,因此廣泛應(yīng)用于工控信息安全。然而,Wireshark 與Nmap是兩個(gè)分立的工具,兩者結(jié)合使用中存在一定的不便,同時(shí)在解析工業(yè)控制系統(tǒng)特殊的工業(yè)協(xié)議時(shí),Wireshark 存在解析不全或不完整的情況。Nmap 原生自帶的腳本數(shù)量有限,但支持開發(fā)自定義的探測(cè)腳本進(jìn)行自主漏洞挖掘。

        1 工控信息安全的現(xiàn)狀分析

        工業(yè)控制網(wǎng)絡(luò)是工業(yè)控制系統(tǒng)中的網(wǎng)絡(luò)部分,是一種把工廠中各個(gè)生產(chǎn)流程和自動(dòng)化控制系統(tǒng)通過各種通信設(shè)備組織起來的通信網(wǎng)絡(luò)。工業(yè)控制系統(tǒng)包括工業(yè)控制網(wǎng)絡(luò)和所有的工業(yè)生產(chǎn)設(shè)備,而工業(yè)控制網(wǎng)絡(luò)只側(cè)重工業(yè)控制系統(tǒng)中組成通信網(wǎng)絡(luò)的元素,包括通信節(jié)點(diǎn)(如數(shù)據(jù)采集與監(jiān)控系統(tǒng)、分布式控制系統(tǒng)、可編程控制器、遠(yuǎn)程終端以及人機(jī)交互界面設(shè)備等)、通信網(wǎng)絡(luò)(包括現(xiàn)場(chǎng)總線、以太網(wǎng)以及各類無線通信網(wǎng)絡(luò)等)以及的通信協(xié)議(包括Modbus、Profibus 等)。企業(yè)生產(chǎn)網(wǎng)部署的工業(yè)控制系統(tǒng)一般包括4 個(gè)層次,分別是現(xiàn)場(chǎng)設(shè)備層、現(xiàn)場(chǎng)控制層、過程監(jiān)控層和生產(chǎn)執(zhí)行層[2]。

        工業(yè)控制系統(tǒng)所在的機(jī)構(gòu)或單位同時(shí)建立了與外部網(wǎng)絡(luò)相連的生產(chǎn)信息網(wǎng),使用戶可以通過網(wǎng)絡(luò)查詢信息。現(xiàn)階段,工業(yè)控制系統(tǒng)環(huán)境已經(jīng)擺脫以往信息孤島的模式,與IT 網(wǎng)絡(luò)相連接,實(shí)現(xiàn)了大范圍的協(xié)同控制,以提高生產(chǎn)效率。同時(shí),機(jī)構(gòu)或單位通過網(wǎng)絡(luò)與分支機(jī)構(gòu)、合作伙伴、外網(wǎng)用戶的聯(lián)系越來越多,這時(shí)內(nèi)部網(wǎng)絡(luò)/工控網(wǎng)絡(luò)的安全性將受到考驗(yàn)。網(wǎng)絡(luò)上的不法分子不斷尋找網(wǎng)絡(luò)上的漏洞,企圖潛入內(nèi)部網(wǎng)絡(luò)與工控網(wǎng)絡(luò)。一旦內(nèi)部網(wǎng)絡(luò)或工控網(wǎng)絡(luò)被人攻破,一些機(jī)密的資料可能會(huì)被盜,將破壞網(wǎng)絡(luò)和工業(yè)生產(chǎn)環(huá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ù)

        通過研究工業(yè)控制系統(tǒng)安全監(jiān)測(cè)技術(shù),形成對(duì)工業(yè)控制系統(tǒng)的重點(diǎn)區(qū)域、重點(diǎn)企業(yè)、重點(diǎn)平臺(tái)及重點(diǎn)設(shè)備的安全監(jiān)測(cè)能力。通過采集工業(yè)控制系統(tǒng)網(wǎng)絡(luò)流量,對(duì)物理地址、工控協(xié)議指紋、報(bào)文方向以及協(xié)議特征等進(jìn)行研究分析,識(shí)別資產(chǎn)的類別、廠商以及固件版本等信息,進(jìn)一步識(shí)別資產(chǎn)可能存在的已知漏洞信息。需聯(lián)合與資產(chǎn)關(guān)聯(lián)的入侵告警、審計(jì)告警和白名單基線告警多維信息,對(duì)資產(chǎn)風(fēng)險(xiǎn)等級(jí)做出綜合評(píng)估[3]。

        對(duì)工業(yè)協(xié)議做指令級(jí)深度解析,是監(jiān)測(cè)系統(tǒng)實(shí)現(xiàn)資產(chǎn)識(shí)別、入侵檢測(cè)、創(chuàng)建基線以及監(jiān)測(cè)與審計(jì)的技術(shù)基礎(chǔ),主要分析技術(shù)的以下幾個(gè)層級(jí)。

        (1)針對(duì)工業(yè)控制系統(tǒng)特有的工業(yè)協(xié)議(如MODBUS、S7、FINS 以及GE 等),通過規(guī)格識(shí)別、逆向分析等手段,厘清報(bào)文特征與業(yè)務(wù)操作的內(nèi)在關(guān)系。

        (2)結(jié)合工業(yè)控制系統(tǒng)中各作業(yè)單元網(wǎng)絡(luò)流量數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù),針對(duì)不同的工控網(wǎng)絡(luò)安全與業(yè)務(wù)安全異常場(chǎng)景,選取隨機(jī)森林、決策樹、K-means、神經(jīng)網(wǎng)絡(luò)等機(jī)器學(xué)習(xí)或深度學(xué)習(xí)算法或混合算法,學(xué)習(xí)生成工控系統(tǒng)安全異常檢測(cè)模型。

        (3)采集工業(yè)控制系統(tǒng)各作業(yè)單元網(wǎng)絡(luò)流量數(shù)據(jù),通過工控協(xié)議深度解析技術(shù)與會(huì)話還原技術(shù),對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)中的網(wǎng)絡(luò)連接、工控指令、重要業(yè)務(wù)以及通信方向等關(guān)鍵信息生成工業(yè)控制系統(tǒng)安全行為基線,實(shí)現(xiàn)對(duì)偏離安全行為基線的異常行為的實(shí)時(shí)檢測(cè)。

        2.2 工控網(wǎng)絡(luò)安全分析方法

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

        Wireshark(前稱Ethereal)是一個(gè)網(wǎng)絡(luò)抓包分析軟件。網(wǎng)絡(luò)抓包分析軟件的功能是抓取網(wǎng)絡(luò)報(bào)文,并盡可能顯示最詳細(xì)的網(wǎng)絡(luò)報(bào)文信息。Wireshark 使用WinPCAP 作為接口,直接與網(wǎng)卡進(jìn)行數(shù)據(jù)報(bào)文交換。網(wǎng)絡(luò)管理員使用Wireshark 檢測(cè)網(wǎng)絡(luò)問題,網(wǎng)絡(luò)安全工程師使用Wireshark 檢查資訊安全相關(guān)問題,開發(fā)者使用Wireshark 為新的通信協(xié)定除錯(cuò),普通使用者使用Wireshark 學(xué)習(xí)網(wǎng)絡(luò)協(xié)定的相關(guān)知識(shí)[4]。

        2.2.2 工業(yè)網(wǎng)絡(luò)設(shè)備發(fā)現(xiàn)與漏洞挖掘

        Nmap是一個(gè)免費(fèi)開放的網(wǎng)絡(luò)掃描和嗅探工具,也叫網(wǎng)絡(luò)映射器(Network Mapper)。它由3 個(gè)基本功能:一是探測(cè)一組主機(jī)是否在線:二是掃描主機(jī)端口嗅探所提供的網(wǎng)絡(luò)服務(wù):三是可以推斷主機(jī)所用的操作系統(tǒng)。通常網(wǎng)絡(luò)管理員利用Nmap 評(píng)估網(wǎng)絡(luò)系統(tǒng)安全,而黑客則用其掃描網(wǎng)絡(luò),通過向遠(yuǎn)程主機(jī)發(fā)送探測(cè)數(shù)據(jù)包獲取主機(jī)的響應(yīng),并根據(jù)主機(jī)的端口開放情況得到網(wǎng)絡(luò)的安全狀況,尋找存在漏洞的目標(biāo)主機(jī),實(shí)施下一步的攻擊[5]。

        Nmap 掃描工具支持?jǐn)U展,因此開發(fā)者可以自主開發(fā)探測(cè)腳本。通過自主開發(fā)的腳本,開發(fā)者可以對(duì)工業(yè)控制系統(tǒng)中的工控設(shè)備進(jìn)行掃描識(shí)別,從而發(fā)現(xiàn)工控設(shè)備的相關(guān)信息,如廠家、型號(hào)以及版本等,再結(jié)合相關(guān)漏洞庫,可以快速匹配工控設(shè)備的相關(guān)漏洞。對(duì)尚未被挖掘的漏洞,結(jié)合Wireshark對(duì)工業(yè)協(xié)議報(bào)文的分析,可以通過Nmap 編寫腳本直接進(jìn)行探測(cè),如拒絕服務(wù)、緩沖區(qū)溢出以及弱管理員密碼等漏洞。Nmap 是一個(gè)自主挖掘工業(yè)漏洞十分有用的工具。

        3 WireNmap 的開發(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è)腳本有限,但其支持自主開發(fā)針對(duì)工業(yè)控制系統(tǒng)的腳本。

        3.1 Wireshark 源碼結(jié)構(gòu)

        Wireshark 源碼軟件組成,如圖1 所示。

        圖1 中,Core 為核心調(diào)度模塊,包括報(bào)文的捕獲(Capture)、報(bào)文分析(Epan)、報(bào)文讀取與存儲(chǔ)(Wiretap)、界面交互與呈現(xiàn)(GTK/Qt),具體模塊的具體功能如表1 所示。

        3.2 Nmap 源碼結(jié)構(gòu)

        Nmap的執(zhí)行流程采用流水式的順序執(zhí)行方法,執(zhí)行的入口在nmap_main()處。Nmap 的執(zhí)行流程可以分為準(zhǔn)備階段、執(zhí)行階段和結(jié)束階段3 個(gè)階段。

        表1 Wireshark 各模塊功能

        準(zhǔn)備階段解析掃描輸入?yún)?shù),根據(jù)輸入?yún)?shù)初始化系統(tǒng)資源、初始掃描IP 地址與端口、初始化腳本執(zhí)行環(huán)境,形為掃描任務(wù)列表。

        執(zhí)行階段根據(jù)準(zhǔn)備階段產(chǎn)生的任務(wù)列表,順序執(zhí)行相關(guān)任務(wù),直到所有的任務(wù)完成后退出主循環(huán)。

        結(jié)束階段對(duì)所有掃描任務(wù)進(jìn)行統(tǒng)計(jì)與分析,然后打印出掃描的最終結(jié)果,并釋放分配的資源。

        3.3 WireNmap 軟件的實(shí)現(xiàn)

        WireNmap 集成了自主研發(fā)的報(bào)文分析插件與掃描探測(cè)腳本,為工業(yè)控制系統(tǒng)漏洞分析提供更深層次的分析與漏洞挖掘能力。

        WireNmap 軟件集成了原生的Wireshark 與Nmap 的所有功能,且在此基礎(chǔ)上WireNmap 實(shí)現(xiàn)了IP 資產(chǎn)統(tǒng)計(jì),即對(duì)網(wǎng)絡(luò)中發(fā)現(xiàn)的所有IP 地址以列表的形式進(jìn)行呈現(xiàn)。該IP 資產(chǎn)列表可直接點(diǎn)擊進(jìn)行Nmap 掃描與分析,有利于進(jìn)一步獲取更深層次的信息,同時(shí)實(shí)現(xiàn)了Wireshark 與Nmap 的無縫銜接。

        4 基于WireNmap 的工業(yè)協(xié)議分析

        WireNmap 集成了自主研發(fā)的報(bào)文解析插件,如S7 協(xié)議解析插件、OPC 協(xié)議TAG 深度解析插件等。

        4.1 S7 協(xié)議解析插件

        在工業(yè)環(huán)境中,S7 Communication 協(xié)議(后文簡(jiǎn)稱為S7)和OPC 都被廣泛應(yīng)用于石油、鋼鐵和制造等行業(yè)。S7 協(xié)議是一種私有協(xié)議,在西門子生產(chǎn)制造的設(shè)備和系統(tǒng)中主要用于PLC 之間的數(shù)據(jù)交互以及SCADA 系統(tǒng)對(duì)PLC 的管理、診斷與監(jiān)控。OPC 已經(jīng)成為工控界的一種標(biāo)準(zhǔn),目前世界上著名的自動(dòng)化廠商都有應(yīng)用該標(biāo)準(zhǔn)。針對(duì)S7 和OPC,WireNmap 在Wireshark 基礎(chǔ)上進(jìn)行了二次開發(fā),增加了對(duì)S7 和OPC 的解析深度。

        S7 協(xié)議通過RFC1006 協(xié)議的形式建立TCP/IP的ISO 七層模型下的S7 連接。它的通信過程包括TCP 連接進(jìn)行3 次握手建立TCP 連接、ISO 層建立連接、S7 協(xié)議發(fā)出連接請(qǐng)求并建立連接以及S7 協(xié)議進(jìn)行設(shè)備的數(shù)值讀寫4 個(gè)步驟。S7 PDU 封裝于ISO 層內(nèi),因此在S7 前會(huì)增加TPKT 固定幀頭和COTP 層幀頭,結(jié)構(gòu)如圖2 所示。

        圖2 S7 協(xié)議報(bào)文結(jié)構(gòu)

        TPKT 幀頭長度為4 Byte。第1 字節(jié)表示TPKT版本號(hào),第2 字節(jié)為保留字段,第3 字節(jié)和第4 字節(jié)表示數(shù)據(jù)長度。COTP 幀類型有10 種,在S7 協(xié)議報(bào)文中常見的有0xe0(請(qǐng)求連接)、0xd0(請(qǐng)求確認(rèn))和0xf0(PDU 數(shù)據(jù)傳輸)共3 種,僅在ISO層建立連接完成。進(jìn)行數(shù)據(jù)傳輸時(shí),即PDU 類型為0xf0(PDU 數(shù)據(jù)傳輸)時(shí)搭載S7 協(xié)議報(bào)文,結(jié)構(gòu)如圖2 所示。圖2 中,COTP 幀頭長度為3 Byte,第1 字節(jié)表示長度,第2 字節(jié)表示PDU 類型,第3字節(jié)低7 位表示TPDU 編號(hào),第3 字節(jié)第8 位表示是否為最后一個(gè)單元。最后一部分是PDU data 搭載S7 協(xié)議。S7 協(xié)議分由固定頭部、參數(shù)區(qū)和數(shù)據(jù)區(qū)3個(gè)部分組成。從圖2 可知,在幀頭類型為Userdata 時(shí),數(shù)據(jù)區(qū)仍有一串無法解析的數(shù)據(jù),需針對(duì)這部分?jǐn)?shù)據(jù)展開進(jìn)一步解析。

        為得到圖2 中數(shù)據(jù)段未被解析的結(jié)果,將未解析部分分為未知字段和已知字段兩部分。未知字段為暫時(shí)不清楚的不可解析部分,已知字段為可通過二次開發(fā)進(jìn)行解析的部分。已知字段中包含數(shù)據(jù)點(diǎn)個(gè)數(shù)、地址段和值段3 部分,可采用以下方法獲取每個(gè)字段:

        (1)獲取未知字段和已知字段長度,第1 字節(jié)和第2 字節(jié)為未知字段長度,第3 字節(jié)和第4 字節(jié)為已知字段長度,并確保兩個(gè)長度之和與余下長度之和相等;

        (2)獲取已知字段的數(shù)據(jù)點(diǎn)個(gè)數(shù),已知字段數(shù)據(jù)點(diǎn)個(gè)數(shù)占2 Byte;

        (3)拆分地址段,地址段分為空間類型和地址兩個(gè)部分,空間類型取剩余第1 個(gè)字節(jié)的最高位,根據(jù)表2 得到空間類型,地址為后續(xù)的4 Byte。

        表2 空間類型對(duì)照表

        拆分值段,值段前3 個(gè)字節(jié)跳過,取值段第4字節(jié)為值的長度。

        S7 原生Wireshark 未解析報(bào)文,如圖3 所示。以圖3 中數(shù)據(jù)段未解析的十六進(jìn)制部分拆分為例進(jìn)行方法說明,如圖4 所示。

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

        圖4 S7 協(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)地址值按照?qǐng)D中標(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ù)、地址和值。

        圖5 S7 協(xié)議二次解析后前后對(duì)比

        可見,經(jīng)過開發(fā)后,S7 插件可以讀取空間類型、地址以及數(shù)值等更多信息。在實(shí)際工業(yè)控制系統(tǒng)中,這些信息可以對(duì)應(yīng)實(shí)際的溫度、壓力以及轉(zhuǎn)速等信息,因此可以更好地對(duì)工業(yè)控制系統(tǒng)進(jìn)行指令級(jí)分析。

        4.2 OPC 協(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 所示。

        圖6 OPC 對(duì)象結(jié)構(gòu)組成

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

        本文通過以下方法可以獲取句柄和句柄相關(guān)的對(duì)象名稱。

        (1)確認(rèn)報(bào)文類型為IOPCItemMgt,并獲取對(duì)象個(gè)數(shù),取未解析內(nèi)容的第一個(gè)十六進(jìn)制值;

        (2)通過報(bào)文中的固定位獲取報(bào)文中的對(duì)象個(gè)數(shù);

        (3)handle 長度固定,則獲取相對(duì)固定位置的handle 值;

        (4)獲取每個(gè)handle 對(duì)應(yīng)名稱。

        以圖8 為例來進(jìn)行方法說明。

        (1)確認(rèn)報(bào)文類型為IOPCItemMgt,將內(nèi)容移動(dòng)到示例中stub data 的起始位置,以stub data 顯示的0x05 為第1 字節(jié);

        (2)向后移動(dòng)32 位為OPC 對(duì)象個(gè)數(shù),如圖6所示該報(bào)文中對(duì)象個(gè)數(shù)為1;

        (3)句柄隊(duì)列是一個(gè)32 位數(shù)值,起始位置從第52 字節(jié)起,如圖6 所示,句柄為0x909fe400;

        (4)句柄隊(duì)列中,每隔28 字節(jié)為一個(gè)句柄值讀取點(diǎn),本文中只有1 個(gè)對(duì)象,則只有一個(gè)句柄值,則直接跳過28 字節(jié);

        (5)再跳過空白16 個(gè)字節(jié),在第91 字節(jié)獲取對(duì)象名稱長度為0x0e000000,由于是小端的十六進(jìn)制值,換算成十進(jìn)制為14,則對(duì)象的名稱長度為14;

        (6)跳過12 個(gè)無關(guān)字節(jié),以ASCII 碼方式獲得名稱,在圖7 中名稱為New Alias 1.1。

        (7)得到的OPC 句柄和對(duì)象名稱與未進(jìn)行二次開發(fā)的OPC 報(bào)文對(duì)比圖,如圖8 所示。

        圖7 OPC 原生Wireshark 未解析報(bào)文示例

        圖8 OPC 二次開發(fā)前后對(duì)比

        由圖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.1 NSE 腳本簡(jiǎn)介

        一個(gè)完整的NSE 腳本包括描述性字段、行腳本的rule 以及實(shí)際腳本指令的action 等多個(gè)模塊,如圖9 所示。它的各個(gè)模塊的主要的功能如表3所示。

        圖9 NSE 腳本組成

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

        5.2 WireNmap 漏洞挖掘技術(shù)

        以國家信息安全漏洞共享平臺(tái)的CVE-2017-12617 為例,該漏洞稱之為Apache Tomcat 遠(yuǎn)程代碼執(zhí)行漏洞。當(dāng)Apache Tomcat 服務(wù)器中的http 進(jìn)行put 請(qǐng)求時(shí),可以遠(yuǎn)程將java的jsp格式代碼上傳至服務(wù)器端,進(jìn)而達(dá)到在服務(wù)器上任意執(zhí)行代碼的目的。此漏洞屬于高危漏洞,對(duì)服務(wù)器的影響很大,因此探測(cè)發(fā)現(xiàn)該漏洞并且采取合適的修補(bǔ)措施十分有意義。

        5.2.1 腳本準(zhǔn)備工作

        腳本準(zhǔn)備工作包括一些包的引用(如http、Nmap、stdnse 等等)、description 部分以及nsedoc 部分,還有腳本的作者、種類以及l(fā)icense。這部分主要是明確腳本的一些細(xì)節(jié),為下面的腳本主體內(nèi)容做一些鋪墊。其中,description 從CVE 中摘錄而來,可以非常好地幫助理解腳本的原理以及運(yùn)行機(jī)制,具體如圖10 所示。

        圖10 NSE 腳本首部

        5.2.2 腳本portrule

        這部分主要涉及一些特定的端口以及端口上的服務(wù),在對(duì)服務(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 請(qǐng)求發(fā)送一個(gè)jsp 格式的文件,之后判斷服務(wù)器對(duì)http 的put請(qǐng)求返回的響應(yīng)碼,若為201,說明此時(shí)服務(wù)器已經(jīng)接受請(qǐng)求,對(duì)文件名以及一些細(xì)節(jié)輸出即可,如圖11 所示。查看該腳本在Nmap 中的運(yùn)行結(jié)果,如圖12 所示。

        圖11 NSE 腳本主體

        圖12 NSE 腳本運(yùn)行結(jié)果

        明顯可以看到,文件的內(nèi)容是開始時(shí)腳本中寫好的,充分說明該版本的服務(wù)器存在巨大的漏洞。當(dāng)put 請(qǐng)求成功時(shí),可以上傳任意的jsp 格式代碼至服務(wù)器端,并且可以在服務(wù)器上運(yùn)行。當(dāng)打開存放文件的Apache Tomcat 目錄時(shí),可以看到chen.jsp位列其中。

        針對(duì)發(fā)現(xiàn)的漏洞,如何規(guī)避或修復(fù)此漏洞,可以簡(jiǎn)單總結(jié)為兩個(gè)方面。一方面,對(duì)Apache Tomcat服務(wù)器進(jìn)行升級(jí),只要選取合適的版本就可以避免此漏洞。另一方面,訪問Apache Tomcat 文件中的conf 文件夾找到web.xml,修改其中的參數(shù)“readonly”值為true,拒絕文件寫入。

        6 基于WireNmap 的資產(chǎn)管理與聯(lián)合分析技術(shù)

        工業(yè)控制系統(tǒng)中的安全威脅分析中,常有的工具有Wireshark 與Nmap。Wireshark 能抓取二進(jìn)制報(bào)文,Nmap 能探測(cè)設(shè)備存活并對(duì)設(shè)備進(jìn)行深度掃描,并能發(fā)現(xiàn)各種類型網(wǎng)絡(luò)設(shè)備的漏洞。使用中通常先使用Wireshark 進(jìn)行分析,再通過Nmap 進(jìn)行深度探測(cè),然后根據(jù)兩者結(jié)果進(jìn)行聯(lián)合分析,從而全面分析工業(yè)控制系統(tǒng)的安全威脅。WireNmap 集成的Wireshark 與Nmap 的功能,擴(kuò)展了報(bào)文分析插件與漏洞掃描插件,同時(shí)將兩者的安裝與使用有效連接起來。基于WireNmap 的工業(yè)控制安全分析技術(shù)的基本步驟如下:

        (1)抓包獲取網(wǎng)絡(luò)報(bào)文、相關(guān)資產(chǎn)列表及IP網(wǎng)段;

        (2)根據(jù)資產(chǎn)列表及其通信報(bào)文,初步判斷其資產(chǎn)類型;

        (3)通過PING 掃描和端口掃描,確定網(wǎng)絡(luò)中所有存活資產(chǎn)列表;

        (4)對(duì)所有資產(chǎn)進(jìn)行操作系統(tǒng)掃描,同時(shí)獲取廠商與操作系統(tǒng)信息;

        (5)資產(chǎn)列表中確定重點(diǎn)關(guān)注資產(chǎn),并對(duì)其進(jìn)行指令級(jí)分析;

        (6)對(duì)重點(diǎn)資產(chǎn)進(jìn)行報(bào)文篩選,并根據(jù)報(bào)文格式編寫相應(yīng)的探測(cè)腳本;

        (7)反復(fù)修改相關(guān)報(bào)文,對(duì)相關(guān)設(shè)備進(jìn)行非法修改或溢出修改,挖掘相關(guān)漏洞。

        具體來說,調(diào)用WireNmap 工具進(jìn)行抓包和報(bào)文分析時(shí)可直接獲取網(wǎng)絡(luò)中的IP 資產(chǎn)清單,如圖13 所示。

        圖13 WireNmap 資產(chǎn)管理界面

        由圖13 可以得出網(wǎng)絡(luò)中的IP 段與資產(chǎn)清單,如表4 所示。

        表4 WireNmap 報(bào)文分析與IP 資產(chǎn)對(duì)應(yīng)關(guān)系

        圖13 中右側(cè)框列出了當(dāng)前所有的IP 資產(chǎn)清單。點(diǎn)擊對(duì)應(yīng)的IP 后,利用列舉出來的與該IP 地址相關(guān)的所有通信報(bào)文,可以直接分析該IP 的流量,查看是否存在異常流量,同時(shí)結(jié)合已經(jīng)開發(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ì)信息。

        圖14 WireNmap 資產(chǎn)掃描與深度探測(cè)

        表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 等。面對(duì)以竊取敏感信息和破壞關(guān)鍵基礎(chǔ)設(shè)施運(yùn)行為主要目的工業(yè)控制系統(tǒng)網(wǎng)絡(luò)攻擊,所提方法能更快速、全方位地適應(yīng)工業(yè)控制系統(tǒng)安全威脅的需要。

        猜你喜歡
        工控腳本插件
        酒駕
        安奇奇與小cool 龍(第二回)
        自編插件完善App Inventor與樂高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
        快樂假期
        工控速派 一個(gè)工控技術(shù)服務(wù)的江湖
        工控速?zèng)?一個(gè)工控技術(shù)服務(wù)的江湖
        熱點(diǎn)追蹤 工控安全低調(diào)而不失重要
        基于攻擊圖的工控系統(tǒng)脆弱性量化方法
        MapWindowGIS插件機(jī)制及應(yīng)用
        成在人线av无码免费| 精品国产一区二区三区三| 精品国产青草久久久久福利| 亚洲精品人成无码中文毛片| 欧美日韩激情在线一区二区| 国产偷闻女邻居av在线观看| 色综合久久蜜芽国产精品| 亚洲av永久无码精品国产精品 | 午夜大片又黄又爽大片app| 中文字幕一区二区人妻痴汉电车| 激情五月天色婷婷久久| 无码孕妇孕交在线观看| 亚洲av之男人的天堂| 亚洲中文字幕人妻诱惑| 麻豆视频在线播放观看| 亚洲av日韩av无码污污网站| 日韩一区二区肥| 日本高清人妻一区二区| 大肉大捧一进一出好爽视频动漫 | 国产欧美成人一区二区a片| 亚洲综合无码一区二区| 日本熟妇精品一区二区三区| 亚洲av成熟国产一区二区| 久久精品成人无码观看不卡| 国产熟女亚洲精品麻豆| 综合成人亚洲网友偷自拍| 男女猛烈无遮挡免费视频| 97精品伊人久久大香线蕉app| 日本久久精品在线播放| 一区二区三区国产免费视频| 欧美两根一起进3p做受视频| 国产乱子伦农村xxxx| 亚洲精品国产一区二区免费视频| 成人午夜视频精品一区| 亚洲精品有码在线观看| 亚洲综合国产精品一区二区 | 极品一区二区在线视频| 伊人久久大香线蕉亚洲五月天 | 精品无码国产一二三区麻豆| 久久久精品毛片免费观看| 人人爽人人澡人人人妻|