- 工業(yè)信息安全應(yīng)急管理理論與架構(gòu)
- 汪禮俊主編
- 3011字
- 2024-12-16 16:31:31
(二)工業(yè)控制網(wǎng)絡(luò)協(xié)議
工業(yè)網(wǎng)絡(luò)指安裝在工業(yè)生產(chǎn)環(huán)境中的全數(shù)字化、雙向、多站的通信系統(tǒng),是應(yīng)用于工業(yè)領(lǐng)域的綜合型集成網(wǎng)絡(luò),涉及計(jì)算機(jī)技術(shù)、通信技術(shù)、多媒體技術(shù)、控制技術(shù)和現(xiàn)場(chǎng)總線技術(shù)等。從功能角度來(lái)看,工業(yè)網(wǎng)絡(luò)一般可分成兩個(gè)部分:企業(yè)信息網(wǎng)絡(luò)、工業(yè)控制網(wǎng)絡(luò)。企業(yè)信息網(wǎng)絡(luò)位于工業(yè)網(wǎng)絡(luò)的中上層,主要功能是處理工業(yè)控制系統(tǒng)的管理與決策信息,與傳統(tǒng)的信息網(wǎng)絡(luò)架構(gòu)相同。
企業(yè)信息網(wǎng)絡(luò)與工業(yè)控制網(wǎng)絡(luò)之間的信息無(wú)縫集成依賴(lài)工業(yè)以太網(wǎng)。工業(yè)以太網(wǎng)主要指技術(shù)上與商用以太網(wǎng)(IEEE 802.3)兼容,但在環(huán)境性、可靠性、實(shí)時(shí)性、安全性以及設(shè)備安裝等方面滿(mǎn)足工業(yè)現(xiàn)場(chǎng)要求的以太網(wǎng)。工業(yè)以太網(wǎng)技術(shù)應(yīng)用主要具有基于TCP/IP主流標(biāo)準(zhǔn)、易操作、可實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)和診斷、網(wǎng)絡(luò)傳輸速度快、傳輸介質(zhì)靈活、能有效降低投資成本等優(yōu)點(diǎn),但同時(shí)存在安全性及總線供電問(wèn)題。
工業(yè)控制網(wǎng)絡(luò)位于工業(yè)網(wǎng)絡(luò)的中下層,主要功能是處理控制現(xiàn)場(chǎng)的實(shí)時(shí)測(cè)控信息。依據(jù)通信關(guān)系,工業(yè)控制網(wǎng)絡(luò)由下到上又可分為現(xiàn)場(chǎng)控制層、過(guò)程監(jiān)控層,分別對(duì)應(yīng)現(xiàn)場(chǎng)總線網(wǎng)絡(luò)、過(guò)程控制與監(jiān)控網(wǎng)絡(luò)?,F(xiàn)場(chǎng)控制層處于作業(yè)現(xiàn)場(chǎng),主要功能是連接現(xiàn)場(chǎng)設(shè)備,如分布式I/O、傳感器、驅(qū)動(dòng)器和開(kāi)關(guān)設(shè)備等,實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備控制及設(shè)備間聯(lián)鎖控制。過(guò)程監(jiān)控層主要通過(guò)分布式SCADA系統(tǒng)采集和監(jiān)控生產(chǎn)過(guò)程參數(shù),并利用HMI實(shí)現(xiàn)人機(jī)交互,對(duì)現(xiàn)場(chǎng)控制層進(jìn)行管理。
工業(yè)控制網(wǎng)絡(luò)是能夠?qū)⒐I(yè)企業(yè)中各個(gè)生產(chǎn)流程和自動(dòng)化控制系統(tǒng)通過(guò)各種通信設(shè)備組織起來(lái)的通信網(wǎng)絡(luò)。工業(yè)控制系統(tǒng)的現(xiàn)場(chǎng)網(wǎng)絡(luò)與控制網(wǎng)絡(luò)之間的通信、現(xiàn)場(chǎng)網(wǎng)絡(luò)各工業(yè)控制設(shè)備之間的通信、控制網(wǎng)絡(luò)各組件的通信往往采用工業(yè)控制系統(tǒng)特有的通信協(xié)議。目前,常見(jiàn)的工業(yè)控制系統(tǒng)通信協(xié)議主要包括Modbus、S7COMM、分布式網(wǎng)絡(luò)協(xié)議3(Distributed Network Protocol 3,DNP3)、IEC、OPC等。
1.Modbus協(xié)議
(1)Modbus基本介紹
Modbus是一種串行通信協(xié)議,由莫迪康公司(現(xiàn)在的施耐德電氣公司)于1979年為使用PLC通信而發(fā)表。Modbus協(xié)議是全球首個(gè)真正用于工業(yè)現(xiàn)場(chǎng)的總線協(xié)議,由于其具有免費(fèi)性、易部署、可維護(hù)性、易應(yīng)用性等特點(diǎn),已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn),是工業(yè)電子設(shè)備之間常用的連接協(xié)議。
目前,支持Modbus協(xié)議的廠家已超過(guò)400家,支持Modbus協(xié)議的產(chǎn)品超過(guò)600種。因此,Modbus協(xié)議可以說(shuō)是應(yīng)用最為廣泛的工業(yè)控制協(xié)議之一。Modbus協(xié)議主要基于TCP/IP,幀格式簡(jiǎn)單、緊湊,通俗易懂;用戶(hù)使用方便,廠商開(kāi)發(fā)簡(jiǎn)單。但是,其在設(shè)計(jì)之初未考慮安全性,存在缺乏認(rèn)證、缺乏授權(quán)、缺乏加密等固有缺陷,這些可能會(huì)導(dǎo)致開(kāi)發(fā)者在使用該協(xié)議的過(guò)程中出現(xiàn)緩沖區(qū)溢出、功能碼濫用等問(wèn)題。
(2)Modbus通信方式
Modbus協(xié)議基本上遵循主從(Master-Slave)通信模式,如圖1-8所示。Modbus非常便于實(shí)現(xiàn)低級(jí)設(shè)備和高級(jí)設(shè)備之間的通信,它包含3個(gè)獨(dú)特的協(xié)議數(shù)據(jù)單元(Protocol Data Unit,PDU):Modbus請(qǐng)求、Modbus應(yīng)答以及Modbus異常應(yīng)答。Modbus請(qǐng)求中包含功能碼(Function Code)和請(qǐng)求消息(Query Message)。Modbus功能碼有公共功能碼、用戶(hù)定義功能碼和保留功能碼3種類(lèi)型。

