孫易安++胡仁豪
【 摘 要 】 文章分析了工業(yè)控制系統(tǒng)漏洞來源、現(xiàn)狀及分類,指出了針對已知漏洞掃描的技術(shù)和未知漏洞挖掘的動態(tài)、靜態(tài)分析技術(shù)。通過工業(yè)控制系統(tǒng)漏洞掃描與挖掘技術(shù)可以對工業(yè)控制系統(tǒng)中漏洞進(jìn)行檢測,并提前進(jìn)行安全防護(hù),避免因工業(yè)控制系統(tǒng)漏洞被利用造成嚴(yán)重后果。
【 關(guān)鍵詞 】 工業(yè)控制系統(tǒng);工控安全;安全漏洞;漏洞掃描;漏洞挖掘
【 中圖分類號 】 TP309
【 文獻(xiàn)標(biāo)識碼 】 A
Research on Vulnerability Scanning and Discovering Technology of Industrial Control System
Sun Yi-an Hu Ren-hao
(Beijing KuangEn Network Co., Ltd. Beijing 100191)
【 Abstract 】 This article analyzes the source, present situation and classification of industrial control system vulnerabilities, and points out the technology of dynamic and static analysis of known vulnerability scanning and unknown vulnerability discovering. Industrial control system vulnerability scanning and discovering technology can be used in the industrial control system to detect vulnerabilities and security protection in advance, to avoid vulnerability in industrial control system was exploited to cause serious consequences.
【 Keywords 】 industrial control system; industrial control system security; security vulnerability; vulnerability scanning; vulnerability discovering
1 引言
工業(yè)控制系統(tǒng)漏洞是在其生命周期的各個階段(設(shè)計(jì)、實(shí)現(xiàn)、運(yùn)維等過程)中引入的某類問題,比如設(shè)計(jì)階段引入的一個設(shè)計(jì)的非常容易被破解的加密算法,實(shí)現(xiàn)階段引入的一個代碼緩沖區(qū)溢出問題,運(yùn)維階段的一個錯誤的安全配置,這些都有可能最終成為工業(yè)控制系統(tǒng)漏洞,這些漏洞會對工業(yè)控制系統(tǒng)的安全(可用性、完整性、機(jī)密性)產(chǎn)生嚴(yán)重影響。
當(dāng)工業(yè)控制網(wǎng)絡(luò)遭受攻擊時(shí),無論是攻擊操作系統(tǒng)或底層控制器設(shè)備,還是利用網(wǎng)絡(luò)協(xié)議和病毒進(jìn)行攻擊,歸根結(jié)底都是利用各類工業(yè)控制系統(tǒng)安全漏洞的來完成的。同時(shí),入侵途徑可以通過辦公網(wǎng)絡(luò)、互聯(lián)網(wǎng)或者是虛擬的專網(wǎng)、撥號連接、“可信”的第三方連接、無線網(wǎng)絡(luò)、公共通信設(shè)施等。即使現(xiàn)場設(shè)備不接入任何網(wǎng)絡(luò),是一個“孤島”的狀態(tài),仍有可能受到通過可移動存儲和工程師維護(hù)使接入設(shè)備所傳播的惡意軟件利用工業(yè)控制系統(tǒng)安全漏洞進(jìn)行攻擊。
2 工業(yè)控制系統(tǒng)漏洞現(xiàn)狀
近幾年,走進(jìn)公眾視線的工業(yè)控制網(wǎng)絡(luò)安全問題越來越多,尤其在2010年震網(wǎng)事件之后,工業(yè)控制網(wǎng)絡(luò)安全事件呈現(xiàn)穩(wěn)步增長的趨勢,2015年被ICS-CERT收錄的攻擊事件達(dá)到了295件。如圖1所示。
據(jù)統(tǒng)計(jì),從2012年到 2015年,互聯(lián)網(wǎng)上總共披露的工業(yè)控制系統(tǒng)漏洞近千個。這些漏洞涵蓋了大多數(shù)知名工控設(shè)備生產(chǎn)廠家的產(chǎn)品,并且大部分是中高危類型漏洞 (高危:47%, 中危47%)涉及到的工業(yè)控制設(shè)備、系統(tǒng)包括SCADA、DCS、PLC、工業(yè)控制網(wǎng)絡(luò)交換機(jī)、防火墻、路由器等。工業(yè)控制系統(tǒng)被發(fā)現(xiàn)的漏洞呈現(xiàn)總體上升的趨勢,但由于工業(yè)控制系統(tǒng)漏洞具有更高的價(jià)值,仍有大量的工業(yè)控制系統(tǒng)漏洞已被發(fā)現(xiàn),卻未被曝光,因此實(shí)際的工控漏洞數(shù)量應(yīng)超出統(tǒng)計(jì)。在這些已公布漏洞中,SCADA、HMI、PLC、工業(yè)交換機(jī)等占曝光的漏洞數(shù)的前幾位。截至2015年底,我們以中國國家信息安全漏洞共享平臺所發(fā)布的2015年新增漏洞信息[CNVD],共整理出2015年新增的工業(yè)控制系統(tǒng)相關(guān)的漏洞108個。如圖2所示。
3 工業(yè)控制系統(tǒng)漏洞分類
工業(yè)控制系統(tǒng)漏洞分類按設(shè)備在工控系統(tǒng)的位置分為上位機(jī)漏洞(操作系統(tǒng)漏洞、應(yīng)用軟件漏洞),下位機(jī)漏洞(協(xié)議漏洞、后門、HMI漏洞);按設(shè)備、系統(tǒng)類型分為軟件漏洞,遠(yuǎn)程終端單元(RTU)漏洞,PLC漏洞,網(wǎng)絡(luò)設(shè)備(交換機(jī)、路由器、防火墻等)漏洞,其他設(shè)備漏洞;按漏洞產(chǎn)生原因分為緩沖區(qū)溢出,DLL劫持,固件后門,提權(quán),暴力破解,安全繞過,包回放攻擊,明文密碼傳輸,Web類安全漏洞(遠(yuǎn)程命令執(zhí)行、SQL注入、代碼注入、文件包含、任意文件上傳、跨站腳本、跨站偽造請求)等。
4 工業(yè)控制系統(tǒng)漏洞掃描與挖掘技術(shù)
目前工業(yè)控制系統(tǒng)漏洞挖掘集中在操作系統(tǒng)、工控協(xié)議、Activex控件、文件格式、Web HMI、數(shù)據(jù)庫、固件后門、移動應(yīng)用等幾個方向。其中操作系統(tǒng)、工控協(xié)議、Activex控件、文件格式、數(shù)據(jù)庫這些漏洞的挖掘用到的主要是模糊測試技術(shù);固件后門、移動應(yīng)用等漏洞挖掘更多是靜態(tài)分析技術(shù)和逆向技術(shù);Web HMI可以使用模糊測試和靜態(tài)分析技術(shù)。
4.1 工業(yè)控制系統(tǒng)漏洞掃描技術(shù)
工業(yè)控制系統(tǒng)漏洞掃描技術(shù),首先收集和分析形成專業(yè)的工業(yè)控制系統(tǒng)安全漏洞指紋庫,庫中包含相關(guān)已公布工控漏洞的指紋信息如固件版本、通訊協(xié)議、漏洞特征信息等,當(dāng)進(jìn)行掃描時(shí),根據(jù)被測設(shè)備的型號、固件、通訊協(xié)議等指紋信息進(jìn)行檢測規(guī)則的自動匹配,從而檢測是否存在已知漏洞。漏洞掃描技術(shù)除了進(jìn)行已知漏洞特征匹配功能還包括工控通信協(xié)議支持、存活判斷、端口掃描、服務(wù)識別、操作系統(tǒng)判斷等,同時(shí)具備PLC、DCS、SCADA等工業(yè)控制系統(tǒng)和軟件識別功能。
4.2 工業(yè)控制系統(tǒng)漏洞挖掘技術(shù)
4.2.1動態(tài)測試技術(shù)
針對工業(yè)控制系統(tǒng)的動態(tài)測試技術(shù)是指在工業(yè)控制系統(tǒng)運(yùn)行狀態(tài)下,通過基于工業(yè)控制協(xié)議的模糊測試、風(fēng)暴測試、雙向測試等進(jìn)行漏洞挖掘的方法。
模糊測試是一種通過向目標(biāo)輸入大量非預(yù)期的數(shù)據(jù),并監(jiān)控目標(biāo)以期發(fā)現(xiàn)安全漏洞的一種技術(shù)。模糊測試是一種自動或半自動化的技術(shù),這個技術(shù)需要反復(fù)的不斷的向目標(biāo)設(shè)備進(jìn)行輸入。
在工業(yè)控制系統(tǒng)上進(jìn)行未知漏洞挖掘主要是基于工業(yè)控制協(xié)議的模糊測試技術(shù),基于工業(yè)控制協(xié)議的模糊測試技術(shù)是指針對工業(yè)控制系統(tǒng)的通信協(xié)議進(jìn)行突變或分析協(xié)議特點(diǎn)構(gòu)造特定的包,然后發(fā)送給工控協(xié)議上位機(jī)服務(wù)器或下位機(jī),監(jiān)控被測目標(biāo)響應(yīng),根據(jù)響應(yīng)的異常來進(jìn)行漏洞挖掘?;诠た貐f(xié)議的模糊測試是在深入理解各個工控協(xié)議規(guī)約特征的基礎(chǔ)上生成輸入數(shù)據(jù)和測試用例去遍歷協(xié)議實(shí)現(xiàn)的各個方面,包括在數(shù)據(jù)內(nèi)容、結(jié)構(gòu)、消息、序列中引入各種異常。同時(shí),挖掘過程中需引入了大數(shù)據(jù)分析和人工智能算法,將初始的變形范圍主要集中在該廠商設(shè)備最容易發(fā)生故障的范圍內(nèi)進(jìn)行密集測試,測試中動態(tài)追蹤被測設(shè)備的異常反應(yīng),智能選擇更有效的輸入屬性構(gòu)造新樣本進(jìn)行測試。
雙向測試技術(shù)是一種基于突變的強(qiáng)制性模糊測試方法,這種方法通過在已有數(shù)據(jù)樣本基礎(chǔ)上插入或修改變異字節(jié)來改變正常工業(yè)控制系統(tǒng)中上位機(jī)和目標(biāo)設(shè)備間的交互數(shù)據(jù),并同時(shí)監(jiān)視上位機(jī)和目標(biāo)設(shè)備的狀態(tài)。
風(fēng)暴測試技術(shù)是通過在短時(shí)間內(nèi)向目標(biāo)設(shè)備發(fā)送大量完全相同數(shù)據(jù)包的一種壓力測試,目標(biāo)設(shè)備處理能力可能根據(jù)包發(fā)送頻率改變而改變,薄弱的目標(biāo)設(shè)備將在風(fēng)暴測試中因?yàn)闊o法處理大量數(shù)據(jù)而出現(xiàn)無法響應(yīng)等故障。測試時(shí)發(fā)包的速率將從低到高逐漸增加,最終得出目標(biāo)設(shè)備的最大抗壓值。
4.2.2靜態(tài)分析技術(shù)
針對工業(yè)控制系統(tǒng)的靜態(tài)分析技術(shù),是指在工業(yè)控制系統(tǒng)在非運(yùn)行狀態(tài)下,進(jìn)行漏洞挖掘的技術(shù),包括靜態(tài)代碼審計(jì)、逆向分析,二進(jìn)制補(bǔ)丁比對等通用漏洞挖掘方法。
靜態(tài)代碼審計(jì):指使用靜態(tài)代碼審計(jì)工具結(jié)合人工代碼審計(jì)的方法分析軟件、系統(tǒng)源代碼,從而發(fā)現(xiàn)軟件、系統(tǒng)漏洞的方法。該方法只能適用于提供源碼的工業(yè)控制系統(tǒng)的檢測。
逆向分析:指通過固件分析工具對固件解壓,逆向匯編二進(jìn)制代碼,分析二進(jìn)制代碼函數(shù)及其邏輯,通過這些綜合手段挖掘固件、二進(jìn)制可執(zhí)行程序安全漏洞的方法。
二進(jìn)制補(bǔ)丁對比:當(dāng)工業(yè)控制系統(tǒng)廠商發(fā)現(xiàn)漏洞之后提供了修復(fù)漏洞的補(bǔ)丁,但并沒有公布該漏洞。這個時(shí)候,可以使用二進(jìn)制程序比對工具。通過比較補(bǔ)丁和原程序的不同點(diǎn),可以發(fā)現(xiàn)原程序的安全漏洞。
5 結(jié)束語
工業(yè)控制系統(tǒng)安全漏洞的威脅性主要體現(xiàn)在被惡意利用后導(dǎo)致的各類后果。如果攻擊者利用工業(yè)控制系統(tǒng)中存在的漏洞入侵,輕則使操作系統(tǒng)某些功能不能正常使用,重則會盜取大量用戶隱私信息,控制和破壞關(guān)鍵基礎(chǔ)設(shè)施的硬件設(shè)備,造成巨大的經(jīng)濟(jì)損失和人員傷亡,甚至威脅到國家安全。
因此,針對工業(yè)控制系統(tǒng)中漏洞要及時(shí)進(jìn)行安全檢測和提前發(fā)現(xiàn),可以通過上述的漏洞掃描和挖掘技術(shù)進(jìn)行檢測。同時(shí),一旦在工業(yè)控制系統(tǒng)中發(fā)現(xiàn)漏洞,就需要立刻進(jìn)行漏洞修復(fù)。根據(jù)漏洞的性質(zhì)及特點(diǎn),可以采取打軟件補(bǔ)丁、進(jìn)行安全加固和防范、調(diào)整配置或者移除等方法進(jìn)行漏洞修補(bǔ)。
參考文獻(xiàn)
[1] 2015年工業(yè)控制網(wǎng)絡(luò)安全態(tài)勢報(bào)告[R].匡恩網(wǎng)絡(luò),2016.
[2] Michael Sutton,Adam Greene,Pedram Amini. Fuzzing: Brute Force Vulnerability Discovery. 1st Edition[M]. USA: Addison-Wesley, 2007.
[3] Guideto Industrial Control Systems(ICS) Security[S]. NIST SP800-82.
[4] Industrial Network and System Security[S]. ISA/IEC 62443.
[5] CNVD [EB/OL]. http://www.cnvd.org.cn/.
[6] CNNVD [EB/OL].http://www.cnnvd.org.cn/.
作者介紹:
孫易安(1972-),男,天津人,漢族,畢業(yè)于北京大學(xué),本科,學(xué)士學(xué)位,匡恩技術(shù)委員會主席兼首席戰(zhàn)略官;主要研究方向和關(guān)注領(lǐng)域:信息網(wǎng)絡(luò)及工業(yè)網(wǎng)絡(luò)安全相關(guān)技術(shù)和產(chǎn)品。
胡仁豪(1984-),男,漢族,安徽天長人,畢業(yè)于中國石油大學(xué),碩士,北京匡恩網(wǎng)絡(luò)科技有限責(zé)任公司產(chǎn)品總監(jiān);主要研究方向和關(guān)注領(lǐng)域:安全漏洞掃描與漏洞挖掘技術(shù)。