胡麗香
(江蘇省軟件產品檢測中心,江蘇南京,210012)
Modbus協議是Modicon1979年發明的,是全球第一個真正用于總線的協議。由于Modbus是制造業、基礎設施環境下真正的開放協議,得到了工業界的廣泛支持,國內的使用量多達上百萬個點。Modbus是制造業、基礎設施環境下真正的開放協議,得到了工業界廣泛的支持,國內的使用量多達上百萬個點。由于Modbus在設計之初僅考慮了功能實現、提高效率、提高可靠性等方面,存在以下幾個安全問題:
(1)缺乏認證。在Modbus協議通信過程中,沒有任何認證方面的約束,攻擊者只需要通過攔截報文獲取到一個合法的地址就可以建立一個通信會話,從而擾亂整個或部分控制過程。
(2)缺乏授權。目前,Modbus協議沒有基于角色的訪問控制機制,也沒有對用戶分類,沒有對用戶的權限進行劃分,這會導致任意用戶可以執行任意功能。
(3)缺乏加密。Modbus協議通信過程中,地址和命令全部采用明文傳輸,因此數據可以很容易地被攻擊者捕獲和解析。
OPC協議是微軟為過程控制設計的對象鏈接和嵌入協議,它以客戶端/服務器模式工作,通過遠程過程調用(RPC)方式向服務器提供必要參數。
(1)目前絕大部分OPC服務器都運行在沒有任何防火墻的情況下,從而很容易受到惡意軟件和其它安全威脅的攻擊。
(2)大量OPC主機使用弱安全認證機制(弱口令),以及過時的認證授權服務。
(3)OPC的基本協議極易受到攻擊,過去幾年,來自大量網絡的病毒和蠕蟲仍然在針對那些安全性不足的OPC系統發動攻擊。
目前,可用于發現工控系統通信協議的安全漏洞、提升工業控制產品安全質量的技術主要有:形式化驗證、白盒測試和黑盒測試三種。因為形式化測試與白盒測試對被測工控協議實現的設計文檔與源代碼的依賴度特別大,所以這兩種形式的技術應用范圍較為狹窄。而黑盒測試就有所不同了,這項技術僅僅需要工控協議的規范,雖然不用什么源代碼,但要求切定交互間的實體行為是可見的。黑盒測試還可完全獨立于協定實現的整個開發過程,并且他的測試結果還可用于集合成這個工控協議的其他機器和設備。
模糊測試又叫健壯性測試,是一種典型的黑盒測試技術,它將大量的畸形數據輸入到目標系統中,通過監測系統的異常來發現被測工控系統通信協議中可能存在的安全漏洞。由于這種測試的成本較低,且可以做到完全的自動化,所以近些年來被廣泛的應用。科技的進步,是得各種開源和商業模糊測試工具的不斷出現,與此同時,給一些工廠商家帶來了機遇,該技術也受到了各種工業化廠商的高度關注和應用推行。值得一提的是,各種模糊測試技術的類別多種多樣,側重點也各不相同,所以可能導致一些商家在選擇哪種測試方式時無所適從。根據不同的層次和平面,將模糊測試分為①隨機模糊測試②文法模糊測試③綜合模糊測試三類,根據不同的情況和需求做出不同的選擇。
(1)隨機模糊測試。這種方式的測試是 B.P.Miller 在1990 年提出的,并將此類測試用 fuzzing 命名。最初的模糊測試,僅僅是將隨機數據作為輸入測試不同的操作系統或是應用程序。像我們最初的計算機程序一樣,只是將數據作為程序的輸入,同時也監測運行過程中是否出現了異常情況,如果出現異常,則變記錄下來,定位出軟件的缺陷。不然他也只能滲透到協議的輸入訪問層,所以對于協議的測試還不能夠達到很完美的效果。
(2)文法模糊測試。安全測試在工業信息安全領域的應用淺析協議網絡報文的處理是一個極其容易出錯的過程,尤其是當報文字段采用編碼時就顯得極為復雜。遇到不恰當的編碼實踐就可能在協議實現中留下嚴重的缺陷。模糊測試技術為了應對更為復雜的隱藏數據驗證等問題,也在努力提升自身技術,并進化到了文法測試階段。模糊測試有意識的將不同的文化元素融入到測試報文中試圖觸發協議中有問題的代碼。導致規范中規定的操作遇到破壞。目這種測試的代表性工具有:PROTOS、Sully 和 peach,不同的工具有著不同的特點和優勢也都在不斷地完善和改進。
(3)綜合模糊測試。比起兩項,我國對于這項測試技術的研究有啦更加深入的理解和發展。文法規則定義了報文的形式,為規則定義了交互數據的語義和功能,但同時該字段的不同取值會觸發協議實現不同的響應。所以,讓協議安全性能不斷提高完善是我國學術研究者未來的目標。,而學術者正在綜合模糊測試并進行深入的研究。研究中,對整個協議規范的建模完成是利用了輸入——輸出標記出轉移系統的技術,然后根據測試需要對異后模型進行檢測,從而產生相應的診斷程序。雖說這項比較全面的技術還處于研究階段,但其完整的測試工具的出現指日可待。最原始的模糊測試是把隨機數據輸入到不同操作系統中進行測試,基本思想是把一組隨機數據作為程序進行輸入,同時對程序運行狀況進行監測,以及時發現異常狀況,通過記錄誘發異常運轉的輸入數據,確定軟件缺陷具體位置。
一直以來,西門子始終對工控產品系統的安全特別的重視。早在 2005 年,西門子自動化集團便與其他組織合作,研制了用于西門子工控產品的系統測試,并且自 2007 年起開始研制全新的測試框架,Styx。這種框架在測試中自動產生海量的用例。目前,這種框架已經支持十多種協議的安全測試。tyx系統積極吸取了各種開源工具的得力設計思路,在C++的協助下建設了模糊測試的基本邏輯,在采用XML腳本定義協議的報文文法與行為特點分析中體現出良好的適用性,在信息安全性檢測過程中智能化形成了大量的測試用例,Styx系統在PROFINET. MMS. Modbus/TCP等十多種工業控制協議的安全測試領域表現出良好的適用性。2001 年之后,對于他的研究更加的深入,力爭提前發現產品中的缺陷,提高產品的質量,相信在未來,他會與時俱進,發展的更快,更好,更強。
tyx系統積極吸取了各種開源工具的得力設計思路,在C++的協助下建設了模糊測試的基本邏輯,在采用XML腳本定義協議的報文文法與行為特點分析中體現出良好的適用性,在信息安全性檢測過程中智能化形成了大量的測試用例,Styx系統在PROFINET. MMS. Modbus/TCP等十多種工業控制協議的安全測試領域表現出良好的適用性。自2011年以來,西門子德國的系統測試部就積極將Styx測試設為工業控制系統測試期間的重要構成部分,投入到西門子工控產的安全性能檢測領域中,目的是盡早發現與排除產品內的缺陷,全面提升西門子產品安全品質
伴隨工業控制系統開發性、互聯性的發展進程,系統自動化水平與信息安全性將會成為領域研究的重點、焦點。因為各類工控設備設施、系統廣泛應用了多類工控協議,以實現對通信的加強控制,故此工控協議安全性的實現也將成為工業控制系統信息安全領域研究的有一個重點課題。筆者認為應結合工控系統自身的通信協議特征,加強對系統通信協議通信數據流的分析,有針對性的進行安全檢測,全面分析協議的風險性與脆弱點,進而全面提升工控系統運行的安穩性。