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

下載本文檔

版權(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)公開免費(fèi)、支持多種電氣接口以及基于Modbus進(jìn)行通信程序開發(fā)方便快捷等特點(diǎn),它已經(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è)備實(shí)現(xiàn)在多種網(wǎng)絡(luò)體系結(jié)構(gòu)中進(jìn)行數(shù)據(jù)交互通信的功能,例如:PLC、HMI、輸入/輸出等多種設(shè)備,使用Modbus協(xié)議進(jìn)行通信,實(shí)現(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沒有實(shí)現(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ù)報文,再去實(shí)現(xiàn)拒絕服務(wù)攻擊或者竊取系統(tǒng)關(guān)鍵信息等。(5)TCP協(xié)議存在自身設(shè)計上的缺點(diǎn),攻擊者可以利用這些缺點(diǎn)去構(gòu)造洪泛攻擊等拒絕服務(wù)攻擊。Modbus協(xié)議受到的攻擊主要分為4類:信息掃描攻擊、響應(yīng)注入攻擊、命令注入攻擊、拒絕服務(wù)攻擊等。信息掃描攻擊是黑客實(shí)施更危險復(fù)雜的攻擊前的準(zhǔn)備階段,它旨在收集工控系統(tǒng)中的各種網(wǎng)絡(luò)信息,識別工控設(shè)備的各種關(guān)鍵屬性,如設(shè)備廠商、型號、支持的工控協(xié)議、系統(tǒng)合法地址和內(nèi)存映射等,基于這些信息去尋找邊界突破的方法以獲取生產(chǎn)環(huán)境訪問權(quán)限。具體的實(shí)現(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ā)階段、測試與部署階段分段實(shí)施Modbus安全防護(hù)。例如,在協(xié)議設(shè)計階段,可融入異常行為預(yù)警功能。該功能可對工控系統(tǒng)的每次操作行為子屬性進(jìn)行掃描分析,并綜合各子屬性的安全等級,最終通過子決策融合實(shí)現(xiàn)單次操作行為的綜合判定。對于異常行為,可采用報警觸發(fā)或?qū)嵗涗浀仁侄?,?shí)現(xiàn)安全威脅預(yù)警。在線下階段,可利用每次預(yù)警的實(shí)例記錄組建綜合的異常操作數(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ù)陌踩裕山⒒谏疃劝鼨z測技術(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ù)、實(shí)時通信、分布式現(xiàn)場設(shè)備、分布式智能以及運(yùn)動控制等。依據(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、實(shí)時通信(Real-Time,RT)和等時同步實(shí)時通信(IsochronousReal-Time,IRT)。3.2.1PROFINET-RT1.協(xié)議概述實(shí)時,表示系統(tǒng)在一個確定的時間內(nèi)處理外部事件。確定性,表示系統(tǒng)有一個可預(yù)知的響應(yīng)。因此,實(shí)時通信的一般要求是確定性的響應(yīng)和標(biāo)準(zhǔn)應(yīng)用的響應(yīng)時間小于等于5ms。使用標(biāo)準(zhǔn)的通信協(xié)議TCP/IP或UDP/IP是實(shí)現(xiàn)實(shí)時通信的一種方法,然而使用它們會存在相應(yīng)的缺點(diǎn):當(dāng)幀過載時,幀的長度會增加,從而引起線路上傳輸時間的增加。此外,由于標(biāo)準(zhǔn)通信協(xié)議分層較多,占用處理器的計算時間會相對較長,從而導(dǎo)致發(fā)送周期增加。PROFINET使用優(yōu)化的通道進(jìn)行實(shí)時通信,該通道基于ISO/OSI參考模型的第二層。此外,數(shù)據(jù)包使用接收設(shè)備的MAC地址進(jìn)行尋址,在放棄了路由功能的代價下保證了工業(yè)控制系統(tǒng)網(wǎng)絡(luò)中的不同站點(diǎn)能夠在可預(yù)見的時間間隔內(nèi)傳輸時間要求嚴(yán)格的數(shù)據(jù)。2.通信流程在PROFINETIO應(yīng)用中,實(shí)時信號主要分為周期I/O數(shù)據(jù)和警報信號(非周期)。系統(tǒng)啟動之后,己配置好的IO控制器和IO設(shè)備之間開始周期性的數(shù)據(jù)交換。每條I/O數(shù)據(jù)(RTC:實(shí)時周期)都包含兩種屬性:IO供應(yīng)者狀態(tài)(IOProviderStatus,IOPS)和IO消費(fèi)者狀態(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í)時數(shù)據(jù)釆用0x8892。Data部分在PROFINETIO中表示I/O數(shù)據(jù),如果實(shí)時幀的長度小于64Byte,則PROFINET實(shí)時數(shù)據(jù)的長度必須擴(kuò)展到最少40Byte,最長為1440Byte。APDU表示PROFINET實(shí)時數(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為幀檢驗(yàn)序列。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)視器完成。在運(yù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實(shí)時信號相同,EtherType字段取值為0x8892。FrameID代表傳輸?shù)膶?shí)時數(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中可以包含多個選項(xiàng)Option和子選項(xiàng)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í)時數(shù)據(jù)和標(biāo)準(zhǔn)的TCP/IP數(shù)據(jù)。在其傳遞TCP/IP數(shù)據(jù)的公共通道中,各種經(jīng)過驗(yàn)證的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實(shí)現(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)通信在同一根電纜上共存,安全通信不通過冗余電纜來實(shí)現(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é)議棧實(shí)現(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。中間人在雙方都不知情的情況下實(shí)施攻擊,攻擊對象是經(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ù)及軟件運(yùn)行狀態(tài),建立工控系統(tǒng)正常工作環(huán)境下的安全狀態(tài)基線和模型,全面構(gòu)筑工控安全技術(shù)體系,進(jìn)而保障西門子工業(yè)控制系統(tǒng)的穩(wěn)定運(yùn)行。進(jìn)一步加強(qiáng)工控系統(tǒng)安全防護(hù)措施如下:1)區(qū)域邊界訪問控制在生產(chǎn)網(wǎng)上位機(jī)與PLC設(shè)備之間部署工業(yè)防火墻,實(shí)現(xiàn)S7等工業(yè)控制協(xié)議的識別與深度解析,實(shí)時攔截非法指令和惡意指令下發(fā)等不法行為。在工業(yè)現(xiàn)場生產(chǎn)業(yè)務(wù)固化后,通過工業(yè)防火墻智能學(xué)習(xí)功能固化安全防護(hù)策略,使之更加符合生產(chǎn)業(yè)務(wù)需求。結(jié)合工業(yè)防火墻硬件級安全策略寫保護(hù)特性功能,實(shí)現(xiàn)安全策略只讀權(quán)限的物理級控制。強(qiáng)化對西門子工業(yè)控制系統(tǒng)的邊界隔離與防護(hù),確??刂葡到y(tǒng)的持續(xù)穩(wěn)定運(yùn)行。2)工控主機(jī)安全防護(hù)與加固在生產(chǎn)網(wǎng)工控主機(jī)上部署工控安全防護(hù)軟件,通過白名單技術(shù)、漏洞防御、安全基線及外設(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é)點(diǎn)處旁路部署工控安全監(jiān)測與審計系統(tǒng),實(shí)時檢測針對S7協(xié)議的網(wǎng)絡(luò)攻擊、用戶誤操作、用戶違規(guī)操作、非法設(shè)備接入以及蠕蟲、病毒等惡意軟件的傳播并實(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)的集中管理功能,有效幫助運(yùn)維人員提升網(wǎng)絡(luò)安全運(yùn)維工作效率,降低安全運(yùn)維成本。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àn)、鏈路控制、優(yōu)先級等一系列的服務(wù),在協(xié)議中大量使用了CRC校驗(yàn)來保證數(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)上運(yùn)行,支持DNP3協(xié)議的從設(shè)備會開放TCP的20000端口用于通信。DNP3在主站會話上需要約定目的地址、源地址,而從設(shè)備收到后需要驗(yàn)證目的地址,再進(jìn)行處理,如果目的地址不相同則會根據(jù)在協(xié)議棧實(shí)現(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é),校驗(yàn)數(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)正常運(yùn)轉(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校驗(yàn)碼,它能夠校驗(yàn)傳輸數(shù)據(jù)的正確性和完整性,但是并不能達(dá)到保護(hù)數(shù)據(jù)不被篡改的目的。DNP3協(xié)議在通信過程中也存在一定問題。在實(shí)時通信過程中的報文極易被截獲和惡意篡改,從而導(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é)議更容易實(shí)施遭受中間人攻擊,從而引發(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ù)的真實(shí)性和完整性,但是該方案缺乏加密機(jī)制,傳輸?shù)臄?shù)據(jù)仍舊是明文形式,所以攻擊者能夠通過監(jiān)聽等收到收集系統(tǒng)數(shù)據(jù)。DNPSec安全機(jī)制修改的對象則是數(shù)據(jù)鏈路層,通過添加必要的字段實(shí)現(xiàn)認(rèn)證和加密功能,但是這種方案對設(shè)備的計算能力和存儲能力要求較高,在實(shí)際中使用并不廣泛。目前,一些SCADA系統(tǒng)中針對DNP3協(xié)議實(shí)現(xiàn)安全通信采用的手段仍然是通過防火墻結(jié)合SSL和入侵檢測實(shí)現(xiàn)的。通過釆取傳輸層協(xié)議安全措施,如使用傳輸層安全協(xié)議(TLS)等,即將DNP3數(shù)據(jù)流視為機(jī)密信息,盡量使用各種TCP/IP安全手段進(jìn)行保護(hù)。在實(shí)際工程部署中,DNP3主控站與子站往往被隔離到只包含授權(quán)設(shè)備的唯一分區(qū)中,因此可以通過防火墻、IDS等設(shè)備部署,對DNP3鏈路上的數(shù)據(jù)類型、數(shù)據(jù)源及其目的地址進(jìn)行嚴(yán)格控制,實(shí)現(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é)議來實(shí)現(xiàn)系統(tǒng)的無縫交互。OPC是一項(xiàng)應(yīng)用于自動化行業(yè)及其他行業(yè)的數(shù)據(jù)安全交換可互操作性標(biāo)準(zhǔn)。它獨(dú)立于平臺,并確保來自多個廠商的設(shè)備之間信息的無縫傳輸,OPC基金會負(fù)責(zé)該標(biāo)準(zhǔn)的開發(fā)和維護(hù)。OPC標(biāo)準(zhǔn)是由行業(yè)供應(yīng)商、終端用戶和軟件開發(fā)者共同制定的一系列規(guī)范。這些規(guī)范定義了客戶端與服務(wù)器之間以及服務(wù)器與服務(wù)器之間的接口,比如訪問實(shí)早期的過程監(jiān)控中硬件和軟件的設(shè)置主要利用驅(qū)動器進(jìn)行系統(tǒng)連接。各種應(yīng)用軟件都必須提供設(shè)備的驅(qū)動程序,即需要若干個驅(qū)動程序維持系統(tǒng)的正常運(yùn)行,而且各軟件間不能相互通信。因?yàn)楦鱾€軟件來自不同的開發(fā)商,具有對同一設(shè)備不同的相互獨(dú)立的驅(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ū)動程序,而是把焦點(diǎn)集中在增加和完善軟件的功能上,使自己的軟件更易被用戶接受和使用。對于硬件設(shè)備制造商,再也不必?fù)?dān)心自己的產(chǎn)品因?yàn)闆]有為某些軟件提供驅(qū)動程序而被用戶所忽視或放棄。一次編寫的驅(qū)動程序(OPC服務(wù)器)可以被所有的應(yīng)用軟件所用。不僅節(jié)省了各種I/O驅(qū)動程序的開發(fā)費(fèi)用,而且可以讓制造商集中精力生產(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í)時數(shù)據(jù)的存取服務(wù)(同步與異步),通常分為私有組和公有組。公有組有多個客戶共享、私有組只屬于某個客戶,大多數(shù)的服務(wù)器均未實(shí)現(xiàn)公有組。OPCItem對象主要用來描述實(shí)時數(shù)據(jù),一個Item對象不能單獨(dú)被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í)時數(shù)據(jù)變化超過了該限度,服務(wù)器則通過回調(diào)返回數(shù)據(jù)給客戶端。3.OPC系列規(guī)范OPC

