工業(yè)控制系統(tǒng)應(yīng)用與安全防護(hù)技術(shù)(微課版)課件 第3章 工業(yè)控制系統(tǒng)網(wǎng)絡(luò)協(xié)議_第1頁
工業(yè)控制系統(tǒng)應(yīng)用與安全防護(hù)技術(shù)(微課版)課件 第3章 工業(yè)控制系統(tǒng)網(wǎng)絡(luò)協(xié)議_第2頁
工業(yè)控制系統(tǒng)應(yīng)用與安全防護(hù)技術(shù)(微課版)課件 第3章 工業(yè)控制系統(tǒng)網(wǎng)絡(luò)協(xié)議_第3頁
工業(yè)控制系統(tǒng)應(yīng)用與安全防護(hù)技術(shù)(微課版)課件 第3章 工業(yè)控制系統(tǒng)網(wǎng)絡(luò)協(xié)議_第4頁
工業(yè)控制系統(tǒng)應(yīng)用與安全防護(hù)技術(shù)(微課版)課件 第3章 工業(yè)控制系統(tǒng)網(wǎng)絡(luò)協(xié)議_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

工業(yè)控制系統(tǒng)應(yīng)用與安全防護(hù)技術(shù)第3章

工業(yè)控制系統(tǒng)網(wǎng)絡(luò)協(xié)議工業(yè)控制協(xié)議是溝通ICS組件之間的橋梁,其安全性和穩(wěn)定性關(guān)系到整個ICS系統(tǒng)的安全。工業(yè)控制協(xié)議基于高可靠性和高效率進(jìn)行設(shè)計,互聯(lián)網(wǎng)通信協(xié)議不一定適用于工業(yè)控制系統(tǒng)。在眾多工控協(xié)議中大致可以分為三類:(1)標(biāo)準(zhǔn)協(xié)議。例如Modbus協(xié)議等,這類協(xié)議是國際標(biāo)準(zhǔn)或者被國際所公認(rèn)的協(xié)議。(2)私有但公開協(xié)議。例如三菱的Melsec協(xié)議等,這類協(xié)議一般由廠商提供協(xié)議的官方文檔。(3)私有不公開協(xié)議。例如西門子的S7協(xié)議等。相對于標(biāo)準(zhǔn)協(xié)議和私有公開協(xié)議,其受到的威脅會有所降低。但對于一些私有協(xié)議,同樣也會被破解。因此私有協(xié)議也無法確保安全。工控協(xié)議的安全性也在影響著ICS系統(tǒng)安全。3.1Modbus協(xié)議由于Modbus協(xié)議具有消息幀格式簡單緊湊、協(xié)議標(biāo)準(zhǔn)公開免費、支持多種電氣接口以及基于Modbus進(jìn)行通信程序開發(fā)方便快捷等特點,它已經(jīng)成為工業(yè)自動化領(lǐng)域應(yīng)用最為廣泛的通信協(xié)議。經(jīng)過多年的發(fā)展,Modbus又陸續(xù)推出多個版本:用于串行鏈路中的ModbusRTU和ModbusASCII,MODICON公司專有的經(jīng)過擴(kuò)展的ModbusPlus版本,以及用于以太網(wǎng)通信的ModbusTCP等。3.1.1ModbusTCP協(xié)議概述Modbus協(xié)議由MODICON公司在1979年開發(fā),是全世界首個真正用于工業(yè)現(xiàn)場的總線協(xié)議。Modbus協(xié)議能夠讓不同的工控設(shè)備實現(xiàn)在多種網(wǎng)絡(luò)體系結(jié)構(gòu)中進(jìn)行數(shù)據(jù)交互通信的功能,例如:PLC、HMI、輸入/輸出等多種設(shè)備,使用Modbus協(xié)議進(jìn)行通信,實現(xiàn)遠(yuǎn)程控制操作。在Modbus串行鏈路版本中,Modbus采用主/從架構(gòu),或者說是單客戶端/多服務(wù)器端架構(gòu)。而在ModbusTCP版本中則演變成多客戶端/多服務(wù)器端架構(gòu),即可以有多個主站或者從站??蛻舳讼喈?dāng)于主/從架構(gòu)下的主設(shè)備,而服務(wù)器端相當(dāng)于從設(shè)備。作為主設(shè)備的客戶端向作為從設(shè)備的服務(wù)器端發(fā)送請求報文,服務(wù)器端在收到請求報文后會處理報文并執(zhí)行相關(guān)命令,隨后給客戶端發(fā)送響應(yīng)報文,響應(yīng)報文中包含命令是否執(zhí)行成功或者客戶端所請求的數(shù)據(jù)等信息。按照數(shù)據(jù)包是否為請求報文進(jìn)行劃分,ModbusTCP數(shù)據(jù)報文可以分成三種類型:請求報文、正常響應(yīng)報文、異常響應(yīng)報文。ModbusTCP的請求報文和正常響應(yīng)報文具有相似的幀格式。一次正常的Modbus事務(wù)處理過程:ModbusTCP異常響應(yīng)報文幀格式:一次異常的事務(wù)處理過程:Modbus功能碼是Modbus數(shù)據(jù)報文中最重要的信息,它表示從站設(shè)備要執(zhí)行何種操作等。功能碼在報文中占1字節(jié),它能表示的數(shù)據(jù)范圍為[1,255]。由于Modbus事務(wù)處理發(fā)生異常時,返回的響應(yīng)報文中功能碼等于正常功能碼與0x80之和,因此[128,255]的功能碼不會使用,它僅出現(xiàn)在異常響應(yīng)報文中。有效功能碼范圍為[1,127],又可分成3種類別:公共功能碼、用戶自定義功能碼和保留功能碼。公共功能碼的范圍為[1,64]∪[73,99]∪[111,127],它們具有唯一性,所表示的功能定義明確。公共功能碼主要用于完成線圈/寄存器/離散量的讀寫、設(shè)備診斷和異常響應(yīng)等功能。用戶自定義功能碼的范圍為[65,72]∪[100,110]。用戶根據(jù)自己需要自定義功能碼的功能,這些功能碼不具有唯一性,具體含義取決于使用的用戶。保留功能碼是一些公司對一些歷史產(chǎn)品使用的功能碼,不作為公共碼使用。Modbus協(xié)議中的數(shù)據(jù)類型可以分成4種:線圈、離散量輸入、保持寄存器、輸入寄存器。表3-4描述了這4種數(shù)據(jù)類型的特性。3.1.2ModbusTCP協(xié)議安全性分析ModbusTCP協(xié)議設(shè)計缺陷包括如下5個方面。(1)報文缺乏加密機(jī)制,Modbus數(shù)據(jù)報文采用明文傳輸,攻擊者只要捕獲到數(shù)據(jù)包就能夠輕松解析和篡改報文信息。(2)缺乏認(rèn)證機(jī)制,認(rèn)證主要用來確保接收到的數(shù)據(jù)來自被認(rèn)證的合法用戶,服務(wù)器不會響應(yīng)未被認(rèn)證的用戶發(fā)送的數(shù)據(jù)。(3)缺乏授權(quán)機(jī)制,

