基于Modbus/Tcp的入侵检测分析方法

文档序号:9670776阅读:1191来源:国知局
基于Modbus/Tcp的入侵检测分析方法
【技术领域】
[0001]本发明涉及工业控制网络技术领域,特别涉及一种基于Modbus/Tcp的控制网络协议入侵检测的分析方法和入侵检测系统。
【背景技术】
[0002]随着工业化、自动化向着网络化、信息化的转变,越来越多的工业控制系统采用标准的、通用的通信协议和软硬件系统;再这样的背景下,工业控制系统原有的封装性被打破,各种不安全因素,如病毒、木马、入侵等会随着正常的信息流进入工业控制网络,导致企业生产的不稳定,特别是电力传输、交通运输、油气开采、水处理等关系到国家安全的重要行业和领域,面临着日益严重的安全威胁。
[0003]目前,工业控制网络多采用传统的防火墙、网闸等设备进行安全防护;这些设备的基本原理是提供较好的身份认证和访问控制,检测并隔离流经防护设备的异常信息流,防止已知病毒和攻击的入侵;但是这种方法不能防止来自防火墙内部的攻击、不能防备最新出现的威胁、不能防止绕过防火墙的攻击,入侵者利用带有危险操作控制命令的合法数据包来进行攻击,将会导致设备的运行出现异常甚至损坏;例如近几年出现的针对伊朗工业基础设施的震网病毒,通过篡改正常工业控制协议参数,对伊朗核设施造成了严重的破坏。
[0004]近年来,入侵检测系统一般采用误用入侵检测和异常入侵检测;误用入侵检测根据已知特征匹配网络中的通讯流量,具有误报率较低的特征,但由于工控系统攻击行为特征库不可能包含所有的攻击行为,使用误用检测的方式容易产生漏报警的情况;而异常入侵检测,建立在工业控制系统本身通讯流量具有简单固定的通讯模式的基础上,通过建立正常的行为规则来识别出异常的流量,但由于没有对网络协议进行深度的解析,工业控制协议的特征没有得到灵活的运用,容易出现误报警现象。

【发明内容】

[0005]为了解决上述问题,本发明提供了一种基于Modbus/Tcp工业控制网络协议入侵检测的分析方法和入侵检测系统,不仅能够减少漏报和误报的现象,而且了实现对入侵攻击的快速检测。
[0006]为了达到本发明的目的,本发明提供了一种基于Modbus/Tcp工业控制网络协议的入侵检测系统,该系统包括数据采集模块、数据解析模块、规则生成模块、规则匹配模块和客户窗口模块。
[0007]所述的数据采集模块与网络接口相连,数据采集模块用于捕获流入的数据包,并将数据包发送给数据解析模块。
[0008]数据解析模块分别与规则生成模块和规则匹配模块相连,用于对接收的数据包进行解析;在规则自学习阶段,将解析好的数据包信息发送给规则生成模块;在规则匹配阶段,将解析好的数据包信息发送给规则匹配模块。
[0009]规则生成模块用于接收解析后的数据包,按照预先设置的算法,生成正常行为的规则集合;还可以添加带有异常特征的规则集合。
[0010]规则匹配模块,用于将解析后的数据包与数据库中的规则进行匹配。如果和正常规则集合对应的规则匹配,判定为正常数据包;如果存在和异常规则集对应规则匹配的数据包,判定为异常数据包。
[0011]客户窗口模块,对本系统的功能以图形界面的形式提供给用户使用,实现查看和修改数据库,从离线数据流量中自动学习规则、分析日志记录和报警记录信息、开始入侵检测和停止入侵检测等一些功能。
[0012]另外,本系统还包括存储设备,用于存储、设置规则库,所述规则库包括规则生成模块产生的正常规则集合和手动添加的异常规则集,所述的存储设备还用来存储待检测的数据包。
[0013]除此之外,该本系统还包括日志记录模块和报警记录模块;所述的日志记录模块和报警记录模块都与规则匹配模块相连;所述的日志记录模块用于记录正常数据流量;所述的报警记录模块用于记录异常的数据流量,以便以后分析。
[0014]为了达到本发明的目的,本发明提供了一种基于Modbus/Tcp工业控制网络协议的入侵检测分析方法,该方法包括:数据采集模块与网络接口相连,用于捕获流入的数据包,并将数据包发送给数据解析模块;数据解析模块分别与规则生成模块和规则匹配模块相连,用于对接收的数据包进行解析;在规则自学习阶段,将数据包解析结果发送给规则生成模块;在规则匹配阶段,将数据包解析结果发送给规则匹配模块;规则生成模块接收解析后的数据包,生成规则集合;规则匹配模块对解析后的数据包与数据库中的规则进行匹配,如果和正常规则集合对应的规则匹配,判定为正常数据包;如果存在和异常规则集对应规则匹配的数据包,判定为异常数据包。
[0015]首先,该方法包括数据采集模块,用来捕获网络流量。
[0016]其次,该方法包括数据解析模块,对接收的数据包进行解析,在规则自学习阶段,将数据包解析结果发送给规则生成模块;在规则匹配阶段,将数据包的解析结果发送给规则匹配模块;详细地,数据解析模块从数据采集模块中获取数据包的到达时间;提取协议类型和数据包的长度;对数据包的网络层解析,提取源和目的IP地址;对传输层解析,提取源和目的端口号,以及按照源和目的端口号判断主从设备,标记数据包为请求数据包(Query)或者响应数据包(Response),并且提取数据包的序列号、应答号、Modbus报文长度;对Modbus报文进行解析,提取Modbus功能码、线圈或寄存器的起始地址以及数量;提取Modbus的载荷。
[0017]再次,该方法包括规则生成模块。
[0018]1)规则生成模块接收所有的解析数据包,将序列号、应答号和Modbus报文长度的关系作为整体数据包的规则集R1 ;详细地,相邻的两个数据包,先接收的数据包记为A,后接收的数据包记为B,B的应答号等价于A的序列号和A的Modbus报文长度之和,而且B的序列号等价于A的应答号。
[0019]2)规则生成模块对接收的解析数据包按照请求和响应数据包两两分对,计算请求和响应数据包之间的时间间隔范围,作为请求和响应数据包之间的规则集R2;详细地,规则生成模块认为每对请求和响应数据包的事务处理标识符、协议标识符、Modbus功能码、线圈或寄存器的起始位置以及数量这几个特征字段值相同,作为请求和响应数据包之间的规则,添加到规贝1J R2o
[0020]3)规则生成模块对分类数据包库中数据包的周期特性进行分析,将周期特性和数据包中每个字段值得变化规律作为分类后数据包的规则集R3 ;详细地,规则生成模块将解析后的数据包按照源和目的Ip、源和目的端口号、数据包长度、Modbus功能码、线圈或寄存器的起始地址以及数量进行数据包的分类;针对分类数据包的周期特性,可划分为有周期特性的数据包和无周期特性的数据包;有周期特性数据包把数据包之间到达的时间间隔作为它的周期,无周期特性数据包的周期记为零;将周期特性和数据包中每个字段值的变化规律作为分类后数据包的规则。
[0021]4)规则生成模块还能手动添加带异常特征的规则集。
[0022]最后,该方法包括规则匹配模块,规则匹配模块对解析后的数据包与数据库中的规则进行匹配;详细地,规则匹配模块将解析的数据包同步存储到两个库,整体数据包库L1和分类数据包库L2 ;利用R3规则集对L2中的分类数据包进行检测,利用R4、R1和R2规则集对L1中整体数据包进行检测;如果判定这个数据包异常,将数据包存放到报警记录模块,如果判定这个数据包正
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1