一种基于改进Suricata引擎的工控系统网络入侵检测方法技术方案

技术编号:27751755 阅读:38 留言:0更新日期:2021-03-19 13:47
本发明专利技术公开了一种基于改进Suricata引擎的工控系统网络入侵检测方法。该方法是首先建立攻击数学模型,再构造网络攻击数据包并对其进行过滤,然后制定入侵检测规则,再对入侵检测规则的正则表达式进行正则分解,通过改进Suricata引擎将分解得到的模式串的存储结构进行重新构造,得到校验散列表并送入到匹配进程中;然后通过改进Suricata引擎对工控系统网络通信流量进行捕获、解码和散列运算,并将散列运算结果传入到匹配进程中,匹配进程会将校验散列表与散列运算结果送入到多个线程中,改进HashTries算法进行匹配,最后输出检测结果。本发明专利技术将改进HashTries算法与入侵检测引擎Suricata相结合得到改进Suricata引擎,既节省了空间资源,也加快了硬件的匹配处理速度,大幅降低了系统损耗。

【技术实现步骤摘要】
一种基于改进Suricata引擎的工控系统网络入侵检测方法
本专利技术涉及网络安全领域,具体是一种基于改进Suricata引擎的工控系统网络入侵检测方法。
技术介绍
随着网络信息化的发展,网络中涌入的信息量大幅增加,给网络管理系统的安全带来了极大的安全隐患,而工业控制系统对于国家关键基础设施至关重要,在工业互联网的背景下,能够及时有效地对工业控制系统的网络入侵进行检测是保障工业控制系统网络安全的关键,与被动防御的杀毒软件不同,网络管理系统中的入侵检测是将入网信息和系统规则库里事先设定好的模板进行匹配比较,从而完成对不安全信息的检测,由于需要对所有入网信息进行排查,进而造成所需时间久,资源消耗大,甚至会对网络性能造成不良影响。因此,需要寻求一种较为有效的匹配方法,在提高工控系统网络入侵检测效率和降低资源消耗的同时,保证工业控制系统的网络安全。传统的AC类算法主要采用二维存储结构-状态转移表,来存储状态转移信息,采用字符型数据类型进行存储和比对,存在匹配速度缓慢、内存消耗大、CPU使用率高的缺陷,无法避免内存空间开销过大的问题,无法满足工业控制系统的高性能要求。Suricata是基于开源签名的入侵检测引擎,旨在改善协议标识并引入基于脚本的检测。对于协议标识,Suricata允许网络管理员在协议文件中定义协议类型或特定端口,并且提供了大量可用于与协议字段匹配的关键字,不再使用模式匹配对关键字进行匹配,而是引入了基于脚本的检测和经过精心设计的数据结构来解析和记录流信息,以供进一步研究。中国专利申请CN110099034A公开了一种基于Suricata框架的DEC进程方法、框架组件图和应用场景。该方法通过捕包框架libpcap和DPDK对网络数据包进行捕获,并对TCP会话数据包进行管理,获得有序TCP报文,然后针对TCP报文中的payload载荷进行识别分析,判断其流量的威胁性。其不足之处在于:使用的libpcap和DPDK数据包捕获框架并不能降低硬件系统的CPU使用率,因而对系统损耗较大;同时在TCP报文的payload载荷识别分析中,其采用的是DEC进程对协议数据进行解析,该进程的还原库是基于传统AC类算法,其在检测速度和内存消耗上存在很大的缺陷,因而无法满足工业控制系统中的网络数据实时传输性要求。另外其应用场景可以为网络流量监控和垃圾邮件识别,但缺少工业控制系统中的协议识别方法,因而在工业控制系统中的应用方面有很大不足。
技术实现思路
针对现有技术的不足,本专利技术拟解决的技术问题是,提供一种基于改进Suricata引擎的工控系统网络入侵检测方法。本专利技术解决所述技术问题的技术方案是,提供一种基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,该方法包括以下步骤:步骤1、针对工业控制系统网络环境中所能进行的网络攻击建立攻击数学模型;步骤2、根据建立的攻击数学模型在入侵检测平台中构造网络攻击数据包并对其进行过滤,得到过滤后的网络攻击数据包;步骤3、根据过滤后的网络攻击数据包制定入侵检测规则,得到入侵检测规则的正则表达式;步骤4、利用正则分解将入侵检测规则的正则表达式转换为模式串和正则表达子式;步骤5、采用入侵检测平台的改进Suricata引擎中的改进HashTries算法对步骤4得到的模式串的存储结构进行重新构造,将数据存储形式转变为二进制数据,得到校验散列表;步骤6、工业控制系统正常运行时,入侵检测平台的改进Suricata引擎捕获工业控制系统的网络通信流量,然后将网络通信流量进行解码,再将解码完成后的网络通信流量通过改进HashTries算法进行散列运算,再将散列运算结果与步骤5得到的校验散列表进行比较,得到匹配结果,再根据匹配结果进行响应。与现有技术相比,本专利技术有益效果在于:(1)本方法是首先建立攻击数学模型,再构造网络攻击数据包并对其进行过滤,然后制定入侵检测规则,再对入侵检测规则的正则表达式进行正则分解,通过改进Suricata引擎将分解得到的模式串的存储结构进行重新构造,得到校验散列表并送入到匹配进程中;然后通过改进Suricata引擎对工控系统网络通信流量进行捕获、解码和散列运算,并将散列运算结果传入到匹配进程中,匹配进程会将校验散列表与散列运算结果送入到多个线程中,改进HashTries算法进行匹配,最后输出检测结果。(2)将入侵检测平台架设于工业控制系统内网与外网通信节点之间,应用于工业控制系统网络环境当中,与原有的旁路监听连接方式相比,对工业控制系统网络通信流量的检测方式更为直接,避免了网络入侵系统的决策滞后性,以满足工业控制系统对检测实时性的要求。(3)本专利技术将改进HashTries多模式串匹配算法与入侵检测引擎Suricata当中的多线程模块相结合得到改进Suricata引擎。与AC类算法的不同之处在于,改进HashTries算法改变了模式串以字符型数据进行存储的方式,采用二进制向量进行存储,这样既节省了空间资源,也加快了硬件的匹配处理速度,大幅降低Suricata引擎的系统损耗。(4)本专利技术的改进HashTries算法中,将HashTries算法中原有的模式串向量状态位1表示为0,即存储空间B和存储空间R的初始值均为0。(5)由于工业控制系统入侵检测规则的欠缺,本专利技术给出了根据网络攻击制定网络入侵检测规则的方法,同时可以对后续发现的新型网络攻击的分析和检测进行扩展。附图说明图1为本专利技术的入侵检测方法流程图;图2为本专利技术的入侵检测平台应用于工业控制系统网络环境中的连接框图;图3为本专利技术一种实施例的改进HashTries算法的流程图;图4为本专利技术的改进Suricata引擎与其他引擎的性能对比图;图5为本专利技术的改进HashTries算法与AC类算法的检测速度对比图。具体实施方式下面给出本专利技术的具体实施例。具体实施例仅用于进一步详细说明本专利技术,不限制本申请权利要求的保护范围。本专利技术提供了一种基于改进Suricata引擎的工控系统网络入侵检测方法(简称方法,参见图1),其特征在于,该方法包括以下步骤:步骤1、针对工业控制系统网络环境中所能进行的网络攻击建立攻击数学模型;优选地,步骤1中,所述网络攻击包括篡改攻击、重放攻击、注入攻击和拒绝服务攻击;使用Attack(pl(i))对网络攻击的手段进行统一描述:式(1)中,pl(i)为i时刻的报文,sender表示工业控制系统中消息的发送方,receiver表示消息的接收方。所述工业控制系统包括过程控制层、基本控制层和远程监测层;其中过程控制层是由各个执行器组成,包括KUKA机械臂、步进电机和光电开关等;基本控制层由PLC控制器组成,包括西门子S7-1200、西门子S7-300、西门子S7-1500、ABBPM564和BeckhoffBC9000五种型号;远程监测层为Windows10通用操作系统的上位机。在篡改攻击中本文档来自技高网
...