Modbus沒有實現(xiàn)基于角色的訪問控制機(jī)制,所有用戶具有相同的權(quán)限,甚至能夠執(zhí)行重要操作。攻擊者只要進(jìn)入到Modbus網(wǎng)絡(luò)內(nèi),就能夠執(zhí)行任意危險的指令,例如重啟Modbus服務(wù)器等。(4)功能碼濫用,ModbusPDU的關(guān)鍵組成部分就是功能碼,功能碼指示接收報文的設(shè)備應(yīng)當(dāng)執(zhí)行何種操作。這使得攻擊者可以濫用功能碼從而構(gòu)造各類數(shù)據(jù)報文,再去實現(xiàn)拒絕服務(wù)攻擊或者竊取系統(tǒng)關(guān)鍵信息等。(5)TCP協(xié)議存在自身設(shè)計上的缺點,攻擊者可以利用這些缺點去構(gòu)造洪泛攻擊等拒絕服務(wù)攻擊。Modbus協(xié)議受到的攻擊主要分為4類:信息掃描攻擊、響應(yīng)注入攻擊、命令注入攻擊、拒絕服務(wù)攻擊等。信息掃描攻擊是黑客實施更危險復(fù)雜的攻擊前的準(zhǔn)備階段,它旨在收集工控系統(tǒng)中的各種網(wǎng)絡(luò)信息,識別工控設(shè)備的各種關(guān)鍵屬性,如設(shè)備廠商、型號、支持的工控協(xié)議、系統(tǒng)合法地址和內(nèi)存映射等,基于這些信息去尋找邊界突破的方法以獲取生產(chǎn)環(huán)境訪問權(quán)限。具體的實現(xiàn)細(xì)節(jié)如下所述:(1)向所有合法的Modbus地址發(fā)送請求,通過Modbus服務(wù)器端發(fā)送的響應(yīng)報文判斷有效的設(shè)備地址;(2)構(gòu)造各種功能碼的請求報文,如果Modbus服務(wù)器端收到不支持的功能碼報文,則會收到一個異常響應(yīng)數(shù)據(jù)包,通過這樣的方法,掃描出哪些Modbus功能碼是可用的;(3)通過Modbus協(xié)議中內(nèi)置的讀設(shè)備標(biāo)識函數(shù)來獲取設(shè)備信息,然后繼續(xù)去匹配可用的漏洞;(4)當(dāng)對Modbus線圈、寄存器進(jìn)行讀寫時,如果地址不合法,則Modbus客戶端會收到一個異常響應(yīng)數(shù)據(jù)包,從而掃描出被攻擊設(shè)備線圈和寄存器的可用地址范圍。響應(yīng)注入攻擊是指通過捕獲工控系統(tǒng)內(nèi)的Modbus響應(yīng)數(shù)據(jù)包,然后惡意篡改數(shù)據(jù)包內(nèi)容(例如使系統(tǒng)測量值為非法數(shù)據(jù)類型或者超出合法范圍等),再注入到工控系統(tǒng)的一種攻擊方式。這種攻擊方式可以欺騙系統(tǒng)操作員或者導(dǎo)致工控系統(tǒng)做出錯誤的反應(yīng)。命令注入攻擊是指向工控系統(tǒng)中注入錯誤控制或配置指令。例如利用工控系統(tǒng)漏洞注入惡意命令,破壞從設(shè)備的工作狀態(tài),使其由正常工作狀態(tài)轉(zhuǎn)變成危險的臨界狀態(tài)。注入惡意參數(shù)命令以修改工控系統(tǒng)內(nèi)的某些關(guān)鍵參數(shù),這些參數(shù)可以是水箱水位、管道壓強(qiáng)等,從而使工控系統(tǒng)或從設(shè)備工作異常。注入惡意功能碼,控制工控系統(tǒng)去執(zhí)行某些特定操作,從而導(dǎo)致Modbus服務(wù)器重啟、或者停止傳輸消息等,以此達(dá)到攻擊目的。拒絕服務(wù)攻擊是指通過大量合法或者偽造的請求去占用被攻擊設(shè)備的帶寬或者系統(tǒng)資源,使得其無法正常工作的一種攻擊方式。對于ModbusTCP來說,主要包括TCPFIN洪泛攻擊、TCPRST洪泛攻擊、TCP連接池耗盡等。3.1.3ModbusTCP協(xié)議安全防護(hù)技術(shù)為了針對性地解決Modbus通信協(xié)議中的安全威脅,需從協(xié)議設(shè)計階段、開發(fā)階段、測試與部署階段分段實施Modbus安全防護(hù)。例如,在協(xié)議設(shè)計階段,可融入異常行為預(yù)警功能。該功能可對工控系統(tǒng)的每次操作行為子屬性進(jìn)行掃描分析,并綜合各子屬性的安全等級,最終通過子決策融合實現(xiàn)單次操作行為的綜合判定。對于異常行為,可采用報警觸發(fā)或?qū)嵗涗浀仁侄危瑢崿F(xiàn)安全威脅預(yù)警。在線下階段,可利用每次預(yù)警的實例記錄組建綜合的異常操作數(shù)據(jù)庫,對數(shù)據(jù)庫中單次操作進(jìn)行深度解碼分析,輸出預(yù)警系統(tǒng)的虛警率、漏警率、預(yù)警率。這些綜合指標(biāo)可反映預(yù)警安全防護(hù)系統(tǒng)的性能,同時可反向地指導(dǎo)預(yù)警安全防護(hù)系統(tǒng)檢測標(biāo)準(zhǔn)的改進(jìn)。利用該協(xié)議操作數(shù)據(jù)庫可使得工控系統(tǒng)中發(fā)生的安全事件具有可追查性。深度包檢測技術(shù)是一種基于應(yīng)用層的流量檢測和控制技術(shù),當(dāng)IP數(shù)據(jù)包、TCP或UDP數(shù)據(jù)流通過基于該技術(shù)的帶寬管理系統(tǒng)時,該系統(tǒng)會深入讀取IP包載荷的內(nèi)容,對OSI七層協(xié)議中的應(yīng)用層信息進(jìn)行重組,從而得到整個應(yīng)用程序的內(nèi)容,然后按照系統(tǒng)定義的管理策略對流量進(jìn)行整形操作。為了保障ModbusTCP協(xié)議在工業(yè)控制網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)陌踩?,可建立基于深度包檢測技術(shù)的防護(hù)模型。防護(hù)模型包括身份合法性檢測、協(xié)議完整性檢測、功能碼使用安全性檢測等組成模塊。其中,身份合法性檢測模塊通過對訪問地址的解析判斷訪問者身份的合法性;協(xié)議完整性檢測模塊則通過對ModbusTCP協(xié)議特征的解析判斷數(shù)據(jù)包的規(guī)范性;功能碼使用安全性檢測基于對ModbusTCP數(shù)據(jù)報文中功能碼和數(shù)據(jù)的解析,以及對應(yīng)用戶授權(quán)的操作行為判斷操作的合法性。身份合法性檢測的功能主要包括數(shù)據(jù)鏈路層檢測和網(wǎng)絡(luò)層檢測。數(shù)據(jù)鏈路層檢測通過對數(shù)據(jù)包源MAC地址和目的MAC地址的解析和過濾可以阻斷非法設(shè)備的訪問,網(wǎng)絡(luò)層檢測則通過解析數(shù)據(jù)包中的源IP和目的IP以保護(hù)合法的IP訪問順利進(jìn)行。協(xié)議完整性檢測的功能主要包括端口檢測、協(xié)議標(biāo)識符檢測和超長數(shù)據(jù)報文檢測。端口檢測通過解析數(shù)據(jù)報文的源端口和目的端口是否為502來識別ModbusTCP報文,協(xié)議標(biāo)識符檢測則通過解析協(xié)議標(biāo)識符是否為0X0000判斷ModbusTCP數(shù)據(jù),同時對數(shù)據(jù)報文的長度進(jìn)行檢測,若數(shù)據(jù)載荷過長則判斷報文為惡意構(gòu)造的數(shù)據(jù)包。在功能碼的使用安全性檢測中,可以設(shè)置訪問控制規(guī)則,允許符合規(guī)則的ModbusTCP數(shù)據(jù)報文通過,不符合的數(shù)據(jù)報文則丟棄。其內(nèi)容應(yīng)包括功能碼、地址范圍、閾值范圍,并且是基于白名單的工作機(jī)制,以限制主站對從站的訪問。例如:白名單規(guī)則:Pass[功能碼:15][地址范圍:5-9][閾值范圍:50-100],默認(rèn)規(guī)則:全部禁止。3.2PROFINET協(xié)議PROFINET是由PROFIBUS國際組織在2000年提出并于4年后構(gòu)建起來的一套全面的標(biāo)準(zhǔn),包含安裝技術(shù)、實時通信、分布式現(xiàn)場設(shè)備、分布式智能以及運動控制等。依據(jù)應(yīng)用場景不同,PROFINET應(yīng)用可分為兩種類型:PROFINETIO,用于集成分布式IO,支持分布式現(xiàn)場設(shè)備直接接入以太網(wǎng);PROFINETCBA,用于在分布式自動化中創(chuàng)建模塊化設(shè)備系統(tǒng)。PROFINET通信分為三個等級,可以在一根電纜上提供適應(yīng)各種類型設(shè)備的3種通信信道:TCP/IP、實時通信(Real-Time,RT)和等時同步實時通信(IsochronousReal-Time,IRT)。3.2.1PROFINET-RT1.協(xié)議概述實時,表示系統(tǒng)在一個確定的時間內(nèi)處理外部事件。確定性,表示系統(tǒng)有一個可預(yù)知的響應(yīng)。因此,實時通信的一般要求是確定性的響應(yīng)和標(biāo)準(zhǔn)應(yīng)用的響應(yīng)時間小于等于5ms。使用標(biāo)準(zhǔn)的通信協(xié)議TCP/IP或UDP/IP是實現(xiàn)實時通信的一種方法,然而使用它們會存在相應(yīng)的缺點:當(dāng)幀過載時,幀的長度會增加,從而引起線路上傳輸時間的增加。此外,由于標(biāo)準(zhǔn)通信協(xié)議分層較多,占用處理器的計算時間會相對較長,從而導(dǎo)致發(fā)送周期增加。PROFINET使用優(yōu)化的通道進(jìn)行實時通信,該通道基于ISO/OSI參考模型的第二層。此外,數(shù)據(jù)包使用接收設(shè)備的MAC地址進(jìn)行尋址,在放棄了路由功能的代價下保證了工業(yè)控制系統(tǒng)網(wǎng)絡(luò)中的不同站點能夠在可預(yù)見的時間間隔內(nèi)傳輸時間要求嚴(yán)格的數(shù)據(jù)。2.通信流程在PROFINETIO應(yīng)用中,實時信號主要分為周期I/O數(shù)據(jù)和警報信號(非周期)。系統(tǒng)啟動之后,己配置好的IO控制器和IO設(shè)備之間開始周期性的數(shù)據(jù)交換。每條I/O數(shù)據(jù)(RTC:實時周期)都包含兩種屬性:IO供應(yīng)者狀態(tài)(IOProviderStatus,IOPS)和IO消費者狀態(tài)(IOConsumerStatus,IOCS)。IO控制器和IO設(shè)備依次評估傳輸?shù)馁|(zhì)量。3.協(xié)議結(jié)構(gòu)PROFINET-RT通信協(xié)議是在EthernetII標(biāo)準(zhǔn)報文的基礎(chǔ)上,加入了IEEE802.1Q標(biāo)簽頭以及PROFINET-RT專有數(shù)據(jù)。PRE表示前導(dǎo)碼,代表數(shù)據(jù)包的開始部分,由7個字節(jié)的1和0交替的二進(jìn)制序列構(gòu)成,用于接收器同步。SFD表示幀開始定界符。DST和SRC分別代表目的MAC地址和源MAC地址,MAC地址中前三字節(jié)用于標(biāo)識制造商。VLAN包括4部分。其中TPID為一個特定的值0x8100,表明緊隨其后的是VLAN標(biāo)簽協(xié)議標(biāo)識符。Priority占用3位,代表幀的優(yōu)先級,此優(yōu)先級可以設(shè)置0x00至0x07的優(yōu)先級別,數(shù)值越大代表的優(yōu)先級越高,PROFINET-RT幀結(jié)構(gòu)的優(yōu)先級一般為0x06;CFI占用1位,值為0說明是規(guī)范格式,1為非規(guī)范格式;VID是一個12位的域,指明VLAN的ID,每個支持802.1Q協(xié)議的交換機(jī)發(fā)送出來的數(shù)據(jù)包都會包含這個域。EthType代表以太網(wǎng)類型,PROFINET實時數(shù)據(jù)釆用0x8892。Data部分在PROFINETIO中表示I/O數(shù)據(jù),如果實時幀的長度小于64Byte,則PROFINET實時數(shù)據(jù)的長度必須擴(kuò)展到最少40Byte,最長為1440Byte。APDU表示PROFINET實時數(shù)據(jù)幀的狀態(tài),由三部分組成。具體的取值及含義如表3-6所示。CycleCount表示周期計數(shù)器,每經(jīng)過一個發(fā)送周期,計數(shù)器的值增加1。DataStatus代表傳輸?shù)臄?shù)據(jù)狀態(tài),每一位都有其固定含義,例如標(biāo)識通道、數(shù)據(jù)有效性、問題指示器等。TransferStatus代表傳輸狀態(tài),取值為固定值0。FCS為幀檢驗序列。3.2.2PROFINET-DCP1.協(xié)議概述

