在工業(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é)議的基本流程,如下:
該攻擊腳本先是通過0x10功能碼獲取UMAS的會話key,,再通過0x40(啟動功能碼)/0x41(停止功能碼)來控制PLC設(shè)備的啟動停止,。如下即為Wireshark抓取到的數(shù)據(jù)包,UMAS協(xié)議解析插件可以自己編寫,。
通過協(xié)議分析可以知道,,該協(xié)議是未加密的狀態(tài),可以使用簡單的重放進行PLC攻擊,,該種私有協(xié)議相對簡單,,沒有加密流量以及完整性校驗,安全性相對不足。
西門子S7comm系列
S7comm是S7-300/S7-400和上位組態(tài)軟件TIA通信的私有協(xié)議,,下層協(xié)議為COTP,,使用的服務(wù)端口號為102。通過閱讀isf框架源碼可以知道到該協(xié)議也沒有加密,,也沒有完整性校驗,。
抓取到的數(shù)據(jù)流量如下所示,這種類型的協(xié)議也可以通過的簡單的重放來控制PLC,。
但是S7-1200/S7-1500使用的是S7協(xié)議加強版S7commPlus,該協(xié)議握手階段使用了一系列復(fù)雜的算法來建立安全的會話鏈接,,同時為接下來的每一個操作數(shù)據(jù)包都加上了完整性校驗。
如下選中的地方即為完整性校驗字段:
針對這類復(fù)雜的算法協(xié)議可以通過逆向關(guān)鍵的dll或者直接調(diào)用核心的dll來完成對PLC的攻擊,。下圖為針對S7commPlus攻擊工具,。
密碼設(shè)置
通過上面的分析可以知道,現(xiàn)在的工業(yè)控制私有協(xié)議安全性還有很大的不足,,為了在工業(yè)系統(tǒng)中限制其他人使用私有協(xié)議執(zhí)行高權(quán)限的操作,,可以使用組態(tài)軟件給PLC加上保護密碼。
施耐德unitypro設(shè)置如下:
西門子TIA可以進行如下設(shè)置:
在設(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)場的安全性,。