?

基于模糊測試的工控網漏洞發現技術研究

2020-01-07 08:07劉坤
軟件工程 2020年12期

劉坤

摘 ?要:本文通過深入研究當前漏洞發現技術,分析常用漏洞發現技術的優劣勢,以及應用領域?;贑VE漏洞庫改進了現有NMAP源碼設計,對其掃描流程進行改進,提升對已知漏洞掃描的能力。對未知漏洞挖掘,優化設計漏洞挖掘測試生成算法和漏洞挖掘算法,對目標工控測試系統進行網絡漏洞挖掘,從而得到工控系統已知或未知的漏洞分析報告,形成工控系統安全評估報告及安全應對策略。

關鍵詞:Fuzzing測試框架;漏洞掃描技術;漏洞發現技術;漏洞挖掘技術

中圖分類號:TP312 ? ? 文獻標識碼:A

Abstract: This paper analyzes advantages and disadvantages of commonly used vulnerability detection technology and application areas through in-depth research on current vulnerability detection technology. The existing Nmap (Network Mapper) source code design is improved based on CVE (Common Vulnerabilities and Exposures) vulnerability library. Scanning process and ability to scan for known vulnerabilities are also improved. Known or unknown vulnerability analysis reports can be obtained in a few ways including mining unknown vulnerabilities, optimizing design of vulnerability mining test generation algorithms and vulnerability mining algorithms, and mining the target industrial control test system for network vulnerabilities. Industrial control system security assessment reports and security response strategies are also formed.

Keywords: fuzzy test framework; vulnerability scanning technology; vulnerability detection technology; vulnerability

mining technology

1 ? 引言(Introduction)

網絡安全從過去的信息安全、計算機主機安全、信息系統安全延伸到基礎設施安全、社會安全、城市安全甚至國家安全。大安全時代“什么都可以編程,什么都可以互相連接,”只要有人寫程序,這將是有缺陷的。網絡戰的攻擊往往是一個未知的時代,從未知的裝備和地點發動,對于未知的漏洞,防御是不可阻擋的。

2014年,美國工業控制系統網絡應急小組發布安全報告顯示收集了167份工業脆弱性報告,涉及能源和制造等多個領域。2015年被ICS-CERT收錄的攻擊事件多達295件[1],截止2016年11月份,中國國家信息安全漏洞共享平臺(CNVD)最新統計數據顯示,工業控制系統漏洞的類型呈現出多樣化的趨勢,包括信息泄漏、緩沖區溢出、拒絕服務等[2]。結合工業網絡現狀,本文深入研究工業控制系統網絡脆弱性挖掘技術,挖掘工業控制系統可能存在的安全漏洞,找到消除安全隱患的方案,使其能夠有效保障工業控制網絡安全,對提高整個工業系統的安全性具有重要意義。

2 ?漏洞挖掘方案研究(Research on vulnerability mining scheme)

漏洞是指計算機體系中包含的軟件、硬件和協議,在其設計和實現過程中可能存在的缺陷或錯誤[3]。工控系統使用之前或者使用過程中通過漏洞挖掘技術,挖掘工控系統中可能存在的漏洞,從而進行相應的防御操作,并進行后續的評估和修復,可以有效提高系統的安全性能。

目前雖然有一些成熟的漏洞挖掘方案可以直接利用,也有一些成熟的漏洞挖掘框架可以利用,但為工業網絡開發完善的漏洞挖掘技術的方案并不多。雖然漏洞挖掘技術已經取得了長足的進步,但其在工業安全領域的應用仍存在各種問題。首先,工控系統使用的漏洞挖掘技術測試用例生成算法相對簡單,無法根據網絡協議中的每個協議字段生成多維測試用例來有效測試。其次,許多漏洞挖掘框架不能完全覆蓋整個協議棧的運行狀態,只能測試某些協議棧的運行路徑。