PROFINET-DCP為發(fā)現(xiàn)和基本配置協(xié)議,由PROFINET協(xié)議簇定義,協(xié)議結(jié)構(gòu)與PROFINET-RT相似,尋址方式、EtherType取值和PROFINET-RT信號相同,但在PROFINETIO中被分類為標(biāo)準(zhǔn)數(shù)據(jù)。PROFINET-DCP是以太網(wǎng)鏈路層協(xié)議并提供多種服務(wù)。它用來發(fā)現(xiàn)、識別和配置設(shè)備信息,例如PROFINET設(shè)備名稱和IP地址。每個PROFINET設(shè)備分配一個唯一的基于域名系統(tǒng)(DNS)命名約定的設(shè)備名稱和一個IP地址。2.通信流程發(fā)現(xiàn)和基本配置協(xié)議PROFINET-DCP是系統(tǒng)初始化時的重要協(xié)議之一,主要負(fù)責(zé)分配設(shè)備名稱、IP地址。1)給IO設(shè)備分配名稱在系統(tǒng)開始工作之前,IO設(shè)備必須被分配名稱,分配名稱過程一般由IO監(jiān)視器完成。在運行期間名稱是IO設(shè)備的標(biāo)識,且可以由用戶按一定規(guī)則選擇。名稱也可以由IO控制器給IO設(shè)備分配。分配設(shè)備名稱分為三個階段:

(1)識別請求:IO監(jiān)視器或IO控制器以名稱為標(biāo)識搜索設(shè)備。

(2)設(shè)置請求:當(dāng)檢測設(shè)備名稱但無回應(yīng)時,向IO設(shè)備寫入設(shè)備名稱。

(3)設(shè)置響應(yīng):對設(shè)置請求的確認(rèn)。使用PROFINET-DCP分配設(shè)備名稱的序列:2)給IO設(shè)備分配IP地址

在系統(tǒng)啟動階段,IO控制器為IO設(shè)備分配一個IP地址,分配設(shè)備地址分為五個階段:

(1)識別請求:IO控制器或IO監(jiān)視器依據(jù)設(shè)備名稱搜索設(shè)備。

(2)請求響應(yīng):表示己搜索到設(shè)備。

(3)地址解析請求:確認(rèn)IP地址與設(shè)備MAC地址的對應(yīng)關(guān)系。

(4)設(shè)置請求:向IO設(shè)備寫入IP地址、網(wǎng)關(guān)地址等。

(5)設(shè)置響應(yīng):設(shè)置請求的確認(rèn)。使用PROFINET-DCP分配設(shè)備IP的序列如圖3-12所示。在DCP_Set正確接收之后,IO控制器與IO設(shè)備之間建立應(yīng)用關(guān)系(ApplicationRelations,AR),建立成功后開始傳輸IO數(shù)據(jù)。3.協(xié)議結(jié)構(gòu)PROFINET-DCP的幀結(jié)構(gòu)(不包括前導(dǎo)碼和幀開始標(biāo)志):圖中DST和SRC分別代表目的MAC地址和源MAC地址。與PROFINET實時信號相同,EtherType字段取值為0x8892。FrameID代表傳輸?shù)膶崟r數(shù)據(jù)幀的類型,對于PROFINET-DCP,F(xiàn)rameID取值處于0xFEFD~0xFEFF之間。對于一些有優(yōu)先級要求的數(shù)據(jù)報文,源地址SRC和以太網(wǎng)類型EtherType字段之間,按照IEEE802.1Q規(guī)范被分配傳輸優(yōu)先級,存儲在VLAN標(biāo)簽中。Xid代表交換標(biāo)識,為一個4字節(jié)的隨機(jī)數(shù),一般情況下請求和響應(yīng)的Xid相同。Reversed代表保留位,取值為0。Vlen代表其后Block的長度。ServiceID和ServiceType以及Block決定了報文的具體操作內(nèi)容。與PROFINET-RT信號相比,取消了末尾的APDU和FCS字段。4.字段詳解PROFINET-DCP協(xié)議的大部分字段都有固定取值范圍和意義。DCPGet即ServiceID取值為0x03,為單播的一種報文,用來從設(shè)備中讀取相關(guān)信息。例如通過配置或診斷工具可以讀取設(shè)備名稱、設(shè)備IP、設(shè)備制造商信息以及供應(yīng)商ID、設(shè)備ID、設(shè)備角色(控制器或設(shè)備)等等。DCPSet即ServiceID取值為0x04,為單播的一種報文,用來設(shè)置設(shè)備名稱或設(shè)備IP。設(shè)備名稱可以設(shè)置為保持型名稱或臨時型名稱。保持型名稱在設(shè)備斷電后依然保留(默認(rèn)情況下為保持型);臨時型名稱在設(shè)備斷電后即返回到默認(rèn)值。DCPIdentify即ServiceID取值為0x05,為多播的一種報文,用來使用特定的設(shè)備名稱以便在網(wǎng)絡(luò)上尋找對應(yīng)的設(shè)備。DCPHello即ServiceID取值為0x06,為多播的一種報文。當(dāng)在設(shè)備上使用并啟用快速啟動時,可以使用DCPHello服務(wù)。它不是使設(shè)備在斷電重啟后等待控制器找到它,而是通知控制器此設(shè)備已重新在線,從而縮短啟動時間。ServiceID代表服務(wù)類型,ServiceType代表報文的狀態(tài),例如請求或響應(yīng)成功以及響應(yīng)失敗。Block中保存著數(shù)據(jù)報文傳輸?shù)木唧w信息,每一個報文可以包含多個Block,每個Block中可以包含多個選項Option和子選項Suboption,每一對都有其具體含義。1)IP相關(guān)信息(0x01)Option取值為0x01時表示傳輸IP相關(guān)信息。2)設(shè)備相關(guān)信息(0x02)

