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

?

基于Sulley改進(jìn)的工控協(xié)議模糊測(cè)試架構(gòu)設(shè)計(jì)

2017-10-21 03:40劉仁輝趙云飛許鳳凱
關(guān)鍵詞:網(wǎng)絡(luò)協(xié)議工控測(cè)試用例

馬 潔,劉仁輝,趙云飛,許鳳凱

(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京 100083)

基于Sulley改進(jìn)的工控協(xié)議模糊測(cè)試架構(gòu)設(shè)計(jì)

馬 潔,劉仁輝,趙云飛,許鳳凱

(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京 100083)

模糊測(cè)試(Fuzzing)可以有效發(fā)現(xiàn)協(xié)議漏洞。然而不同于網(wǎng)絡(luò)協(xié)議,工控協(xié)議模糊測(cè)試具有協(xié)議種類眾多、私有協(xié)議解析難等特點(diǎn)。對(duì)此,文章轉(zhuǎn)換問(wèn)題解決思路,從工控工程師的角度入手,解析了Sulley的模糊測(cè)試架構(gòu)和流程,設(shè)計(jì)了基于Sulley改進(jìn)的工控協(xié)議模糊測(cè)試架構(gòu),采用基于塊的可視化拖拽式界面進(jìn)行私有協(xié)議的數(shù)據(jù)構(gòu)造,公有協(xié)議采用套件的形式進(jìn)行導(dǎo)入,添加輸入優(yōu)化模塊以適應(yīng)于工控系統(tǒng),該框架有助于解決工控協(xié)議模糊測(cè)試中易用性差、測(cè)試負(fù)載大、測(cè)試效率低的問(wèn)題。

模糊測(cè)試;工控協(xié)議;Sulley

0 引言

工控協(xié)議作為數(shù)據(jù)的組織規(guī)范,其健壯性直接關(guān)系到關(guān)鍵工控?cái)?shù)據(jù)的安全。模糊測(cè)試技術(shù)作為協(xié)議健壯性測(cè)試的一種常用技術(shù),通過(guò)向應(yīng)用提供非預(yù)期的輸入并監(jiān)控輸出中的異常來(lái)發(fā)現(xiàn)故障[1]。網(wǎng)絡(luò)協(xié)議模糊測(cè)試可以有效地挖掘緩存區(qū)溢出、整數(shù)處理、抗拒絕服務(wù)、格式化字符串、競(jìng)爭(zhēng)條件等漏洞[2]。

傳統(tǒng)的網(wǎng)絡(luò)協(xié)議模糊測(cè)試框架日漸成熟,但是并不適用于工控協(xié)議。工控協(xié)議自身具有協(xié)議種類多、協(xié)議構(gòu)造非公開(kāi)、面向控制等特點(diǎn),使得模糊測(cè)試前期對(duì)協(xié)議進(jìn)行解析的門(mén)檻非常高,協(xié)議腳本構(gòu)造過(guò)程耗時(shí)耗力,大大降低了模糊測(cè)試在工控協(xié)議領(lǐng)域的易操作性。其次,工控設(shè)備無(wú)法承載大量測(cè)試用例的輸入,對(duì)大量隨機(jī)發(fā)送的數(shù)據(jù)免疫,因此模糊測(cè)試發(fā)送的大量測(cè)試數(shù)據(jù)實(shí)際上在到達(dá)協(xié)議處理程序之前就被拋棄,造成測(cè)試效率低下的問(wèn)題。

Sulley是一款開(kāi)源的通用網(wǎng)絡(luò)協(xié)議模糊測(cè)試框架,相比其他工具,它將自動(dòng)化虛擬技術(shù)融合到框架中,可以很好地跟蹤數(shù)據(jù)交互和進(jìn)程,抓取網(wǎng)絡(luò)流量,記錄崩潰信息。然而若將其直接應(yīng)用于工控協(xié)議模糊測(cè)試中,與其他工具一樣具有易用性差、測(cè)試負(fù)載大、測(cè)試效率低的缺陷。本文優(yōu)化了Sulley架構(gòu),設(shè)計(jì)了一種專門(mén)為工控系統(tǒng)開(kāi)發(fā)人員自測(cè)使用的工控協(xié)議模糊測(cè)試架構(gòu),有助于解決工控協(xié)議模糊測(cè)試的困難,使模糊測(cè)試更加便捷,測(cè)試效率更高。