【技术保护点】
1.一种基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,该方法包括以下步骤:/n步骤1、针对工业控制系统网络环境中所能进行的网络攻击建立攻击数学模型;/n步骤2、根据建立的攻击数学模型在入侵检测平台中构造网络攻击数据包并对其进行过滤,得到过滤后的网络攻击数据包;/n步骤3、根据过滤后的网络攻击数据包制定入侵检测规则,得到入侵检测规则的正则表达式;/n步骤4、利用正则分解将入侵检测规则的正则表达式转换为模式串和正则表达子式;/n步骤5、采用入侵检测平台的改进Suricata引擎中的改进HashTries算法对步骤4得到的模式串的存储结构进行重新构造,将数据存储形式转变为二进制数据,得到校验散列表;/n步骤6、工业控制系统正常运行时,入侵检测平台的改进Suricata引擎捕获工业控制系统的网络通信流量,然后将网络通信流量进行解码,再将解码完成后的网络通信流量通过改进HashTries算法进行散列运算,再将散列运算结果与步骤5得到的校验散列表进行比较,得到匹配结果,再根据匹配结果进行响应。/n

【技术特征摘要】
1.一种基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,该方法包括以下步骤:
步骤1、针对工业控制系统网络环境中所能进行的网络攻击建立攻击数学模型;
步骤2、根据建立的攻击数学模型在入侵检测平台中构造网络攻击数据包并对其进行过滤,得到过滤后的网络攻击数据包;
步骤3、根据过滤后的网络攻击数据包制定入侵检测规则,得到入侵检测规则的正则表达式;
步骤4、利用正则分解将入侵检测规则的正则表达式转换为模式串和正则表达子式;
步骤5、采用入侵检测平台的改进Suricata引擎中的改进HashTries算法对步骤4得到的模式串的存储结构进行重新构造,将数据存储形式转变为二进制数据,得到校验散列表;
步骤6、工业控制系统正常运行时,入侵检测平台的改进Suricata引擎捕获工业控制系统的网络通信流量,然后将网络通信流量进行解码,再将解码完成后的网络通信流量通过改进HashTries算法进行散列运算,再将散列运算结果与步骤5得到的校验散列表进行比较,得到匹配结果,再根据匹配结果进行响应。


