国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于模糊測試的工控網(wǎng)漏洞發(fā)現(xiàn)技術(shù)研究

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

劉坤

摘 ?要:本文通過深入研究當(dāng)前漏洞發(fā)現(xiàn)技術(shù),分析常用漏洞發(fā)現(xiàn)技術(shù)的優(yōu)劣勢,以及應(yīng)用領(lǐng)域。基于CVE漏洞庫改進了現(xiàn)有NMAP源碼設(shè)計,對其掃描流程進行改進,提升對已知漏洞掃描的能力。對未知漏洞挖掘,優(yōu)化設(shè)計漏洞挖掘測試生成算法和漏洞挖掘算法,對目標工控測試系統(tǒng)進行網(wǎng)絡(luò)漏洞挖掘,從而得到工控系統(tǒng)已知或未知的漏洞分析報告,形成工控系統(tǒng)安全評估報告及安全應(yīng)對策略。

關(guān)鍵詞:Fuzzing測試框架;漏洞掃描技術(shù);漏洞發(fā)現(xiàn)技術(shù);漏洞挖掘技術(shù)

中圖分類號: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)

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

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

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

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

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

本文深入研究當(dāng)前漏洞發(fā)現(xiàn)技術(shù),分析各種漏洞發(fā)現(xiàn)策略方案的優(yōu)劣勢,以及在工控領(lǐng)域應(yīng)用的可行性。在此基礎(chǔ)上,基于CVE漏洞庫改進了現(xiàn)有NMAP源碼設(shè)計,對其掃描流程進行改進,提升對已知漏洞掃描的功能需求。對于未知漏洞挖掘,優(yōu)化設(shè)計漏洞挖掘測試生成算法和漏洞挖掘方案,對目標工業(yè)控制系統(tǒng)及網(wǎng)絡(luò)進行漏洞挖掘,從而得到目標系統(tǒng)已知未知漏洞分析報告,實現(xiàn)工控系統(tǒng)安全評估報告及安全應(yīng)對策略。

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

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

3.1 ? 漏洞掃描基本功能設(shè)計

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

3.2 ? 基于CVE漏洞庫的漏洞掃描功能設(shè)計

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

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

(2)工作階段:然后進入主循環(huán),每個主循環(huán)會對一組目標地址執(zhí)行相同操作如主機發(fā)現(xiàn)、端口掃描、服務(wù)掃描、版本探測、操作系統(tǒng)探測和漏洞掃描等,直到所有設(shè)置目標地址都被掃描。

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

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

4.1 ? 漏洞挖掘算法優(yōu)化設(shè)計

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

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

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

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

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

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

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

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

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

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

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

漏洞挖掘技術(shù)是軟件安全領(lǐng)域的一個重要研究方向。通常漏洞挖掘技術(shù)分為動態(tài)分析、靜態(tài)分析、模糊測試等。隨著軟件規(guī)模的爆炸式增長,軟件的漏洞挖掘?qū)崿F(xiàn)越來越困難。Fuzzing技術(shù)作為一種具有自動化程度高、誤報率低、且不依賴于目標程序源代碼等優(yōu)點的挖掘技術(shù),成為當(dāng)今漏洞挖掘領(lǐng)域的主要技術(shù)。

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

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

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

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

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

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

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

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

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

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

4.3 ? 工業(yè)控制系統(tǒng)安全應(yīng)對策略研究

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

5 ? 結(jié)論(Conclusion)

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

參考文獻(References)

[1] 王國相.基于Fuzzing技術(shù)的工業(yè)網(wǎng)漏洞挖掘技術(shù)研究[D].北京郵電大學(xué),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漏洞挖掘技術(shù)[J].計算機工程,2007(20):142-147.

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

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

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

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

作者簡介:

劉 ?坤(1979-),女,碩士,講師.研究領(lǐng)域:計算機網(wǎng)絡(luò)技術(shù),網(wǎng)絡(luò)安全技術(shù).

尤溪县| 商河县| 吉林市| 龙川县| 共和县| 沂水县| 颍上县| 麦盖提县| 桓台县| 双流县| 万山特区| 云霄县| 湘潭县| 广州市| 潼南县| 册亨县| 鄂尔多斯市| 北海市| 崇阳县| 漳浦县| 营口市| 竹北市| 象州县| 肇州县| 油尖旺区| 元朗区| 贵港市| 唐海县| 福贡县| 全南县| 阿合奇县| 湖州市| 雅安市| 奈曼旗| 龙海市| 南澳县| 景泰县| 本溪市| 卢龙县| 宾川县| 平果县|