1 現(xiàn)有的協(xié)議模糊測(cè)試架構(gòu)分析

1.1傳統(tǒng)網(wǎng)絡(luò)協(xié)議模糊測(cè)試架構(gòu)分析

網(wǎng)絡(luò)協(xié)議模糊測(cè)試架構(gòu)由輸入向量確定模塊、模糊測(cè)試數(shù)據(jù)生成模塊、模糊測(cè)試執(zhí)行模塊、監(jiān)控模塊這四個(gè)模塊構(gòu)成。其中直接影響測(cè)試效果的是輸入向量確定模塊和模糊測(cè)試數(shù)據(jù)生成或變異模塊。

在輸入向量確定模塊,最初,對(duì)于公開(kāi)協(xié)議,由測(cè)試者根據(jù)已有知識(shí)和經(jīng)驗(yàn)構(gòu)造協(xié)議,編寫(xiě)測(cè)試腳本。然而測(cè)試的前提是測(cè)試者必須對(duì)協(xié)議的規(guī)約和交互有深刻的了解。對(duì)于未知協(xié)議,一般采用逆向工程的方法實(shí)現(xiàn)協(xié)議的解析。無(wú)論是公開(kāi)協(xié)議還是未知協(xié)議,半人工化的協(xié)議模糊測(cè)試均要求測(cè)試者付出較多的時(shí)間精力來(lái)進(jìn)行協(xié)議構(gòu)造。后來(lái),自動(dòng)化協(xié)議解析方法被提出,目前的研究主要采取基于網(wǎng)絡(luò)流量和基于動(dòng)態(tài)污點(diǎn)分析的自動(dòng)化解析方法。學(xué)者也不斷進(jìn)行改進(jìn),例如:孫哲[3]等將特征提取算法、流量聚類分類算法和深度數(shù)據(jù)包檢測(cè)技術(shù)結(jié)合,實(shí)現(xiàn)了一個(gè)自動(dòng)化協(xié)議分析漏洞挖掘系統(tǒng)的原型;文獻(xiàn)[4]中使用動(dòng)態(tài)污點(diǎn)跟蹤法和混合符號(hào)執(zhí)行技術(shù)首次解決協(xié)議中的校驗(yàn)和防護(hù)機(jī)制問(wèn)題;彭勇等[5]將內(nèi)存模糊測(cè)試技術(shù)融入到私有協(xié)議的測(cè)試中,減少了協(xié)議解析的工作量。但是基于網(wǎng)絡(luò)流量的解析方法存在測(cè)試效果受網(wǎng)絡(luò)流量抓取的多樣性及特征提取參數(shù)設(shè)置的影響的缺點(diǎn),動(dòng)態(tài)污點(diǎn)分析方法對(duì)被測(cè)設(shè)備的存儲(chǔ)空間和處理能力要求較高。

在模糊測(cè)試數(shù)據(jù)生成模塊,為了減少測(cè)試用例的重復(fù)性,提升測(cè)試效率,加大測(cè)試代碼覆蓋率,文獻(xiàn)[6]提出了一種隨機(jī)信號(hào)處理和正則表達(dá)式相結(jié)合的測(cè)試用例生成方法。隨機(jī)信號(hào)處理用來(lái)減少等價(jià)或類似的輸入,正則表達(dá)式提升了測(cè)試的代碼覆蓋率。文獻(xiàn)[7]則運(yùn)用分類樹(shù)由上到下將協(xié)議結(jié)構(gòu)分為四層:協(xié)議、字段、字段屬性、字段值,然后使用啟發(fā)性算子生成測(cè)試用例。還有一些學(xué)者通過(guò)改進(jìn)遺傳算法來(lái)實(shí)現(xiàn)對(duì)測(cè)試用例的優(yōu)化[8-9]。

