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