《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 工業(yè)以太網(wǎng)EtherNet/IP協(xié)議安全分析

工業(yè)以太網(wǎng)EtherNet/IP協(xié)議安全分析

2020-10-22
來源:信息技術(shù)與網(wǎng)絡(luò)安全

  工業(yè)是一個(gè)國家的根本的經(jīng)濟(jì)命脈,工業(yè)控制系統(tǒng)(Industrial Control Systems,ICS)是工業(yè)自動化體系結(jié)構(gòu)的重要組成部分。隨著工業(yè)4.0時(shí)代的到來,工業(yè)網(wǎng)絡(luò)的安全性日益重要。工業(yè)以太網(wǎng)EtherNet/IP協(xié)議使用原有的基于標(biāo)準(zhǔn)的以太網(wǎng)技術(shù),已經(jīng)被大量使用在工業(yè)網(wǎng)絡(luò)控制系統(tǒng)中,其安全性一直備受關(guān)注,國內(nèi)對工業(yè)網(wǎng)絡(luò)協(xié)議安全性的研究很少。使用形式化分析工具Scyther在Delov-Yao模型和強(qiáng)安全模型下對EtherNet/IP協(xié)議核心成員通用工業(yè)協(xié)議(Control and Information Protocol,CIP)所采用的加密認(rèn)證TLS協(xié)議進(jìn)行形式化分析。對下一代CIP協(xié)議嵌入TLS1.3具有實(shí)踐價(jià)值,該方法對其他工業(yè)網(wǎng)絡(luò)協(xié)議進(jìn)行有效的安全分析有理論指導(dǎo)意義。

  EtherNet/IP協(xié)議簡介和CIP介紹

  EtherNet/IP協(xié)議結(jié)構(gòu)和性能

  EtherNet/IP(EtherNet/IP Industry Protocol)是由兩大組織ODVA(Open DeviceNet Vendors Association)和ControlNet International于2001年正式推出的新的協(xié)議成員。使用通用工業(yè)協(xié)議(CIP)作為上層協(xié)議,結(jié)合傳統(tǒng)的以太網(wǎng)協(xié)議技術(shù)和標(biāo)準(zhǔn)的TCP/IP(Transmission Control Protocol/Internet Protocol)協(xié)議共同構(gòu)成EtherNet/IP協(xié)議的體系結(jié)構(gòu),該協(xié)議是基于CIP協(xié)議的工業(yè)網(wǎng)絡(luò)協(xié)議。EtherNet/IP協(xié)議有較好的互操作性能,而且數(shù)據(jù)傳輸距離長,傳輸速率高。CIP協(xié)議獨(dú)立于物理層和數(shù)據(jù)鏈路層之上,與設(shè)備介質(zhì)無關(guān),可以將其移植到高性能的網(wǎng)絡(luò)設(shè)施上。CIP封裝協(xié)議的主要任務(wù)是定義和規(guī)范了如何封裝和傳輸上層協(xié)議的報(bào)文,以及如何管理和利用下層TCP/IP鏈接,起到承上啟下的作用。EtherNet/IP協(xié)議網(wǎng)絡(luò)遵循開放的OSI模型。圖1是EtherNet/IP協(xié)議結(jié)構(gòu)圖。