1.2針對(duì)工控協(xié)議的現(xiàn)有模糊測(cè)試架構(gòu)分析

工控協(xié)議除了已公開(kāi)的MODBUS、OPC等協(xié)議之外,還包含有大量的格式未知的私有協(xié)議。被測(cè)的工控設(shè)備大多是嵌入式的,不能滿足自動(dòng)化協(xié)議解析對(duì)存儲(chǔ)空間和處理能力的要求,且不能負(fù)載普通模糊測(cè)試所發(fā)送的大量測(cè)試數(shù)據(jù)。因此網(wǎng)絡(luò)協(xié)議的模糊測(cè)試架構(gòu)并不能直接應(yīng)用在工控協(xié)議模糊測(cè)試中。

目前針對(duì)工控協(xié)議進(jìn)行模糊測(cè)試的工具大部分采取單獨(dú)開(kāi)發(fā)的某一種或幾種工控協(xié)議模糊測(cè)試套件形式或者是將工控協(xié)議測(cè)試?yán)烫砑拥酵ㄓ脜f(xié)議模糊測(cè)試器的方法。單獨(dú)的工控協(xié)議模糊測(cè)試套件包括Digitalbond公司開(kāi)發(fā)的ICCPSic套件,Mu Dynamic公司開(kāi)發(fā)的可對(duì)MODBUS/TCP、DNP3和IEC61850協(xié)議進(jìn)行模糊測(cè)試的Mu測(cè)試套件。Devarajan開(kāi)發(fā)了可用于開(kāi)源網(wǎng)絡(luò)協(xié)議測(cè)試框架Sulley的ICCP、MODBUS、DNP3測(cè)試?yán)蘙8]。

已有的工控協(xié)議模糊測(cè)試套件和例程均只針對(duì)一種或幾種公開(kāi)的工控協(xié)議,不具有工控協(xié)議模糊測(cè)試的通用性,且鮮有對(duì)未公開(kāi)的工控協(xié)議進(jìn)行模糊測(cè)試。

2 Sulley模糊測(cè)試架構(gòu)解析

Sulley架構(gòu)共包括四個(gè)部分:數(shù)據(jù)構(gòu)造(Data Organization)、會(huì)話管理(Session Management)、工具(Utilities)、代理(Agents),如圖1所示。

圖1 Sulley的模糊測(cè)試架構(gòu)

(1) 數(shù)據(jù)構(gòu)造:Sulley使用基于塊的思想進(jìn)行數(shù)據(jù)構(gòu)造,它提供包括整數(shù)(integer)、字符串(string)等一系列原型(primitive),可自定義復(fù)雜類型以及幫助例程。每個(gè)原型都有一個(gè)模糊庫(kù)(fuzz_library),用來(lái)存儲(chǔ)各個(gè)原型的畸形數(shù)據(jù),模糊庫(kù)里每個(gè)畸形數(shù)據(jù)是構(gòu)成協(xié)議測(cè)試用例的最基本單位。不同的原型組成塊(block),塊和原型組成請(qǐng)求(request),請(qǐng)求用來(lái)在會(huì)話管理模塊中生成會(huì)話圖來(lái)完成協(xié)議的構(gòu)成。

(2) 會(huì)話管理:該模塊實(shí)現(xiàn)對(duì)被測(cè)目標(biāo)的初始化、會(huì)話的管理及會(huì)話圖的遍歷,會(huì)話圖遍歷時(shí)會(huì)從根節(jié)點(diǎn)依據(jù)每條路徑遍歷每個(gè)點(diǎn),每個(gè)點(diǎn)即每個(gè)請(qǐng)求,請(qǐng)求再逐層調(diào)用塊及原型的模糊庫(kù)來(lái)構(gòu)成每個(gè)測(cè)試用例。