Classic規(guī)范基于MicrosoftWindows技術(shù),使用COM/DCOM(分布式組件對象模型)在軟件組件之間交換數(shù)據(jù)。規(guī)范為訪問過程數(shù)據(jù)、報警和歷史數(shù)據(jù)提供了單獨(dú)的定義。(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)是一個獨(dú)立于平臺的面向服務(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具備以下特點(diǎn):

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)體?;ピL認(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é)點(diǎn)命名和無限的關(guān)系設(shè)定,同時每個節(jié)點(diǎn)均可以對其他節(jié)點(diǎn)有無限的關(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)平臺,實(shí)現(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)允許多個服務(wù)器和客戶端相互作用。以下從OPCUA系統(tǒng)的客戶端、服務(wù)器和信息模型三方面進(jìn)行介紹。1)OPCUA客戶端

OPCUA客戶端的體系結(jié)構(gòu)包括客戶終端的客戶端/服務(wù)器交互。它包括OPCUA客戶端應(yīng)用程序、OPCUA通信棧、OPCUA客戶端API。使用OPCUA客戶端API與OPCUA服務(wù)器端發(fā)送和接收OPCUA服務(wù)請求和響應(yīng)。2)OPCUA服務(wù)器OPCUA服務(wù)器代表客戶端/服務(wù)器相互作用的服務(wù)器端點(diǎn)。它主要包括OPCUA服務(wù)器應(yīng)用程序、真實(shí)對象、OPCUA地址空間、發(fā)布/訂閱實(shí)體、OPCUA服務(wù)器接口API、OPCUA通信棧。使用OPCUA服務(wù)器API從OPCUA客戶端來傳送和接收消息。OPCUA服務(wù)器架構(gòu)為客戶端/服務(wù)器交互的服務(wù)器節(jié)點(diǎn)建模。圖3-26說明了OPCUA服務(wù)器的主要元素以及它們之間的相互關(guān)系。3)OPCUA信息模型OPCUA使用了對象(objects)作為過程系統(tǒng)表示數(shù)據(jù)和活動的基礎(chǔ)。對象包含了變量,事件和方法,它們通過引用(reference)來互相連接。OPCUA信息模型是節(jié)點(diǎn)的網(wǎng)絡(luò)(NetworkofNode),或者稱為結(jié)構(gòu)化圖(graph),由節(jié)點(diǎn)(node)和引用(References)組成,這種結(jié)構(gòu)圖稱之為OPCUA的地址空間。這種圖形結(jié)構(gòu)可以描述各種各樣的結(jié)構(gòu)化信息(對象)。OPCUA中的節(jié)點(diǎn)是在一個OPCUA服務(wù)器中,而不是一個服務(wù)器對應(yīng)一個節(jié)點(diǎn)。地址空間要點(diǎn)如下:(1)地址空間是用來給服務(wù)器提供標(biāo)準(zhǔn)方式,以向客戶端表示對象。(2)地址空間的實(shí)現(xiàn)途徑是使用對象模型,通過變量和方法的對象,以及表達(dá)關(guān)系的對象。(3)地址空間中模型的元素被稱為節(jié)點(diǎn),為節(jié)點(diǎn)分配節(jié)點(diǎn)類來代表對象模型的元素。(4)對象及其組件在地址空間中表示為節(jié)點(diǎn)的集合,節(jié)點(diǎn)由屬性描述并由引用相連。(5)OPCUA建模的基礎(chǔ)在于節(jié)點(diǎn)和節(jié)點(diǎn)間的引用。(6)OPCUA地址空間包括地址空間節(jié)點(diǎn)、地址空間視圖、地址空間組織。地址空間節(jié)點(diǎn)可被理解為客戶端使用OPCUA服務(wù)(接口和方法)可訪問的一組節(jié)點(diǎn)。地址空間中的節(jié)點(diǎn)用于表示真實(shí)對象(實(shí)際對象可以是OPCUA服務(wù)器應(yīng)用程序可訪問或在內(nèi)部維護(hù)的物理對象或軟件對象)及其定義、它們相互之間的引用。3.5.2OPC協(xié)議存在的安全問題隨著OPC技術(shù)的廣泛使用,OPC所面臨的安全問題也日益嚴(yán)峻,例如控制系統(tǒng)和外部網(wǎng)絡(luò)暴露較多的接口、接入?yún)f(xié)議的多樣性、不同操作人員的控制權(quán)限限制、連接認(rèn)證的加密性和時效性、對OPC服務(wù)器的DoS等等,都需要去加以解決。OPC協(xié)議的安全性問題主要體現(xiàn)在以下幾個方面:1)已知操作系統(tǒng)的漏洞問題由于OPC協(xié)議基于Windows操作系統(tǒng),通常的主機(jī)安全問題也會影響OPC。微軟的DCOM技術(shù)一方面具有高度復(fù)雜性,另外一方面也存在著大量漏洞,這些操作系統(tǒng)層面的漏洞成為經(jīng)典OPC協(xié)議漏洞的來源和攻擊入口。雖然OPC及相關(guān)控制系統(tǒng)漏洞只有基金會的授權(quán)才能獲得,但大量現(xiàn)存OLE與RPC漏洞早已被發(fā)現(xiàn)。2)Windows操作系統(tǒng)的弱口令OPC協(xié)議使用的最基本的通信握手過程需要建立在DCOM技術(shù)上,通過Windows內(nèi)置賬號的方式進(jìn)行認(rèn)證。但大量的OPC服務(wù)器使用弱安全認(rèn)證機(jī)制,即使啟用了認(rèn)證技術(shù)也常常使用弱口令。3)動態(tài)端口無法進(jìn)行安全防護(hù)OPC協(xié)議通過135端口建立通信鏈路后,采用了隨機(jī)端口(1024~65535)傳輸數(shù)據(jù),廣泛的數(shù)據(jù)傳輸端口給安全防護(hù)帶來了問題,無法使用傳統(tǒng)的五元組方式來進(jìn)行防護(hù)。4)過時的授權(quán)機(jī)制受限于維護(hù)窗口、解釋性問題等諸多因素,工業(yè)網(wǎng)絡(luò)系統(tǒng)升級困難,導(dǎo)致不安全的授權(quán)機(jī)制仍在使用。5)部署的操作系統(tǒng)承載了多余的、不必要的服務(wù)許多操作系統(tǒng)應(yīng)用中大量部署與ICS無關(guān)的額外服務(wù),導(dǎo)致非必需的運(yùn)行進(jìn)程和來訪端口,如HTTP、NetBIOS等,這些問題都使OPC服務(wù)器暴露在攻擊之下。6)審計記錄不完善由于老舊系統(tǒng)的審計設(shè)置默認(rèn)不記錄DCOM連接請求,所以攻擊發(fā)生時日志記錄往往過于簡單甚至沒有保存,以致無法提供足夠的詳細(xì)證據(jù)。3.5.3OPC協(xié)議安全防護(hù)技術(shù)OPCUA在通過防火墻時通過提供一套控制方案來提高系統(tǒng)通信時的安全性:(1)傳輸:定義了許多協(xié)議,提供了諸如超快OPC二進(jìn)制傳輸或更通用的SOAP-HTTPS等選項(xiàng)。(2)會話加密:信息以128位或256位加密級別安全地傳輸。(3)信息簽名:信息接收時的簽名與發(fā)送時必須完全相同。(4)測序數(shù)據(jù)包:通過排序消除已發(fā)現(xiàn)的信息重放攻擊。(5)認(rèn)證:每個UA的客戶端和服務(wù)器都要通過OpenSSL證書標(biāo)識,提供控制應(yīng)用程序和系統(tǒng)彼此連接的功能。(6)用戶控制:應(yīng)用程序可以要求用戶進(jìn)行身份驗(yàn)證(登錄憑據(jù)、證書等),并且可以進(jìn)一步限制或增強(qiáng)用戶訪問權(quán)限和地址空間“視圖”的能力。(7)審計:記錄用戶和/或系統(tǒng)的活動,提供訪問審計跟蹤。工業(yè)控制系統(tǒng)應(yīng)用與安全防護(hù)技術(shù)第4章

