王捷 李晶 田里



摘 要:針對工控協議漏洞挖掘技術存在適應差、命中率低等問題,本文采用模型檢測技術,對工控協議漏洞挖掘系統的實現進行了設計研究。研究得出:該系統主要由代碼的預處理、代碼的轉化、模型檢測階段組成。希望本文的研究能為學者提供借鑒。
關鍵詞:模型檢測技術;漏洞挖掘;預處理;代碼的轉化;模型檢測
中圖分類號:TP309 文獻標識碼: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 系統設計
目前,二進制程序的漏洞挖掘具有諸多特點:①將二進制代碼轉化為中間語言,然后利用中間語言進行漏洞挖掘與程序分析是目前漏洞挖掘的主要趨勢;②靜態分析與動態執行相互結合,提升了漏洞挖掘的準確度和效率;③當前流行的模型檢測與漏洞模式檢測在漏洞挖掘的理念上存在諸多相似之處,因此可以相互借鑒。基于模型檢測的漏洞挖掘系統如圖1所示。
2 系統實現
為了解決漏洞挖掘技術適應性差、命中率低的問題,在設計基于模型檢測的漏洞挖掘系統時主要通過3方面進行分析研究:①代碼的預處理;②代碼的轉化;③模型檢測平臺,具體流程如圖2所示[1]。
各階段雖然相互聯系,但卻是獨立存在的,主要功能如下。①代碼預處理:對目標程序進行靜態分析,然后將結果進行特殊輸出,從而為代碼轉化階段服務;②代碼的轉化:將二進制代碼轉化到Promela模型上,把漏洞模型添加到Promela模型上;③模型檢測平臺:對Promela模型進行檢測,輸出檢測結果及漏洞信息[2]。
為了提高漏洞挖掘的命中率及適應性,還需要對系統進行進一步改進與優化。基于模型檢測的漏洞挖掘系統的實現流程如圖3所示。
2.1 預處理
預處理的主要功能是實現目標程序的靜態分析并進行結果輸出,該階段實現了對靜態分析過程的掌控,達到了自動化分析的目的。
靜態分析的主要功能包括:①函數分類;②流程分析;③多線程識別;④間接跳轉識別;⑤數據段獲取。靜態分析流程如圖4所示。
2.2 代碼轉化
代碼轉化是漏洞挖掘系統的關鍵,主要由3個模塊組成:①二進制語言轉化為中間語言(在BAP平臺進行實現),可以直接輸入目標程序,并將其轉化為中間語言BIL,通過對toil命令的直接使用,可以實現其轉化;②中間語言轉化到Promela模型上,在該階段,轉化過程主要由3個輸入組成,即BIL代碼、漏洞模型、靜態分析結果;③漏洞模型插入和建立,該系統主要由5部分組成:靜態分析結果、程序切片、細粒度代碼轉化、Promela模型的構建和漏洞模型的插入與建立。
2.3 模型檢測
模型檢測是漏洞挖掘系統的核心,模型檢測主要由3個模塊組成:①引入外部C代碼;②輸出漏洞信息;③自動化檢測。
不能對Promela模型進行直接檢測,而是把Promela模型轉化為C代碼,然后再把C代碼編譯為可執行程序,最后對可執行程序進行模型檢測。
3 結論
通過對基于模型檢測的漏洞挖掘系統的研究可知,該系統主要有三部分:代碼的預處理、代碼的轉化、模型檢測平臺。
參考文獻:
[1]徐有福,文偉平,萬正蘇.基于漏洞模型檢測的安全漏洞挖掘方法研究[J].信息網絡安全,2011(8):72-75.
[2]黃錦,陳曉蘇,肖道舉,等.基于模型檢驗的軟件安全靜態分析研究[J].微計算機信息,2007(30):86-87.