(3) 代理:在這部分中Sulley提供3個(gè)代理(vmwar虛擬機(jī)、進(jìn)程監(jiān)控網(wǎng)絡(luò)監(jiān)控和網(wǎng)絡(luò)監(jiān)控代理)用于保證測(cè)試程序發(fā)生崩潰時(shí)測(cè)試能夠重新恢復(fù)并正常進(jìn)行,同時(shí)可以監(jiān)控進(jìn)程和網(wǎng)絡(luò)流量。

(4) 工具(Utilities):當(dāng)崩潰發(fā)生之后,該模塊提供的一系列工具可以幫助定位異常以及引起異常的測(cè)試用例,輔助分析崩潰發(fā)生的原因。

基于上述架構(gòu),Sulley完成模糊測(cè)試的流程如圖2所示。首先測(cè)試人員需要根據(jù)協(xié)議結(jié)構(gòu)和字段以.py腳本的形式來(lái)自定義請(qǐng)求,隨后編寫(xiě)測(cè)試腳本,測(cè)試腳本中實(shí)現(xiàn)各個(gè)請(qǐng)求的導(dǎo)入、實(shí)例化會(huì)話和被測(cè)目標(biāo)、設(shè)置代理參數(shù)。最后運(yùn)行測(cè)試腳本,Sulley形成會(huì)話圖,并對(duì)會(huì)話圖的每條路徑和節(jié)點(diǎn)進(jìn)行遍歷,完成對(duì)協(xié)議的模糊測(cè)試。

圖2 Sulley的模糊測(cè)試流程

3 Sulley架構(gòu)存在的缺陷

盡管Sulley基于塊的思想可以使得協(xié)議構(gòu)造更加有組織性,將測(cè)試用例的遍歷以遍歷會(huì)話圖的形式實(shí)現(xiàn),高效快捷,但是Sulley發(fā)送的測(cè)試用例實(shí)際上是由每個(gè)原型的模糊庫(kù)里的數(shù)據(jù)構(gòu)成,這些數(shù)據(jù)大部分是基本字符的多次重復(fù)或是邊界值,這就使得生成的測(cè)試用例具有較大的相關(guān)性。Sulley發(fā)送到被測(cè)設(shè)備的數(shù)據(jù)實(shí)際上包含了大量具有較高相關(guān)性的測(cè)試用例。

其次,從Sulley的模糊測(cè)試流程中可知,使用Sulley進(jìn)行模糊測(cè)試需要測(cè)試者分別進(jìn)行請(qǐng)求腳本和測(cè)試腳本的編寫(xiě),要求測(cè)試者對(duì)協(xié)議字段、python語(yǔ)法有較清晰的了解。對(duì)于未公開(kāi)協(xié)議格式的私有工控協(xié)議,Sulley無(wú)能為力。

4 基于Sulley改進(jìn)的工控協(xié)議模糊測(cè)試架構(gòu)

該基于Sulley改進(jìn)的工控協(xié)議模糊測(cè)試架構(gòu)包含可視化數(shù)據(jù)輸入模塊、套件模塊、輸入優(yōu)化模塊、會(huì)話管理模塊、監(jiān)控代理模塊和異常報(bào)告模塊,如圖3所示。本架構(gòu)沿用了Sulley優(yōu)秀的會(huì)話管理、監(jiān)控代理及異常報(bào)告模塊,著重對(duì)數(shù)據(jù)構(gòu)造和生成部分進(jìn)行改進(jìn)。

圖3 基于Sulley改進(jìn)的工控協(xié)議模糊測(cè)試架構(gòu)

