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