徐 軍,楊哲明,沈國良
(浙江浙能天然氣運行有限公司,杭州 310052)
天然氣因其燃燒熱值高、燃燒后有害物質少、供應可靠等特點,已逐漸受到市場青睞。為響應國家煤改氣號召,浙江省目前亦在逐步取消小型燃煤機組發電,轉而使用天然氣進行發電。天然氣發電機組因用氣量大,對天然氣供氣壓力的穩定性有較高要求,而天然氣分輸站一般離發電廠較遠,管存氣量的存在使得遠距離調壓效果并不明顯。為此,一般在發電廠附近建設天然氣調壓站點,以實時調節供氣壓力。
據國家工業信息安全發展研究中心監測,第二季度僅針對中國境內工業互聯網平臺及來源于境外的網絡攻擊事件就有656起;新增工業控制系統漏洞115個,涉及羅克韋爾、西門子、施耐德電氣等品牌的多款控制器[1]。
在研究分析站控系統面臨的風險和威脅之前,先對Modbus/TCP協議做簡要介紹。
Modbus/TCP封裝于TCP/IP協議的應用層,在TCP數據包中包含Modbus應用數據,采用傳統的客戶端/服務端通訊模式,其中Modbus從站為服務端,Modbus主站為客戶端。在初始通訊時,Modbus主站主動發起通訊請求,Modbus從站根據Modbus數據協議規則,做出相應的響應。完整的Modbus/TCP應用數據單元由下面3部分組成[2]:

圖1 Modbus/TCP協議數據單元格式Fig.1 MODBUS/TCP Protocol data unit format
其中,Modbus/TCP協議頭又被簡稱為MBAP,它由以下4個部分組成[2]:

表1 Modbus/TCP協議頭組成Table 1 MODBUS/TCP Protocol header composition
Modbus/TCP功能碼根據其作用可分為讀操作、寫操作、其他操作。Modbus主站使用讀功能碼和寫功能碼對Modbus從站進行數據讀寫操作。
Modbus/TCP由Modbus協議改造而來,形成時間較早,缺乏安全考慮,在天然氣現有控制系統網絡環境下,主要存在以下幾方面問題:
首先,Modbus/TCP協議使用TCP進行數據通訊,需要進行3次握手操作,而PLC設備結構簡單,使得其在傳統的SYN-Flood等DDOS攻擊問題上基本沒有防御能力。
其次,Modbus/TCP協議缺乏認證以及授權機制[3],在控制網絡中的任一設備,只要網絡可達,即可通過Modscan等工具連接Modbus從站,進行數據讀寫操作,甚至是PLC設備啟/停操作,而Modbus從站根本無法區分合法用戶以及非法用戶。
③增效擴容項目在促進節能減排、保護河流生態環境、消除公共安全隱患、解決農村無電缺電問題、推動農村經濟社會發展方面具有十分重要的意義。
還有,Modbus/TCP協議是公開協議,所有數據格式開放且未加密,數據容易被竊聽、篡改以及偽造,攻擊人員甚至可以構造畸形數據包,導致PLC設備以及上位機設備的崩潰。
天然氣站場的安全防范由人防、物防和技防組成:人防通過配置人員進行巡邏、站崗等方式進行安全防范;物防通過圍墻、刺網等方式防止未授權人員通過攀爬等方式進入站場;技防由紅外對射系統、激光對射、視頻監控系統等組成,對站場周界進行技術性防護。
天然氣無人調壓站因其設計原因僅使用物防和技防,并且距離有人值守的站場距離較長,一旦人員入侵,攻擊人員有充分時間發起對通信網絡中其他站點的攻擊。同時,天然氣無人調壓站因其技術需要在自動化調節的情況下,不定期進行人為干預調整,而該調整由值班人員遠程控制操作完成。
根據浙江省天然氣無人值守站實際運行情況以及面臨的風險,對站控系統提出如下安全防護措施。
在天然氣無人值守站(也稱調壓站)通訊中,面臨的風險不僅來自于Modbus主站非法鏈接,更有來自于Modbus從站的非法接入風險。
實施嚴格的訪問策略可以很大程度上杜絕未經授權的訪問[4],以確保Modbus從站不受到其他Modbus主站的惡意控制。萬一當Modbus從站被非法控制或者替換時,不能攻擊其他Modbus從站。
主要通過安全網關,實現對Modbus/TCP數據包進行深度檢測[5]、分析、拆解、重組。利用拆解、重組操作可以有效減少畸形數據包對Modbus主站與Modbus從站的攻擊。利用數據包的分析功能,可以有效分類功能碼以及讀寫地址。在確認數據來源可信的情況下,限制Modbus從站和Modbus主站的操作權限。同時分析后的Modbus/TCP數據包提供了細粒度的檢測,增強了訪問策略的功能。
由于天然氣控制系統遠距離傳輸采用光傳輸系統,沿天然氣管道敷設自有光纜,故不在此做數據加密討論。
天然氣無人調壓站可由所屬有人值守站場以及調度中心雙方控制,可建立如下主要的防護規則:
1)啟用SYN、Pingof Death的傳統TCP攻擊防御。
2)允許來自所屬有人值守站場以及調度中心的Modbus主站訪問無人調壓站的Modbus從站。
3)拒絕無人調壓站側的Modbus主站訪問網絡中其余Modbus從站。
4)使用Modbus/TCP協議深度檢測,對來自所屬有人值守站場以及調度中心的Modbus/TCP協議中功能碼進行篩選,僅允許讀寫操作,同時限制有效數據段。
為測試Modbus/TCP協議深度檢測在實際生產中的使用效果,本次實驗使用兩臺安裝Windows的PC電腦和一臺工控專用防火墻進行測試。工控防火墻在兩臺PC間采用串聯模式,PC配置、安裝軟件以及模擬角色信息見表2。
在無策略情況下,所有TCP通訊均被攔截,ICMP數據包也無法通過。添加Modbus規則放行后,見圖3、圖4。
將Modbus規則設置為攔截模式,即白名單模式,因為沒有設置允許通過的規則,默認所有的Modbus/TCP讀取都被認為是非法訪問,從而進行攔截,見圖5、圖6。