工業(yè)控制系統(tǒng)漏洞分析4.1工業(yè)控制系統(tǒng)安全威脅與攻擊技術(shù)工控安全威脅的表現(xiàn)形式可分為人為失誤(設(shè)置錯誤、配置錯誤、操作失誤等),管理缺失(策略和制度不完善、操作規(guī)程不明晰、職責(zé)不明確等),越權(quán)或?yàn)E用(未授權(quán)連接訪問、濫用權(quán)限非正常修改或破壞重要信息等),信息泄密(內(nèi)部或外部的信息泄露等),安全漏洞(軟硬件漏洞、通信協(xié)議漏洞、網(wǎng)絡(luò)漏洞等),軟硬件故障(工業(yè)控制系統(tǒng)自身缺陷、應(yīng)用軟件故障、設(shè)備故障等),惡意代碼(病毒、蠕蟲、木馬、后門、邏輯炸彈等),入侵攻擊(數(shù)據(jù)和應(yīng)用的竊取和破壞、拒絕服務(wù)攻擊、敵對勢力或工業(yè)間諜的攻擊摧毀等),自然災(zāi)害(地震、洪災(zāi)、其他不可預(yù)知事件等),物理影響(停電、靜電、電磁干擾、斷網(wǎng)等)。4.1.1工業(yè)控制系統(tǒng)的威脅源控制系統(tǒng)面臨的威脅具有多種來源,包括對抗性來源如敵對政府、恐怖組織、工業(yè)間諜、惡意入侵者、心懷不滿的員工,自然來源如從系統(tǒng)的復(fù)雜性、人為錯誤和意外事故、設(shè)備故障和自然災(zāi)害。為了防止對抗性的威脅以及已知的自然威脅,需要為ICS創(chuàng)建一個縱深的防御策略。4.1.2工業(yè)控制系統(tǒng)攻擊技術(shù)系統(tǒng)攻擊是指某人非法使用或破壞某一信息系統(tǒng)中的資源,以及非授權(quán)使系統(tǒng)喪失部分或全部服務(wù)功能的行為。通??梢园压艋顒哟笾路譃閮?nèi)部攻擊和遠(yuǎn)程攻擊兩種。現(xiàn)在隨著互聯(lián)網(wǎng)絡(luò)的進(jìn)步,其中的遠(yuǎn)程攻擊技術(shù)得到很大發(fā)展,威脅也越來越大。常見攻擊手手段包括口令攻擊、拒絕服務(wù)攻擊、數(shù)據(jù)驅(qū)動攻擊等。4.1.3 APT攻擊技術(shù)1.APT攻擊基本概念A(yù)PT(AdvancedPersistentThreat)攻擊是以先進(jìn)的攻擊方式、高水平的手段,以竊取特定目標(biāo)的核心數(shù)據(jù)為目的,具有持續(xù)性、高隱蔽性的網(wǎng)絡(luò)攻擊行為。相對于普通網(wǎng)絡(luò)攻擊行為,APT攻擊有以下典型特點(diǎn)。1)目標(biāo)針對性強(qiáng)APT攻擊主要目的是竊取指定目標(biāo)的核心信息。2)攻擊偽裝性強(qiáng)APT攻擊者為了這到對指定目標(biāo)的長期攻擊,必須要在滲透成功后較好的偽裝自己。在不同的攻擊階段采用不同的偽裝方式。3)時間持續(xù)久APT攻擊是針對某個目標(biāo)的長時間滲透,因此APT攻擊展開實(shí)施也會有多個階段,一般會優(yōu)先攻擊安全性較低的網(wǎng)絡(luò)系統(tǒng)。4)間接訪問為主APT攻擊者為了能達(dá)到隱藏自己、長時間控制的目的,會對入侵目標(biāo)以間接的方式進(jìn)行訪問。4.2工業(yè)控制系統(tǒng)漏洞概述系統(tǒng)安全漏洞是在系統(tǒng)具體實(shí)現(xiàn)和使用中產(chǎn)生的錯誤,但并不是系統(tǒng)中存在的錯誤都是安全漏洞,只有能威脅到系統(tǒng)安全的錯誤才是漏洞。在通常情況下許多錯誤并不會對系統(tǒng)安全造成危害,只有在某些條件下被人故意使用時才會影響系統(tǒng)安全。漏洞雖然可能最初就存在于系統(tǒng)當(dāng)中,但這個漏洞必須要有人發(fā)現(xiàn)。系統(tǒng)攻擊者往往是安全漏洞的發(fā)現(xiàn)者和使用者,要對一個系統(tǒng)進(jìn)行攻擊,假如不能發(fā)現(xiàn)和使用系統(tǒng)中存在的安全漏洞是絕對不可能成功的,對于安全級別較高的系統(tǒng)尤其如此。系統(tǒng)安全漏洞與系統(tǒng)攻擊活動之間密切相關(guān),不能脫離系統(tǒng)攻擊活動來談?wù)摪踩┒磫栴}。因此,了解常見的系統(tǒng)攻擊方法對正確理解系統(tǒng)漏洞問題和找到相應(yīng)的補(bǔ)救手段是十分必要的。4.2.1系統(tǒng)漏洞問題漏洞的產(chǎn)生大致有三個原因,具體如下所述:(1)編程人員的人為因素,在程序編寫過程,為實(shí)現(xiàn)非法的目的,在程序代碼的隱蔽處保留后門。(2)受編程人員的能力、經(jīng)驗(yàn)和當(dāng)時安全技術(shù)所限,在程序設(shè)計中并不完善,輕則影響程序效率,重則導(dǎo)致非授權(quán)用戶的權(quán)限提升。(3)由于硬件原因,使編程人員無法彌補(bǔ)硬件的漏洞,從而經(jīng)由軟件表現(xiàn)出硬件的問題。由于漏洞與具體系統(tǒng)環(huán)境之間的關(guān)系及其時間相關(guān)特性,漏洞會影響到很大范圍的軟硬件設(shè)備,包括系統(tǒng)本身及其支撐軟件,網(wǎng)絡(luò)客戶和服務(wù)器軟件,網(wǎng)絡(luò)路由器和安全防火墻等。4.2.2工業(yè)控制系統(tǒng)漏洞現(xiàn)狀分析1.工業(yè)控制系統(tǒng)漏洞分類與傳統(tǒng)信息系統(tǒng)相比,工業(yè)控制系統(tǒng)采用了很多專用的工控設(shè)備、工控網(wǎng)絡(luò)協(xié)議、操作系統(tǒng)和應(yīng)用軟件,工業(yè)控制系統(tǒng)的安全漏洞也具有工控系統(tǒng)獨(dú)有的特性。1)通信協(xié)議漏洞2)操作系統(tǒng)漏洞3)安全策略和管理流程漏洞4)殺毒軟件漏洞5)應(yīng)用軟件漏洞2.當(dāng)前工控漏洞統(tǒng)計分析工控漏洞數(shù)量呈現(xiàn)逐年增長的明顯趨勢,在產(chǎn)業(yè)標(biāo)準(zhǔn)、政策尚不成熟的情況下,技術(shù)融合加速工控產(chǎn)業(yè)發(fā)展的同時破壞了傳統(tǒng)工控系統(tǒng)的體系結(jié)構(gòu),攻擊者可能會采取更加豐富的攻擊手段攻擊工控系統(tǒng),導(dǎo)致工控漏洞危害發(fā)生的數(shù)量逐年上升。根據(jù)中國國家信息安全漏洞共享平臺(CNVD)統(tǒng)計,近年工控新增漏洞年度分布下圖所示。3.工業(yè)控制網(wǎng)絡(luò)安全漏洞發(fā)展態(tài)勢工業(yè)控制網(wǎng)絡(luò)安全漏洞發(fā)展態(tài)勢包括以下幾點(diǎn):

