加入收藏 在線留言 聯系我們
關注微信
手機掃一掃 立刻聯系商家
全國服務熱線15386422716

SIEMENS安徽省合肥市西門子(授權)中國總代理-西門子華東地區一級總代理商

更新時間
2024-11-01 08:50:00
價格
請來電詢價
聯系電話
15344432716
聯系手機
15386422716
聯系人
楊本剛
立即詢價

詳細介紹

西門子PLC廣泛運用在各行業的工業控制系統上,比如鋼鐵、石油、化工、電力、建材、機械制造、汽車、輕紡、交通運輸、環保及文化娛樂等行業,其安全性直接關乎國家民生安全。


2019 BlackHat USA會議上,安全研究員Sara Bitan指出西門子PLCZui新的通信協議S7Comm-Plus存在安全問題。為此,啟明星辰ADLab對相關漏洞進行研究,并在西門子S7-1500設備上復現了攻擊效果。



圖片2.西門子PLC協議

西門子PLC包括S7-200、S7-300、S7-400、S7-1200以及S7-1500等多個系列。S7-200/300/400系列PLC采用早期的西門子私有協議S7comm進行通信,S7-1200/1500系列PLC采用西門子S7Comm-Plus協議進行通信。


S7Comm-Plus協議在S7comm基礎上引入了密鑰保護機制,以對抗會話劫持、重放攻擊和中間人攻擊等。TIA與PLC交互過程可分為以下4個階段:

(1)TCP Connection

(2)COTP Connection

(3)S7Comm-Plus Connection,即四次握手密鑰認證階段

(4)S7Comm-Plus Function,功能碼執行階段。


圖片

圖1 S7Comm-Plus協議交互流程


密鑰認證成功后方可進入功能碼執行階段,圖2為四次握手認證具體流程。

圖片

圖2 四次握手認證


(1)TIA向PLC發送M1開啟一個新的會話。

(2)PLC將返回給TIA一個響應包M2,M2包含 PLC固件版本和隨機數ServerSessionChallenge,長度20個字節。

圖片

圖3 M2認證數據包


(3)TIA收到M2后,將向PLC發送M3,M3中包含SecurityKeyEncryptedKey(圖4中紅色框所示)。其中,Magic字段為0xfee1dead,長度180字節。SecurityKeyEncryptedKey里包含3個關鍵的加密字段(圖4中藍色框所示)。

圖片

圖4 M3認證數據包


(4)PLC收到M3后,進行密鑰認證。若認證成功,向TIA回復M4數據包。


四次握手認證完成后,TIA向PLC發送功能碼數據包,功能碼數據包中包含IntergrityPart字段,如圖5所示。PLC收到功能碼數據包后,首先校驗IntergrityPart字段,若校驗通過,執行相應功能碼。

圖片

圖5 stop功能碼數據包




圖片3.算法分析

雖然主機TIA與PLC之間的認證引入了非對稱加密算法,但是PLC與主機之間并沒有進行綁定,因此仍然存在安全問題,攻擊者可以偽造成一個惡意的主機/工作站,利用已知的公鑰及加密算法,對PLC進行非法控制或者中間人攻擊。


下面介紹密鑰生成算法流程:

圖片

圖6 密鑰生成算法


  • 主機(TIA)隨機生成20字節的PreKey,使用類橢圓曲線加密算法和公鑰加密PreKey,作為Keying materaial 1(對應圖7中M3數據包的EG1、EG2)。

  • 主機(TIA)根據PreKey計算KDF,并由此生成CEK(Checksum Encryption Key),CS(Checksum Seed),KEK(Key Encryption Key)。

  • 主機(TIA)將Challenge和KDK相結合,使用AES-CTR加密算法和KEK進行加密,其結果作為Keying material 3(對應M3數據包中的EncryptedChallenge和EncryptedKDK)。

  • 主機(TIA)用CS和Keying material 3進行哈希運算(Tabulation Hash),得到結果TB-HASH。

  • 主機(TIA)使用AES-ECB算法和CEK來加密TB-HASH并得到結果Keying material 2(對應M3數據包中的EncryptedChecksum)。


  • 圖片

    圖7 M3數據包結構




    圖片
  • 4.漏洞復現


  • 我們對OMSp_core_managed.dll進行逆向分析,通過調用關鍵接口函數,構造四次握手加密認證數據包。攻擊端首先發送認證數據包,密鑰認證完成后發送stop功能碼,成功使得西門子PLC S7-1500停止運行。


    正常運行時,PLC S7-1500運行指示燈為綠色。運行狀態如圖8所示。

    圖片

    圖8 攻擊前PLC正常運行


    發送攻擊腳本后,PLC S7-1500運行指示燈變為黃色,PLC停止運行,PLC狀態如圖9所示。

    圖片

    圖9 攻擊后PLC停止運行




    相關產品

    聯系方式

    • 電  話:15344432716
    • 銷售顧問:楊本剛
    • 手  機:15386422716
    • 微  信:AK66F7