王捷 李晶 田里
摘 要:针对工控协议漏洞挖掘技术存在适应差、命中率低等问题,本文采用模型检测技术,对工控协议漏洞挖掘系统的实现进行了设计研究。研究得出:该系统主要由代码的预处理、代码的转化、模型检测阶段组成。希望本文的研究能为学者提供借鉴。
关键词:模型检测技术;漏洞挖掘;预处理;代码的转化;模型检测
中图分类号: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.