圖1-8 Modbus協(xié)議通信模式
在Modbus中,一方扮演主設(shè)備角色,采取主動(dòng)詢(xún)問(wèn)方式,發(fā)送請(qǐng)求消息至從設(shè)備,從設(shè)備依據(jù)接收到的請(qǐng)求消息內(nèi)容準(zhǔn)備響應(yīng)消息并回傳給主設(shè)備。具體使用時(shí),一般SCADA系統(tǒng)和HMI屬于主設(shè)備,PLC、電表、儀表等都為從設(shè)備,SCADA系統(tǒng)和HMI向控制設(shè)備發(fā)送請(qǐng)求消息,控制設(shè)備則返回請(qǐng)求消息所請(qǐng)求的數(shù)據(jù)或要求執(zhí)行的命令的執(zhí)行結(jié)果。
(3)Modbus請(qǐng)求消息及響應(yīng)消息分析
Modbus通過(guò)應(yīng)用層的數(shù)據(jù)報(bào)文實(shí)現(xiàn)各種功能,其中功能碼是Modbus消息幀(報(bào)文)的重要組成部分,是Modbus協(xié)議中通信事務(wù)處理的基礎(chǔ),代表消息將要執(zhí)行的動(dòng)作。Modbus部分功能碼及其具體功能如圖1-9所示。

圖1-9 Modbus部分功能碼及其具體功能
使用Wireshark工具捕獲主從設(shè)備之間的通信消息。主設(shè)備向從設(shè)備發(fā)出請(qǐng)求消息,根據(jù)此請(qǐng)求消息,對(duì)照?qǐng)D1-9可以分析出,其功能碼為0x03,因此其功能為讀保持寄存器,讀取的起始位置為Reference Number對(duì)應(yīng)的值5,讀取的長(zhǎng)度為Word Count對(duì)應(yīng)的值2。請(qǐng)求消息的詳細(xì)信息如圖1-10所示。

圖1-10 Modbus請(qǐng)求消息分析
根據(jù)請(qǐng)求消息,從設(shè)備返回對(duì)應(yīng)的數(shù)據(jù),從5號(hào)保持寄存器開(kāi)始讀兩個(gè)Word,獲取5、6號(hào)保持寄存器的數(shù)值分別為9和24。響應(yīng)消息的詳細(xì)信息如圖1-11所示。

