李沁園++孫歆++戴樺++趙明明
【 摘 要 】 工業(yè)控制系統(tǒng)(ICS)是監(jiān)測(cè)和控制電力、水務(wù)、石油天然氣、化工、交通運(yùn)輸、關(guān)鍵制造等國家關(guān)鍵基礎(chǔ)設(shè)施行業(yè)物理過程運(yùn)行的信息物理系統(tǒng),工業(yè)控制系統(tǒng)(ICS)是數(shù)據(jù)采集系統(tǒng)(SCADA)、分布控制系統(tǒng)(DCS)、可編程邏輯控制器(PLC)等多種類型控制系統(tǒng)的統(tǒng)稱?;诠た叵到y(tǒng)廠商協(xié)議多樣化,不同工控協(xié)議之間的差異性,論文實(shí)現(xiàn)了工控協(xié)議高覆蓋率及工控協(xié)議定制化的廠商設(shè)備指紋識(shí)別。論文文舉例說明了實(shí)際工控設(shè)備指紋識(shí)別過程中信息交互過程,工控協(xié)議格式解析和實(shí)際報(bào)文展示。鑒于工控系統(tǒng)在線長期運(yùn)行及其安全后果的重要性,論文的工控設(shè)備指紋識(shí)別具有無損性,定制準(zhǔn)確性,冗余有效性的特點(diǎn)。
【 關(guān)鍵詞 】 工業(yè)控制系統(tǒng);指紋識(shí)別
The Technology of Industrial Control System Fingerprint Identification
Li Qin-yuan 1 Sun Xin 1 Dai Hua 1 Zhao Ming-ming 2
(1. Electric Power Research Institute of State Grid Zhejiang Electric Power Company ZhejiangHangzhou 310014;
2. Beijing China-power Information Technology Co.,Ltd. Beijing 100192)
【 Abstract 】 Industrial control systems(ICSs) are cyber-physical systems(CPSs) which supervise and control physical processes in critical infrastructure industries such as electric power,water treatment,oil &natural gas exploration,transportation,and chemical industry. Control systems such as SCADA,DCS,PLC,etc are collectively known as ICSs. As vendors and industrial control protocols of ICSs are different,customization device fingerprint identificationare realized for almost all the well known industrial control vendors. Particular examples show the information interactions of client and devices(as the target services),standard message format ofindustrial control protocol,and details of wireshark packets. Base on the longterm working on line and the importance of safety of ICSs. The fingerprint identification of ICSs devices is nondestructive,customization accurate, redundant effective.
【 Keywords 】 industrial control system fingerprint identification
1 引言
工業(yè)4.0新時(shí)代,從智能工廠到智能生產(chǎn),實(shí)現(xiàn)智能化生產(chǎn)系統(tǒng)及過程,以及網(wǎng)絡(luò)化分布式生產(chǎn)設(shè)施。要求工控現(xiàn)場(chǎng)操作的可靠性、安全性、穩(wěn)定性、智能化、可控性,生產(chǎn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的監(jiān)控以及現(xiàn)場(chǎng)設(shè)備型號(hào)、位置、性能、信息的采集就變得尤其重要。每一臺(tái)終端設(shè)備也都擁有獨(dú)特的特征,這些獨(dú)特的屬性,在終端設(shè)備與外界通訊的過程中都會(huì)體現(xiàn)出來。追蹤設(shè)備通信行為,并用先進(jìn)的數(shù)據(jù)模型分析其特性,就能準(zhǔn)確識(shí)別和關(guān)聯(lián)設(shè)備。就像每個(gè)人具有獨(dú)一無二的指紋一樣,設(shè)備的各項(xiàng)數(shù)據(jù)信息,組合在一起就構(gòu)成了唯一標(biāo)示這臺(tái)設(shè)備的設(shè)備指紋信息。設(shè)備指紋信息技術(shù)就是獲取設(shè)備指紋信息的一個(gè)過程。
2 設(shè)備指紋識(shí)別現(xiàn)狀
就設(shè)備指紋識(shí)別技術(shù)現(xiàn)狀而言,目前有指紋識(shí)別能力的掃描引擎和掃描工具有簡單的使用設(shè)備指紋識(shí)別的Shodan、設(shè)備指紋結(jié)合Web應(yīng)用指紋的Zoomeye、基于TCP/IP協(xié)議棧指紋的Nmap。不通掃描引擎和工具的特點(diǎn):Shodan主要采集設(shè)備開放端口的banner(俗稱“旗幟”)信息,通過Banner信息的描述直觀的展示給閱讀者,使其對(duì)設(shè)備信息有一定的了解;Zoomeye結(jié)合了Nmap掃描工具,加強(qiáng)了對(duì)Web服務(wù)的識(shí)別能力,Zoomeye團(tuán)隊(duì)通過工控協(xié)議的常用端口以及工控設(shè)備信息整理出了一個(gè)工控專題[2];Nmap主要使用TCP/IP協(xié)議棧指紋來準(zhǔn)確地判斷目標(biāo)主機(jī)的操作系統(tǒng)類型[3]。
由于這些識(shí)別引擎和工具在工控現(xiàn)場(chǎng)領(lǐng)域的不適用性,在深度研究工業(yè)控制系統(tǒng),對(duì)構(gòu)成工業(yè)控制網(wǎng)絡(luò)的工業(yè)控制設(shè)備、網(wǎng)絡(luò)通信設(shè)備、安全防護(hù)設(shè)備、工作站和服務(wù)器等不同類型的基礎(chǔ)單元進(jìn)行深入研究分析,通過不同維度的協(xié)議信息得到工控系統(tǒng)指紋,并通過歸一化達(dá)到工控系統(tǒng)指紋空間的構(gòu)建。
工控系統(tǒng)指紋識(shí)別技術(shù)建立在深度包解析技術(shù)的基礎(chǔ)上,對(duì)通信協(xié)議五元組及深度包內(nèi)容進(jìn)行分析,基于多維度的信息體系構(gòu)建工控系統(tǒng)指紋空間。通過主機(jī)發(fā)現(xiàn)、端口識(shí)別、指紋探測(cè)多個(gè)過程得到多維度信息后與工控系統(tǒng)指紋空間進(jìn)行模式匹配,通過匹配算法最終得到對(duì)應(yīng)的工控系統(tǒng)詳細(xì)信息。
3 工控指紋識(shí)別技術(shù)
工控系統(tǒng)指紋識(shí)別技術(shù)的難點(diǎn)在于工控協(xié)議眾多,尤其是工控領(lǐng)域存在大量的私有協(xié)議。故在該技術(shù)中主要需實(shí)現(xiàn)為工控協(xié)議逆向和指紋數(shù)據(jù)融合。
3.1 工控協(xié)議逆向
工控系統(tǒng)協(xié)議逆向識(shí)別通過深度識(shí)別工業(yè)控制系統(tǒng)與其操作員站監(jiān)控軟件之間的通信數(shù)據(jù)流,逆向獲取通信數(shù)據(jù)流中的指紋信息。通過無損識(shí)別,定制識(shí)別和冗余識(shí)別多種識(shí)別方式結(jié)合進(jìn)行指紋識(shí)別工作。
無損識(shí)別:識(shí)別過程中,被動(dòng)監(jiān)聽或者僅發(fā)送查詢報(bào)文,根據(jù)接受報(bào)文解析設(shè)備信息,不影響設(shè)備的正常運(yùn)行,不破壞現(xiàn)場(chǎng)的組網(wǎng)環(huán)境。
定制識(shí)別:基于工控廠商設(shè)備協(xié)議的差異性,不通廠商協(xié)議設(shè)備間的通訊機(jī)制完全是各廠商私有規(guī)約,所以針對(duì)不通的廠商設(shè)備達(dá)到定制識(shí)別。
冗余識(shí)別:同一設(shè)備可能開放多個(gè)端口,各個(gè)端口都有可能包含設(shè)備指紋信息,因此實(shí)現(xiàn)對(duì)同一目標(biāo)設(shè)備的冗余識(shí)別,保證識(shí)別的有效性及準(zhǔn)確性。
不同廠商的工業(yè)控制系統(tǒng)根據(jù)其通信機(jī)制以及架構(gòu)的不同將采用不同的方式進(jìn)行工控協(xié)議逆向工作,某些工業(yè)控制系統(tǒng)將采用多種方式結(jié)合深入獲取指紋信息。
由于工控協(xié)議的私有性和定制化,工控協(xié)議的解析需要從多方面,多維度進(jìn)行。對(duì)于工控協(xié)議的逆向解析,采用相應(yīng)的協(xié)議逆向解析方法,再結(jié)合實(shí)際設(shè)備交互數(shù)據(jù)流的特征進(jìn)行分析,達(dá)到指紋識(shí)別的目的。主要的協(xié)議逆向解析方法有幾種。
字段分析:通過觀察網(wǎng)絡(luò)數(shù)據(jù)流中不同協(xié)議字段的出現(xiàn)次數(shù),推斷協(xié)議字段結(jié)構(gòu)的方法。由于這種方法不考慮具體協(xié)議內(nèi)容,因此分析效果依賴于樣本數(shù)據(jù)流中字段重復(fù)出現(xiàn)的次數(shù)和每次出現(xiàn)的形式是否一致。
流量建模:通過對(duì)網(wǎng)絡(luò)流量的內(nèi)容進(jìn)行統(tǒng)計(jì)建模,識(shí)別和區(qū)分流量對(duì)應(yīng)的不同協(xié)議;但該方法只能用于識(shí)別協(xié)議類型,無法解析具體的協(xié)議結(jié)構(gòu)。
字符處理:利用自然語言處理和字符串對(duì)齊算法對(duì)網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行學(xué)習(xí),自動(dòng)地對(duì)收到的網(wǎng)絡(luò)請(qǐng)求進(jìn)行應(yīng)答的方法;該方法能夠根據(jù)數(shù)據(jù)內(nèi)容的排列模式從樣本數(shù)據(jù)中選擇類似的會(huì)話用于自動(dòng)應(yīng)答,但無法分析具體協(xié)議語法和語義。
數(shù)據(jù)流分析:根據(jù)數(shù)據(jù)在程序執(zhí)行過程中的傳播路徑,通過關(guān)鍵信息數(shù)據(jù)流跟蹤的方法,分析關(guān)鍵信息的獲取方式,分析軟件行為,確定數(shù)據(jù)流交互過程,模擬數(shù)據(jù)流獲取行為。
3.2 指紋數(shù)據(jù)融合
通過工控協(xié)議逆向識(shí)別得到工控系統(tǒng)的相關(guān)指紋后,由于每個(gè)協(xié)議規(guī)約的不同,導(dǎo)致每個(gè)協(xié)議獲取的指紋參數(shù)錯(cuò)綜復(fù)雜,這將導(dǎo)致后期對(duì)于指紋信息二次利用的價(jià)值無法良好體現(xiàn),因此,需要對(duì)工控指紋數(shù)據(jù)進(jìn)行融合。
根據(jù)工業(yè)控制系統(tǒng)特點(diǎn),指紋信息的二次利用包括但不局限于,根據(jù)指紋信息達(dá)到自動(dòng)獲取設(shè)備各類信息,根據(jù)獲取信息構(gòu)建設(shè)備分布的拓?fù)浣Y(jié)構(gòu),根據(jù)指紋信息匹配已知漏洞庫的潛在漏洞,根據(jù)漏洞詳情對(duì)設(shè)備及整個(gè)系統(tǒng)進(jìn)行評(píng)分等。基于指紋信息廣泛的應(yīng)用場(chǎng)合,工控指紋數(shù)據(jù)的融合方向有幾個(gè)。
信息提?。宏P(guān)鍵字段包括設(shè)備廠商、設(shè)備型號(hào)、設(shè)備固件版本號(hào)、設(shè)備名稱等以Key、Value形式存儲(chǔ),便于直觀的展示和字段信息調(diào)用。
網(wǎng)絡(luò)節(jié)點(diǎn)信息提取:以IPv4的網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)識(shí),配合設(shè)備MAC地址唯一標(biāo)示設(shè)備信息集合,便于提取和集成設(shè)備分布拓?fù)浣Y(jié)構(gòu)。
設(shè)備開放端口信息提取:設(shè)備開放端口號(hào)、開放端口協(xié)議類型、開放端口支持協(xié)議名稱及端口Banner信息匯總,便于設(shè)備安全評(píng)分。
經(jīng)過數(shù)據(jù)融合處理,工控指紋識(shí)別結(jié)果需要包括的內(nèi)容有目標(biāo)設(shè)備的IP地址、設(shè)備的開放端口、設(shè)備廠商、設(shè)備類型、設(shè)備型號(hào)、設(shè)備名稱、設(shè)備固件版本、設(shè)備描述信息、設(shè)備支持協(xié)議等。
4 工控設(shè)備指紋識(shí)別實(shí)例
工控設(shè)備指紋識(shí)別技術(shù)以工業(yè)控制系統(tǒng)S7-300為例,S7-300是德國西門子公司生產(chǎn)的可編程控制器(PLC)系列產(chǎn)品之一,在煙草、電力、水處理等行業(yè)有大量的應(yīng)用。
西門子工業(yè)控制系統(tǒng)采用其私有協(xié)議S7,通過S7協(xié)議,可實(shí)現(xiàn)西門子組態(tài)軟件Step7對(duì)控制器進(jìn)行編程、測(cè)試、調(diào)試和診斷等功能,同時(shí)實(shí)現(xiàn)監(jiān)控軟件Wincc的監(jiān)視控制功能。所以針對(duì)于該私有協(xié)議,采用定制識(shí)別的方式進(jìn)行識(shí)別。以下是針對(duì)西門子設(shè)備S7-300進(jìn)行設(shè)備指紋識(shí)別的過程。
4.1 實(shí)驗(yàn)環(huán)境搭建
為了能在真實(shí)環(huán)境中通過網(wǎng)絡(luò)報(bào)文達(dá)到工控設(shè)備指紋識(shí)別的目的,因此實(shí)驗(yàn)環(huán)境也需達(dá)到真實(shí)環(huán)境的基本網(wǎng)絡(luò)拓?fù)洌瑘D1為西門子組態(tài)軟件Step7與西門子PLC之間的最簡連接關(guān)系圖。
4.2 設(shè)備指紋信息發(fā)掘
對(duì)于西門子PLC,我們發(fā)現(xiàn)其組態(tài)軟件中存在設(shè)備指紋信息。組態(tài)軟件Step 7 V5.5,其自帶在線監(jiān)控功能,可通過該功能,檢測(cè)網(wǎng)絡(luò)中可用的PLC設(shè)備,并可查看在線PLC詳細(xì)信息。因此可通過該功能達(dá)到抓取指紋數(shù)據(jù)的目的,以下為達(dá)到該目的Step操作流程。
a. 打開Step 7組態(tài)軟件(如圖2所示)。
b. 設(shè)置PG/PC接口(如圖3所示)。
c. 選擇連接PLC的網(wǎng)口,作為通訊接口(本虛擬機(jī)設(shè)置兩塊網(wǎng)卡,分別橋接無線網(wǎng)卡和有線網(wǎng)口,選擇連接PLC的有線網(wǎng)卡作為通訊網(wǎng)卡)(如圖4所示)。
d. 顯示可訪問PLC節(jié)點(diǎn)(如圖5所示)。
e. 查看PLC信息(這里有兩種方式:1.點(diǎn)擊詳細(xì)信息按鈕;2.右鍵在線PLC,查看模塊信息。)(如圖6、圖7所示)。
f. 軟件信息(如圖8、圖9所示)。
4.3 設(shè)備指紋數(shù)據(jù)捕獲
Step 7 顯示在線PLC和查看PLC狀態(tài)信息時(shí),用Wireshark抓包,對(duì)交互過程分析篩選后,PLC設(shè)備信息獲取的流程報(bào)文如下:
報(bào)文數(shù)據(jù)分析:
a. 通過S7協(xié)議(TCP/102)建立tcp socket連接;
b. 協(xié)商Source TSAP和Destination TSAP;
c. 建立S7協(xié)議連接;
d. 寄存器信息讀?。ㄗx取設(shè)備標(biāo)識(shí));
e. 寄存器信息讀?。ㄗx取組件標(biāo)識(shí))。
4.4 通信協(xié)議分析
S7協(xié)議是第7層的協(xié)議,用于西門子設(shè)備之間進(jìn)行交換數(shù)據(jù),通過TSAP,可加載MPI、DP、以太網(wǎng)等不同物理結(jié)構(gòu)總線或網(wǎng)絡(luò)上,PLC一般可以通過封裝好的通訊功能塊實(shí)現(xiàn)。S7屬于西門子公司通訊的私有協(xié)議,以太網(wǎng)通訊模式下,S7協(xié)議工作在ISO 8073/X.224 COTP Connection-Oriented Transport Protocol之上。
S7應(yīng)用層報(bào)文包括TPKT和TPDU兩個(gè)部分[4]。
TKPK報(bào)文格式:
TPDU報(bào)文格式:
4.5 設(shè)備指紋腳本驗(yàn)證
根據(jù)組態(tài)軟件與PLC交互過程,抓包分析后,通過腳本模擬組態(tài)軟件與PLC通訊流程,腳本實(shí)現(xiàn)建立S7協(xié)議連接,發(fā)送設(shè)備標(biāo)識(shí)和組件標(biāo)識(shí)信息讀取報(bào)文,并解析PLC返回報(bào)文,腳本探測(cè)結(jié)果如下:
5 結(jié)束語
工控系統(tǒng)指紋識(shí)別考慮到了工控系統(tǒng)廠商協(xié)議的多樣化、個(gè)性化,這對(duì)以上特點(diǎn)進(jìn)行了協(xié)議和設(shè)備的定制化識(shí)別,保證了設(shè)備指紋識(shí)別的準(zhǔn)確性;基于工控系統(tǒng)的長時(shí)間在線運(yùn)行以及安全結(jié)果的重要性,設(shè)備指紋識(shí)別做到了無損識(shí)別的特點(diǎn),保證了工控系統(tǒng)的正常運(yùn)行及安全;單個(gè)設(shè)備可能支持多種協(xié)議,開放多個(gè)端口,工控指紋識(shí)別做到了冗余識(shí)別,保證了識(shí)別結(jié)果的有效性。隨著工業(yè)4.0到來,工控系統(tǒng)必將更加智能化和多樣性發(fā)展,工控指紋識(shí)別也將是一個(gè)持續(xù)過程,基于以上工控指紋識(shí)別的方法,相信將來必將可以做到工控系統(tǒng)所有設(shè)備的指紋自動(dòng)探測(cè)識(shí)別。
參考文獻(xiàn)
[1] 彭勇,向憧,張淼,等.工業(yè)控制系統(tǒng)場(chǎng)景指紋及異常檢測(cè)[J].清華大學(xué)學(xué)報(bào): 自然科學(xué)版,2016,56(1):14-21.
[2] https://www.zoomeye.org/help/manual.
[3] https://nmap.org/man/zh/.
[4] Rose M T, Cass D E. RFC 1006-ISO Transport Service on top of the TCP[J]. Standard, Northrop Research and Technology Center,1987.
作者簡介:
李沁園(1990-),女,漢族,浙江杭州人,畢業(yè)于浙江大學(xué),碩士研究生,工程師;主要研究方向和關(guān)注領(lǐng)域:信息安全、工控安全。
孫歆(1981-),男,漢族,浙江杭州人,畢業(yè)于浙江大學(xué),碩士研究生,高級(jí)工程師;主要研究方向和關(guān)注領(lǐng)域:信息安全、工控安全。
戴樺(1985-),男,漢族,浙江杭州人,畢業(yè)于南京郵電大學(xué),碩士研究生,工程師;主要研究方向和關(guān)注領(lǐng)域:工控安全、滲透測(cè)試。
趙明明(1984-),男,漢族,內(nèi)蒙古赤峰人,畢業(yè)于北京科技學(xué)院,本科,工程師;主要研究方向和關(guān)注領(lǐng)域:信息安全攻防。