本文深入研究當前漏洞發現技術,分析各種漏洞發現策略方案的優劣勢,以及在工控領域應用的可行性。在此基礎上,基于CVE漏洞庫改進了現有NMAP源碼設計,對其掃描流程進行改進,提升對已知漏洞掃描的功能需求。對于未知漏洞挖掘,優化設計漏洞挖掘測試生成算法和漏洞挖掘方案,對目標工業控制系統及網絡進行漏洞挖掘,從而得到目標系統已知未知漏洞分析報告,實現工控系統安全評估報告及安全應對策略。

3 ?基于CVE漏洞庫的漏洞掃描技術研究(Research on vulnerability scanning technology based on CVE vulnerability database)

工業控制系統漏洞是工業控制系統攻防雙方關注的焦點,掌握工業控制系統漏洞掃描與挖掘分析技術,是做好工業控制安全防護的前提[4]。針對工控系統采用的漏洞掃描技術,主要是對工控系統進行信息收集和分析,形成專業工控系統漏洞指紋數據庫,數據庫中包括硬件設備版本、通信協議、漏洞特征信息等漏洞指紋信息。工控漏洞掃描技術是根據被測工控系統設備的類型,版本信息,通信協議等指紋信息進行檢測規則的自動匹配,從而檢測是否存在已知或未知漏洞。漏洞掃描技術除了進行已知漏洞特征匹配功能還包括工控通信協議支持、主機系統存活判斷、主機端口掃描、服務識別、操作系統類型判斷等,同時具備PLC、DSC、SCADA等工業控制系統和軟件識別功能[5]。

3.1 ? 漏洞掃描基本功能設計

漏洞掃描模塊主要通過TCP SYS、TCP ACK、UDP等數據包任意組合起來發送到被探測目標主機,探測目標主機是否存活,以及目標主機活動端口的狀態。漏洞掃描模塊通過對遠程機器端口探測,使用NMAP自建的服務組成NMAP-services數據庫進行端口對比,探測目標系統的操作系統、開啟端口服務情況。通過使用TCP和UDP報文,將返回結果與NMAP-OS-fingerprints[6]進行比較,查找匹配操作系統。

3.2 ? 基于CVE漏洞庫的漏洞掃描功能設計

通過對國內外著名工控系統廠商產品分析研究,我們了解到當前漏洞掃描模塊公開的漏洞主要涉及的是國際著名的工業控制系統廠商。國內也有兩家工業控制系統廠商進入到了前十的行列,其中北京亞控科技發展有限公司和北京三維力控科技有限公司分別公布有17個漏洞和11漏洞,其中分別被CVE收錄14個和2個[7]。這里我們將CVE漏洞庫加入NMAP掃描器進行漏洞掃描,通過目標工控系統與漏洞庫中漏洞進行比對,預測發現目標系統中可能存在的CVE漏洞和風險。Nmap是一款非常強大的開源掃描工具,Nmap掃描器不僅可以針對操作系統進行掃描還可以針對工控系統上位機進行掃描。Nmap掃描器主要工作由文件nmap.cc完成。它的main.cc文件主要工作是負責包裝nmap_main()函數,而nmap_main()函數是掃描器執行流程的核心函數。改進前NMAP掃描器主要工作流程為:

(1)準備階段:進行參數解析、資源分配、基本掃描信息輸出、端口和地址列表初始化、NSE環境準備、前置腳本操作等基本準備操作。

(2)工作階段:然后進入主循環,每個主循環會對一組目標地址執行相同操作如主機發現、端口掃描、服務掃描、版本探測、操作系統探測和漏洞掃描等,直到所有設置目標地址都被掃描。

(3)恢復階段:在完成所有掃描探測工作后,腳本調用相應的處理程序,打印出掃描報告,并釋放分配的資源。在NAMP掃描器基本工作流程基礎上,我們通過編寫腳本實現基于CVE漏洞庫掃描流程,設計專門針對工控系統掃描流程,改進設計后NMAP掃描器掃描流程如圖1所示。