首先,將協(xié)議劃分為二三層協(xié)議和應(yīng)用層協(xié)議,應(yīng)用層協(xié)議又分為公開(kāi)協(xié)議和私有協(xié)議。對(duì)于已公開(kāi)工控協(xié)議和二三層協(xié)議,協(xié)議結(jié)構(gòu)明了,并且公布的協(xié)議漏洞較多,因此這兩類協(xié)議采取測(cè)試套件的方式作為輸入向量,結(jié)合高發(fā)的漏洞和協(xié)議結(jié)構(gòu)開(kāi)發(fā)協(xié)議套件。盡管開(kāi)發(fā)時(shí)付出較多,然而一旦開(kāi)發(fā)成功便可以方便測(cè)試者重復(fù)使用。對(duì)于私有協(xié)議,結(jié)構(gòu)未知,所以采取基于塊的可視化構(gòu)造方法來(lái)確定輸入向量。工控工程師熟知協(xié)議結(jié)構(gòu),但苦于腳本語(yǔ)言的學(xué)習(xí)和編寫(xiě),可視化拖拽界面可以解決這一困境??梢暬献匀徊捎肧ulley基于塊的構(gòu)造方法,將各種原型、工具、函數(shù)以可視化的界面呈現(xiàn),通過(guò)拖拽構(gòu)建塊和請(qǐng)求。

由于工控設(shè)備的存儲(chǔ)空間和計(jì)算能力有限,傳統(tǒng)的模糊測(cè)試產(chǎn)生的大量測(cè)試用例一方面具有較高的相關(guān)性,另一方面大量數(shù)據(jù)發(fā)送到工控設(shè)備容易造成宕機(jī),使得測(cè)試用例不能深入到協(xié)議處理模塊,造成測(cè)試效率低下,所以消除相關(guān)性較高的測(cè)試用例,減少無(wú)效用例便非常重要。本架構(gòu)引入輸入優(yōu)化模塊,在可視化拖拽方式生成測(cè)試腳本后,測(cè)試用例被傳送到優(yōu)化模塊以去除相關(guān)性較高的測(cè)試用例。

5 結(jié)論

本文對(duì)工控協(xié)議模糊測(cè)試進(jìn)行了研究,主要工作內(nèi)容如下:

(1)探討總結(jié)了現(xiàn)有協(xié)議模糊測(cè)試尤其是在輸入向量確定階段和測(cè)試用例生成階段的研究,以及現(xiàn)有工控協(xié)議模糊器的缺點(diǎn);

(2)對(duì)開(kāi)源模糊測(cè)試框架Sulley的架構(gòu)和測(cè)試流程進(jìn)行詳細(xì)解析,設(shè)計(jì)了基于Sulley改進(jìn)的工控協(xié)議模糊測(cè)試架構(gòu)。利用工控系統(tǒng)工程師完備的協(xié)議知識(shí),將工程師作為模糊測(cè)試工具的使用主體,通過(guò)可視化拖拽的方式構(gòu)造協(xié)議塊來(lái)降低入門(mén)門(mén)檻,減少測(cè)試腳本的人工編寫(xiě)。采用分層測(cè)試的策略,將通用的二三層協(xié)議和已公開(kāi)的工控協(xié)議進(jìn)行封裝以便測(cè)試人員進(jìn)行直接使用,私有工控協(xié)議單獨(dú)使用可視化方式進(jìn)行數(shù)據(jù)構(gòu)造,實(shí)現(xiàn)了通用和私有協(xié)議測(cè)試的兼容。在現(xiàn)有架構(gòu)中加入輸入優(yōu)化模塊,解決測(cè)試用例相關(guān)性高的問(wèn)題,提升了工控協(xié)議模糊測(cè)試效率。

[1] SUTTON M, GREENE A, AMINI P.模糊測(cè)試:強(qiáng)制性安全漏洞挖掘[M]. 黃隴,于莉莉,李慮,譯.北京:機(jī)械工業(yè)出版社, 2009.

[2] 李紅輝,齊佳,劉峰,等. 模糊測(cè)試技術(shù)研究[J]. 中國(guó)科學(xué), 2014, 44(10): 1305-1322.

