崔永富,翟江濤,林 鵬,許歷隆
(南京信息工程大學(xué) 電子與信息工程學(xué)院,南京 210044)
隨著互聯(lián)網(wǎng)在工業(yè)控制系統(tǒng)的廣泛使用,大量的工業(yè)設(shè)備逐步接入到互聯(lián)網(wǎng),這極大地改善和提高了我國的工業(yè)生產(chǎn)質(zhì)量。與此同時(shí),工業(yè)控制系統(tǒng)在信息安全保護(hù)上卻面臨著日益嚴(yán)重的挑戰(zhàn)和威脅。傳統(tǒng)的網(wǎng)絡(luò)防御技術(shù),如防火墻[1-2]、IDS[3-5]、訪問控制技術(shù)[6]等都是被動(dòng)防御手段,難以有效應(yīng)對(duì)各種未知類型的攻擊。Stuxnet[7]、Duqu 等攻擊給相關(guān)受害者帶來了嚴(yán)重后果。面對(duì)復(fù)雜和多變的攻擊手段與攻擊方式,傳統(tǒng)的網(wǎng)絡(luò)安全防御技術(shù)很難對(duì)未知的攻擊事件進(jìn)行及時(shí)處理與響應(yīng),為了能夠及時(shí)處理和響應(yīng)工業(yè)控制系統(tǒng)中出現(xiàn)的未知攻擊,更好地提升工業(yè)控制系統(tǒng)在信息保護(hù)上的安全性,主動(dòng)防御技術(shù)的應(yīng)用成為了當(dāng)今網(wǎng)絡(luò)安全防范技術(shù)的迫切需求。
蜜罐技術(shù)就是為了識(shí)別攻擊和防御未來攻擊而提出的一項(xiàng)主動(dòng)防御技術(shù)[8]。它是一種安全資源,可用來吸引攻擊者進(jìn)行非法應(yīng)用而無需任何業(yè)務(wù)實(shí)用程序[9]。蜜罐技術(shù)本質(zhì)上是一種對(duì)攻擊方進(jìn)行欺騙的技術(shù),通過布置一些作為誘餌的主機(jī)、網(wǎng)絡(luò)服務(wù)或者信息,誘使攻擊方對(duì)它們實(shí)施攻擊,從而可以對(duì)攻擊行為進(jìn)行捕獲和分析[8,10]。該技術(shù)在近些年內(nèi)呈現(xiàn)出交互能力由低到高,兼容功能由少到多的發(fā)展趨勢(shì)。事實(shí)上,蜜罐的分類方式最常用的是按照其與外界的交互能力分為低、中、高交互蜜罐,其區(qū)別在于提供交互的空間是否覆蓋完整的操作系統(tǒng)[11]。
面對(duì)針對(duì)ICS 設(shè)備和系統(tǒng)的網(wǎng)絡(luò)威脅,從攻擊者的角度研究攻擊方式和動(dòng)機(jī)比被動(dòng)防御更為有效。蜜罐是研究攻擊者行之有效的方法。通過偽裝成正常的機(jī)器或設(shè)備,蜜罐可以記錄攻擊者和掃描程序的行為,然后對(duì)其進(jìn)行深入分析。它可以作為一種在沒有任何商業(yè)實(shí)用工具的情況下,用來吸引非法應(yīng)用攻擊者的安全資源,而且可以更好地了解這些攻擊的起源地[12]。1998 年,Cohen 開發(fā)了第一個(gè)開源蜜罐工具DTK,獲取了攻擊者的攻擊信息并且嚴(yán)重?cái)_亂了攻擊者的心理,同時(shí),像CyberCopSting、KFSensor 商業(yè)蜜罐產(chǎn)品也開始得到應(yīng)用。此后,CIAG 集團(tuán)在2004 年發(fā)布了第一個(gè)PLC 蜜罐,他們構(gòu)建基于軟件的框架以模擬各種工業(yè)網(wǎng)絡(luò)(如SCADA、PLC 架構(gòu))的可行性,利用Honeyd 蜜罐來編寫各種腳本模擬工業(yè)以太網(wǎng)協(xié)議,例如Modbus 工業(yè)控制協(xié)議[13]。然而,這些腳本存在著一些問題,例如在日志文件不存在時(shí)它會(huì)導(dǎo)致未處理的異常,而不是創(chuàng)建它。
Daniel 等[14]提出了一種CryPLH 蜜罐,該蜜罐不僅能夠提供簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)和超文本傳輸協(xié)議(HTTP)服務(wù),而且也提供從主機(jī)操作系統(tǒng)獲取網(wǎng)絡(luò)統(tǒng)計(jì)信息的功能。此外,他們也在蜜罐上實(shí)現(xiàn)了STEP7 協(xié)議的模擬。但是,CryPLH模擬了PLC 的高級(jí)保護(hù)機(jī)制,在沒有經(jīng)過允許的情況下無法進(jìn)行訪問,并且拒絕對(duì)任何密碼的正確響應(yīng),這使得攻擊者無法從此蜜罐中獲取更多有價(jià)值的信息。而且在對(duì)操作系統(tǒng)的指紋信息使用Plcscan、Nmap 等探測軟件進(jìn)行掃描探測時(shí)會(huì)發(fā)現(xiàn)和真實(shí)的PLC 有區(qū)別,這使得CryPLH 的缺陷更加明顯,很容易被攻擊方識(shí)別為蜜罐。
Xiao 等[15]提出了一種基于西門子S7 協(xié)議的交互蜜罐S7commTrace。S7commTrace 在協(xié)議仿真中支持更多的功能代碼和子功能代碼,提高了與攻擊者的交互深度。但是,由于其僅為S7 通信協(xié)議開發(fā)的交互蜜罐,在使用不同的蜜罐時(shí)需要根據(jù)不同蜜罐支持的協(xié)議開發(fā)相應(yīng)的蜜罐,這給協(xié)議的適用性帶來了較大的不便。
Artail 等[16]提出了一種混合式蜜罐框架,該方案通過部署低交互蜜罐來充當(dāng)伺服和操作系統(tǒng)仿真器,并利用重定向技術(shù)使其將惡意流量引導(dǎo)到高交互蜜罐,使得攻擊方與其進(jìn)行交互。但是,該蜜罐在設(shè)計(jì)時(shí)只記錄入侵者活動(dòng),攻擊方很容易進(jìn)行識(shí)別發(fā)現(xiàn)漏洞。
Stephan 等[17]通過分析蜜罐的交互特點(diǎn),自主研制出了第一個(gè)具有高交互特點(diǎn)的工控蜜罐XPOT。該蜜罐為PLC 提供了一個(gè)高層次的交互,但是因?yàn)槠洳⑽撮_源,這讓許多研究人員無法對(duì)攻擊者的行為信息進(jìn)行捕獲以便開展更深層次的分析。
為了提高蜜罐的性能和安全性,本文提出了一種基于格式保持加密技術(shù)的改進(jìn)工控蜜罐。鑒于Conpot 蜜罐容易讓Nmap、Plcscan 等嗅探工具以及Shodan 等探測到系統(tǒng)指紋信息的缺陷,對(duì)蜜罐系統(tǒng)指紋信息中序列號(hào)、名稱等進(jìn)行了擦除和替換。然后通過對(duì)比工控設(shè)備PLC 的指紋信息,對(duì)蜜罐系統(tǒng)的配置文件進(jìn)行重新配置以此仿真西門子S7-400 設(shè)備。此外,通過對(duì)西門子PLC 設(shè)備的命名規(guī)則進(jìn)行分析,對(duì)指紋信息中序列號(hào)等采用格式保持加密算法進(jìn)行隨機(jī)生成,確保所提的蜜罐方案和真實(shí)的西門子工控設(shè)備在面對(duì)掃描時(shí)呈現(xiàn)的數(shù)據(jù)在格式上是一致的,從而提高安全性。
本文主要貢獻(xiàn):
1)針對(duì)Conpot 蜜罐默認(rèn)配置文件中固有的指紋信息缺陷,并且容易被攻擊者識(shí)別的問題,對(duì)其序列號(hào)、設(shè)備名稱等關(guān)鍵系統(tǒng)信息進(jìn)行了擦除和替換。這使蜜罐可以被識(shí)別為真實(shí)的工控設(shè)備。此外,通過重新配置蜜罐系統(tǒng)的XML 配置文件,對(duì)設(shè)備名稱、模塊號(hào)等指紋信息進(jìn)行構(gòu)建,仿真S7-400 設(shè)備。
2)通過對(duì)PLC 的命名規(guī)則進(jìn)行分析,提出了一種基于Conpot 框架的格式保持加密改進(jìn)工控蜜罐方法。相比傳統(tǒng)加密方式會(huì)使蜜罐系統(tǒng)信息的數(shù)據(jù)長度、類型和結(jié)構(gòu)等發(fā)生變化,所設(shè)計(jì)的方案保持了蜜罐系統(tǒng)指紋信息中數(shù)據(jù)格式上的一致。
Conpot 作為一款Linux 的蜜罐,可用來模擬工業(yè)控制系統(tǒng)中常用的設(shè)備。它自身所帶的模板可以模擬西門子S7-200PLC,Kamstrup-382 智能儀表設(shè)備,Guardian AST 氣泵監(jiān)控系統(tǒng)和IPMI-371。用戶可以根據(jù)需要定制所需要的模板,還可以根據(jù)需要制作自己的模板來仿真所需的設(shè)備。利用該蜜罐的屬性可以讓網(wǎng)絡(luò)中的仿真設(shè)備變得多樣化,讓蜜罐系統(tǒng)更加逼真,尤其是由于蜜罐原始配置文件的漏洞,通過改進(jìn)配置文件仿真西門子S7-400 設(shè)備,這會(huì)讓蜜罐系統(tǒng)看起來更加真實(shí),更加容易捕獲到攻擊者的攻擊。
Conpot 支持超文本傳輸協(xié)議(HTTP)、串行通信協(xié)議(Modbus)和簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)的仿真,以及可編程邏輯控制器的集成。Honeynet項(xiàng)目的Conpot 項(xiàng)目于2013 年5 月發(fā)布。Conpot利用日志記錄系統(tǒng)監(jiān)視入侵者所做的任何更改。蜜罐以毫秒為單位記錄HTTP,SNMP 和Modbus 服務(wù)的事件,并提供基本的跟蹤信息,例如HTTP 的源地址,請(qǐng)求類型和請(qǐng)求的資源[18]。Conpot 記錄所有網(wǎng)絡(luò)活動(dòng)并將其存儲(chǔ)在日志文件中,可用于進(jìn)一步分析以了解攻擊。
格式保持加密技術(shù)是一種能夠?qū)⑻囟ǜ袷降拿魑募用艹蔀橐粋€(gè)具有相同格式的密文,利用這種格式保持加密方法對(duì)數(shù)據(jù)進(jìn)行加密,不會(huì)破壞數(shù)據(jù)格式,從而降低正在運(yùn)行的應(yīng)用系統(tǒng)的成本。在格式保持上,例如信用卡格式為“XXX YYYYY”,通過應(yīng)用格式保持加密,信用卡的數(shù)據(jù)格式保持不變,數(shù)據(jù)進(jìn)行隨機(jī)生成。圖1 給出了利用格式保持加密技術(shù)隨機(jī)生成的數(shù)據(jù)。根據(jù)已有的研究成果,格式保持加密技術(shù)主要從以下2個(gè)方面進(jìn)行了定義[19]。
圖1 FPE 技術(shù)數(shù)據(jù)的隨機(jī)生成
定義1基本FPE:FPE 可簡單描述為一個(gè)密碼:
式中:K 為密鑰空間;X 為消息空間。
基本FPE 描述了FPE 要解決的問題,即密文與明文處于相同的消息空間。根據(jù)基本FPE 的定義,分組密碼也是某種形式的FPE,分組密碼是字符串集合{0,1}n上的置換。但是,F(xiàn)PE 的消息空間的復(fù)雜性要遠(yuǎn)遠(yuǎn)高于分組密碼。
定義2一般化FPE:一般化FPE 可描述為一個(gè)密碼:
式中:K 為密鑰空間;Ω 為格式空間;T 為調(diào)整因子空間;X 為消息空間。所有空間非空且⊥?X。
格式保持加密技術(shù)旨在執(zhí)行加密數(shù)據(jù),而不會(huì)中斷格式。這意味著以這樣的方式生成數(shù)據(jù),可以保證輸出的格式和輸入的格式相同,提高安全性能。該技術(shù)是由一種特別的對(duì)稱密碼構(gòu)成,由于安全性通常是由基礎(chǔ)模塊的安全性所決定,而偽隨機(jī)置換和分組密碼作為基礎(chǔ)模塊的構(gòu)成部分,格式保持加密技術(shù)的偽隨機(jī)性就是重要的安全目標(biāo)之一。
針對(duì)原始Conpot 蜜罐指紋信息易被Shodan等識(shí)別的問題,本文對(duì)蜜罐系統(tǒng)指紋信息中的名稱、序列號(hào)等進(jìn)行了擦除和替換,攻擊者無法采用網(wǎng)絡(luò)空間搜索引擎對(duì)蜜罐直接進(jìn)行識(shí)別。對(duì)于Conpot 蜜罐在仿真西門子S7-200 上序列號(hào)、模塊號(hào)等指紋信息安全性過低的問題,通過重新配置蜜罐系統(tǒng)的XML 配置文件,對(duì)設(shè)備名稱、模塊號(hào)等指紋信息進(jìn)行構(gòu)建,提高蜜罐的安全性。
此外,通過對(duì)西門子PLC 設(shè)備的命名規(guī)則進(jìn)行分析,可以對(duì)蜜罐系統(tǒng)指紋信息中的序列號(hào)等依據(jù)規(guī)則進(jìn)行生成。根據(jù)傳統(tǒng)加密方式對(duì)蜜罐系統(tǒng)指紋信息的生成,通常會(huì)擴(kuò)展數(shù)據(jù),這使得蜜罐系統(tǒng)指紋信息的數(shù)據(jù)長度、類型和結(jié)構(gòu)等容易發(fā)生變化,也讓加密后的蜜罐系統(tǒng)信息不真實(shí),容易被攻擊者發(fā)現(xiàn)。為了使改進(jìn)后的蜜罐系統(tǒng)不改變指紋信息的數(shù)據(jù)長度、類型和結(jié)構(gòu)等,能夠繼續(xù)使指紋信息在數(shù)據(jù)格式上保持一致,在蜜罐系統(tǒng)指紋信息的生成上采用了格式保持加密技術(shù)。改進(jìn)蜜罐的框架如圖2 所示。
圖2 改進(jìn)的蜜罐框圖
對(duì)蜜罐系統(tǒng)的指紋信息在保持原有格式的背景下進(jìn)行,通過在改進(jìn)的S7-400PLC 上對(duì)序列號(hào)等進(jìn)行隨機(jī)生成操作。該生成方式采用的是高級(jí)加密標(biāo)準(zhǔn)(AES)和格式保持加密(FPE)技術(shù)結(jié)合進(jìn)行的。該技術(shù)采用的方法如圖3 所示。
圖3 加密方法
該方案中,F(xiàn)PE 是依據(jù)分組密碼的方式設(shè)計(jì)的,所用的格式保持加密技術(shù)采用AES-128 位加密算法作為基礎(chǔ)。AES 加密過程總共執(zhí)行10 輪,在加密過程中需要對(duì)其進(jìn)行輪密鑰加、字節(jié)替代轉(zhuǎn)換、行位移轉(zhuǎn)換、列混淆轉(zhuǎn)換等操作。AES 算法完成后,對(duì)輸出密文的權(quán)值進(jìn)行排序。完成此步驟以后,在加密的域中的所有字符就能和其他的字符對(duì)應(yīng),這時(shí)的輸出結(jié)果保留輸入數(shù)據(jù)的原始格式和數(shù)據(jù)類型。該技術(shù)的整體框架如圖4所示。
圖4 格式保持加密技術(shù)流程框圖
首先根據(jù)Conpot 蜜罐系統(tǒng)指紋信息中存在的缺陷對(duì)配置進(jìn)行改進(jìn),使得Shodan 無法識(shí)別所設(shè)計(jì)蜜罐。接著,通過配置Conpot 蜜罐仿真西門子S7-400 設(shè)備,并在此基礎(chǔ)上對(duì)蜜罐系統(tǒng)中符合規(guī)則的指紋信息用格式保持加密技術(shù)進(jìn)行生成。
通過查詢真實(shí)的西門子PLC 設(shè)備以及被網(wǎng)絡(luò)空間搜索引擎Shodan 歸類為工業(yè)控制系統(tǒng)的指紋信息,以此查找蜜罐的指紋信息需要修改的地方。為此,通過采用Nmap 對(duì)Conpot 蜜罐進(jìn)行嗅探識(shí)別,可以直觀地將Conpot 蜜罐的指紋信息和真實(shí)PLC 的指紋信息進(jìn)行對(duì)比。圖5 是通過Nmap 探測返回的結(jié)果,圖6 是真實(shí)的工業(yè)控制系統(tǒng)的指紋信息。通過對(duì)比,可以發(fā)現(xiàn)其展現(xiàn)的指紋信息中序列號(hào)、系統(tǒng)名字等存在著問題,該問題讓攻擊者在進(jìn)行攻擊時(shí)很容易發(fā)現(xiàn)漏洞。
圖5 原始Conpot 的指紋信息
圖6 真實(shí)ICS 的指紋信息
為了避免蜜罐被Zoomeye、Shodan 等工具識(shí)別出來,對(duì)template.xml 中的S7-ID 進(jìn)行了修改,使得蜜罐不能通過特定ID 進(jìn)行查詢,然后對(duì)蜜罐的配置文件進(jìn)行了提高,使其可以仿真西門子S7-400 設(shè)備。算法1 為原始蜜罐部分配置文件,算法2 為修改后的部分配置文件。
在對(duì)蜜罐漏洞進(jìn)行改進(jìn)和提高后,該實(shí)驗(yàn)使用Nmap 來對(duì)蜜罐系統(tǒng)的指紋信息進(jìn)行驗(yàn)證。從圖7 中可以發(fā)現(xiàn),蜜罐提高后的指紋信息和真實(shí)設(shè)備間的系統(tǒng)信息基本一致,這說明了所提方案的有效性。
圖7 改進(jìn)后的Conpot 指紋信息
通過對(duì)蜜罐默認(rèn)配置文件template.xml、s7comm.xml 等的修改,蜜罐的指紋信息能夠按照需要進(jìn)行完善,并且完成仿真S7-400PLC 設(shè)備。這使得蜜罐在被使用時(shí)可以從攻擊者中獲取更多的攻擊信息。
本節(jié)中利用格式保持加密對(duì)蜜罐系統(tǒng)序列號(hào)、模塊號(hào)等進(jìn)行隨機(jī)生成。新的序列號(hào)、模塊號(hào)等隨機(jī)生成以后,通過使用嗅探工具Nmap 對(duì)蜜罐的指紋信息進(jìn)行識(shí)別,圖8 展示了蜜罐指紋信息生成后的信息。這表明改進(jìn)后的蜜罐與真實(shí)PLC在面對(duì)掃描時(shí)呈現(xiàn)的數(shù)據(jù)在格式上一致,安全性得到了提高。
圖8 加密后的蜜罐
通過對(duì)蜜罐的配置進(jìn)行提高,蜜罐的漏洞不會(huì)直接暴露在工作環(huán)境中,通過對(duì)蜜罐指紋信息的改進(jìn)以及對(duì)蜜罐系統(tǒng)部分指紋信息在數(shù)據(jù)上保持格式一致,能夠有效提高蜜罐的安全性。
針對(duì)工業(yè)控制系統(tǒng)蜜罐設(shè)計(jì)時(shí)存在固定指紋信息容易被嗅探,安全性較低的問題,提出了一種基于Conpot 蜜罐的指紋信息和格式保持加密的改進(jìn)蜜罐方案。該方案包含2 個(gè)方面:
1)針對(duì)工控蜜罐的弱指紋信息進(jìn)行了擦除和替換,在蜜罐原有配置文件上對(duì)序列號(hào)等進(jìn)行重新構(gòu)建以仿真S7-400 設(shè)備。
2)在構(gòu)建的S7-400 蜜罐基礎(chǔ)上,在西門子命名規(guī)則下采用格式保持加密技術(shù)對(duì)工控蜜罐中的指紋信息保持原有格式生成指紋信息數(shù)據(jù),以此提高工控蜜罐的安全性能。
該方案對(duì)于保護(hù)工業(yè)控制系統(tǒng)以及提高蜜罐的安全性有較大的意義。未來,可以在ECS 服務(wù)器上采用網(wǎng)絡(luò)模擬仿真器部署蜜網(wǎng)的方式對(duì)該方法加以拓展和應(yīng)用。