4 ?基于Fuzzing測試框架的漏洞挖掘技術研究(Research on vulnerability mining technology based on fuzzy testing framework)

4.1 ? 漏洞挖掘算法優化設計

目前針對工控系統漏洞挖掘主要集中在操作系統類型、工控協議、文件類型、Web界面、后臺數據庫、網絡協議、移動應用程序等方面。模糊測試技術主要應用于操作系統、工控協議、主動控制、文件格式、數據庫這些方面的漏洞挖掘。模糊測試技術針對工控系統通信協議漏洞挖掘方法是先分析協議特點,根據協議特點來構造特定的數據包,將數據包發送到工控上位機服務器或者下位機,監控被測目標響應情況,最后根據響應異常進行漏洞挖掘。

針對工控協議的模糊測試,需要深入理解每個工控協議的規定特征,生成輸入數據和測試用例去遍歷協議,根據數據內容、結構、消息、序列等出現各種異常進行漏洞挖掘。同時,漏洞挖掘過程中需要引入大數據分析和人工智能算法,將初始數據主要集中在某類工控設備最容易發生故障的范圍進行密集測試,測試中需要動態跟蹤設備的異常反應,人工智能算法選擇有效地輸入屬性構造新樣本進行測試。

當前常用的模糊測試技術一般只能針對通信協議的某個字段進行變異的缺陷,設計測試用例算法,這類設計的局限性是協議如果其他字段出現變異缺陷算法并不能發現。針對這個問題我們設計可以針對數據內容、結構、消息等多字段變異的測試用例生成算法,從而大大提高漏洞挖掘的效率和正確率。對測試用例生成算法進行優化改進后具體算法描述如下:

(1)根據需要測試的工控協議,進行協議分析,確定協議字段集合P,特殊數據集合M,多個字段測試用例生成向量G和對應的協議字段特殊數據生成矩陣S。

(2)根據G選取協議測試字段集合。

(3)針對選定協議字段集合中的協議字段Pi,分別按順序選取特殊數據生成矩陣Si,得到對應的特殊數據矩陣。

(4)整理特殊數據,生成可以用的測試用例q,并加入測試用例集合Q。

(5)同樣的方法去遍歷選定協議所有字段集合生成測試用例。

(6)遍歷結束后,輸出測試用例集合,完成測試用例生成。

根據改進算法的測試用例,在Fuzzing框架對工控系統進行漏洞挖掘,可以有效避免遺漏隨機變異所觸發的安全漏洞。

4.2 ? 基于Fuzzing測試框架的漏洞挖掘技術研究

漏洞挖掘技術是軟件安全領域的一個重要研究方向。通常漏洞挖掘技術分為動態分析、靜態分析、模糊測試等。隨著軟件規模的爆炸式增長,軟件的漏洞挖掘實現越來越困難。Fuzzing技術作為一種具有自動化程度高、誤報率低、且不依賴于目標程序源代碼等優點的挖掘技術,成為當今漏洞挖掘領域的主要技術。

模糊測試技術是一種常用的自動化漏洞挖掘技術,它起源于軟件測試中的黑盒測試技術。通過編寫模糊工具為目標程序提供某種形式的輸入并在程序運行過程中監視異常,通過記錄導致異常的輸入數據來進一步定位軟件中的缺陷。Fuzzing測試技術通常使用邊界值附近的值對目標進行測試,通過對現有Fuzzing測試框架成果研究,總結出目前測試方法存在的主要問題:

(1)Fuzzing測試具有一定的盲目性。針對常用工控協議的測試,仍然沒有解決測試用例路徑重復的問題,導致測試效率較低。

(2)Fuzzing測試用例冗余度較大。由于目前采用測試策略多是隨機策略,導致有一定概率產生重復或相似的測試用例。

(3)Fuzzing測試關聯字段的針對性不強。目前多數Fuzzing測試方法,只能針對多個協議字段進行數據的隨機生成或變異,缺乏對協議中各關聯字段的針對性。

