一种基于协议状态图深度遍历的工控漏洞挖掘方法技术

技术编号:15706522 阅读:107 留言:0更新日期:2017-06-26 20:14
本发明专利技术涉及一种基于协议状态图深度遍历的工控漏洞挖掘方法。该方法包括:1)获取目标设备的网络数据包,对网络数据包进行预处理得到待分析数据包集合;2)对待分析数据包集合中的数据包进行分块处理得到大量协议基础块;3)提取单数据包内协议基础块间的约束关联关系及数据包间的状态转移关联关系,并以此为基础构造协议状态图;4)按深度优先方式对协议状态图进行遍历,生成并发送相应的畸形数据包;5)探测目标设备是否存活,若目标设备崩溃则根据畸形数据包编写POC脚本进行漏洞验证,从而发现目标设备中存在的安全漏洞。本发明专利技术能够有效地发现物联网及工业控制系统设备中存在的安全漏洞,解决了传统的漏洞挖掘方法有效性较差的问题。

A method of mining industrial vulnerability based on depth traversal of protocol state graph

The invention relates to an industrial control loophole mining method based on the depth traversal of the protocol state diagram. The method includes: 1) network data acquisition target device packet, the packet preprocessing to obtain data packet analysis set; 2) to analyze the data packets in the set of data packets to block large protocol based block; 3) extraction of single packet protocol based constraint association between blocks the relationship between the state and the data packet transfer relationship, and on the basis of constructing protocol state diagram; 4) of the protocol state graph traversal by depth first, generates and sends the corresponding malformed data packet; 5) detection equipment is alive, if the target device is according to the collapse of malformed packets POC scripting vulnerability verification thus, found security vulnerabilities in the target device. The invention can effectively discover the security holes in the Internet of things and the industrial control system equipment, and solve the problem of poor effectiveness of the traditional vulnerability mining method.