圖2 防火墻側地址配置情況Fig.2 Firewall side address configuration

表2 地址配置以及軟件使用情況Table 2 Address configuration and software usage

圖3 Modbus放行規則Fig.3 Modbus release rules

圖4 Modbus放行規則記錄日志Fig.4 Modbus release rules logging

圖5 啟用Modbus攔截規則Fig.5 Enabling Modbus intercept rules
在攔截模式中添加允許讀線圈功能,允許地址設置為1~50,設備地址設置為1。當通過ModScan讀取1~5地址時,通訊被放行;當讀取地址超過1~50范圍后,ModScan通訊被中斷,在日志中可以查閱到訪問了不合法的地址。
在深度檢測規則中修改規則見表3。

圖6 Modbus讀取被攔截Fig.6 Modbus Read is intercepted

圖7 Modbus讀取放行規則Fig.7 Modbus Read release rules

圖8 Modbus讀取攔截情況Fig.8 Modbus Read interception situation

圖9 Modbus寫入放行規則Fig.9 Modbus Write release rules

圖10 Modbus寫放行及攔截情況Fig.10 Modbus write release and interception situation

表3 白名單規則清單Table 3 List of white list rules
使用Modscan操作后,可以在日志中看到過濾效果:對于地址2的數據為開或者關均被放行;修改地址3的數據為關被放行,修改地址3的數據為開被攔截。
根據實驗可以看到基于Modbus協議深度檢測的安全設備能有效管控Modbus/TCP數據的通信,并確保系統安全。
由于Modbus/TCP通訊協議存在的先天缺陷,以及當前天然氣無人調壓站所面臨的工控網絡安全風險。應用基于Modbus深度協議解析的工控安全網關,并配置適當的安全策略,通過實驗驗證,可以有效防范多種安全威脅,提高系統安全性。該安全策略簡單實用、穩定可靠,對類似無人值守站控系統也有較好的參考意義。