1)工控漏洞的價值被高度重視工控網(wǎng)絡(luò)已經(jīng)成為信息安全人員關(guān)注的新焦點(diǎn),一些惡意的攻擊者不斷掃描工控系統(tǒng)的漏洞,并使用針對工控系統(tǒng)的專用黑客工具發(fā)動網(wǎng)絡(luò)攻擊。2)中高危漏洞比例居高不下在工控系統(tǒng)當(dāng)中,跟工控相關(guān)的應(yīng)用系統(tǒng)和應(yīng)用軟件的安全健壯性不足。無論是應(yīng)用軟件漏洞還是設(shè)備固件漏洞,均來自于目標(biāo)系統(tǒng)在開發(fā)過程中遺留的安全設(shè)計和實(shí)現(xiàn)缺陷,1個高危漏洞就意味著目標(biāo)系統(tǒng)中存在1個甚至多個致命的安全性缺陷。3)漏洞類型復(fù)雜,危害嚴(yán)重信息泄露相關(guān)的漏洞居高不下,對工控系統(tǒng)的影響主要體現(xiàn)在兩個方面:一方面,企業(yè)內(nèi)部的工藝流程、圖紙、排產(chǎn)計劃等關(guān)鍵數(shù)據(jù)容易成為攻擊者竊取的對象;另一方面,攻擊者利用間諜工具收集的各種涉密信息,為后續(xù)具有破壞性的網(wǎng)絡(luò)攻擊提供安全情報。4.2.3PLC設(shè)備漏洞分析工控PLC設(shè)備主要的漏洞類型為:任意代碼執(zhí)行(CodeExecution)、拒絕服務(wù)(Denial-of-Service)、關(guān)鍵信息獲?。℅ainInformation)、緩沖區(qū)溢出(BufferOverflow)。以下對4種類型進(jìn)行說明:(1)任意代碼執(zhí)行。(2)拒絕服務(wù)漏洞。(3)關(guān)鍵信息獲取漏洞。(4)緩沖區(qū)溢出漏洞。

