文/張晉桂 黃靜旋 孫藹容
過往,工業控制系統始終被視為是以專有技術為基礎的封閉式系統,在運行過程中不能保證不受網絡環境中各個因素的干擾或侵襲,而OPC、DA、MMS 等控制協議在工業控制領域中有廣泛性應用,但基本不會考慮信息安全問題。但是伴隨工業控制系統自動化水平的提升及與IT 網絡建設互聯互動關系,造成系統運行期間面對的信息風險也相應增加,加強安全測試技術應用具有很大現實意義。
當下,我國已經研發的、技術成熟的,且在發現安全隱患漏洞與提升產品安全品質方面,可采用的協議安全測試技術類型主要由形式化驗證技術、白盒測試技術、黑盒測試技術等。
因為后兩種測試技術在現實應用過程中,對被測工控協議實現對應的設計文檔及源代碼表現出較高的依賴性,故而其推廣應用受到一定限制,而黑盒安全測試技術,僅在工控協議規范的協助下就能將自身效能有效發揮。黑盒協議安全測試在具體應用時,無需協議源代碼的協助,但對協議交互實體間的通信行為提出一定要求,務必具有可視性。因為黑盒協議安全測試可獨立實現壓閥目標,技術檢測獲得的結果還可被應用在工控協議的其他設備設施中。故而(黑盒)協議安全測試法在工控產品、系統安全質量管理、準入檢測、滲透性檢驗等領域中均具有廣泛應用。
對通信協議數據流進行分析是協議分析的首要步驟,此時需以協議的狀態機推斷技術為基礎,取得協議現實處理狀態下遷移的邏輯及與行為語義?,F實分析中應結合系統的通信數據抓包,依靠系統設備IP、端口、數據包種類,對系統真實運行過程中的IP、端口、服務等信息進行還原處理,繼而采用以報文序列協議狀態為基礎的推斷法,科學預測并推斷協議數據流。此時應先對協議的運行狀態做出清晰標識,將一個或數個持續性的協議對話轉化為相同狀態,進而對以上狀態進行分類處理,最后經由簡化處理工序獲得完善性的系統協議數據流。
在維護工業控制系統運行可靠性方面,系統雙網段、雙控制器發揮的作用是不容小噓的,下行數據通常被囊括于TCP 數據包與UDP 數據包中,而上行數據包有UDP 廣播、EGB 組播對應的數據包之分,實現控制器的功能在于實時性的傳導數據信息。
在對信息安全協議測試程序編寫時,不僅要明確協議狀態空間對應的時間序,還要深入解讀數據包功能碼段對應的語義。在對數據包內容分析過程中,建議有機整合工業控制系統功能特征和協議逆向分析,有既往檢驗知識的運用與人工糾正流程,前者能實現對協議長度字段、FD 字段、序號字段等相對方位的全面分析,在以上分析工作結束后結合相應字段編制檢測腳本,以檢測既往檢驗知識的精確性,連續優化人工糾正效果,糾正后再次檢測腳本驗證猜測協議數據包內容的精確性。主要內容有:
(1)對系統操作員站進行數次操作,分析各次操作數據包內不同功能碼段的屬性,繼而發現數據包內序列號、時間等字符段;
(2)對系統操作員站實施差異性操作,例如讀/寫操作,解析不同操作應用過程中,數據包長度、字符段等之間存在的差異性。針對功能碼段序列方位相同、數值類似的字符字段,應加強分析;
(3)針對系統數據包內充分出現的字符段分析,其通常屬于系統傳輸的數據,作用以輸入、輸出數字量,輸入、輸出模擬量等為主。
先建設TCP 握手連接,繼而利用控制器返回一個時間戳信息,然后組態軟件對時間戳字段行加密處理,并把加密后密碼與賬戶統一傳送至控制器進行檢驗,若驗證成功則會返回驗證成功字段,否則返回驗證錯誤字段并同步離斷。與此同時,控制器在UDP3300 端口協助下,向外界外發出組播數據包,以呈現出登錄驗證具體實況。
協議認證數據包對時間戳行加密處理,是系統協議典型特征之一,依照該特征對信息安全檢測程序進行編寫,自行組建認證數據包,并將其傳送至控制器,控制器則會快速做出認證失敗的數據包回復,測試結果提示工業控制系統采用該種認證方式取得的安全性相對較高。
最原始的模糊測試是把隨機數據輸入到不同操作系統中進行測試,基本思想是把一組隨機數據作為程序進行輸入,同時對程序運行狀況進行監測,以及時發現異常狀況,通過記錄誘發異常運轉的輸入數據,確定軟件缺陷具體位置。
tyx 系統積極吸取了各種開源工具的得力設計思路,在C++的協助下建設了模糊測試的基本邏輯,在采用XML 腳本定義協議的報文文法與行為特點分析中體現出良好的適用性,在信息安全性檢測過程中智能化形成了大量的測試用例,Styx 系統在PROFINET.MMS.Modbus/TCP 等十多種工業控制協議的安全測試領域表現出良好的適用性。
自2011年以來,西門子德國的系統測試部就積極將Styx 測試設為工業控制系統測試期間的重要構成部分,投入到西門子工控產的安全性能檢測領域中,目的是盡早發現與排除產品內的缺陷,全面提升西門子產品安全品質。
伴隨工業控制系統開發性、互聯性的發展進程,系統自動化水平與信息安全性將會成為領域研究的重點、焦點。因為各類工控設備設施、系統廣泛應用了多類工控協議,以實現對通信的加強控制,故此工控協議安全性的實現也將成為工業控制系統信息安全領域研究的有一個重點課題。筆者認為應結合工控系統自身的通信協議特征,加強對系統通信協議通信數據流的分析,有針對性的進行安全檢測,全面分析協議的風險性與脆弱點,進而全面提升工控系統運行的安穩性。