《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電子元件 > 業(yè)界動態(tài) > 工控安全之PLC私有協(xié)議安全

工控安全之PLC私有協(xié)議安全

2020-12-01
來源: 關(guān)鍵基礎(chǔ)設(shè)施安全應(yīng)急響應(yīng)中心

  在工業(yè)控制系統(tǒng)中,,各種不同的型號系列的PLC除了使用公開的工業(yè)控制協(xié)議(例如 modbus,,opcua等),,還使用了廠家自己開發(fā)的私有協(xié)議(例如施耐德的UMAS,,西門子的S7comm/S7commPlus等),,這一系列協(xié)議主要用于和自家的組態(tài)軟件進行通信來執(zhí)行一些高權(quán)限的操作,,例如啟動停止,,工程的上載和下裝等。這些操作無疑會給工業(yè)現(xiàn)場造成巨大的安全隱患,,對工業(yè)控制私有協(xié)議分析也成了工業(yè)控制系統(tǒng)安全的重點和難點。本文通過分析如今的PLC私有協(xié)議的現(xiàn)狀,,提出一些研究思路和安全建議,。

  私有協(xié)議實例

  施耐德UMAS

  施耐德UMAS協(xié)議是施耐德M340/M580和上位組態(tài)軟件Unity Pro通信使用的一種私有協(xié)議,由于其下層協(xié)議使用的modbus 90功能碼,,所以服務(wù)端口也是502端口,。通過閱讀isf(https://github.com/dark-lbp/isf/)工業(yè)控制系統(tǒng)漏洞利用框架的源碼找到針對施耐德系列PLC的啟停腳本源碼可以分析該協(xié)議的基本流程,如下:

微信圖片_20201201150940.jpg

  該攻擊腳本先是通過0x10功能碼獲取UMAS的會話key,,再通過0x40(啟動功能碼)/0x41(停止功能碼)來控制PLC設(shè)備的啟動停止,。如下即為Wireshark抓取到的數(shù)據(jù)包,UMAS協(xié)議解析插件可以自己編寫,。

微信圖片_20201201150943.jpg

  通過協(xié)議分析可以知道,,該協(xié)議是未加密的狀態(tài),可以使用簡單的重放進行PLC攻擊,,該種私有協(xié)議相對簡單,,沒有加密流量以及完整性校驗,安全性相對不足。

  西門子S7comm系列

  S7comm是S7-300/S7-400和上位組態(tài)軟件TIA通信的私有協(xié)議,,下層協(xié)議為COTP,,使用的服務(wù)端口號為102。通過閱讀isf框架源碼可以知道到該協(xié)議也沒有加密,,也沒有完整性校驗,。

微信圖片_20201201150945.jpg

  抓取到的數(shù)據(jù)流量如下所示,這種類型的協(xié)議也可以通過的簡單的重放來控制PLC,。

微信圖片_20201201150948.jpg

  但是S7-1200/S7-1500使用的是S7協(xié)議加強版S7commPlus,該協(xié)議握手階段使用了一系列復(fù)雜的算法來建立安全的會話鏈接,,同時為接下來的每一個操作數(shù)據(jù)包都加上了完整性校驗。

微信圖片_20201201150950.jpg

  如下選中的地方即為完整性校驗字段:

微信圖片_20201201150953.jpg

  針對這類復(fù)雜的算法協(xié)議可以通過逆向關(guān)鍵的dll或者直接調(diào)用核心的dll來完成對PLC的攻擊,。下圖為針對S7commPlus攻擊工具,。

微信圖片_20201201150955.jpg

  密碼設(shè)置

  通過上面的分析可以知道,現(xiàn)在的工業(yè)控制私有協(xié)議安全性還有很大的不足,,為了在工業(yè)系統(tǒng)中限制其他人使用私有協(xié)議執(zhí)行高權(quán)限的操作,,可以使用組態(tài)軟件給PLC加上保護密碼。

  施耐德unitypro設(shè)置如下:

微信圖片_20201201150957.jpg

  西門子TIA可以進行如下設(shè)置:

微信圖片_20201201150959.jpg

  在設(shè)置密碼后,,可以有效保護PLC,,阻止利用私有協(xié)議發(fā)起的惡意操作。

  密碼繞過

  密碼繞過屬于工業(yè)控制系統(tǒng)安全里面的高級技術(shù),,只要繞過PLC中的密碼,,基本上就可以讓PLC執(zhí)行惡意操作,比如替換一個惡意工程等,。在今年的看雪峰會上,,已經(jīng)有工控安全研究員著手這方面的研究,通過包括物理接觸和非物理接觸方式突破了施耐德,,西門子,,羅克韋爾等多個PLC的密碼保護機制??偨Y(jié)如下兩點:

  1.   不正確的校驗方式,,包括把密碼從PLC讀到組態(tài)軟件進行比較的設(shè)計。

  2.   廠商留下的后門,,包括未文檔化的PLC內(nèi)存讀寫功能,。

  詳情請參考

  https://zhuanlan.kanxue.com/article-14166.htm

  總結(jié)

  通過分析可以看出,工業(yè)控制系統(tǒng)上私有協(xié)議有復(fù)雜的,、也有簡單的,,種類繁雜。不同的廠商有不同的私有協(xié)議,,這對工控安全研究人員的協(xié)議逆向分析能力提出了較大的要求,。同時本文還提到了通過設(shè)置密碼來阻止私有協(xié)議的濫用,然而設(shè)置PLC密碼不是萬能的,它依賴于工業(yè)控制系統(tǒng)廠商在密碼保護機制實現(xiàn)上的安全性,。為了限制私有協(xié)議的訪問,,最好還是在工業(yè)現(xiàn)場部署專門針對工業(yè)控制業(yè)務(wù)環(huán)境的IDS/IPS,最大程度的提高工業(yè)現(xiàn)場的安全性,。


本站內(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)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]