王捷 李晶 田里
摘 要:針對工控協(xié)議漏洞挖掘技術(shù)存在適應(yīng)差、命中率低等問題,本文采用模型檢測技術(shù),對工控協(xié)議漏洞挖掘系統(tǒng)的實(shí)現(xiàn)進(jìn)行了設(shè)計研究。研究得出:該系統(tǒng)主要由代碼的預(yù)處理、代碼的轉(zhuǎn)化、模型檢測階段組成。希望本文的研究能為學(xué)者提供借鑒。
關(guān)鍵詞:模型檢測技術(shù);漏洞挖掘;預(yù)處理;代碼的轉(zhuǎn)化;模型檢測
中圖分類號:TP309 文獻(xiàn)標(biāo)識碼:A 文章編號:1003-5168(2018)04-0041-02
Research on Vulnerability Mining System of Industrial Control
Protocol Based on Model Detection Technology
WANG Jie1 LI Jing2 TIAN Li3
(1.State Grid Hubei Provincial Electric Power Co., Ltd. ,Electric Power Research Institute,Wuhan Hubei 430077;
2. State Grid Hubei Provincial Electric Power Co., Ltd. ,Wuhan Hubei 430077;3.State Grid Hubei Electric Power Co., Ltd.,Shiyan Power Supply Company,Shiyan Hubei 442000)
Abstract: Aiming at the problems such as poor adaptability and low hit rate, this paper used model detection technology to design and study the system of industrial control protocol vulnerability mining. The research showed that the system was mainly composed of code preprocessing, code Transformation and model detection stage. The author hopes that the research of this paper can be used for reference for scholars
Keywords: model detection technology; vulnerability mining; preprocessing;code transformation;model testing
1 系統(tǒng)設(shè)計
目前,二進(jìn)制程序的漏洞挖掘具有諸多特點(diǎn):①將二進(jìn)制代碼轉(zhuǎn)化為中間語言,然后利用中間語言進(jìn)行漏洞挖掘與程序分析是目前漏洞挖掘的主要趨勢;②靜態(tài)分析與動態(tài)執(zhí)行相互結(jié)合,提升了漏洞挖掘的準(zhǔn)確度和效率;③當(dāng)前流行的模型檢測與漏洞模式檢測在漏洞挖掘的理念上存在諸多相似之處,因此可以相互借鑒?;谀P蜋z測的漏洞挖掘系統(tǒng)如圖1所示。
2 系統(tǒng)實(shí)現(xiàn)
為了解決漏洞挖掘技術(shù)適應(yīng)性差、命中率低的問題,在設(shè)計基于模型檢測的漏洞挖掘系統(tǒng)時主要通過3方面進(jìn)行分析研究:①代碼的預(yù)處理;②代碼的轉(zhuǎn)化;③模型檢測平臺,具體流程如圖2所示[1]。
各階段雖然相互聯(lián)系,但卻是獨(dú)立存在的,主要功能如下。①代碼預(yù)處理:對目標(biāo)程序進(jìn)行靜態(tài)分析,然后將結(jié)果進(jìn)行特殊輸出,從而為代碼轉(zhuǎn)化階段服務(wù);②代碼的轉(zhuǎn)化:將二進(jìn)制代碼轉(zhuǎn)化到Promela模型上,把漏洞模型添加到Promela模型上;③模型檢測平臺:對Promela模型進(jìn)行檢測,輸出檢測結(jié)果及漏洞信息[2]。
為了提高漏洞挖掘的命中率及適應(yīng)性,還需要對系統(tǒng)進(jìn)行進(jìn)一步改進(jìn)與優(yōu)化?;谀P蜋z測的漏洞挖掘系統(tǒng)的實(shí)現(xiàn)流程如圖3所示。
2.1 預(yù)處理
預(yù)處理的主要功能是實(shí)現(xiàn)目標(biāo)程序的靜態(tài)分析并進(jìn)行結(jié)果輸出,該階段實(shí)現(xiàn)了對靜態(tài)分析過程的掌控,達(dá)到了自動化分析的目的。
靜態(tài)分析的主要功能包括:①函數(shù)分類;②流程分析;③多線程識別;④間接跳轉(zhuǎn)識別;⑤數(shù)據(jù)段獲取。靜態(tài)分析流程如圖4所示。
2.2 代碼轉(zhuǎn)化
代碼轉(zhuǎn)化是漏洞挖掘系統(tǒng)的關(guān)鍵,主要由3個模塊組成:①二進(jìn)制語言轉(zhuǎn)化為中間語言(在BAP平臺進(jìn)行實(shí)現(xiàn)),可以直接輸入目標(biāo)程序,并將其轉(zhuǎn)化為中間語言BIL,通過對toil命令的直接使用,可以實(shí)現(xiàn)其轉(zhuǎn)化;②中間語言轉(zhuǎn)化到Promela模型上,在該階段,轉(zhuǎn)化過程主要由3個輸入組成,即BIL代碼、漏洞模型、靜態(tài)分析結(jié)果;③漏洞模型插入和建立,該系統(tǒng)主要由5部分組成:靜態(tài)分析結(jié)果、程序切片、細(xì)粒度代碼轉(zhuǎn)化、Promela模型的構(gòu)建和漏洞模型的插入與建立。
2.3 模型檢測
模型檢測是漏洞挖掘系統(tǒng)的核心,模型檢測主要由3個模塊組成:①引入外部C代碼;②輸出漏洞信息;③自動化檢測。
不能對Promela模型進(jìn)行直接檢測,而是把Promela模型轉(zhuǎn)化為C代碼,然后再把C代碼編譯為可執(zhí)行程序,最后對可執(zhí)行程序進(jìn)行模型檢測。
3 結(jié)論
通過對基于模型檢測的漏洞挖掘系統(tǒng)的研究可知,該系統(tǒng)主要有三部分:代碼的預(yù)處理、代碼的轉(zhuǎn)化、模型檢測平臺。
參考文獻(xiàn):
[1]徐有福,文偉平,萬正蘇.基于漏洞模型檢測的安全漏洞挖掘方法研究[J].信息網(wǎng)絡(luò)安全,2011(8):72-75.
[2]黃錦,陳曉蘇,肖道舉,等.基于模型檢驗(yàn)的軟件安全靜態(tài)分析研究[J].微計算機(jī)信息,2007(30):86-87.