【技术实现步骤摘要】
一种基于协议状态图深度遍历的工控漏洞挖掘方法
本专利技术涉及网络协议安全、物联网/工业控制系统安全及安全测试
,尤其涉及一种基于协议状态图深度遍历的安全漏洞挖掘方法。
技术介绍
随着物联网、智慧城市、智能电网的普及,近年来针对物联网及工业控制系统设备的各种网络攻击事件日益增多,暴露出物联网及工业控制系统设备中存在大量的安全漏洞。主动发现物联网及工业控制系统设备中存在的安全漏洞并进行修复成为了一项重要的安全防护措施。由于物联网设备及工业控制系统设备具有封闭性、难以调试、系统实时性高、难以仿真等特点,传统的漏洞挖掘方法,比如逆向分析、符号执行、污点跟踪等方法很难取得较好的效果。为了能有效地发现物联网及工业控制系统设备中存在的安全漏洞,需要一套专门针对物联网及工业控制系统设备的漏洞挖掘系统。本专利技术提出一种基于协议状态图深度遍历的的工控漏洞挖掘方法,通过远程fuzz测试来实现,主要用来有效发现物联网及工业控制系统设备中存在的安全漏洞。Fuzz测试也叫“模糊测试”,是一种挖掘软件安全漏洞、检测软件健壮性的黑盒测试,它通过向软件输入非法的字段,观测被测试软件是否异常而实现。
技术实现思路
本专利技术解决的问题是针对物联网及工业控制系统中使用的网络通信协议,提出一种基于协议状态图深度遍历的工控漏洞挖掘方法,根据数据包内协议基础块间的约束关联关系及数据包间的状态转移关联关系构造协议状态图,基于协议状态图进行远程fuzz测试,达到有效发现物联网及工业控制系统设备中存在的安全缺陷的目的。本专利技术解决上述问题的技术方案如下:一种基于协议状态图深度遍历的工控漏洞挖掘方法,首先获取目标设备的网络数据包,对网络数据包进行预处理得到待分析数据包集合;对待分析数据包集合中的数据包进行分块处理得到大量协议基础块,提取单数据包内基础块间的约束关联关系及多数据包间的状态转移关联关系,并以此为基础构造协议状态图;按深度优先方式对协议状态图进行遍历,生成并向目标设备发送相应的畸形数据包;同时探测目标设备是否存活,若目标设备崩溃则可根据畸形数据包编写POC(漏洞验证)脚本进行漏洞验证从而发现目标设备中存在的安全漏洞;重复畸形数据包的发送与目标存活探测的过程,直到协议状态图遍历完毕。上述方法的具体步骤包括:步骤1,通过与目标设备进行交互,利用数据包嗅探器抓取目标设备的网络数据包;步骤2,对捕获的网络数据包进行预处理,得到待分析数据包集合;步骤3,利用协议自动化分析方法,对集合中的网络数据包进行分块处理,得到大量的协议基础块;步骤4,结合自动化分析及人工分析的方式,对网络数据包内的协议基础块进行函数关联,获得约束关系,对网络数据包之间的转移关系进行关联,获得状态转移关联关系;步骤5,以协议基础块、块与块之间的约束关联关系及数据包之间的状态转移关联关系为基础构造协议状态图,其中,每个节点为协议的一个状态,节点属性为协议基础块及其约束关联关系,每条边为协议状态间的状态转移关联关系;步骤6,按深度优先方式对协议状态图进行遍历,并设置最大遍历深度max_depth,依据节点内的约束关联关系及节点之间的状态转移关联关系生成畸形数据包并发送;所述畸形数据包是指正常的工控数据包的部分字段经过随机变化之后所产生的工控数据包;步骤7,向目标系统发送探测数据包,探测目标是否存活,若目标崩溃,则可根据畸形数据包编写POC脚本进行漏洞验证,从而发现目标设备中存在的安全漏洞;步骤8,若达到最大遍历深度max_depth,则向上回溯,跳转到步骤6,继续对协议状态图进行遍历,若整个协议状态图遍历完毕,则停止。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述步骤1中对网络数据包的获取方法包括但不限于使用Wireshark、Tcpdump、Burpsuite、Fiddler、Scapy、libpcap等工具,针对的目标设备包括但不限于网络摄像头、智能路由器、智能灯泡、PLC等,针对的网络协议包括但不限于TCP协议、UDP协议、FTP协议、Telnet协议、HTTP协议、RTSP协议、S7协议及MODBUS协议等;进一步,所述步骤2中对网络数据包的预处理过程,包括但不限于过滤掉无关协议的数据包、筛除对fuzz测试无价值的数据包以及对多次出现的重复网络数据包的去重等;进一步,所述步骤3中对网络数据包的分块包括但不限于协议请求头及请求数据、协议关键字、协议分隔符及协议内容等;进一步,所述步骤4中协议基础块之间的约束关联关系包括但不限于长度约束、校验和约束、字段取值约束等,网络数据包之间的转移关联关系包括但不限于认证约束、字段取值约束、状态切换约束等;其中,长度约束是指数据包中有一个字段,其值为该数据包的长度大小;校验和约束是指数据包中有一个字段,其值为该数据包的校验和;字段取值约束是指数据包中有一个字段,其值随着协议版本等的类型而取不同的值;认证约束是指,部分协议在交互前,需要相互进行身份认证;状态切换约束是指协议状态机中的某个状态需要发送特定的数据包才能到达该状态。进一步,所述步骤7中探测目标系统是否存活的方法包括但不限于发送ICMP探测数据包、发送TCPSYN探测数据包、发送TCPFIN数据包、发送TCP探测数据包、发送UDP探测数据包等。本专利技术的有益效果是:本专利技术构建的系统通过挖掘数据包内基础块之间的约束关联关系及数据包之间的状态转移关联关系,基于协议状态图进行fuzz测试,能够有效地发现物联网及工业控制系统设备中存在的安全漏洞,解决了传统的漏洞挖掘方法有效性较差的问题。附图说明图1为本专利技术实施例中基于协议状态图深度遍历对目标进行fuzz测试的流程图;图2为本专利技术所述基于RTSP协议状态图对摄像头进行fuzz测试的流程图;图3为本专利技术所述针对RTSP协议构建的协议状态图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。本实施例涉及一种基于协议状态图深度遍历的工控漏洞挖掘方法,主要是通过获取目标设备的网络数据包并进行预处理得到待分析数据包集合,对集合中的数据包进行分块。结合自动化分析及人工分析的方式获取数据包内基础块之间的约束关联关系及数据包间的状态转移关联关系,并以此为基础构造协议状态图。按深度优先方式遍历协议图进行fuzz测试,并对目标是否存活进行探测,以达到有效发现物联网及工业控制系统设备中存在的安全缺陷的目的。根据图1给出的fuzz测试流程图,本实施例的方法具体包括以下步骤:步骤1,通过与目标设备进行交互,利用数据包嗅探器抓取目标设备的网络数据包;步骤2,对捕获的网络数据包进行预处理操作包括过滤、去重等,得到待分析数据包集合;步骤3,利用协议自动化分析方法,对网络数据包的协议请求头、请求数据、协议关键字、协议分隔符及协议字段值等进行分块,得到大量的协议基础块;步骤4,结合自动化分析及人工分析的方式,对网络数据包内的协议基础块进行函数关联,获得约束关系如长度约束、校验和约束、取值约束等,对网络数据包之间的转移关系进行关联,获得状态转移关联关系如认证条件等;步骤5,以协议基础块、块与块之间的约束关联关系及数据包之间的状态转移关联关系为基础构造协议状态图,其中,每个节点为协议的一个状态,节点属性为协议基础块本文档来自技高网...
一种基于协议状态图深度遍历的工控漏洞挖掘方法