1.jpg

  由于以太網(wǎng)數(shù)據(jù)傳輸速度的大幅度提升和工業(yè)網(wǎng)絡(luò)交換機(jī)技術(shù)的快速發(fā)展,在網(wǎng)絡(luò)高負(fù)載通信時(shí)EtherNet/IP協(xié)議也能夠滿足工業(yè)網(wǎng)絡(luò)對實(shí)時(shí)性和確定性的要求。EtherNet/IP協(xié)議使用高效的數(shù)據(jù)傳輸模式——生產(chǎn)者/消費(fèi)者模式(Producer/Consummer)。端點(diǎn)之間的聯(lián)系不是通過具體的源和目的地址關(guān)聯(lián)起來,而是一個(gè)生產(chǎn)者可以對應(yīng)多個(gè)消費(fèi)者,使數(shù)據(jù)的傳輸達(dá)到了最優(yōu)化。網(wǎng)絡(luò)源節(jié)點(diǎn)按照內(nèi)容將數(shù)據(jù)進(jìn)行標(biāo)識,采用組播的方式同時(shí)發(fā)送到多個(gè)節(jié)點(diǎn),網(wǎng)絡(luò)上其他節(jié)點(diǎn)按照自己的需要通過標(biāo)識符來確定要接收的數(shù)據(jù)。避免了帶寬浪費(fèi),節(jié)省了網(wǎng)絡(luò)資源,同時(shí)提高了系統(tǒng)的通信效率。能夠很好地支持系統(tǒng)的控制、組態(tài)和數(shù)據(jù)采集,并且非實(shí)時(shí)性通信和實(shí)時(shí)性通信可以在同一子網(wǎng)中實(shí)現(xiàn)。但工業(yè)控制系統(tǒng)遭受越來越多的威脅,主要是網(wǎng)絡(luò)協(xié)議自身的缺陷引起的,EtherNet/IP協(xié)議也存在安全問題,需要進(jìn)一步提高安全防護(hù)能力。

  CIP報(bào)文傳輸方式

  CIP協(xié)議報(bào)文傳輸方式有顯式報(bào)文和隱式報(bào)文傳輸兩種方式。當(dāng)CIP協(xié)議嵌入U(xiǎn)DP協(xié)議用于發(fā)送隱式報(bào)文(Implicit(I/O)Message)。而CIP協(xié)議嵌入TCP協(xié)議用于發(fā)送顯式報(bào)文(Explicit Message)。兩種報(bào)文使用的封裝協(xié)議不同,傳輸?shù)南㈩愋鸵膊煌?。CIP將應(yīng)用對象之間的通信關(guān)系抽象為連接,并與之相應(yīng)制定了對象邏輯規(guī)范,使CIP協(xié)議可以不依賴于某一具體的網(wǎng)路硬件技術(shù),用邏輯來定義連接的關(guān)系,在通信之前先建立連接獲取唯一的標(biāo)識符(Connection ID,CID),如果連接涉及雙向的數(shù)據(jù)傳輸,就要分配兩個(gè)CID。

  顯式報(bào)文針對組態(tài)信息、設(shè)備配置、故障診斷等非實(shí)時(shí)性信息,其優(yōu)先級較低(包含解讀該報(bào)文所需要的信息),通過點(diǎn)對點(diǎn)的報(bào)文在兩個(gè)對象之間以交互的方式進(jìn)行傳輸。報(bào)文本身攜帶有關(guān)地址、數(shù)據(jù)類型和功能描述等相關(guān)內(nèi)容,接收設(shè)備根據(jù)內(nèi)容做出相應(yīng)的處理,采用源/目的地址傳送方式。在通信之前通過TCP協(xié)議獲得標(biāo)識符CID,之后進(jìn)行數(shù)據(jù)報(bào)文傳輸。使用通信端口0XAF12f。圖2是CIP顯示報(bào)文連接。