[3] 孫哲,劉大光,武學(xué)禮,等. 基于模糊測(cè)試的網(wǎng)絡(luò)協(xié)議自動(dòng)化漏洞挖掘工具設(shè)計(jì)與實(shí)現(xiàn)[J]. 信息網(wǎng)絡(luò)安全,2014(6):23-30.

[4] WANG T L, WEI T, GU G F, et al. TaintScope: a checksum-aware directed fuzzing tool for automatic software vulnerability detection[C]. 2010 IEEE Symposium on Security and Privacy, 2010: 497-512.

[5] 彭勇, 王婷, 熊琦,等. 針對(duì)私有協(xié)議的模糊測(cè)試技術(shù)研究[J]. 北京交通大學(xué)學(xué)報(bào),2013,37(5):8-12.

[6] SUI A F, TANG W, HU J J, et al. An effective fuzz input generation method for protocol testing[C]. IEEE 13th International Conference on Communication Technology, 2011: 728-731.

[7] MA R, JI W D, HU C Z, et al. Fuzz testing data generation for network protocol using classification tree[C]. Communications Security Conference IET, 2014: 1-5.

[8] 謝豐, 彭勇, 趙偉, 等. 工業(yè)控制設(shè)備安全測(cè)試技術(shù)[J]. 清華大學(xué)學(xué)報(bào)(自然科學(xué)版), 2014, 54(1): 29-34.

[9] 向騻, 趙波, 紀(jì)祥敏, 等. 一種基于改進(jìn)Fuzzing架構(gòu)的工業(yè)控制設(shè)備漏洞挖掘框架[J]. 武漢大學(xué)學(xué)報(bào)(理學(xué)版), 2013, 59(5): 411-415.

The design of fuzzing architecture for industry control protocols based on Sulley

Ma Jie, Liu Renhui, Zhao Yunfei, Xu Fengkai

(National Computer System Engineering Research Institute of China, Beijing 100083, China)

Fuzzing can detect protocol vulnerabilities effectively. Different from network protocols, the industry control protocols are various and it is difficult to get the regulation of private industry control protocols. Therefore, the resolution is proposed by converting the subject of fuzzing test from testers to industry engineers. Firstly, fuzzing architecture and testing process of Sulley are analyzed. Based on that, an improved fuzzing architecture for industry control protocols is designed. In the new architecture, block-based visual interfaces are used for building private protocols. Public industry control protocols are tested by importing test suite. Besides, an optimization module to reduce testing data input is added into the architecture for the purpose of adjusting to industry devices. This architecture is meaningful to resolve problems of industry control protocols fuzzing including poor usability, large testing load and low efficiency.

fuzzing; industry control protocols; Sulley

TP393

A

10.19358/j.issn.1674- 7720.2017.19.001

馬潔,劉仁輝,趙云飛,等.基于Sulley改進(jìn)的工控協(xié)議模糊測(cè)試架構(gòu)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2017,36(19):3-5.

2017-05-02)

馬潔(1993-),女,碩士,主要研究方向:工控信息安全。劉仁輝(1968-),男,碩士,高級(jí)工程師,主要研究方向:自動(dòng)化控制、工控信息安全。趙云飛(1969-),男,碩士,高級(jí)工程師,主要研究方向:自動(dòng)化控制、工控信息安全。

猜你喜歡
網(wǎng)絡(luò)協(xié)議工控測(cè)試用例
回歸測(cè)試中測(cè)試用例優(yōu)化技術(shù)研究與探索
基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
一種藍(lán)牙多跳網(wǎng)絡(luò)協(xié)議的設(shè)計(jì)與研究
工控速派 一個(gè)工控技術(shù)服務(wù)的江湖
工控速?zèng)?一個(gè)工控技術(shù)服務(wù)的江湖
基于載波技術(shù)的多點(diǎn)溫度測(cè)量系統(tǒng)設(shè)計(jì)
基于DPI技術(shù)的語(yǔ)音視頻流量監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
熱點(diǎn)追蹤 工控安全低調(diào)而不失重要
基于攻擊圖的工控系統(tǒng)脆弱性量化方法
基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)