圖1-11 Modbus響應(yīng)消息分析
2.S7COMM協(xié)議
(1)S7COMM協(xié)議的報(bào)文結(jié)構(gòu)及關(guān)鍵參數(shù)
S7COMM協(xié)議指的是以太網(wǎng)S7通信協(xié)議,是西門(mén)子公司為其生產(chǎn)的PLC、SCADA系統(tǒng)等產(chǎn)品之間相互通信而設(shè)計(jì)的專(zhuān)屬私有協(xié)議。應(yīng)用層組織的數(shù)據(jù)經(jīng)過(guò)面向連接的傳輸協(xié)議(Connection Oriented Transport Protocol,COTP)、TPKT協(xié)議的進(jìn)一步處理后,最終通過(guò)TCP進(jìn)行傳輸。S7COMM的報(bào)文結(jié)構(gòu)如圖1-12所示。

圖1-12 S7COMM的報(bào)文結(jié)構(gòu)
S7COMM PDU主要由3個(gè)部分組成。
① 頭(Header):包含長(zhǎng)度信息、PDU參考(PDU Reference)、消息類(lèi)型(Message Type)常量。
② 參數(shù)(Parameter):該部分的內(nèi)容和結(jié)構(gòu)根據(jù)PDU的消息類(lèi)型和功能代碼不同而有很大的差異。
③ 數(shù)據(jù)(Data):這是可選字段,用于攜帶數(shù)據(jù),如內(nèi)存值、塊信息、固件數(shù)據(jù)等。
S7COMM PDU一般包括以下4種類(lèi)型。
① 0x01:JOB,即作業(yè)請(qǐng)求,如讀/寫(xiě)存儲(chǔ)器、讀/寫(xiě)塊、啟動(dòng)/停止設(shè)備。
② 0x02:ACK,即確認(rèn)響應(yīng),是沒(méi)有數(shù)據(jù)的簡(jiǎn)單確認(rèn)。
③ 0x03:ACK_DATA,即確認(rèn)數(shù)據(jù)響應(yīng),一般是響應(yīng)JOB的請(qǐng)求。
④ 0x07:USERDATA,即擴(kuò)展協(xié)議,其參數(shù)字段包含請(qǐng)求/響應(yīng)ID,一般用于編程/調(diào)試、讀取系統(tǒng)狀態(tài)列表、設(shè)置安全功能、設(shè)置時(shí)間等。
(2)S7COMM PDU——USERDATA類(lèi)型
當(dāng)PDU類(lèi)型為USERDATA類(lèi)型時(shí),S7COMM協(xié)議的結(jié)構(gòu)如圖1-13所示。S7COMM的參數(shù)部分:參數(shù)頭字段占3字節(jié),參數(shù)長(zhǎng)度字段占1字節(jié),方法字段占1字節(jié),類(lèi)型字段占1/2字節(jié),功能組字段占1/2字節(jié),子功能碼字段占1字節(jié),序號(hào)字段占1字節(jié)。

圖1-13 USERDATA類(lèi)型的S7COMM協(xié)議的結(jié)構(gòu)
其中,功能組和子功能碼的取值決定了該報(bào)文的功能,功能組字段的取值見(jiàn)表1-2。
表1-2 功能組字段的取值

當(dāng)功能組代碼為0x4,即CPU功能時(shí),子功能碼的取值見(jiàn)表1-3。
(3)S7COMM請(qǐng)求包及響應(yīng)包分析
這里以USERDATA類(lèi)型為例進(jìn)行介紹,通信請(qǐng)求方通過(guò)發(fā)送USERDATA類(lèi)型的數(shù)據(jù)包,實(shí)現(xiàn)讀系統(tǒng)狀態(tài)列表的功能。系統(tǒng)狀態(tài)列表用于描述PLC的當(dāng)前狀態(tài),其內(nèi)容只能讀取不能修改。系列狀態(tài)列表包含了系統(tǒng)數(shù)據(jù)、模塊狀態(tài)數(shù)據(jù)、模塊診斷數(shù)據(jù)和模塊診斷緩沖區(qū)信息。
表1-3 子功能碼的取值

