<object id="ir2le"></object>
  • 加入收藏 在線留言 聯系我們
    關注微信
    手機掃一掃 立刻聯系商家
    全國服務熱線15267534595

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

    更新時間
    2024-12-27 09:10:00
    價格
    請來電詢價
    變頻器
    西門子代理商
    觸摸屏
    西門子一級代理
    伺服電機
    西門子一級總代理
    聯系電話
    18126392341
    聯系手機
    15267534595
    聯系人
    梁濤
    立即詢價

    詳細介紹

    西門子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停止運行


    相關產品

    聯系方式

    • 電  話:18126392341
    • 聯系人:梁濤
    • 手  機:15267534595
    • 微  信:15267534595