根據Fuzzing測試存在的問題,通過對漏洞掃描流程改進以及漏洞挖掘算法進行優化,設計改進的Fuzzing測試框架:

(1)基于工控系統常見漏洞數據生成測試用例。通過分析工控系統常見漏洞,針對不同工控協議的各字段,有針對性的進行數據改變,縮小測試范圍。由于測試用例直接與漏洞相關,因此更加具有針對性。

(2)生成的測試用例樣本以其文件內容的MD5值命名,保證測試用例的唯一性,盡量避免重復或相似的測試用例,通過減少測試時間提高測試效率。

(3)將改進優化后的生成用例算法運用到Fuzzing框架,根據不同的協議,針對多個字段進行同時變異,提高代碼的覆蓋率和測試樣本的有效性。

目前常用的模糊測試生成算法一般只能針對某個字段進行測試,存在嚴重的缺陷。本文通過深入研究協議中各字段關系,設計針對數據內容、消息、結構等多字段變異測試用例生成算法,這樣可以大大提高工控系統漏洞挖掘效率。測試用例生成算法進行優化改進后,具體算法設計流程圖如圖2所示。

由于Fuzzing在測試過程存在的缺陷,采用優化后的多字段變異測試用例生成算法對目標程序進行測試,記錄異常數據時采用MD5記錄樣本,避免樣本重復,改進后Fuzzing測試框架如圖3所示。

4.3 ? 工業控制系統安全應對策略研究

工控系統安全威脅主要來源是協議安全、人員網絡安全意識以及漏洞管理。工業控制系統目前面臨主要威脅來自工業化信息化融合推進,工控組件脆弱性,設備升級維護成本高安全意識薄弱。文中通過對已知漏洞掃描分析,未知漏洞挖掘分析,得到企業工控系統的評估報告,便于企業及時修補漏洞,提升自身安全性。通過對已知漏洞掃描分析,未知漏洞挖掘分析,得到企業工控系統的安全風險評估報告,便于企業及時修補漏洞,提升自身安全性。

5 ? 結論(Conclusion)

通過對工業控制系統已知漏洞掃描技術研究,基于CVE漏洞庫NMAP掃描器改進設計,修改NMAP掃描器源碼增加漏洞庫,提升工控系統漏洞掃描能力。深入研究了工業控制系統漏洞挖掘技術研究,優化改進測試用例生成算法,有效避免遺漏隨機變異所觸發的安全漏洞。通過改進Fuzzing測試框架,解決原測試框架的盲目性,提高代碼的覆蓋率和測試樣本的有效性,提高Fuzzing測試框架漏洞挖掘能力。

參考文獻(References)

[1] 王國相.基于Fuzzing技術的工業網漏洞挖掘技術研究[D].北京郵電大學,2017:18-25.

[2] KARNOUSKOS ?S. ?Stuxnet ?worm ?impact ?on ?industrial cyber-physical ?system ?security[C]. Conference on IEEE Industrial Electronics Society, 7-10 Nov, 2011, Melbourne, VIC, Australia. IEEE, 2011:4490-4494.

[3] 劉旭奇,張玉清.基于Fuzzing的TFTP漏洞挖掘技術[J].計算機工程,2007(20):142-147.

[4] 吳世忠.信息安全漏洞分析基礎[M].北京:北京科學出版社,2013:120-130.

[5] 秦媛媛,朱廣宇,田曉娜,等.基CVE漏洞庫的工控漏洞發現和分析系統研究[J].信息通信技術,2017(03):54-59.

[6] 曠野,呂堯.基于多核的網絡掃描技術研究[J].信息安全與技術,2012(10):10-16.

[7] 向騻,趙波.一種基于改進Fuzzing架構的工業控制設備漏洞挖掘框架[J].武漢大學學報(理學版),2013(05):411-415.

作者簡介:

劉 ?坤(1979-),女,碩士,講師.研究領域:計算機網絡技術,網絡安全技術.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合