讀系統(tǒng)狀態(tài)列表數(shù)據(jù)請(qǐng)求包需要為功能組和子功能碼配置對(duì)應(yīng)的值,如圖1-14所示,Parameter部分的功能組值為0x4,子功能碼為0x01。

圖1-14 S7COMM讀系統(tǒng)狀態(tài)列表數(shù)據(jù)請(qǐng)求包
S7COMM設(shè)備收到數(shù)據(jù)請(qǐng)求包后會(huì)根據(jù)請(qǐng)求內(nèi)容,返回?cái)?shù)據(jù)響應(yīng)包,可以看到,返回的信息中包含了模塊的序列號(hào)、模塊類(lèi)型ID等信息,如圖1-15所示。在進(jìn)行資產(chǎn)識(shí)別時(shí),該功能能夠提供這些信息以幫助識(shí)別S7COMM設(shè)備的具體型號(hào)。
3.DNP3
DNP3是應(yīng)用于自動(dòng)化組件之間的通信協(xié)議,常見(jiàn)于電力、水處理等行業(yè)。DNP3主要基于TCP/IP,比Modbus協(xié)議更復(fù)雜,在應(yīng)用層實(shí)現(xiàn)了對(duì)傳輸數(shù)據(jù)的分片、校驗(yàn)、控制、優(yōu)先級(jí)設(shè)置等諸多功能,例如SCADA系統(tǒng)可以使用DNP3與主站、RTU等進(jìn)行通信。此外,相較于Modbus協(xié)議,其安全性有所提高,但仍存在缺乏認(rèn)證、缺乏加密等固有問(wèn)題。

圖1-15 S7COMM讀系統(tǒng)狀態(tài)列表數(shù)據(jù)響應(yīng)包
4.IEC系列協(xié)議
IEC系列協(xié)議包括IEC 60870-5-101、IEC 60870-5-104等協(xié)議,是電力行業(yè)的主要工業(yè)控制協(xié)議。IEC系列協(xié)議主要基于TCP/IP,采用平衡傳輸模式,用于調(diào)度主站的應(yīng)急管理系統(tǒng)和子站的RTU等設(shè)備之間的通信,且終端系統(tǒng)不需要特殊的網(wǎng)絡(luò)軟件、路由功能,也無(wú)須進(jìn)行網(wǎng)絡(luò)管理。但I(xiàn)EC系列協(xié)議同樣存在缺乏認(rèn)證、缺乏授權(quán)、缺乏加密等固有問(wèn)題,以及緩沖區(qū)溢出等漏洞。
5.OPC協(xié)議
OPC是一項(xiàng)應(yīng)用于自動(dòng)化行業(yè)及其他行業(yè)的數(shù)據(jù)安全交換可互操作性標(biāo)準(zhǔn),由OPC基金會(huì)負(fù)責(zé)運(yùn)維,同時(shí)也是微軟組件對(duì)象模型(Component Object Model,COM)和分布式組件對(duì)象模型(Distributed Component Object Model,DCOM)接口標(biāo)準(zhǔn)在工業(yè)領(lǐng)域的體現(xiàn)。但當(dāng)其基于Windows操作系統(tǒng)時(shí),容易受到Windows系統(tǒng)已知漏洞、弱口令等問(wèn)題的影響;當(dāng)其基于遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call,RPC)協(xié)議時(shí),則易受到所有RPC協(xié)議相關(guān)漏洞的影響。
- 災(zāi)害預(yù)防和逃生
- 風(fēng)險(xiǎn)分析與安全評(píng)價(jià)(第三版)
- 水利水電工程建設(shè)安全生產(chǎn)政策法規(guī)讀本(上冊(cè))
- 人類(lèi)安全觀的演變及其倫理建構(gòu)
- 班組安全操作規(guī)程100例
- 電力儲(chǔ)能系統(tǒng)安全技術(shù)與應(yīng)用
- 山區(qū)高速公路邊坡施工安全監(jiān)控實(shí)踐
- 安全生產(chǎn)事故隱患排查實(shí)用手冊(cè)
- 天然氣操作技術(shù)與安全管理(第二版)
- 化妝品安全評(píng)價(jià)及檢測(cè)技術(shù)
- 宇宙天演論
- 現(xiàn)代安防技術(shù)設(shè)計(jì)與實(shí)施
- 危機(jī)與防范(和諧中華知識(shí)文庫(kù))
- 安全控制論:安全生產(chǎn)問(wèn)題與出路
- 智慧安監(jiān)實(shí)踐