通過分析現(xiàn)有PLC設(shè)備存在的漏洞,可以發(fā)現(xiàn)工控設(shè)備功能越來越復(fù)雜,網(wǎng)絡(luò)環(huán)境逐漸開放,攻擊者可以借此直接對工業(yè)控制環(huán)境進(jìn)行入侵破壞。針對工控設(shè)備PLC漏洞頻發(fā)的問題,使用漏洞挖掘的方法提前發(fā)現(xiàn)PLC設(shè)備缺陷并加以解決,能夠有效降低攻擊造成的損失。4.2.4DCS系統(tǒng)漏洞分析DCS系統(tǒng)的漏洞設(shè)計之初即存在,其中的系統(tǒng)漏洞數(shù)量幾乎每年都在大幅增長,下面從現(xiàn)場總線控制網(wǎng)絡(luò)、過程控制與監(jiān)控網(wǎng)絡(luò)和企業(yè)辦公網(wǎng)絡(luò)三個方面進(jìn)行分析。1.現(xiàn)場總線控制網(wǎng)絡(luò)漏洞分析

現(xiàn)場總線控制網(wǎng)絡(luò)所處的現(xiàn)場環(huán)境通常惡劣復(fù)雜,因此很難進(jìn)行布線,一些控制系統(tǒng)網(wǎng)絡(luò)采用無線、微波等接入技術(shù)將現(xiàn)有網(wǎng)絡(luò)進(jìn)行延伸,這無疑增加了控制系統(tǒng)被攻擊的風(fēng)險。2.過程控制與監(jiān)控網(wǎng)絡(luò)漏洞分析

