《電子技術(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è)是一個國家的根本的經(jīng)濟命脈,工業(yè)控制系統(tǒng)(Industrial Control Systems,,ICS)是工業(yè)自動化體系結(jié)構(gòu)的重要組成部分。隨著工業(yè)4.0時代的到來,,工業(yè)網(wǎng)絡(luò)的安全性日益重要,。工業(yè)以太網(wǎng)EtherNet/IP協(xié)議使用原有的基于標準的以太網(wǎng)技術(shù),,已經(jīng)被大量使用在工業(yè)網(wǎng)絡(luò)控制系統(tǒng)中,其安全性一直備受關(guān)注,,國內(nèi)對工業(yè)網(wǎng)絡(luò)協(xié)議安全性的研究很少。使用形式化分析工具Scyther在Delov-Yao模型和強安全模型下對EtherNet/IP協(xié)議核心成員通用工業(yè)協(xié)議(Control and Information Protocol,,CIP)所采用的加密認證TLS協(xié)議進行形式化分析。對下一代CIP協(xié)議嵌入TLS1.3具有實踐價值,,該方法對其他工業(yè)網(wǎng)絡(luò)協(xié)議進行有效的安全分析有理論指導(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ù)和標準的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é)議獨立于物理層和數(shù)據(jù)鏈路層之上,與設(shè)備介質(zhì)無關(guān),,可以將其移植到高性能的網(wǎng)絡(luò)設(shè)施上,。CIP封裝協(xié)議的主要任務(wù)是定義和規(guī)范了如何封裝和傳輸上層協(xié)議的報文,以及如何管理和利用下層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ò)交換機技術(shù)的快速發(fā)展,,在網(wǎng)絡(luò)高負載通信時EtherNet/IP協(xié)議也能夠滿足工業(yè)網(wǎng)絡(luò)對實時性和確定性的要求。EtherNet/IP協(xié)議使用高效的數(shù)據(jù)傳輸模式——生產(chǎn)者/消費者模式(Producer/Consummer),。端點之間的聯(lián)系不是通過具體的源和目的地址關(guān)聯(lián)起來,而是一個生產(chǎn)者可以對應(yīng)多個消費者,,使數(shù)據(jù)的傳輸達到了最優(yōu)化。網(wǎng)絡(luò)源節(jié)點按照內(nèi)容將數(shù)據(jù)進行標識,,采用組播的方式同時發(fā)送到多個節(jié)點,,網(wǎng)絡(luò)上其他節(jié)點按照自己的需要通過標識符來確定要接收的數(shù)據(jù),。避免了帶寬浪費,節(jié)省了網(wǎng)絡(luò)資源,同時提高了系統(tǒng)的通信效率,。能夠很好地支持系統(tǒng)的控制,、組態(tài)和數(shù)據(jù)采集,,并且非實時性通信和實時性通信可以在同一子網(wǎng)中實現(xiàn)。但工業(yè)控制系統(tǒng)遭受越來越多的威脅,,主要是網(wǎng)絡(luò)協(xié)議自身的缺陷引起的,EtherNet/IP協(xié)議也存在安全問題,,需要進一步提高安全防護能力。

  CIP報文傳輸方式

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

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

2.jpg

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

 3.jpg

  CIP通信安全

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

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

4.jpg

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

5.jpg

  TLS協(xié)議形式化分析及實驗結(jié)果

  Scyther性能簡介

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

  Scyther敵手模型和語義操作

  強安全模型是通過敵手定義更強的攻擊能力,決定了敵手能力在完全掌握了通信網(wǎng)絡(luò)的基礎(chǔ)上,,具備腐蝕化長期私鑰和臨時秘鑰等能力,,Scythe可以通過敵手詢問組合的方式選擇安全模型,設(shè)置方便,,并且有明確的終止,。在強安全模型下可以同時添加會話秘鑰泄露、隨機數(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é)議進行形式化分析,本文采用Scyther- Compromise-0.9.2版本,,運行在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é)議交互的過程進行形式化的描述,分別在Delov-Yao模型和強安全模型下對該協(xié)議進行形式化分析,。SPDL語言對協(xié)議的描述是基于角色的,,在定義了協(xié)議交互使用的變量之后,整個協(xié)議的交互過程通過參與協(xié)議每個主體發(fā)生的事件集合表示,。其中send和recv事件表示該主體發(fā)送和接收消息的事件,,目標屬性的描述通過claim事件完成,利用claim事件可以對角色的認證性,、變量的機密性等進行描述,。Scyther-Compromise工具可以方便地更改協(xié)議分析的安全模型,該工具的敵手的攻擊分析能力可以通過選項的形式供用戶選擇,。

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

 10.jpg

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

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

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

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

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

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

 ?。?)秘鑰確認,,進行通信。

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

  實驗結(jié)果

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

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

 

  結(jié)論

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

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

 


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