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