過程控制與監(jiān)控網(wǎng)絡(luò)在設(shè)計時主要部署服務(wù)器、數(shù)據(jù)庫和人機(jī)界面HMI等關(guān)鍵控制系統(tǒng)組件,操作人員通過HMI等遠(yuǎn)程控制設(shè)備監(jiān)控、評估、分析現(xiàn)場控制和采集設(shè)備的運(yùn)行狀態(tài),并據(jù)此進(jìn)行調(diào)整及控制。3.企業(yè)辦公網(wǎng)絡(luò)漏洞分析

隨著國家兩化融合的不斷推進(jìn),工業(yè)生產(chǎn)過程的各個環(huán)節(jié)都有傳統(tǒng)信息技術(shù)的應(yīng)用,信息化已經(jīng)成為工業(yè)企業(yè)經(jīng)營管理必不可少的技術(shù)手段。在石油、化工等工業(yè)企業(yè)中,隨著企業(yè)資源計劃(ERP)、客戶關(guān)系管理(CRM)、辦公自動化(OA)等信息系統(tǒng)的使用,控制網(wǎng)絡(luò)和企業(yè)辦公網(wǎng)絡(luò)之間的聯(lián)系日益密切。信息化進(jìn)程和工業(yè)化進(jìn)程越來越不獨(dú)立,各個層面相互滲透,傳統(tǒng)信息技術(shù)在DCS中的廣泛應(yīng)用導(dǎo)致控制系統(tǒng)被攻擊的風(fēng)險大大增加,工業(yè)用戶傳統(tǒng)的“物理隔離即絕對安全”的理念逐漸被顛覆。4.2.5SCADA系統(tǒng)漏洞分析SCADA系統(tǒng)存在的漏洞多種多樣,以下列舉幾種常見的SCADA系統(tǒng)漏洞形式。1)通信協(xié)議的漏洞大多數(shù)SCADA通信協(xié)議都是不同企業(yè)開發(fā)的專有標(biāo)準(zhǔn)。近年來,業(yè)界已普遍接受通用的開放標(biāo)準(zhǔn)協(xié)議。2)SCADA硬件的漏洞SCADA硬件設(shè)備包括RTUs、IEDs、SCADA服務(wù)器等,它們與常規(guī)的計算機(jī)系統(tǒng)的脆弱性相同,如中斷、竊聽和攔截等。硬件設(shè)備間的通信鏈路的脆弱性也與常規(guī)的計算化網(wǎng)絡(luò)相似,極易受到攻擊。SCADA信息通常無加密傳輸,無論使用什么樣的通信協(xié)議,數(shù)據(jù)和密碼都容易被攔截。3)SCADA軟件的漏洞SCADA軟件包括系統(tǒng)軟件和應(yīng)用軟件,如操作系統(tǒng)、應(yīng)用軟件等。SCADA軟件常見的脆弱性有中斷、竊聽和修改。軟件可能被攻擊者故意刪除導(dǎo)致潛在的嚴(yán)重故障。軟件最致命的攻擊往往是由于軟件被修改引起的。4)數(shù)據(jù)完整性的漏洞對于攻擊者來說,SCADA數(shù)據(jù)具有更高的價值。4.2.6工業(yè)控制網(wǎng)絡(luò)安全漏洞標(biāo)準(zhǔn)化工作漏洞標(biāo)準(zhǔn)化工作在傳統(tǒng)信息系統(tǒng)中已經(jīng)比較完善,需要對發(fā)現(xiàn)的漏洞進(jìn)行標(biāo)準(zhǔn)化管理的主要原因如下:(1)規(guī)范漏洞的描述體系,為漏洞的多種屬性提供規(guī)則。(2)有利于信息安全產(chǎn)品的研發(fā)和自動化。(3)為信息安全測評和風(fēng)險評估創(chuàng)造條件。(4)標(biāo)準(zhǔn)化工作是對漏洞進(jìn)行有效管控的重要手段,有利于指導(dǎo)漏洞的預(yù)防、收集、削減和發(fā)布等活動。以下是國際和國內(nèi)在工業(yè)控制漏洞管理領(lǐng)域比較有代表性的平臺:1)通用漏洞披露庫2)美國工控系統(tǒng)網(wǎng)絡(luò)應(yīng)急響應(yīng)小組3)中國國家信息安全漏洞庫4)國家信息安全漏洞共享平臺4.3漏洞掃描技術(shù)漏洞掃描技術(shù)是指利用掃描等手段檢測目標(biāo)主機(jī)或網(wǎng)絡(luò)的安全脆弱性,并發(fā)現(xiàn)可利用的漏洞的一種安全檢測技術(shù)。防火墻、入侵檢測技術(shù)和漏洞掃描技術(shù)都是安全檢測的主流技術(shù)。其中,防火墻和入侵檢測技術(shù)屬于被動防御措施,而漏洞掃描技術(shù)則屬于一種主動的防范方法。將這三種技術(shù)結(jié)合起來,能夠有效地保證網(wǎng)絡(luò)的安全性。網(wǎng)絡(luò)管理員通常利用漏洞掃描技術(shù)來更好地了解當(dāng)前網(wǎng)絡(luò)正在運(yùn)行的服務(wù)和應(yīng)用以及網(wǎng)絡(luò)的安全設(shè)置,并將其作為網(wǎng)絡(luò)風(fēng)險評估的主要依據(jù)。同時,也能夠及時地發(fā)現(xiàn)網(wǎng)絡(luò)中存在的安全問題,并對網(wǎng)絡(luò)安全系統(tǒng)中的設(shè)置進(jìn)一步修正和完善,從而加強(qiáng)對入侵者攻擊的防御,提高網(wǎng)絡(luò)的安全性。4.3.1漏洞掃描分類按照部署方式來說,漏洞掃描可以分為基于主機(jī)的漏洞掃描和基于網(wǎng)絡(luò)的漏洞掃描兩大類。1.基于主機(jī)的漏洞掃描

基于主機(jī)的漏洞掃描采用被動的、非破壞性的方法對系統(tǒng)進(jìn)行檢測。通常,這種掃描方式涉及到系統(tǒng)的內(nèi)核、文件的屬性、操作系統(tǒng)的補(bǔ)丁等內(nèi)容。1)基于主機(jī)的漏洞掃描器(

溫馨提示

  • 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

提交評論