2.根据权利要求1所述的基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,步骤1中,所述网络攻击包括篡改攻击、重放攻击、注入攻击和拒绝服务攻击;使用Attack(pl(i))对网络攻击的手段进行统一描述:



式(1)中,pl(i)为i时刻的报文,sender表示工业控制系统中消息的发送方,receiver表示消息的接收方。


3.根据权利要求1所述的基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,步骤2中,对网络攻击数据包进行网络方向过滤的方法如下:假设入侵检测平台输入的数据包只包含PLC与上位机之间的通信数据包,因此可以通过判断网络方向来过滤掉上位机发往PLC的数据包,只保留PLC发往上位机的数据包。


4.根据权利要求3所述的基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,步骤2中,网络方向的判断采用以下方法:方法一、根据端口区分:由于工业控制系统中的PLC的通信端口为102号端口和502号端口,因此目标端口号为这两个端口时即可认定是上位机发往PLC的数据包,而源端口号为这两个端口即可认定是PLC发往上位机的数据包;方法二、根据特殊请求包区分:发起建立连接请求的是上位机,接受建立连接请求的是PLC;当上述两种方法均无法判断网络方向时,则只能通过手动输入IP地址来进行判断。


5.根据权利要求1所述的基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,步骤3中,入侵检测规则的正则表达式由规则头和规则体构成;所述规则头包含匹配到规则后所做的动作和数据包匹配需要的条件;所述规则体由若干选项构成,选项由选项关键字和选项内容组成,选项关键字和选项内容由冒号隔开,各选项间以分号分隔。


6.根据权利要求1所述的基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,步骤4中,所述模式串由文字或...

【专利技术属性】
技术研发人员:杜世泽周颖张磊王嘉旭诸葛琳娜
申请(专利权)人:河北工业大学
类型:发明
国别省市:天津;12

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

1