當(dāng)Option取值為0x02時,表示傳輸?shù)氖窃O(shè)備相關(guān)信息,包括工廠自定義信息、設(shè)備ID、設(shè)備角色(控制端或被控制端)等。Suboption取值及其對應(yīng)關(guān)系如表3-10所示。3)動態(tài)主機(jī)相關(guān)信息(0x03)Option取值為0x03時代表傳輸?shù)氖莿討B(tài)主機(jī)配置相關(guān)信息,包括主機(jī)名、供應(yīng)商信息、服務(wù)端標(biāo)識、請求參數(shù)列表等。4)控制相關(guān)信息(0x05)Option取值為0x05時代表傳輸?shù)氖强刂葡嚓P(guān)信息,包括啟動傳輸、終止傳輸、重置到出廠設(shè)定、信號標(biāo)識、響應(yīng)信息等。

5)設(shè)備主動發(fā)起信息(0x06)

Option取值為0x06時代表傳輸?shù)氖窃O(shè)備主動傳輸?shù)男畔?,Suboption只開放了0x01。

6)所有信息(0xff)

Option取值為0xff代表獲取設(shè)備的所有信息,此時Suboption取值也為0xff。3.2.3PROFINET安全性分析一般早期工業(yè)控制系統(tǒng)都是與IT網(wǎng)絡(luò)相互隔離,因此大部分應(yīng)用于工控系統(tǒng)的協(xié)議都沒有考慮安全性問題。與其他應(yīng)用在工業(yè)控制系統(tǒng)中的通信協(xié)議一樣,PROFINET協(xié)議缺乏認(rèn)證、授權(quán)和加密等安全機(jī)制。除了工控協(xié)議的常見安全問題之外,PROFINET-DCP協(xié)議中的服務(wù)ID與服務(wù)類型成為主要的攻擊目標(biāo)。ServiceID和ServiceType是PROFINET-DCP的重要組成部分,在使用過程中,ServiceID和ServiceType雖然僅開放了其中的一小部分,但仍具有一定的潛在脆弱性。對于PROFINET應(yīng)用系統(tǒng)中常見的異常行為總結(jié)下:3.2.4PROFINET安全防護(hù)技術(shù)PROFINET的一個重要特征就是可以同時傳遞實時數(shù)據(jù)和標(biāo)準(zhǔn)的TCP/IP數(shù)據(jù)。在其傳遞TCP/IP數(shù)據(jù)的公共通道中,各種經(jīng)過驗證的IT技術(shù)都可以使用(如HTTP、HTML、SNMP、DHCP和XML等)。在使用PROFINET的時候,可以通過使用這些IT標(biāo)準(zhǔn)服務(wù)加強(qiáng)對整個網(wǎng)絡(luò)的管理和維護(hù),這有利于在調(diào)試和維護(hù)中節(jié)省成本。PROFINET實現(xiàn)了從現(xiàn)場級到管理層的縱向通訊集成。一方面,方便管理層獲取現(xiàn)場級的數(shù)據(jù),另一方面,原本在管理層存在的數(shù)據(jù)安全性問題也延伸到了現(xiàn)場級。為了保證現(xiàn)場級控制數(shù)據(jù)的安全,PROFINET提供了特有的安全機(jī)制,通過使用專用的安全模塊,可以保護(hù)自動化控制系統(tǒng),使自動化通訊網(wǎng)絡(luò)的安全風(fēng)險最小化。PROFIsafe是由PROFIBUS國際組織提出的加載在PROFIBUS和PROFINET通信協(xié)議基礎(chǔ)上的功能安全通信行規(guī),符合IEC61508(《電氣/電子/可編程電子安全相關(guān)系統(tǒng)的功能安全》)功能安全國際標(biāo)準(zhǔn),滿足SIL3等級的故障安全,很好地保證了整個系統(tǒng)的安全。PROFIsafe使標(biāo)準(zhǔn)現(xiàn)場總線技術(shù)和故障安全技術(shù)合為一個系統(tǒng),即故障安全通信和標(biāo)準(zhǔn)通信在同一根電纜上共存,安全通信不通過冗余電纜來實現(xiàn)。這不僅在布線上和品種多樣性方面可以節(jié)約成本,而且也方便日后系統(tǒng)的改造。采用PROFIsafe既可使用單總線結(jié)構(gòu)也可根據(jù)要求采用標(biāo)準(zhǔn)總線和安全總線分開的結(jié)構(gòu)。與標(biāo)準(zhǔn)ROFIBUS相比,標(biāo)準(zhǔn)通信部件,如電纜、專用芯片、堆棧軟件等等,無任何變化;簡化了設(shè)備、工程設(shè)計和安裝成本,既可用于低能耗的過程自動化,又可用于反應(yīng)迅速的制造業(yè)自動化。此外,PROFIsafe還采用了SIL-Monitor專利技術(shù),借助SIL-Monitor,系統(tǒng)能夠在故障率超過一定限度之前即采取有效的安全保護(hù)措施,從而避免系統(tǒng)出現(xiàn)危險故障。PROFIsafe通過一系列的現(xiàn)場案例證明系統(tǒng)的靈活性,同時可滿足工業(yè)4.0中的柔性化生產(chǎn)需求。3.3SiemensS7協(xié)議西門子PLC使用私有協(xié)議進(jìn)行通信,端口為102。西門子PLC協(xié)議有3個版本:S7Comm協(xié)議、早期S7Comm-Plus協(xié)議和最新的S7Comm-Plus協(xié)議。S7-200、S7-300、S7-400系列的PLC采用早期的西門子私有協(xié)議S7comm進(jìn)行通信,S7-1200系列v3.0版本之前的通信協(xié)議采用早期S7Comm-Plus協(xié)議,S7-1200系列v4.0版本、S7-1500系列采用了最新的S7Comm-Plus協(xié)議,最新的S7Comm-Plus協(xié)議引入了會話ID來防止重放攻擊,且對關(guān)鍵流量有加密處理。3.3.1SiemensS7協(xié)議概述S7comm通信協(xié)議是西門子的私有協(xié)議,主要應(yīng)用于西門子S7系列的PLC設(shè)備上,幫助西門子設(shè)備之間交換數(shù)據(jù)。S7comm是一個主從協(xié)議,現(xiàn)場PLC設(shè)備一般作為從站,裝有上位機(jī)軟件的PC是作為主站,主站向從站發(fā)送請求數(shù)據(jù)。S7comm協(xié)議也是根據(jù)TCP/IP協(xié)議棧實現(xiàn)的,屬于OSI七層模型中的應(yīng)用層協(xié)議。其中,低四層主要完成底層驅(qū)動程序。第五層TPKT層,是用來在第四層和第六層之間建立紐帶作用的應(yīng)用數(shù)據(jù)傳輸服務(wù)協(xié)議。第六層是COTP層,是位于TCP之上的協(xié)議,以“包”為基本單位傳輸數(shù)據(jù),使得接收方獲得和發(fā)送方具有相同邊界的數(shù)據(jù)。第七層S7communication層對應(yīng)于應(yīng)用層,該層主要封裝用戶執(zhí)行操作的數(shù)據(jù)。S7通信協(xié)議包前面封裝COTP頭,再接著封裝TPKT頭,數(shù)據(jù)包打包完成后通過TCP建立連接進(jìn)行傳輸。S7comm是私有協(xié)議,可以使用Wireshark抓包工具來分析S7comm報文的格式及通信過程。Wireshark是一款網(wǎng)絡(luò)分析工具,可以抓取網(wǎng)絡(luò)中的通信流量,并能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包信息。1)TPKT協(xié)議格式分析S7comm協(xié)議在通信傳輸過程中是被封裝在COTP協(xié)議中的,而COTP協(xié)議又被封裝在TPKT(ISOtransportservicesontopoftheTCP)協(xié)議中。2)COTP協(xié)議格式分析COTP協(xié)議數(shù)據(jù)包包括ConnectionPacket和FunctionPacket兩種形式。其中,ConnectionPacket又分為ConnectionRequestionPacket和ConnectionConfirmPacket兩種。在COTP數(shù)據(jù)包中Payload和Trailer部分均可能為0,并且只有在Type字段為0xf0時,OPT字段才存在,Type字段的含義如表3-15所示。通過對數(shù)據(jù)報文的分析得出COTP協(xié)議的ConnectionPacket和FunctionPacket報文格式如下。3.3.2SiemensS7協(xié)議脆弱性分析目前存在針對西門子工業(yè)控制系統(tǒng)的攻擊方式主要包括:IP欺騙、服務(wù)拒絕(DoS)攻擊、TCPSYNFlood攻擊、Land攻擊、ICMPSmurf攻擊、PingofDeath攻擊、UDPFlood攻擊、Teardrop攻擊、中間人攻擊、重放攻擊等。中間人攻擊和重放攻擊是兩種常見的攻擊方式。1.中間人攻擊中間人攻擊(Man-in-the-MiddleAttack,簡稱MITM攻擊)是一種間接的入侵攻擊,這種攻擊模式是通過各種技術(shù)手段將受入侵者控制的一臺計算機(jī)虛擬放置在網(wǎng)絡(luò)連接中的兩臺通信計算機(jī)之間,這臺計算機(jī)就稱為“中間人”。中間人攻擊中有兩個受害者,分別為上位機(jī)和PLC。中間人在雙方都不知情的情況下實施攻擊,攻擊對象是經(jīng)過中間人傳送的上位機(jī)和PLC的傳輸內(nèi)容。傳輸內(nèi)容被中間人截獲,如果截獲信息中有用戶名和密碼,危害就會更大,而且中間人攻擊不會損害兩者之間的通訊。2.重放攻擊重放攻擊(ReplayAttacks)又稱重播攻擊、回放攻擊,是指攻擊者發(fā)送一個目的主機(jī)已接收過的包,來達(dá)到欺騙系統(tǒng)的目的,主要用于身份認(rèn)證過程,破壞認(rèn)證的正確性。在工控系統(tǒng)中的重放攻擊利用了S7協(xié)議缺乏認(rèn)證的脆弱性問題,將上位機(jī)軟件編譯好的程序重新下裝到PLC機(jī)器中。把以前竊聽到的數(shù)據(jù)原封不動地重新發(fā)送給接收方。很多時候,網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是加密過的,此時竊聽者無法得到數(shù)據(jù)的準(zhǔn)確意義。但如果知道這些數(shù)據(jù)的作用,就可以在不知道數(shù)據(jù)內(nèi)容的情況下通過再次發(fā)送這些數(shù)據(jù)達(dá)到欺騙接收端的目的。3.3.3SiemensS7協(xié)議安全防護(hù)技術(shù)在目前工控系統(tǒng)網(wǎng)絡(luò)安全形勢下,加強(qiáng)安全防護(hù)顯得更為重要。通過對工控網(wǎng)絡(luò)流量、工控主機(jī)狀態(tài)等進(jìn)行監(jiān)控,收集并分析工控網(wǎng)絡(luò)數(shù)據(jù)及軟件運行狀態(tài),建立工控系統(tǒng)正常工作環(huán)境下的安全狀態(tài)基線和模型,全面構(gòu)筑工控安全技術(shù)體系,進(jìn)而保障西門子工業(yè)控制系統(tǒng)的穩(wěn)定運行。進(jìn)一步加強(qiáng)工控系統(tǒng)安全防護(hù)措施如下:1)區(qū)域邊界訪問控制在生產(chǎn)網(wǎng)上位機(jī)與PLC設(shè)備之間部署工業(yè)防火墻,實現(xiàn)S7等工業(yè)控制協(xié)議的識別與深度解析,實時攔截非法指令和惡意指令下發(fā)等不法行為。在工業(yè)現(xiàn)場生產(chǎn)業(yè)務(wù)固化后,通過工業(yè)防火墻智能學(xué)習(xí)功能固化安全防護(hù)策略,使之更加符合生產(chǎn)業(yè)務(wù)需求。結(jié)合工業(yè)防火墻硬件級安全策略寫保護(hù)特性功能,實現(xiàn)安全策略只讀權(quán)限的物理級控制。強(qiáng)化對西門子工業(yè)控制系統(tǒng)的邊界隔離與防護(hù),確??刂葡到y(tǒng)的持續(xù)穩(wěn)定運行。2)工控主機(jī)安全防護(hù)與加固在生產(chǎn)網(wǎng)工控主機(jī)上部署工控安全防護(hù)軟件,通過白名單技術(shù)、漏洞防御、安全基線及外設(shè)管控等技術(shù)措施實現(xiàn)對工控主機(jī)的安全防護(hù)與加固,杜絕重放攻擊、中間人攻擊等攻擊手段危害生產(chǎn)業(yè)務(wù)安全。3)生產(chǎn)網(wǎng)絡(luò)流量監(jiān)測及預(yù)警在生產(chǎn)網(wǎng)內(nèi)部關(guān)鍵網(wǎng)絡(luò)節(jié)點處旁路部署工控安全監(jiān)測與審計系統(tǒng),實時檢測針對S7協(xié)議的網(wǎng)絡(luò)攻擊、用戶誤操作、用戶違規(guī)操作、非法設(shè)備接入以及蠕蟲、病毒等惡意軟件的傳播并實時報警,同時有效記錄一切網(wǎng)絡(luò)通信行為。4)統(tǒng)一安全管控構(gòu)建安全管理中心并部署統(tǒng)一安全管理平臺,對生產(chǎn)網(wǎng)絡(luò)中部署的工業(yè)防火墻、工控安全防護(hù)軟件、工控安全監(jiān)測與審計系統(tǒng)等工控安全設(shè)備進(jìn)行集中管控;同時統(tǒng)一安全管理平臺兼?zhèn)浠谫Y產(chǎn)的集中管理功能,有效幫助運維人員提升網(wǎng)絡(luò)安全運維工作效率,降低安全運維成本。3.4DNP3協(xié)議DNP(DistributedNetworkProtocol,分布式網(wǎng)絡(luò)協(xié)議)是一種應(yīng)用于自動化組件之間的通訊協(xié)議,常見于電力、水處理等行業(yè)。DNP協(xié)議標(biāo)準(zhǔn)主要為了解決SCADA行業(yè)中協(xié)議混雜、沒有公認(rèn)標(biāo)準(zhǔn)的問題。SCADA可以使用DNP協(xié)議與主站、RTU及IED進(jìn)行通訊。DNP協(xié)議有一定的可靠性,這種可靠性可以用來對抗惡劣環(huán)境中產(chǎn)生的電磁干擾、元件老化等信號失真現(xiàn)象,但不保證在黑客的攻擊下、或者惡意破壞控制系統(tǒng)的情況下的可靠性。DNP協(xié)議提供了對數(shù)據(jù)的分片、重組、數(shù)據(jù)校驗、鏈路控制、優(yōu)先級等一系列的服務(wù),在協(xié)議中大量使用了CRC校驗來保證數(shù)據(jù)的準(zhǔn)確性。3.4.1DNP3協(xié)議概述DNP3協(xié)議層是基于IEC60870-5標(biāo)準(zhǔn)的增強(qiáng)型性能架構(gòu)(EPA)。但是,DNP3協(xié)議引入了一個稱為“偽傳輸層”的“透明”層,作為現(xiàn)有EPA結(jié)構(gòu)的附加層。因此,DNP3協(xié)議由應(yīng)用層、偽傳輸層、數(shù)據(jù)鏈路層和物理層組成。各層功能如下:(1)應(yīng)用層:該層主要負(fù)責(zé)為用戶提供訪問應(yīng)用進(jìn)程的服務(wù),其報文形式參考IEC60870標(biāo)準(zhǔn)定義的數(shù)據(jù)報文格式。(2)偽傳輸層:該層的主要功能是對應(yīng)用層數(shù)據(jù)包進(jìn)行處理,將輸入的數(shù)據(jù)分解,以數(shù)據(jù)塊為單位傳送給鏈路層。(3)數(shù)據(jù)鏈路層:該層主要負(fù)責(zé)將應(yīng)用層數(shù)據(jù)分成多個有序的傳輸數(shù)據(jù)單元,并將每個數(shù)據(jù)單元傳送到鏈路充當(dāng)鏈路層數(shù)據(jù)。(4)物理層:為鏈路層提供基本服務(wù)以及相應(yīng)的接口。DNP3可以通過TCP/UDP進(jìn)行封裝,以便在以太網(wǎng)上運行,支持DNP3協(xié)議的從設(shè)備會開放TCP的20000端口用于通信。DNP3在主站會話上需要約定目的地址、源地址,而從設(shè)備收到后需要驗證目的地址,再進(jìn)行處理,如果目的地址不相同則會根據(jù)在協(xié)議棧實現(xiàn)的處理來決定是否不響應(yīng)和關(guān)閉連接,或者返回異常功能報文等。1.應(yīng)用層結(jié)構(gòu)應(yīng)用層數(shù)據(jù)單元APDU包含了報文頭、對象標(biāo)題和數(shù)據(jù),其結(jié)構(gòu)如表3-16所示。報文頭:表示了報文的目的,其中包含了應(yīng)用協(xié)議控制信息(APCI),可分為請求報文頭和響應(yīng)報文頭;對象標(biāo)題:表示隨后的數(shù)據(jù)對象;數(shù)據(jù):表示對象標(biāo)題指定的數(shù)據(jù)對象類型。1)應(yīng)用層報文頭在應(yīng)用層中,應(yīng)用層報頭APCI包含請求報文和響應(yīng)報文。APCI負(fù)責(zé)主從站之間傳輸報文的順序與流向,以及控制應(yīng)用服務(wù)數(shù)據(jù)單元(ASDU)。在APCI部分,從站響應(yīng)報文包含了2個字節(jié)的內(nèi)部信號標(biāo)志(InternalIndications,IIN),而主站請求報文沒有此標(biāo)志。