2.jpg

  隱式報(bào)文用于節(jié)點(diǎn)之間傳輸實(shí)時(shí)I/O數(shù)據(jù)、實(shí)時(shí)互鎖,優(yōu)先級較高(隱式報(bào)文中不包含傳送地址、數(shù)據(jù)類型標(biāo)識和功能描述內(nèi)容),全部作為有效數(shù)據(jù),傳輸效率高,在報(bào)文頭部有數(shù)據(jù)標(biāo)識符,消費(fèi)者根據(jù)標(biāo)識符選擇自己需要的內(nèi)容,通過UDP協(xié)議將實(shí)時(shí)I/O消息傳送到總線上。圖3是CIP隱式報(bào)文連接。

 3.jpg

  CIP通信安全

  目前CIP協(xié)議仍然使用IETF標(biāo)準(zhǔn)TLS1.2(Transport Layer Security:RFC 5246)和DTLS1.2(Datagram Transport Layer Security:RFC 6347)協(xié)議版本保證顯示報(bào)文和隱式報(bào)文數(shù)據(jù)傳輸?shù)陌踩?。TLS協(xié)議安承擔(dān)著Internet上通信的安全,造成越來越多的威脅,目前TLS1.2存在很多已被證明的安全隱患,TLS1.3(Transport Layer Security:RFC:8846)協(xié)議是2018年3月更新的最新版本,較之前的TLS1.2版本有較大的改變,修改了部分內(nèi)容,其安全性更高,這為EtherNet/IP協(xié)議的安全帶來新的挑戰(zhàn)和利益,因?yàn)槠鋺?yīng)用層CIP協(xié)議的安全性取決于TLS和DTLS協(xié)議安全保障能力。為了最大程度提高EtherNet/IP協(xié)議的安全性能,必須保證其應(yīng)用層協(xié)議CIP的安全性,所以最終在CIP協(xié)議中必須支持TLS1.3版本。TLS1.3在CIP協(xié)議中的支持預(yù)計(jì)要3~6年才能實(shí)現(xiàn),TLS協(xié)議在握手期間實(shí)現(xiàn)秘鑰建立和認(rèn)證,身份驗(yàn)證和秘鑰的建立很大程度上來說對CIP層和EtherNet/IP是透明的。TLS協(xié)議保證在不安全的傳輸通道上使用加密確保數(shù)據(jù)的安全傳輸。而DTLS協(xié)議是TLS轉(zhuǎn)換而來的,采用同TLS相同的設(shè)計(jì)方法,所以本文只對TLS協(xié)議進(jìn)行形式化分析。

  TLS協(xié)議保障在TCP傳輸安全性,客戶端和服務(wù)端建立TCP連接之后,建立TLS會話,實(shí)現(xiàn)TLS握手和TLS記錄協(xié)議。TLS協(xié)議由很多子協(xié)議組成,其中核心協(xié)議是記錄協(xié)議和握手協(xié)議,TLS握手協(xié)議負(fù)責(zé)身份驗(yàn)證和秘鑰建立(包括TLS版本確定和秘鑰交換以及后續(xù)使用的秘鑰算法),記錄協(xié)議通過使用客戶端和服務(wù)器協(xié)商后的秘鑰進(jìn)行數(shù)據(jù)加密,TLS記錄協(xié)議主要用來識別TLS中的消息類型(通過“Content Type”字段的數(shù)據(jù)來識別握手、警告或數(shù)據(jù)),以及每個(gè)消息的完整性保護(hù)和驗(yàn)證。圖4是TLS協(xié)議實(shí)現(xiàn)客戶端和服務(wù)端建立會話的初始配置過程。

4.jpg

  CIP報(bào)文傳輸分為隱式報(bào)文傳輸和顯式報(bào)文傳輸,顯式報(bào)文使用TCP傳輸,在TCP之上的應(yīng)用可以使用TLS來保證傳輸信息的安全性。但是TLS并不能保證UDP的傳輸安全,DTLS是在TLS協(xié)議框架上擴(kuò)展出來的。其協(xié)議結(jié)構(gòu)基本上同TLS相同,在隱式報(bào)文傳輸中使用UDP協(xié)議,對使用UDP協(xié)議通信的傳輸使用DTLS協(xié)議進(jìn)行加密處理。TLS和DTLS層次結(jié)構(gòu)如圖5所示。