【技术保护点】
一种基于协议状态图深度遍历的工控漏洞挖掘方法,其步骤包括:1)获取目标设备的网络数据包,对网络数据包进行预处理得到待分析数据包集合;2)对待分析数据包集合中的数据包进行分块处理得到大量协议基础块;3)提取单数据包内协议基础块间的约束关联关系及数据包间的状态转移关联关系,并以此为基础构造协议状态图;4)按深度优先方式对协议状态图进行遍历,生成并发送相应的畸形数据包;5)探测目标设备是否存活,若目标设备崩溃则根据畸形数据包编写POC脚本进行漏洞验证,从而发现目标设备中存在的工控漏洞。

【技术特征摘要】
1.一种基于协议状态图深度遍历的工控漏洞挖掘方法,其步骤包括:1)获取目标设备的网络数据包,对网络数据包进行预处理得到待分析数据包集合;2)对待分析数据包集合中的数据包进行分块处理得到大量协议基础块;3)提取单数据包内协议基础块间的约束关联关系及数据包间的状态转移关联关系,并以此为基础构造协议状态图;4)按深度优先方式对协议状态图进行遍历,生成并发送相应的畸形数据包;5)探测目标设备是否存活,若目标设备崩溃则根据畸形数据包编写POC脚本进行漏洞验证,从而发现目标设备中存在的工控漏洞。2.如权利要求1所述的方法,其特征在于:步骤1)利用数据包嗅探器抓取目标设备的网络数据包,所述数据包嗅探器为下列工具中的一种:Wireshark、Tcpdump、Burpsuite、Fiddler、Scapy、libpcap。3.如权利要求1所述的方法,其特征在于:步骤1)所述目标设备包括网络摄像头、智能路由器、智能灯泡、PLC,所针对的网络协议包括TCP协议、UDP协议、FTP协议、Telnet协议、HTTP协议、RTSP协议、S7协议及MODBUS协议。4.如权利要求1所述的方法,其特征在于:步骤1)所述预处理包括:...

【专利技术属性】
技术研发人员:孙利民余文豪朱红松陈千
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1