應(yīng)用控制字節(jié)(AC)包含1個字節(jié),它表示構(gòu)造分段報文的基本信息。FIN:尾包標(biāo)志,值為1時,表示整個報文的最后一個分段;FIR:首包標(biāo)志,值為1時,表示整個報文的第一個分段;CON:確認(rèn)標(biāo)志,值為1時,需要接收方給予確認(rèn);序號:表示分段序號。應(yīng)用層功能碼(FC)包含1個字節(jié),它表示請求/響應(yīng)報文的目的。2)應(yīng)用層對象標(biāo)題(ObjectHeader)DNP3應(yīng)用層對象標(biāo)題表示報文中的數(shù)據(jù),具體的含義要取決于報文中的功能碼字段。無論是請求報文還是響應(yīng)報文,對象標(biāo)題的格式?jīng)]有變化。對象:包含2個字節(jié),表示指定對象以及后面對象的變化。限定詞:包含1個字節(jié),規(guī)定后面變程的意義。變程:包含0-8個字節(jié),表示對象的數(shù)量。2.偽傳輸層結(jié)構(gòu)偽傳輸層的功能是將應(yīng)用層數(shù)據(jù)分成多個有序的傳輸數(shù)據(jù)單元(TPDU),并將每個TPDU送到鏈路層充當(dāng)鏈路層數(shù)據(jù)。偽傳輸層對于數(shù)據(jù)鏈路層來說執(zhí)行了傳輸功能,如圖3-21所示。TH:包含1個字節(jié),傳輸控制字;UserData:包含1-249個字節(jié),用戶數(shù)據(jù)塊。應(yīng)用層數(shù)據(jù)的大小是可變的,當(dāng)應(yīng)用層發(fā)送的數(shù)據(jù)大于249字節(jié)時,偽傳輸層的功能是將大于249字節(jié)的數(shù)據(jù)分成多個數(shù)據(jù)塊進(jìn)行傳送,并在每個數(shù)據(jù)塊前面加入1個字節(jié)的傳輸層報文頭(TH)。其中傳輸報文頭部分結(jié)構(gòu)包含1個字節(jié),結(jié)構(gòu)由以下三段組成:FIN:尾包標(biāo)志,值為1時,表示數(shù)據(jù)塊為最后一幀;FIR:首包標(biāo)志,值為1時,表示數(shù)據(jù)塊為第一幀;序號:表示第幾幀數(shù)據(jù),范圍為0-63。3.數(shù)據(jù)鏈路層結(jié)構(gòu)DNP3協(xié)議數(shù)據(jù)鏈路層數(shù)據(jù)單元(LPDU)長度不超過292字節(jié),采用一種可變幀長格式FT3,如圖3-22所示。起始字:包含2字節(jié),0x0564;長度:包含1字節(jié),表示用戶數(shù)據(jù)、源地址、目的地址和控制字本身之和,長度在5-255字節(jié)之間;

