




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第4章工業(yè)控制系統(tǒng)協(xié)議工業(yè)控制系統(tǒng)安全與實踐2本章學(xué)習(xí)目標(biāo)了解工業(yè)控制協(xié)議在工控系統(tǒng)中的應(yīng)用以及工控協(xié)議應(yīng)滿足的安全屬性。了解常見的工控協(xié)議如Modbus協(xié)議、S7協(xié)議、EtherNet/IP協(xié)議,掌握協(xié)議的報文格式、通信方式等基礎(chǔ)知識,理解工控協(xié)議的通信特點。動手搭建工控協(xié)議的仿真通信環(huán)境,通過協(xié)議通信實驗深入理解協(xié)議的通信過程以及協(xié)議所存在的安全問題。4.1 工控系統(tǒng)協(xié)議簡介4.2 施耐德協(xié)議4.3 西門子協(xié)議4.4 羅克韋爾協(xié)議4.5自主可控工業(yè)協(xié)議暢想4.6 本章小結(jié)和習(xí)題目
錄CONTENT34.1工控協(xié)議簡介5工控協(xié)議是一種應(yīng)用于工業(yè)控制系統(tǒng)中的通信協(xié)議,旨在實現(xiàn)工業(yè)設(shè)備之間的信息交換和協(xié)同工作。工控協(xié)議有些由國際標(biāo)準(zhǔn)組織制定,如OPC、IEC協(xié)議等,是一種標(biāo)準(zhǔn)化的通信方式,可以保證不同廠商生產(chǎn)的設(shè)備之間的兼容性和互操作性,被廣泛應(yīng)用于工業(yè)自動化領(lǐng)域。有些則是由工控廠商自定義制定,這種工業(yè)協(xié)議的種類很多,每種協(xié)議都有其特定的通信規(guī)則和數(shù)據(jù)格式。4.1 工控協(xié)議簡介工控協(xié)議簡介6工控協(xié)議被用于實現(xiàn)工控系統(tǒng)中部分設(shè)備組件間的網(wǎng)絡(luò)通信,這些組件包括OPC、數(shù)據(jù)庫等服務(wù)器;工程師站、操作員站等上位機系統(tǒng);PLC、RTU等工業(yè)過程控制設(shè)備;具體生產(chǎn)過程中所使用到的現(xiàn)場設(shè)備等。各種設(shè)備組件相互通信形成工業(yè)控制網(wǎng)絡(luò),按照業(yè)務(wù)可以將其分為企業(yè)管理網(wǎng)絡(luò)、過程監(jiān)控網(wǎng)絡(luò)和現(xiàn)場控制網(wǎng)絡(luò)三層。其中企業(yè)管理網(wǎng)絡(luò)與互聯(lián)網(wǎng)直接相連,使用如HTTP、POP3以及SMTP等傳統(tǒng)IT網(wǎng)絡(luò)協(xié)議;過程監(jiān)控網(wǎng)絡(luò)和現(xiàn)場控制網(wǎng)絡(luò)大量使用工控協(xié)議實現(xiàn)信息交換和控制功能,右圖為典型的工業(yè)控制網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖。4.1.1 工控協(xié)議應(yīng)用7保密性主要涉及對信息資源開放程度的控制,目的是保證信息不被未經(jīng)授權(quán)的個人、組織或計算機程序獲取。在工業(yè)控制系統(tǒng)領(lǐng)域,信息的保密性主要關(guān)乎工業(yè)協(xié)議的保密性。由于工業(yè)控制系統(tǒng)的特殊性,工控協(xié)議的保密性對于保護(hù)系統(tǒng)的安全和穩(wěn)定運行至關(guān)重要。4.1.2 工控協(xié)議的安全屬性工業(yè)協(xié)議的完整性是維護(hù)信息系統(tǒng)數(shù)據(jù)完整性的核心,確保數(shù)據(jù)未受未經(jīng)授權(quán)的篡改或破壞。任何未經(jīng)授權(quán)的數(shù)據(jù)插入、篡改或偽造都可能損害系統(tǒng)完整性,引發(fā)嚴(yán)重的服務(wù)中斷或其他問題。工業(yè)協(xié)議的可用性指的是在特定的應(yīng)用場景下,工業(yè)協(xié)議能夠滿足用戶需求的性質(zhì)。在工業(yè)自動化領(lǐng)域,工業(yè)協(xié)議的可用性通常指的是其能否有效地支持?jǐn)?shù)據(jù)傳輸和設(shè)備控制等任務(wù),以及其能否在各種環(huán)境和條件下穩(wěn)定運行。保密性可用性完整性4.2施耐德協(xié)議94.2 施耐德協(xié)議為了研究施耐德PLC在真實工業(yè)生產(chǎn)中的協(xié)議通信,可基于普度模型搭建施耐德PLC協(xié)議安全研究環(huán)境??纱罱ㄏ挛环抡嫜芯凯h(huán)境左圖所示。也可搭建上位仿真研究環(huán)境如右圖所示。下位仿真研究環(huán)境上位仿真研究環(huán)境104.2.1 Modbus協(xié)議及UMAS協(xié)議介紹1979年,Modicon公司(現(xiàn)屬施耐德)發(fā)明了可用于PLC上的串行通信協(xié)議Modbus,該協(xié)議很快就成為了行業(yè)標(biāo)準(zhǔn)。Modbus屬于應(yīng)用層協(xié)議,位于OSI模型的第7層。Modbus的主要特點是簡單和開放,這使它獲得了快速的推廣并成為了工業(yè)電子設(shè)備常用的連接方式之一。右圖為Modbus協(xié)議通信棧,目前Modbus主要有以下三種實現(xiàn)形式:以太網(wǎng)上的TCP/IP。各類物理介質(zhì)(有線如EIA/TIA-232-E、EIA-422、EIA/TIA-485-A;光纖、無線等等)上的異步串行傳輸。ModbusPlus一種高速令牌傳遞網(wǎng)絡(luò)。114.2.1 Modbus協(xié)議及UMAS協(xié)議介紹Modbus采用主從(Master-Salve)通信模式,僅有主設(shè)備(Master)可以發(fā)起請求,從設(shè)備(Slave)根據(jù)主設(shè)備的請求進(jìn)行應(yīng)答。典型的主設(shè)備包括現(xiàn)場儀表和顯示面板,典型的從設(shè)備為可編程邏輯控制器。右圖為Modbus協(xié)議通信示意圖,可以看到當(dāng)從站認(rèn)為Modbus請求報文出現(xiàn)錯誤時,會返回Modbus異常響應(yīng)包。Modbus協(xié)議通信模式124.2.1 Modbus協(xié)議及UMAS協(xié)議介紹Modbus協(xié)議中定義了一種專有的協(xié)議數(shù)據(jù)單元(PDU),它不依賴于底層通信層,由功能碼和數(shù)據(jù)兩部分構(gòu)成,其中功能碼相對重要,直接表明了數(shù)據(jù)包的功能。Modbus協(xié)議不同的實現(xiàn)形式使用的應(yīng)用數(shù)據(jù)單元(ADU)存在一定區(qū)別。Modbus定義了三種類型的PDU,分別是Modbus請求,Modbus應(yīng)答和Modbus異常應(yīng)答。下圖為Modbus協(xié)議報文格式。Modbus協(xié)議報文格式134.2.1 Modbus協(xié)議及UMAS協(xié)議介紹Modbus協(xié)議功能碼Modbus協(xié)議的功能碼可以分為以下三類:公共功能碼:由Modbus協(xié)議組織公開定義的功能碼可以保證其是唯一的,可改變的,公開證明的,具有可用的一致性測試。用戶定義功能碼:不需要Modbus協(xié)議組織的允許,自己定義的實現(xiàn)一些特定功能的功能碼。保留功能碼:一些公司為其設(shè)備保留的功能碼,不能用于公共使用。功能碼功能描述01讀線圈狀態(tài)02讀離散輸入量03讀保持寄存器04讀輸入寄存器05寫單個線圈06寫單個保持寄存器07讀取異常狀態(tài)11讀取事件計數(shù)器(僅串口)12讀取事件記錄(僅串口)14讀取設(shè)備標(biāo)識15寫多個線圈16寫多個保持寄存器17報告從站標(biāo)識符20讀取文件記錄21寫入文件記錄23讀/寫多個寄存器43讀取設(shè)備標(biāo)識Modbus常用功能碼144.2.1 Modbus協(xié)議及UMAS協(xié)議介紹UMAS協(xié)議在工業(yè)控制系統(tǒng)中,施耐德的不同系列PLC除了使用公開的工業(yè)控制協(xié)議(例如Modbus、OPCDA、OPCUA等)進(jìn)行業(yè)務(wù)通訊之外。還會使用自己開發(fā)的私有協(xié)議,施耐德的私有協(xié)議為UMAS協(xié)議。統(tǒng)一消息傳遞應(yīng)用程序服務(wù)(UnifiedMessagingApplicationServices,UMAS)是用于交換應(yīng)用程序數(shù)據(jù)的平臺獨立協(xié)議,它主要用于和自家的UnityPro以及Somachine平臺進(jìn)行通信執(zhí)行一些高權(quán)限的操作,例如啟動停止,工程的上載和下裝等。UMAS協(xié)議的PDU如右圖所示,可見UMAS協(xié)議即為使用90功能碼的Modbus協(xié)議,在數(shù)據(jù)部分使用2字節(jié)大小的UMAS功能碼實現(xiàn)功能。UMAS功能碼與其多項配置緊密相連,這些配置涵蓋了PLC讀取、寫入、啟動/停止以及數(shù)據(jù)的上傳/下載等多種操作。154.2.1 Modbus協(xié)議及UMAS協(xié)議介紹中大型PLC在使用UnityPro編程時,需要建立連接,建立連接過程如下:UnityPro發(fā)送協(xié)商Session請求,PLC接到該請求后,返回協(xié)商的Session,該過程表明協(xié)商成功。后續(xù)通信UnityPro將協(xié)商成功的SessionKey加入PDU組成新的ADU發(fā)送給PLC,PLC校驗成功后,執(zhí)行相關(guān)操作的數(shù)據(jù)通信。建立連接的過程下圖所示功能碼含義0x01建立UMAS通信0x02請求PLCID0x03讀取PLC中工程信息0x04讀取PLC內(nèi)部信息0x06讀取PLCSD卡信息0x0A回傳發(fā)送給PLC的數(shù)據(jù)0x10獨占PLC0x11釋放PLC0x12保持連接0x20準(zhǔn)備讀取PLC內(nèi)存塊0x22以bit/word方式讀系統(tǒng)變量0x23以bit/word方式寫系統(tǒng)變量UMAS常用功能碼164.2.2 Modbus協(xié)議通信環(huán)境搭建及協(xié)議分析modbus_tk是一個用Python實現(xiàn)的Modbus協(xié)議模塊,可以支持Modbus在TCP和RTU上的通信,該模塊的相關(guān)信息見:/pypi/modbus_tk。下面舉例利用modbus_tk實現(xiàn)Modbus在TCP上的仿真通信,右圖為Modbus從站(可以理解為服務(wù)端)的代碼。174.2.2 Modbus協(xié)議通信環(huán)境搭建及協(xié)議分析客戶端代碼如左圖所示。利用上述兩部分代碼模擬了一個Modbus主站與從站間的簡單通信,通信內(nèi)容為主站每間隔20秒向從站讀取一次保持寄存器的值。右圖為仿真通信的網(wǎng)絡(luò)拓?fù)鋱D。184.2.2 Modbus協(xié)議通信環(huán)境搭建及協(xié)議分析接下來通過Wireshark軟件抓包簡單分析以下程序通訊的過程。Wireshark是一款優(yōu)秀的網(wǎng)絡(luò)協(xié)議分析器,其可以截取網(wǎng)絡(luò)數(shù)據(jù)包并詳細(xì)地展現(xiàn)出數(shù)據(jù)包信息,并且是非盈利性質(zhì)的,可以從官網(wǎng)/獲取Wireshark。運行兩個程序后抓包結(jié)果如所示。由于使用ModbusTCP進(jìn)行通信,前3個包用于建立TCP連接,也就是常說的“三次握手”過程。第4個和第5個包的應(yīng)用層使用Modbus協(xié)議,第4個包由主站發(fā)向從站請求讀取保持寄存器,第5個包由從站發(fā)向主站,回復(fù)主站請求的保持寄存器信息。第6個包為TCP協(xié)議用于確認(rèn)收到了回復(fù)。Modbus協(xié)議通信分析194.2.3 案例1-Modbus讀寫線圈/寄存器由于Modbus協(xié)議缺少授權(quán)與認(rèn)證,這意味著Modbus從站不會對發(fā)送方的權(quán)限進(jìn)行驗證,任何人可以輕松地通過直接建立socket連接的方式對從站的相關(guān)數(shù)據(jù)進(jìn)行讀寫。接下來本書將通過實驗來驗證Modbus協(xié)議的脆弱性,證實Modbus協(xié)議通信的不安全性。
Modbus-cli是滲透測試人員常使用的常用于查詢Modbus從站信息的客戶端,可以通過/tallakt/Modbus-cli下載,使用Modbus-cli工具只需要在終端中使用簡單的命令就可以實現(xiàn)從站數(shù)據(jù)的讀取,其在Kali上可以使用以下命令進(jìn)行安裝??梢允褂孟聢D所示命令直接獲取192.168.129從站保持寄存器的數(shù)據(jù),其與Modbus主站32得到的數(shù)據(jù)是相同的。204.2.3 案例1-Modbus讀寫線圈/寄存器通過網(wǎng)絡(luò)通信的角度分析,其實該命令的本質(zhì)就是構(gòu)造相應(yīng)的Modbus請求報文,并通過網(wǎng)絡(luò)將報文發(fā)送給Modbus從站,然后通過從站的響應(yīng)報文獲取保持寄存器數(shù)據(jù)。執(zhí)行上述命令時使用Wireshark抓包得到的結(jié)果如下圖所示,該命令建立了一個TCP連接緊接著發(fā)送了構(gòu)造的讀保持寄存器請求報文。214.2.4 案例2-基于Scapy實現(xiàn)Modbus通信Scapy是用來解析與處理底層網(wǎng)絡(luò)數(shù)據(jù)包的Python模塊和交互式程序,該程序?qū)Φ讓影幚磉M(jìn)行了抽象打包,使得對網(wǎng)絡(luò)數(shù)據(jù)包的處理變得簡便。Scapy大大簡化了手工構(gòu)造數(shù)據(jù)包的流程,可以利用它輕松地構(gòu)造想要的特定數(shù)據(jù)包。Scapy的功能很強大,各種協(xié)議類型的數(shù)據(jù)包都可以通過它來構(gòu)造,用Scapy可以完成很多有趣的實驗,這也是對其單獨介紹的原因。Scapy既可作為Python庫被調(diào)用,也能獨立運行。KaliLinux操作系統(tǒng)預(yù)裝了Scapy,用戶可以直接在終端輸入scapy命令來啟動其交互式命令行界面。其操作界面下圖所示。224.2.4 案例2-基于Scapy實現(xiàn)Modbus通信右圖為通過Scapy完成TCP/IP三次握手,然后構(gòu)造Modbus報文對Modbus從站的寄存器值進(jìn)行修改的簡單python腳本。腳本中p1,p2,p3分別代表三次握手中的三個數(shù)據(jù)包,change為Modbus協(xié)議數(shù)據(jù)包用于修改寄存器值。特別需要注意的是在一個TCP連接中,數(shù)據(jù)包的序列號與確認(rèn)號必須遵循一定規(guī)律,否則會導(dǎo)致TCP連接異常,腳本需要正確設(shè)置數(shù)據(jù)包的序列號與確認(rèn)號。234.2.4 案例2-基于Scapy實現(xiàn)Modbus通信運行該腳本并使用Wireshark抓包分析,抓包結(jié)果如下圖所示,顯然該腳本成功通過構(gòu)造數(shù)據(jù)包完成三次握手的過程并發(fā)送Modbus請求報文實現(xiàn)了對寄存器數(shù)值的修改。244.2.4 案例2-基于Scapy實現(xiàn)Modbus通信通過Wireshark可以清楚看到代碼中第6行特意構(gòu)造的二進(jìn)制數(shù)據(jù)在Modbus請求報文中的位置,二進(jìn)制數(shù)據(jù)在下圖
中高亮顯示。4.3西門子協(xié)議264.3 西門子協(xié)議同理,為了研究西門子PLC在真實工業(yè)生產(chǎn)中的協(xié)議通信,可基于普度模型搭建西門子PLC協(xié)議安全研究環(huán)境。可搭建下位仿真研究環(huán)境左圖所示。也可搭建上位仿真研究環(huán)境如右圖所示。下位仿真研究環(huán)境上位仿真研究環(huán)境274.3.1 S7協(xié)議介紹西門子(Siemens)公司開發(fā)的S7通信協(xié)議,專為S7系列PLC量身定制。該協(xié)議適用于PLC的編程、不同PLC間的數(shù)據(jù)通信、通過SCADA系統(tǒng)對PLC數(shù)據(jù)的訪問以及故障診斷等方面。S7協(xié)議不依賴于西門子旗下的任何特定通信總線技術(shù),能夠在MPI、Profibus、Profinet和Ethernet等多種網(wǎng)絡(luò)環(huán)境中穩(wěn)定運作。在S7通信系統(tǒng)中,存在三種主要角色:客戶端、服務(wù)器和伙伴。該系統(tǒng)支持兩種通信模式:一種是客戶端/服務(wù)器(Client/Server)模式,另一種是伙伴/伙伴(Partner/Partner)模式。在客戶端/服務(wù)器模式中,通信過程與Modbus的主從模式相仿,客戶端需主動發(fā)出詢問(query)請求,服務(wù)器則對此作出響應(yīng)(reply)。在此模式下,服務(wù)器不會自發(fā)地發(fā)起詢問。而在伙伴/伙伴模式中,通信雙方都有權(quán)主動發(fā)起詢問,并且都能夠?qū)α硪环降脑儐栕鞒龌貞?yīng)??蛻舳?服務(wù)器模式是S7通信中最普遍采用的形式,其中PLC常被設(shè)定為服務(wù)器端,而編程電腦、工控機、觸摸屏等則扮演客戶端的角色,右圖
為S7協(xié)議通信方式示意圖。284.3.1 S7協(xié)議介紹S7comm協(xié)議運行在COTP(Connection-OrientedTransportProtocol)之上,COTP是ISO協(xié)議族的連接傳輸協(xié)議。當(dāng)S7comm協(xié)議要在TCP/IP上實現(xiàn)時,其下層傳輸層使用的是ISO-on-TCP(RFC1006)協(xié)議。實際上傳輸層TCP的實現(xiàn)方式并沒有改變,讀者也可以簡單的認(rèn)為S7協(xié)議只在傳輸層之上進(jìn)行了修改。S7comm協(xié)議基于TCP/IP實現(xiàn)的OSI參考模型如下表所示,可以明顯看出其與傳統(tǒng)的基于TCP/IP的網(wǎng)絡(luò)協(xié)議的特殊性。下圖為S7comm協(xié)議實現(xiàn)時各層的數(shù)據(jù)包結(jié)構(gòu)圖。序號OSI模型協(xié)議7應(yīng)用層S7communication6表示層S7communication(COTP)5會話層S7communication(TPKT)4傳輸層ISO-on-TCP3網(wǎng)絡(luò)層IP2數(shù)據(jù)鏈路層Ethernet1物理層Ethernet294.3.2 S7協(xié)議通信環(huán)境搭建及協(xié)議分析對于S7comm協(xié)議的仿真通信,本書基于Snap7搭建上位仿真環(huán)境,在搭建協(xié)議仿真通信環(huán)境時,在IP地址為32的Win7虛擬機上運行serverdemo.exe作為服務(wù)端,可以將其理解為一個仿真的西門子PLC;在IP地址為30的Win7虛擬機上運行clientdemo.exe作為客戶端,相當(dāng)于實際工控場景下的操作員站、工程師站等上位機。軟件的使用非常簡單,只需設(shè)定好正確的IP地址后將依次將服務(wù)端與客戶端啟動即可。仿真客戶端界面304.3.3 案例3-S7協(xié)議讀寫數(shù)據(jù)在4.3.2中已經(jīng)在兩臺Win7虛擬機上搭建好了S7客戶端30與S7服務(wù)端32之間的通信。在本節(jié)中使用IP地址為39的Kali虛擬機作為攻擊機對S7comm協(xié)議的通信進(jìn)行攻擊。整個的S7comm協(xié)議攻擊實驗環(huán)境下表所示。S7comm協(xié)議通信分析IP地址功能操作系統(tǒng)30S7客戶端Windows732S7服務(wù)端Windows739攻擊機KaliLinux314.3.3 案例3-S7協(xié)議讀寫數(shù)據(jù)Snap7是一個開源的以太網(wǎng)通信庫,專為與西門子S7系列PLC進(jìn)行交互而設(shè)計。它能夠支持包括S7-200、S7-200Smart、S7-300、S7-400、S7-1200和S7-1500在內(nèi)的多種S7系列PLC的通信。此外,Snap7提供了對多種編程語言的接口,包括Python、C和C#,從而使得開發(fā)者能夠在不同的編程環(huán)境中使用該庫。由于S7comm協(xié)議沒有認(rèn)證機制,可以使用Snap7輕松地建立與PLC的通信并對數(shù)據(jù)進(jìn)行讀寫。在這里使用python-snap7進(jìn)行本次實驗,其下載地址為:/project/python-snap7/。
在32的Win7虛擬機上開啟服務(wù)端仿真器(PLC),在39的Kali虛擬機上運行以下腳本文件。其中第5行利用Snap7庫初始化一個客戶端對象,第6行連接PLC,參數(shù)為IP地址,機架號,插槽號。第7,8行調(diào)用db_read函數(shù)讀取DB塊數(shù)據(jù),并將其打印出來,第9行調(diào)用db_write函數(shù)對DB塊數(shù)據(jù)進(jìn)行修改。324.3.3 案例3-S7協(xié)議讀寫數(shù)據(jù)運行腳本文件后的結(jié)果如下圖。發(fā)現(xiàn)仿真服務(wù)器端的DB1塊起始位置為0的5個字節(jié)被成功修改,觀察圖片下方的日志也可以看到32與服務(wù)端建立了連接并且發(fā)送了Read和Write請求對DB1塊進(jìn)行讀寫操作。334.3.3 案例3-S7協(xié)議讀寫數(shù)據(jù)用Wireshark對上述過程進(jìn)行抓包,抓到的關(guān)鍵數(shù)據(jù)包如圖所示,下圖為Write請求包的詳細(xì)內(nèi)容,該報文應(yīng)用層Header部分表明其為JOB類型,在Parameter部分使用0x05寫數(shù)據(jù)功能碼,最后將需要寫入的DB塊數(shù)據(jù)放入Data部分。讀寫數(shù)據(jù)報文分析344.3.3 案例4-西門子PLC啟停由于S7comm協(xié)議沒有認(rèn)證和加密機制,可以通過簡單的重放報文以達(dá)到某種攻擊目的,其中PLC啟停攻擊是一種典型且威脅很大的攻擊方式,在工控環(huán)境中,設(shè)備的突然停機顯然是不可接受的。本次PLC啟停攻擊中還使用到了ISF(IndustrialExploitationFramework)框架,ISF是一款用Python編寫的工控漏洞利用框架,類似于Metasploit,其包含的工控漏洞利用模塊如下圖所示。其下載地址為:/dark-lbp/isf。本次使用s7_300_400_plc_control模塊以實現(xiàn)PLC的啟停攻擊。354.3.3 案例4-西門子PLC啟停首先在32上運行PLC模擬器,并在30上運行客戶端模擬器用于檢測PLC狀態(tài),進(jìn)入Control模塊可以看到此時CPU的狀態(tài)為RUN,如下圖所示。然后在39上運行ISF框架,操作相對簡單如下圖所示,只需選取使用的模塊,設(shè)置好PLC所對應(yīng)的IP地址后運行該模塊即可。364.3.3 案例4-西門子PLC啟停此時再觀察CPU的運行狀態(tài)已經(jīng)變?yōu)镾TOP,如右圖所示。對以上述過程抓包分析,關(guān)鍵數(shù)據(jù)包如下圖所示??梢钥吹終ali與仿真PLC建立了TCP/IP連接,之后又建立了COTP連接并協(xié)商了S7comm通信,最后發(fā)送了PDU類型為JOB,功能為StopPLC的報文實現(xiàn)了停止CPU運行攻擊。374.3.3 案例4-西門子PLC啟停通過觀察ISF模塊代碼如下圖所示,可以發(fā)現(xiàn)協(xié)商S7comm協(xié)議和StopPLC的過程就只是通過將二進(jìn)制串簡單重放完成的,這印證了S7comm協(xié)議沒有對通信對象進(jìn)行驗證,任何擁有PLC的IP地址的人都可以對其發(fā)起攻擊,這是相當(dāng)危險的。4.4羅克韋爾協(xié)議394.4
羅克韋爾協(xié)議同理,為了研究羅克韋爾PLC在真實工業(yè)生產(chǎn)中的協(xié)議通信,可基于普度模型搭建羅克韋爾PLC協(xié)議安全研究環(huán)境??纱罱ㄏ挛环抡嫜芯凯h(huán)境左圖所示。也可搭建上位仿真研究環(huán)境如右圖所示。下位仿真研究環(huán)境上位仿真研究環(huán)境404.4.1
羅克韋爾PLC協(xié)議介紹羅克韋爾PLC采用ODVA組織設(shè)計的EtherNet/IP作為外層傳輸協(xié)議,里面封裝CIP協(xié)議進(jìn)行通訊。因此羅克韋爾PLC協(xié)議是由EtherNet/IP協(xié)議封裝CIP協(xié)議組成。CIP協(xié)議是一種應(yīng)用在工業(yè)自動化的通信協(xié)議,由羅克韋爾自動化公司開發(fā),廣泛應(yīng)用于工業(yè)控制和監(jiān)測設(shè)備之間的通信。其支持多種不同的物理介質(zhì),包括以太網(wǎng)、無線網(wǎng)絡(luò)、串口等,并采用面向連接的通信模型,確保數(shù)據(jù)的可靠性和完整性。CIP涵蓋了工業(yè)實時控制所需的各種服務(wù)和規(guī)范。它根據(jù)數(shù)據(jù)是否具有實時控制需求,將其分為不同的優(yōu)先級。CIP的功能類似于一種通用語言,使得來自不同地區(qū)的人們能夠直接進(jìn)行溝通。它成功地在DeviceNet、ControlNet以及EtherNet/IP網(wǎng)絡(luò)之間實現(xiàn)了無縫集成。用戶無需進(jìn)行額外的編程工作,就能從任何位置訪問、配置和維護(hù)這些網(wǎng)絡(luò)中的任意設(shè)備。右圖為CIP協(xié)議通信方式示意圖。414.4.1
羅克韋爾PLC協(xié)議介紹EtherNet/IP是一種現(xiàn)代化的標(biāo)準(zhǔn)通信協(xié)議。它由控制網(wǎng)國際有限公司(ControlNetInternational)的技術(shù)工作組與ODVA(開放式DeviceNet供應(yīng)商協(xié)會)在20世紀(jì)90年代共同開發(fā)。EtherNet/IP是以通用工業(yè)協(xié)議(CommonIndustrialProtocol,CIP)為基礎(chǔ)的。EtherNet/IP的標(biāo)準(zhǔn)化工作已由美國的工業(yè)控制設(shè)備制造商Rockwell/Allen-Bradley完成,同時其他制造商,如Omron也在其設(shè)備上提供了對EtherNet/IP的支持。EtherNet/IP是對CIP協(xié)議在以太網(wǎng)環(huán)境中的封裝實現(xiàn)。在EtherNet/IP框架內(nèi),CIP幀負(fù)責(zé)封裝指令、數(shù)據(jù)單元和通信消息等數(shù)據(jù)內(nèi)容,由CIP設(shè)備配置文件層、應(yīng)用層、表示層和會話層四個層級構(gòu)成。這些幀的其他組成部分共同構(gòu)成了EtherNet/IP的傳輸單元,而CIP幀則通過這些單元在以太網(wǎng)上進(jìn)行傳輸。EtherNet/IP數(shù)據(jù)包的一般結(jié)構(gòu)如右圖所示,EtherNet/IP數(shù)據(jù)包主要由幀頭和數(shù)據(jù)部分組成。在數(shù)據(jù)部分封裝CIP數(shù)據(jù),通過CIP數(shù)據(jù)來實現(xiàn)交互。424.4.2 羅克韋爾PLC協(xié)議通信環(huán)境搭建及協(xié)議分析對于羅克韋爾PLC協(xié)議下位通信環(huán)境的搭建,本書采用羅克韋爾PLC編程軟件Studio5000(PLC固件版本20以上)作為客戶端操作PLC,使用真實羅克韋爾PLC設(shè)備作為服務(wù)端。在IP地址為的PC機上下載并安裝Studio5000,開啟IP地址為23的羅克韋爾PLC。案例5連接過程解析實踐在該下位通信環(huán)境下進(jìn)行。對于羅克韋爾PLC協(xié)議上位通信環(huán)境的搭建,本書采用仿真軟件RSLinxClassic作為客戶端采集數(shù)據(jù),使用真實羅克韋爾PLC設(shè)備作為服務(wù)端。在IP地址為的PC機上下載并安裝RSLinxClassic,開啟IP地址為23的羅克韋爾PLC。案例6數(shù)據(jù)讀寫解析實踐在該上位通信環(huán)境下進(jìn)行。通信環(huán)境搭建434.4.3 案例5-連接過程解析實踐通過Studio5000軟件點擊通信(Communications)在下拉框中選擇在線(Goonline)如下圖所示,Studio5000軟件將進(jìn)行連接羅克韋爾PLC操作。444.4.3 案例5-連接過程解析實踐通過Wireshark對上述過程進(jìn)行抓包,可以看到CIP協(xié)議建立通訊連接的過程,如下圖所示,首先發(fā)送ListService命令數(shù)據(jù)包來確定目標(biāo)設(shè)備所支持的封裝服務(wù)的class參數(shù);之后發(fā)送ListInterface命令數(shù)據(jù)包來識別非CIP通信接口,發(fā)送者通過該命令包與非CIP通訊接口目標(biāo)建立連接;最后發(fā)送RegisterSession命令數(shù)據(jù)包來注冊會話句柄。454.4.3 案例5-連接過程解析實踐RegisterSession命令數(shù)據(jù)包的詳細(xì)信息如下圖所示。464.4.4 案例6-數(shù)據(jù)讀寫解析實踐打開仿真軟件RSLinxClassic,點擊
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程項目工程完工后設(shè)備驗收方案
- 混凝土澆筑工藝優(yōu)化與工效提升方案
- 智算中心分布式存儲系統(tǒng)方案
- 施工人員工傷保險與賠償管理方案
- 水的三態(tài)課件
- 醫(yī)藥組織者市場購買行為分析一47課件
- 水電氣安全知識培訓(xùn)內(nèi)容課件
- 主情造意41主景塑造手法49課件
- 2025版建筑行業(yè)安全生產(chǎn)合作協(xié)議
- 二零二五年度第四章:跨境電商合同履行風(fēng)險防范協(xié)議
- 2025年中國美甲貼片行業(yè)市場全景分析及前景機遇研判報告
- mcn公司管理制度
- 兒童腹痛的課件
- 會計常用的130個函數(shù)公式
- 國家保安員模擬考試題(含答案)
- 校招項目管理筆試題目及答案
- 2025年中國微功率模塊電源項目投資可行性研究報告
- 《肩關(guān)節(jié)解剖學(xué)》課件
- 墊資過橋合同協(xié)議
- 2024儲能參與電力市場
- 醫(yī)院各部門應(yīng)急預(yù)案與流程圖全集(2024版)
評論
0/150
提交評論