5.jpg

  TLS協(xié)議形式化分析及實(shí)驗(yàn)結(jié)果

  Scyther性能簡介

  Scyther軟件是由牛津大學(xué)教授CAS CREMERS使用Python語言開發(fā)的一款功能很強(qiáng)的用于驗(yàn)證和表征安全協(xié)議的自動化協(xié)議形式化分析工具,由于Python語言可以快速生成用戶界面,使用Python語言開發(fā)的軟件具有良好的人機(jī)交互界面,因此Scyther軟件具有可以對協(xié)議分析攻擊軌跡的輸出功能,便于理解協(xié)議存在的漏洞。Scyther軟件的協(xié)議分析采用Athena算法,使用該算法使得Scyther軟件可以支持多協(xié)議并行分析,該工具是安全協(xié)議形式化分析的最新技術(shù),支持分析與時(shí)序相關(guān)的協(xié)議,同時(shí)可以尋找協(xié)議的多種攻擊,輸出協(xié)議角色執(zhí)行軌跡和攻擊圖。除此之外,Scyther軟件對無限會話和無限狀態(tài)集合的協(xié)議給出明確的終止,其中實(shí)現(xiàn)多協(xié)議的并行分析解決了傳統(tǒng)分析工具的狀態(tài)空間爆炸問題,Scyther形式化分析工具內(nèi)置了Delov-Yao模型和強(qiáng)安全模型,所以敵手的攻擊模式設(shè)置簡單。并且在攻擊漏洞和攻擊誤報(bào)等性能方面也表現(xiàn)較好。

  Scyther敵手模型和語義操作

  強(qiáng)安全模型是通過敵手定義更強(qiáng)的攻擊能力,決定了敵手能力在完全掌握了通信網(wǎng)絡(luò)的基礎(chǔ)上,具備腐蝕化長期私鑰和臨時(shí)秘鑰等能力,Scythe可以通過敵手詢問組合的方式選擇安全模型,設(shè)置方便,并且有明確的終止。在強(qiáng)安全模型下可以同時(shí)添加會話秘鑰泄露、隨機(jī)數(shù)泄露、狀態(tài)泄露等。圖6是Scyther軟件敵手模型設(shè)置界面。

 6.jpg

  Scyther定義安全協(xié)議結(jié)構(gòu)模型如圖7所示。

 7.jpg

  Scyther使用SPDL語言規(guī)定了一系列的操作語義和操作原語,基本的操作語義如表1所示。

 8.jpg

  對TLS協(xié)議形式化安全分析

  對TLS1.2協(xié)議進(jìn)行形式化分析,本文采用Scyther- Compromise-0.9.2版本,運(yùn)行在Intel(R) Core(TM) i5-7400 CPU@ 3.00 GHz、操作系統(tǒng)是Linux kali 4.19.0-kali3-amd64、8 GB RAM的電腦上(賦予至少4 GB以上的內(nèi)存),具體的使用軟件及工具參見表2。

 9.jpg

  TLS協(xié)議會話形式化分析過程

  首先使用Scyther工具的SPDL語言對TLS握手協(xié)議交互的過程進(jìn)行形式化的描述,分別在Delov-Yao模型和強(qiáng)安全模型下對該協(xié)議進(jìn)行形式化分析。SPDL語言對協(xié)議的描述是基于角色的,在定義了協(xié)議交互使用的變量之后,整個(gè)協(xié)議的交互過程通過參與協(xié)議每個(gè)主體發(fā)生的事件集合表示。其中send和recv事件表示該主體發(fā)送和接收消息的事件,目標(biāo)屬性的描述通過claim事件完成,利用claim事件可以對角色的認(rèn)證性、變量的機(jī)密性等進(jìn)行描述。Scyther-Compromise工具可以方便地更改協(xié)議分析的安全模型,該工具的敵手的攻擊分析能力可以通過選項(xiàng)的形式供用戶選擇。

  CIP協(xié)議嵌入到TCP報(bào)文傳輸?shù)臅r(shí)候,在實(shí)現(xiàn)客戶端和服務(wù)端身份認(rèn)證的時(shí)候,首先建立TLS會話,通過對協(xié)議版本、密碼算法和認(rèn)證方式以及公鑰加密技術(shù)的協(xié)商,進(jìn)入?yún)f(xié)議握手階段,圖8是TLS握手協(xié)議流程圖。

 10.jpg

 ?。?)客戶端首先發(fā)起請求,交換hello協(xié)商算法、

  隨機(jī)數(shù)、協(xié)議版本等信息。

  (2)交換必要的密碼學(xué)參數(shù),客戶端和服務(wù)器生成預(yù)主秘鑰。

 ?。?)雙方交換數(shù)字證書,客戶端驗(yàn)證服務(wù)端證書通過后取出證書中的公鑰。

 ?。?)通過預(yù)主秘鑰和交換的隨機(jī)數(shù)生成主秘鑰。

 ?。?)為之后的記錄層提供安全參數(shù)。

 ?。?)秘鑰確認(rèn),進(jìn)行通信。

  根據(jù)TLS握手協(xié)議分析涉及的2個(gè)實(shí)體(Client、Server),協(xié)議形式化定義2個(gè)角色a和b分別表示客戶端和服務(wù)器。

  實(shí)驗(yàn)結(jié)果

  Scyther采用黑盒驗(yàn)證思想,每個(gè)角色從自身的角度判斷是否滿足安全目標(biāo)或者安全屬性,工業(yè)網(wǎng)絡(luò)最初與用戶應(yīng)用網(wǎng)絡(luò)Internet是分開的,像CIP、EtherNet/IP沒有考慮傳輸安全類問題,缺乏固有的安全機(jī)制。近些年研究人員公開報(bào)告了CIP和EtherNet/IP中許多漏洞,因?yàn)镋therNet/IP協(xié)議使用基于CIP的以太網(wǎng)協(xié)議,固然也存在安全隱患,圖9是Scyther-Compromise工具在Delov-Yao模型下對TLS握手協(xié)議的形式化分析輸出的攻擊路徑圖,圖10是在該模型下驗(yàn)證TLS握手協(xié)議秘鑰協(xié)商的機(jī)密性,結(jié)果顯示在該模型下不存在攻擊威脅。

  圖11是在Scyther-Compromise工具中通過添加選項(xiàng)長期私鑰泄露、會話秘鑰泄露、隨機(jī)數(shù)泄露以及狀態(tài)泄露的強(qiáng)安全模式設(shè)置參數(shù)界面。圖12是在強(qiáng)安全模型下對TLS握手協(xié)議機(jī)密性驗(yàn)證,結(jié)果顯示存在至少4個(gè)攻擊,證明在強(qiáng)安全模型下,TLS握手協(xié)議不能保證秘鑰的機(jī)密性。

 

  結(jié)論

  本文分析了EtherNet/IP協(xié)議的結(jié)構(gòu)和性能,其核心組成成員應(yīng)用層CIP協(xié)議的安全性取決于加密認(rèn)證協(xié)議TLS的安全保證能力,使用Scyther工具對TLS協(xié)議進(jìn)行形式化分析,設(shè)置敵手模型分別為Delov-Yao模型和強(qiáng)安全模型下進(jìn)行驗(yàn)證,從輸出的攻擊軌跡圖,證明在強(qiáng)安全模型下TLS協(xié)議存在長期秘鑰泄露導(dǎo)致主體的長期私鑰泄露的危險(xiǎn)。由于秘鑰傳輸過程中傳輸?shù)臋C(jī)密性取決于長期私鑰的安全性。實(shí)驗(yàn)證明TLS握手協(xié)議在強(qiáng)安全模型下傳輸秘鑰不安全,TLS協(xié)議無法保證CIP協(xié)議通信的安全,導(dǎo)致了使用CIP作為EtherNet/IP協(xié)議的核心協(xié)議在應(yīng)用層的傳輸不夠安全。未來在EtherNet/IP協(xié)議嵌入TLS1.3版本的時(shí)候不得不重新考慮整體安全性。

  內(nèi)容節(jié)選自《信息技術(shù)與網(wǎng)絡(luò)安全》2019年第七期《工業(yè)以太網(wǎng)EtherNet/IP協(xié)議安全分析》一文,作者田學(xué)成,徐英會)

 


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。