控制字:包含1字節(jié),表示幀傳輸方向和類型;目的地址:包含2字節(jié),表示到達(dá)地址;源地址:包含2字節(jié),表示發(fā)送地址;用戶數(shù)據(jù):包含1-16字節(jié),跟在鏈路層報文頭之后的用戶數(shù)據(jù)塊;CRC:包含2字節(jié),校驗數(shù)據(jù),在每個數(shù)據(jù)塊之后。其中鏈路層控制字部分為1個字節(jié),結(jié)構(gòu)為:DIR:表示方位,1代表主站發(fā)出,0代表發(fā)向主站;PRM:表示原發(fā)標(biāo)志,1表示報文來自通信發(fā)起站,0表示報文來自通信應(yīng)答站;FCB:表示幀的計數(shù)位;FCV:表示幀計數(shù)有效位,它可使FCB位生效;RES:表示保留;DFC:表示數(shù)據(jù)流控制,用于防止從站緩存溢出,如果主站送入的數(shù)據(jù)導(dǎo)致從站數(shù)據(jù)溢出,則相應(yīng)消息中包含這個標(biāo)示位,需要主站通過查詢鏈路狀態(tài)進(jìn)行恢復(fù);FC:鏈路層功能碼,表示幀的類型。3.4.2DNP3協(xié)議脆弱性分析DNP3協(xié)議雖然具有一定的可靠性,但由于其公有的協(xié)議規(guī)約進(jìn)而導(dǎo)致協(xié)議結(jié)構(gòu)和數(shù)據(jù)格式都是對外開放的,在本質(zhì)上與ModbusTCP協(xié)議存在的脆弱性較為相似,都是具備固有的安全問題。其主要面臨著如下幾方面的問題:該協(xié)議由于對主和外站所采用的判別方法過于簡單,根據(jù)DIR標(biāo)志位的0-1狀態(tài)很容易判斷當(dāng)前報文發(fā)送方向,這相比于其他協(xié)議更容易遭受中間人攻擊,從而導(dǎo)致SCADA系統(tǒng)發(fā)生異常。

從DNP3協(xié)議本身來看,存在如下問題。(1)認(rèn)證機(jī)制缺失,導(dǎo)致入侵者能夠非法建立DNP3通信會話,擾亂控制系統(tǒng)正常運轉(zhuǎn)。在標(biāo)準(zhǔn)DNP3協(xié)議中,通過觀察數(shù)據(jù)鏈路層的數(shù)據(jù)包格式可以發(fā)現(xiàn),通過鏈路層控制字部分中的DIR標(biāo)識來表示主從站,鏈路層傳輸單元中并不包含任何認(rèn)證信息,這樣就無法判斷信息發(fā)送者的身份是否合法。在這種情況下,攻擊者通過篡改傳輸數(shù)據(jù)和功能碼字段等方式來達(dá)到干擾通信和惡意指令傳達(dá)、設(shè)備控制等目的,從而威脅通信系統(tǒng)的安全。(2)加密機(jī)制缺失,在該協(xié)議中,用戶數(shù)據(jù)和控制指令都是以明文形式進(jìn)行傳輸,在這種情況下,攻擊者可以通過監(jiān)聽、嗅探、假冒等手段達(dá)到竊取、修改用戶數(shù)據(jù)等目的。(3)完整性保護(hù)缺失,雖然在標(biāo)準(zhǔn)DNP3協(xié)議中,每個數(shù)據(jù)鏈路層報文中都包含一個CRC校驗碼,它能夠校驗傳輸數(shù)據(jù)的正確性和完整性,但是并不能達(dá)到保護(hù)數(shù)據(jù)不被篡改的目的。DNP3協(xié)議在通信過程中也存在一定問題。在實時通信過程中的報文極易被截獲和惡意篡改,從而導(dǎo)致安全隱患的發(fā)生。其主要存在被攻擊的行為有竊聽、中間人攻擊等。(1)無法抵抗竊聽攻擊,當(dāng)所有的用戶數(shù)據(jù)和控制指令都是通過明文形式進(jìn)行傳輸?shù)臅r候,攻擊者很容易獲取有效的通信地址,并且對系統(tǒng)中傳輸?shù)男畔⑦M(jìn)行竊聽,從而獲取相應(yīng)的報文信息。(2)無法抵抗中間人攻擊,該協(xié)議由于對主和外站所采用的判別方法過于簡單,根據(jù)DIR標(biāo)志位的0-1狀態(tài)很容易判斷當(dāng)前報文發(fā)送方向,這相比于其他協(xié)議更容易實施遭受中間人攻擊,從而引發(fā)導(dǎo)致SCADA系統(tǒng)發(fā)生異常。另外,當(dāng)入侵者模擬外站向主站發(fā)送非請求報文時,不需要主站給予權(quán)限便能夠上傳數(shù)據(jù),因此攻擊者還可利用這一漏洞發(fā)動拒絕服務(wù)攻擊等。3.4.3DNP3協(xié)議安全防護(hù)技術(shù)為了彌補(bǔ)DNP3協(xié)議中存在的不足,認(rèn)證和加密機(jī)制相繼被引入其中,SecureDNP3和DNPSec是具有代表性的解決方案。SecureDNP3是針對標(biāo)準(zhǔn)DNP3協(xié)議的改進(jìn),通過修改其應(yīng)用層報文結(jié)構(gòu),同時引入認(rèn)證技術(shù),保證數(shù)據(jù)的真實性和完整性,但是該方案缺乏加密機(jī)制,傳輸?shù)臄?shù)據(jù)仍舊是明文形式,所以攻擊者能夠通過監(jiān)聽等收到收集系統(tǒng)數(shù)據(jù)。DNPSec安全機(jī)制修改的對象則是數(shù)據(jù)鏈路層,通過添加必要的字段實現(xiàn)認(rèn)證和加密功能,但是這種方案對設(shè)備的計算能力和存儲能力要求較高,在實際中使用并不廣泛。目前,一些SCADA系統(tǒng)中針對DNP3協(xié)議實現(xiàn)安全通信采用的手段仍然是通過防火墻結(jié)合SSL和入侵檢測實現(xiàn)的。通過釆取傳輸層協(xié)議安全措施,如使用傳輸層安全協(xié)議(TLS)等,即將DNP3數(shù)據(jù)流視為機(jī)密信息,盡量使用各種TCP/IP安全手段進(jìn)行保護(hù)。在實際工程部署中,DNP3主控站與子站往往被隔離到只包含授權(quán)設(shè)備的唯一分區(qū)中,因此可以通過防火墻、IDS等設(shè)備部署,對DNP3鏈路上的數(shù)據(jù)類型、數(shù)據(jù)源及其目的地址進(jìn)行嚴(yán)格控制,實現(xiàn)分區(qū)全面的安全加固。3.5OPC協(xié)議1990年微軟提出了動態(tài)數(shù)據(jù)互換技術(shù),到了1992年對象鏈接與嵌入技術(shù)2.0相對成熟,推出了面向?qū)ο蟮脑O(shè)計和編程,包括COM/DCOM技術(shù)用于不同對象間的數(shù)據(jù)交換,1996年OPC基金會正式成立并發(fā)布了OPCDA1.0,之后陸續(xù)發(fā)布了DA2.0、DA3.0,以及OPCUA即OPC統(tǒng)一架構(gòu)。OPC是OLEforProcessControl的縮寫,即用于過程控制的OLE。我們所熟知的OPC規(guī)范一般是指OPCClassic,被廣泛應(yīng)用于各個行業(yè),包括制造業(yè)、樓宇自動化、石油和天然氣、可再生能源和公用事業(yè)等領(lǐng)域。3.5.1OPC協(xié)議概述OPC出現(xiàn)的目的是為不同的供應(yīng)商設(shè)備與應(yīng)用程序之間的接口標(biāo)準(zhǔn)化從而使之間的數(shù)據(jù)交換更加簡單,這樣可以使開發(fā)者不依靠于特定開發(fā)語言和開發(fā)環(huán)境的過程控制軟件。OPC標(biāo)準(zhǔn)是把PLC特定的協(xié)議(如Modbus、Profibus等)抽象成為標(biāo)準(zhǔn)化的接口,作為“中間人”的角色把通用的OPC“讀寫”請求轉(zhuǎn)換成具體的設(shè)備協(xié)議來與HMI/SCADA系統(tǒng)直接對接,反之亦然。由此出現(xiàn)了一個完整的產(chǎn)品行業(yè),終端用戶可以借助其來最優(yōu)化產(chǎn)品,通過OPC協(xié)議來實現(xiàn)系統(tǒng)的無縫交互。OPC是一項應(yīng)用于自動化行業(yè)及其他行業(yè)的數(shù)據(jù)安全交換可互操作性標(biāo)準(zhǔn)。它獨立于平臺,并確保來自多個廠商的設(shè)備之間信息的無縫傳輸,OPC基金會負(fù)責(zé)該標(biāo)準(zhǔn)的開發(fā)和維護(hù)。OPC標(biāo)準(zhǔn)是由行業(yè)供應(yīng)商、終端用戶和軟件開發(fā)者共同制定的一系列規(guī)范。這些規(guī)范定義了客戶端與服務(wù)器之間以及服務(wù)器與服務(wù)器之間的接口,比如訪問實早期的過程監(jiān)控中硬件和軟件的設(shè)置主要利用驅(qū)動器進(jìn)行系統(tǒng)連接。各種應(yīng)用軟件都必須提供設(shè)備的驅(qū)動程序,即需要若干個驅(qū)動程序維持系統(tǒng)的正常運行,而且各軟件間不能相互通信。因為各個軟件來自不同的開發(fā)商,具有對同一設(shè)備不同的相互獨立的驅(qū)動程序,所以多個軟件也不能同時對同一個設(shè)備存取數(shù)據(jù),否則可能造成系統(tǒng)的癱瘓。同時,某一個設(shè)備的升級要求該設(shè)備的所有驅(qū)動程序升級,否則會具有嚴(yán)重的隱患。這樣的一個系統(tǒng)要想要長期維護(hù),工作量是非常大的。為了避免驅(qū)動器連接的不足,可以采用OPC控制進(jìn)行系統(tǒng)連接,這樣大大優(yōu)化了系統(tǒng)間的通信,變得更加簡便快捷。OPC技術(shù)包含一系列的標(biāo)準(zhǔn)規(guī)范如DA、HDA、A&E等。這些訪問規(guī)范都是由OPC基金會創(chuàng)建、發(fā)行并維護(hù),基金會創(chuàng)建的這些標(biāo)準(zhǔn)和維護(hù)從根本上保證了OPC技術(shù)的兼容性。隨著在制造系統(tǒng)以服務(wù)為導(dǎo)向架構(gòu)的引入,如何重新定義架構(gòu)來確保數(shù)據(jù)的安全性,這給OPC帶來了新的挑戰(zhàn),也促使OPC基金會創(chuàng)立了新的架構(gòu)——OPCUA,以滿足這些需求。與此同時,OPCUA也為新的開發(fā)和拓展提供了一個功能豐富的開放式技術(shù)平臺。OPC協(xié)議采用客戶端/服務(wù)器模式,在客戶端和服務(wù)器端都各自定義了統(tǒng)一的符合OPC標(biāo)準(zhǔn)的接口,此接口具有不變特性。當(dāng)OPC客戶端與服務(wù)器在同一臺計算機(jī)上時,客戶端通過COM進(jìn)行本地過程調(diào)用(LPC)服務(wù);當(dāng)客戶端與服務(wù)器不在同一臺計算機(jī)上時,客戶端通過DCOM進(jìn)行遠(yuǎn)程過程調(diào)用(RPC)服務(wù)與服務(wù)器進(jìn)行通信。OPC服務(wù)器通常支持兩種類型的訪問接口,它們分別為不同的編程語言環(huán)境提供訪問機(jī)制。OPC規(guī)范了接口函數(shù),不管現(xiàn)場設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而保證軟件對客戶的透明性,使得用戶完全從低層的開發(fā)中脫離出來。對于軟件開發(fā)商而言,不再專注于開發(fā)各種硬件設(shè)備的驅(qū)動程序,而是把焦點集中在增加和完善軟件的功能上,使自己的軟件更易被用戶接受和使用。對于硬件設(shè)備制造商,再也不必?fù)?dān)心自己的產(chǎn)品因為沒有為某些軟件提供驅(qū)動程序而被用戶所忽視或放棄。一次編寫的驅(qū)動程序(OPC服務(wù)器)可以被所有的應(yīng)用軟件所用。不僅節(jié)省了各種I/O驅(qū)動程序的開發(fā)費用,而且可以讓制造商集中精力生產(chǎn)更易于用戶使用的、功能完善的硬件。1.OPC邏輯對象模型OPC服務(wù)中有三類對象:OPCServer對象、OPCGroup對象、OPCItem對象,每一類對象都包含一系列的接口。OPCServer對象主要是功能創(chuàng)建和管理OPCGroup對象、管理服務(wù)器內(nèi)部的狀態(tài)信息。OPCGroup對象主要管理該對象的內(nèi)容狀態(tài)信息、創(chuàng)建和管理Item對象以及服務(wù)器內(nèi)部的實時數(shù)據(jù)的存取服務(wù)(同步與異步),通常分為私有組和公有組。公有組有多個客戶共享、私有組只屬于某個客戶,大多數(shù)的服務(wù)器均未實現(xiàn)公有組。OPCItem對象主要用來描述實時數(shù)據(jù),一個Item對象不能單獨被OPC客戶端訪問,所有的對象的訪問必須通過OPCGroup訪問。2.OPC通信方式(1)同步通信:OPC客戶端對OPC服務(wù)端進(jìn)行讀取操作時,OPC客戶端必須等到OPC服務(wù)器端完成對應(yīng)操作后才能返回,在此期間OPC客戶端處于一直等待的狀態(tài)。(2)異步通信:OPC客戶端對OPC服務(wù)器端進(jìn)行讀取操作時,OPC客戶端發(fā)送請求后立即返回,不用等待服務(wù)器端,當(dāng)OPC服務(wù)器端完成操作后再通知客戶端程序。(3)訂閱:需要服務(wù)器端支持OPCAE規(guī)范,由客戶端設(shè)定數(shù)據(jù)的變化限度,如果數(shù)據(jù)源的實時數(shù)據(jù)變化超過了該限度,服務(wù)器則通過回調(diào)返回數(shù)據(jù)給客戶端。3.OPC系列規(guī)范OPC

Classic規(guī)范基于MicrosoftWindows技術(shù),使用COM/DCOM(分布式組件對象模型)在軟件組件之間交換數(shù)據(jù)。規(guī)范為訪問過程數(shù)據(jù)、報警和歷史數(shù)據(jù)提供了單獨的定義。(1)OPCDataAccess(OPCDA)OPC數(shù)據(jù)訪問規(guī)范:定義了數(shù)據(jù)交換,包括值、時間和質(zhì)量信息。(2)OPCAlarms&Events(OPCA&E)OPC報警和事件規(guī)范:定義了報警和事件類型信息的交換,以及變量狀態(tài)和狀態(tài)管理。(3)OPCHistoricalDataAccess(OPCHDA)OPCHDA規(guī)范定義了可應(yīng)用于歷史數(shù)據(jù)、時間數(shù)據(jù)的查詢和分析的方法。OPC經(jīng)典規(guī)范已經(jīng)很好地服務(wù)于工業(yè)企業(yè)。然而隨著技術(shù)的發(fā)展,企業(yè)對OPC規(guī)范的需求也在增長。OPC基金會發(fā)布的OPC統(tǒng)一架構(gòu)(OPCUA)是一個獨立于平臺的面向服務(wù)的架構(gòu),集成了OPCClassic規(guī)范的所有功能,并且兼容OPCClassic。1.OPCUA規(guī)范OPCUA規(guī)范包含核心規(guī)范部分與存取類型規(guī)范部分,其中核心規(guī)范部分包括OPCUADataAccess、OPCUAAlarmsandConditions、OPCUAPrograms以及OPCUAHistoricalAccess規(guī)范;存取規(guī)范部分包括OPCUASecurityModel、OPCUAAddressSpaceModel、OPCUAServices、OPCUAInformationModel、OPCUAServiceMappings和OPCUAProfiles等。在生產(chǎn)管理軟件的不斷發(fā)展過程中,標(biāo)準(zhǔn)的采用也在不斷更新,為適應(yīng)應(yīng)用需求的發(fā)展,

OPCUA規(guī)范為企業(yè)軟件架構(gòu)的建立指明了新的方向。

OPCUA具備以下特點:

1)

功能方面

OPCUA不僅支持傳統(tǒng)OPC的所有功能,更支持更多新的功能:網(wǎng)絡(luò)發(fā)現(xiàn):自動查詢本PC機(jī)中與當(dāng)前網(wǎng)絡(luò)中可用的OPCServer。地址空間優(yōu)化:所有的數(shù)據(jù)都可以分級結(jié)構(gòu)定義,使得OPCClient不僅能夠讀取并利用簡單數(shù)據(jù),也能訪問復(fù)雜的結(jié)構(gòu)體。互訪認(rèn)證:所有的讀寫數(shù)據(jù)/消息行為,都必須有訪問許可。數(shù)據(jù)訂閱:針對OPCClient不同的配置與標(biāo)準(zhǔn),提供數(shù)據(jù)/消息的監(jiān)控,以及數(shù)值變化時的變化報告。方案功能:OPCUA中定義了通過在OPCServer中定義方案,以便讓OPCClient執(zhí)行特定的程序。復(fù)雜數(shù)據(jù)內(nèi)置:在數(shù)據(jù)獲取標(biāo)準(zhǔn)OPCDA中增加了復(fù)雜數(shù)據(jù)規(guī)范。增強(qiáng)的命名空間:在目前的

OPC規(guī)范中支持將數(shù)據(jù)組織成層次結(jié)構(gòu),OPCUA更支持無限的節(jié)點命名和無限的關(guān)系設(shè)定,同時每個節(jié)點均可以對其他節(jié)點有無限的關(guān)系設(shè)定。大量的服務(wù)功能:OPCUA規(guī)范定義了大量的通用服務(wù)。采用UA二進(jìn)制編碼,使數(shù)據(jù)快速編碼和解碼,提高了數(shù)據(jù)的傳輸速度。它還能集成現(xiàn)有的基于COM/DCOM技術(shù)開發(fā)的OPC服務(wù)器(DA、HDA、A&E),使它們很容易通過OPCUA映射和使用。2)平臺支持方面OPCUA標(biāo)準(zhǔn)解決了跨越微軟系統(tǒng)平臺,實現(xiàn)了多平臺的互操作性,提供了更多的可支持的硬件或軟件平臺。硬件平臺:傳統(tǒng)PC硬件、云服務(wù)器、PLC、微控制器(ARM等)操作系統(tǒng):MicrosoftWindows、AppleOSX、Android或任何Linux發(fā)行版本等OPCUA為企業(yè)之間的互操作性提供必要的M2M、M2E及兩者之間的基礎(chǔ)架構(gòu)。3)安全性方面集成的OPCUA數(shù)據(jù)加密功能符合國際安全標(biāo)準(zhǔn),為Internet及各企業(yè)網(wǎng)絡(luò)內(nèi)的遠(yuǎn)程訪問和數(shù)據(jù)共享、客戶端和服務(wù)器之間的安全通訊提供了保障。最大的變化是OPCUA可以通過任何單一端口(經(jīng)管理員開放后)進(jìn)行通信,這使得OPC通信不再會由于防火墻受到大量的限制。和現(xiàn)行OPC一樣,OPCUA系統(tǒng)結(jié)構(gòu)包括OPCUA服務(wù)器和客戶端兩個部分,每個系統(tǒng)允

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論