CN112532642A - 一种基于改进Suricata引擎的工控系统网络入侵检测方法 - Google Patents
一种基于改进Suricata引擎的工控系统网络入侵检测方法 Download PDFInfo
- Publication number
- CN112532642A CN112532642A CN202011418331.9A CN202011418331A CN112532642A CN 112532642 A CN112532642 A CN 112532642A CN 202011418331 A CN202011418331 A CN 202011418331A CN 112532642 A CN112532642 A CN 112532642A
- Authority
- CN
- China
- Prior art keywords
- network
- engine
- control system
- suricata
- improved
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 84
- 241001501944 Suricata Species 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 32
- 238000004891 communication Methods 0.000 claims abstract description 28
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims abstract description 14
- 238000013178 mathematical model Methods 0.000 claims abstract description 12
- 238000001914 filtration Methods 0.000 claims abstract description 8
- 238000012795 verification Methods 0.000 claims abstract description 4
- 239000013598 vector Substances 0.000 claims description 27
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 4
- 238000002347 injection Methods 0.000 claims description 4
- 239000007924 injection Substances 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 2
- 210000001072 colon Anatomy 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 6
- ZPUCINDJVBIVPJ-LJISPDSOSA-N cocaine Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 5
- 238000010987 Kennard-Stone algorithm Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于改进Suricata引擎的工控系统网络入侵检测方法。该方法是首先建立攻击数学模型,再构造网络攻击数据包并对其进行过滤,然后制定入侵检测规则,再对入侵检测规则的正则表达式进行正则分解,通过改进Suricata引擎将分解得到的模式串的存储结构进行重新构造,得到校验散列表并送入到匹配进程中;然后通过改进Suricata引擎对工控系统网络通信流量进行捕获、解码和散列运算,并将散列运算结果传入到匹配进程中,匹配进程会将校验散列表与散列运算结果送入到多个线程中,改进HashTries算法进行匹配,最后输出检测结果。本发明将改进HashTries算法与入侵检测引擎Suricata相结合得到改进Suricata引擎,既节省了空间资源,也加快了硬件的匹配处理速度,大幅降低了系统损耗。
Description
技术领域
本发明涉及网络安全领域,具体是一种基于改进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、ABB PM564和Beckhoff BC9000五种型号;远程监测层为Windows10通用操作系统的上位机。
在篡改攻击中,对PLC与上位机之间的原始报文进行修改,相当于用一个与原始报文等长度的攻击报文与原始报文做异或运算;篡改攻击数学模型如式(2)所示:
式(2)中,绝对值符号表示报文长度;|h(i)|表示攻击报文的长度;|pl(i)|表示原始报文的长度;PL为正常报文;由于篡改攻击修改后的报文还属于有效报文集,接收方将会按正常报文来接收,这样黑客就实现了其攻击目的。
在重放攻击中,在i时刻上位机与PLC之间并没有原始报文进行通信,在攻击报文集H中有攻击时刻i之前的原始报文,该原始报文通过Wireshark抓包实现;将i时刻之前的k时刻抓取的上位机向PLC发送的原始报文发送给PLC,此即为重放攻击;发动重放攻击时,信道上本来没有报文,即为NULL,NULL表示空,重放可以表示为空报文与之前的原始报文的异或;重放攻击数学模型如式(3)所示:
在注入攻击中,在i时刻上位机与PLC之间没有任何通信报文,利用i时刻之前的k时刻抓取的原始报文的报文格式,捏造攻击报文发送给PLC或者上位机;注入攻击数学模型如式(4)所示:
在拒绝服务攻击中,黑客向PLC不断发送基于TCP协议的无效报文,使PLC无法对上位机发送的原始报文进行响应;拒绝服务攻击数学模型如式(5)所示:
步骤2、根据建立的攻击数学模型(即式2)-5)所示)在入侵检测平台中构造网络攻击数据包并在入侵检测平台中对其进行过滤,得到过滤后的网络攻击数据包;
优选地,步骤2中,入侵检测平台应用在工业控制系统网络环境中,部署在远程监测层和基本控制层之间,依靠外网交换机和内网交换机的网口进行连接(如图2所示);所述入侵检测平台的硬件部分采用型号为SV1a-19024PC双网口系统级主板,一个网口通过内网交换机与工业控制系统的PLC相连,另一个网口通过外网交换机与工业控制系统的上位机相连,采用的操作系统是以具有改进HashTries多模式串匹配算法(简称改进HashTries算法)的改进Suricata引擎为核心的Ubuntu操作系统。
优选地,步骤2中,需要利用入侵检测平台的BPF过滤器过滤掉网络攻击数据包中不必要的包头信息和payload载荷长度为0的数据包,并进行网络方向过滤,得到过滤后的网络攻击数据包(即攻击payload载荷)。
优选地,步骤2中,为了最终识别结果的准确性,在制定入侵检测规则之前要对网络攻击数据包进行过滤,其中网络方向过滤的方法如下:假设入侵检测平台输入的数据包只包含PLC与上位机之间的通信数据包,因此可以通过判断网络方向来过滤掉上位机发往PLC的数据包,只保留PLC发往上位机的数据包,最终得到PLC和上位机各自的IP、端口和报文。
步骤2中,网络方向的判断采用以下方法:方法一、根据端口区分:由于工业控制系统中的PLC的通信端口为102号端口和502号端口,因此目标端口号为这两个端口时即可认定是上位机发往PLC的数据包,而源端口号为这两个端口即可认定是PLC发往上位机的数据包;方法二、根据特殊请求包区分:发起建立连接请求的是上位机,接受建立连接请求的是PLC;当上述两种方法均无法判断网络方向,则只能通过手动输入IP地址来进行判断。
步骤3、根据过滤后的网络攻击数据包提取工业控制系统网络攻击报文,制定入侵检测规则,得到入侵检测规则的正则表达式;
工业控制系统入侵检测规则主要围绕基于modbus协议的PLC设备和基于S7协议的PLC设备进行规则制定,针对步骤2得到的PLC和上位机各自的IP、端口和报文进行设计。
入侵检测规则的正则表达式由规则头和规则体两部分构成;所述规则头包含匹配到规则后所做的动作,如报警(alert)、记录(log)、通过(pass)和丢弃(drop)等,也包括数据包匹配需要的一些条件,如协议类型、源地址及端口、目的地址及端口;所述规则体由若干选项构成,选项由选项关键字和选项内容组成,选项关键字和选项内容由冒号隔开,各选项间以分号分隔;选项包含了入侵特征串(content)、报警内容(msg)、负载长度(dsize)、类型(classtype)、优先级(priority)、版本(rev)以及与模式匹配函数相关的重要信息(nocase、offset、depth等)。
本实施例中,假设网络中读取PLC保存寄存器内容在该时刻为异常行为,可以设计一个简单的检测规则来检测报文中03功能码是否存在,如存在则发出警报,其入侵检测规则表达式是:
alert tcp$MODBUSCLIENTany→$MODBUSSERVER502-(flow:established,to_server;
content;|03|;offset:7;depth:1;msg:”Modbus FC 3read registersattempt")。
步骤4、利用正则分解根据正则分解规则在入侵检测平台的改进Suricata引擎中的正则分解模块中将入侵检测规则的正则表达式分解为模式串和正则表达子式;
优选地,步骤4中,所述模式串(即入侵检测规则的正则表达式的规则体)由一系列文字或输入符号组成;正则表达子式是除去所有模式串后的剩余部分(即入侵检测规则的正则表达式的规则头),其可能包含正则表达式语法中的一个或多个元字符或量词(如'^'、‘$’、‘*’、‘?’等),这些元字符或量词将会转化为匹配算法执行的FA开关;
所述正则分解规则具体是:
规则一、第一步是模式串匹配,模式串匹配扫描整个输入以查找所有模式串,每个成功匹配的模式串都会触发对相邻FA开关的匹配执行;
规则二、除了始端的FA开关外,默认情况下所有FA开关均处于关闭状态;
规则三、对于像/left FA str right/这样的正则表达通式,仅当left全部匹配成功后,FA开关才会打开;仅当字符str匹配成功后,才会执行right的匹配。
本实施例中,对给定的正则表达式/.*foo[^X]barY+/进行正则分解,得到正则分解后的表达式为/FA2 str2 FA1 str1 FA0/;其中FA2=".*",str2="foo",FA1="[^X]",str1="bar",FA0="Y+";当输入为“XfooZbarY”时,按照正则分解规则,首先,左侧始端的FA2开关始终处于打开状态,模式串匹配器搜索到模式串str2("foo")进行匹配,匹配成功,FA1开关被打开,模式串匹配器搜索到模式串str1("bar")进行匹配,匹配成功,最后右侧末端的FA0开关被打开,匹配结束。
规则制定文件需要加入到suricata.yaml配置文件当中,在启动改进Suricata引擎时,改进Suricata引擎需要读取suricata.yaml配置文件,在配置文件中链接制定的规则文件,入侵检测规则链接成功后,改进Suricata引擎会建立特有的数据结构对检测规则进行存储。通过优先级(priority)对规则头和规则选项进行不同顺序和不同层次的处理,规则头作为正则表达子式,将其转换为FA开关,当规则头从左到右依次满足匹配要求后,FA开关才会打开,对规则体的内容进行匹配。
步骤5、采用入侵检测平台的改进Suricata引擎中的改进HashTries算法对步骤4得到的模式串的存储结构进行重新构造,将数据存储形式转变为二进制数据,得到校验散列表;
优选地,步骤5中,存储结构进行重新构造是构造向量B和向量R,向量B和向量R的具体构造过程如下:
设模式串的集合如式(6)所示:
P={p0,p1,…,pr-1} (6)
递归散列函数如式(7)所示:
存储空间B和存储空间R是长度为m的零向量,其初始位全部为0;每计算得到一个散列值h,则将存储空间B中的第k位置1;依此,模式串的每一个前缀u经过散列之后映射到存储空间B中对应的一个比特上,得到向量B;
对于每一个完整的模式串,除了在存储空间B中标记其散列值外,同时将其标记在另一个存储空间R中,即将存储空间R中对应的第k位也置1,得到向量R,实现了模式串的比特信息的存储。
校验散列表的具体构造过程如下:完整模式串的散列值已经存储在向量R中,利用排序方法计算向量R中第k位之前0值的个数,并将个数值作为模式串的编号,然后将编号与该模式串一同存入校验散列表中。
步骤6、工业控制系统正常运行时,入侵检测平台的改进Suricata引擎中的AF_PACKET数据包捕获模块捕获工业控制系统的网络通信流量,然后将网络通信流量送入到改进Suricata引擎的数据包解码模块中进行解码,再将解码完成后的网络通信流量送入到改进Suricata引擎的改进HashTries算法中进行散列运算,再将散列运算结果分配到多个匹配线程中,分别与步骤5得到的校验散列表进行比较,得到匹配结果,再根据匹配结果进行响应。
优选地,步骤6中的根据匹配结果进行响应具体是:所述散列运算结果为网络通信流量中多个数据包的散列运算结果,将这些散列运算结果分配到多个匹配线程中,分别与步骤5得到的校验散列表进行匹配;若匹配成功则表示网络通信流量中存在恶意攻击,改进Suricata引擎做出报警并阻断恶意攻击的网络连接;若不匹配,改进Suricata引擎会保持网络连接。
所述网络通信流量包含网络正常数据包和网络攻击数据包,为上位机与PLC间的通信数据包。
本实施例中(如图3所示),构造存储空间B、存储空间R和校验散列表M:以模式串集合{alert、tcp}为例,alert的编号为0,tcp的编号为1,利用递归散列函数计算a、al、ale、aler、alert和t、tc、tcp的散列值h,并将向量B中的第h位置1,向量B即为这些字符串的映射;然后只将向量B中alert和tcp两个字符串的映射存入到向量R中,向量R则只有两个位置的值为1。然后利用rank函数(排序方法)计算向量R第h位之前0的个数,若1的个数为0,则alert的校验值为0,若1的个数为1,则tcp的校验值为1,最终得到校验散列表M。匹配阶段是:将捕获的网络通信流量处理得到若干散列运算结果,再将这些散列运算结果分配到多个匹配线程中,分别与校验散列表中的alert和tcp的检验值比较;若某一匹配线程中与校验散列表中的alert和tcp的检验值均相同,则表示该网络通信流量中存在恶意攻击;若所有匹配线程中均不存在与校验散列表中的alert和tcp的检验值均相同的情况(即两个均不相等或者其中一个不相等),则表示该网络通信流量中不存在恶意攻击。
经测试,将本发明的改进Suricata引擎与同类的Snort检测引擎进行了性能对比(如图4所示),在相同工作环境下,在CPU占用率方面,Suricata引擎对系统资源消耗要低于Snort引擎,证明了改进Suricata引擎比Snort引擎更适用于工业控制系统网络入侵检测。使用Snort引擎和libpcap数据包捕获方法时,系统的CPU占用率为33%;使用Snort引擎和AF_PACKET数据包捕获方法时,系统的CPU占用率为30%;使用改进Suricata引擎和libpcap数据包捕获方法时,系统的CPU占用率为22%;使用改进Suricata引擎和AF_PACKET数据包捕获方法时,对系统CPU的占用率为19%。
经测试,在模式串与正则表达子式均为61.7KB的条件下,将本发明的改进HashTries算法、AC算法、AC-BS算法和AC-KS算法在内存消耗和检测速度方面进行对比。在内存消耗上方面,改进HashTries算法是最低的,为25.8MB,而AC算法是45.2MB,AC-BS算法是32.9MB,AC-KS算法是31.7MB。在检测速度方面,如图5所示,改进HashTries算法是最快的;并且随着匹配包个数的增加,AC、AC-BS以及AC-KS算法的检测速度始终低于改进HashTries算法,同时AC、AC-BS以及AC-KS算法的检测速度有逐渐下降的趋势,而改进HashTries算法检测速度的下降趋势并不明显。综上,体现了改进HashTries算法的优越性。
综上所示,在模式串与正则表达子式均为61.7KB的条件下,网络通信流量为364MB的情况下,采用改进HashTries算法的改进Suricata引擎的平均内存消耗为25.8MB,CPU使用率约为19%,检测速度可达55MB/s。
本发明未述及之处适用于现有技术。
Claims (10)
1.一种基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,该方法包括以下步骤:
步骤1、针对工业控制系统网络环境中所能进行的网络攻击建立攻击数学模型;
步骤2、根据建立的攻击数学模型在入侵检测平台中构造网络攻击数据包并对其进行过滤,得到过滤后的网络攻击数据包;
步骤3、根据过滤后的网络攻击数据包制定入侵检测规则,得到入侵检测规则的正则表达式;
步骤4、利用正则分解将入侵检测规则的正则表达式转换为模式串和正则表达子式;
步骤5、采用入侵检测平台的改进Suricata引擎中的改进HashTries算法对步骤4得到的模式串的存储结构进行重新构造,将数据存储形式转变为二进制数据,得到校验散列表;
步骤6、工业控制系统正常运行时,入侵检测平台的改进Suricata引擎捕获工业控制系统的网络通信流量,然后将网络通信流量进行解码,再将解码完成后的网络通信流量通过改进HashTries算法进行散列运算,再将散列运算结果与步骤5得到的校验散列表进行比较,得到匹配结果,再根据匹配结果进行响应。
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中,所述模式串由文字或输入符号组成;正则表达子式是除去所有模式串后的剩余部分,其将会转化为FA开关;
所述正则分解的规则是:
规则一、第一步是模式串匹配,模式串匹配扫描整个输入以查找所有模式串,每个成功匹配的模式串都会触发对相邻FA开关的匹配执行;
规则二、除了始端的FA开关外,默认情况下所有FA开关均处于关闭状态;
规则三、对于像/left FA str right/这样的正则表达通式,仅当left全部匹配成功后,FA开关才会打开;仅当字符str匹配成功后,才会执行right的匹配。
7.根据权利要求1所述的基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,步骤5中,存储结构进行重新构造是构造向量B和向量R,向量B和向量R的具体构造过程如下:
设模式串的集合如式(6)所示:
P={p0,p1,…,pr-1} (6)
递归散列函数如式(7)所示:
存储空间B和存储空间R是长度为m的零向量,其初始位全部为0;每计算得到一个散列值h,则将存储空间B中的第k位置1;依此,模式串的每一个前缀u经过散列之后映射到存储空间B中对应的一个比特上,得到向量B;
对于每一个完整的模式串,除了在存储空间B中标记其散列值外,同时将其标记在另一个存储空间R中,即将存储空间R中对应的第k位也置1,得到向量R,实现了模式串的比特信息的存储。
8.根据权利要求7所述的基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,步骤5中,校验散列表的具体构造过程如下:完整模式串的散列值已经存储在向量R中,利用排序方法计算向量R中第k位之前0值的个数,并将个数值作为模式串的编号,然后将编号与该模式串一同存入校验散列表中。
9.根据权利要求1所述的基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,步骤6中的根据匹配结果进行响应具体是:所述散列运算结果为网络通信流量中多个数据包的散列运算结果,将这些散列运算结果分配到多个匹配线程中,分别与步骤5得到的校验散列表进行匹配;若匹配成功则表示网络通信流量中存在恶意攻击,改进Suricata引擎做出报警并阻断恶意攻击的网络连接;若不匹配,改进Suricata引擎会保持网络连接。
10.根据权利要求1所述的基于改进Suricata引擎的工控系统网络入侵检测方法,其特征在于,入侵检测平台应用在工业控制系统网络环境中,部署在远程监测层和基本控制层之间;所述入侵检测平台的硬件部分采用型号为SV1a-19024PC双网口系统级主板,一个网口通过内网交换机与工业控制系统的PLC相连,另一个网口通过外网交换机与工业控制系统的上位机相连,采用的操作系统是以具有改进HashTries算法的改进Suricata引擎为核心的Ubuntu操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011418331.9A CN112532642B (zh) | 2020-12-07 | 2020-12-07 | 一种基于改进Suricata引擎的工控系统网络入侵检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011418331.9A CN112532642B (zh) | 2020-12-07 | 2020-12-07 | 一种基于改进Suricata引擎的工控系统网络入侵检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112532642A true CN112532642A (zh) | 2021-03-19 |
CN112532642B CN112532642B (zh) | 2022-05-20 |
Family
ID=74998485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011418331.9A Expired - Fee Related CN112532642B (zh) | 2020-12-07 | 2020-12-07 | 一种基于改进Suricata引擎的工控系统网络入侵检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112532642B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114205126A (zh) * | 2021-11-25 | 2022-03-18 | 北京国泰网信科技有限公司 | 一种工业系统中攻击检测的方法、设备及介质 |
CN114760126A (zh) * | 2022-04-08 | 2022-07-15 | 沈阳化工大学 | 一种工控网络流量实时入侵检测方法 |
CN115208682A (zh) * | 2022-07-26 | 2022-10-18 | 上海欣诺通信技术股份有限公司 | 一种基于snort的高性能网络攻击特征检测方法及装置 |
CN116055191A (zh) * | 2023-02-02 | 2023-05-02 | 成都卓讯智安科技有限公司 | 一种网络入侵检测方法、装置、电子设备和存储介质 |
CN117290853A (zh) * | 2023-09-26 | 2023-12-26 | 杭州孝道科技有限公司 | 检验正则表达式安全防御能力的方法及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738257A (zh) * | 2004-12-31 | 2006-02-22 | 北京大学 | 基于应用协议检测引擎的网络入侵检测系统和方法 |
CN110535881A (zh) * | 2019-09-27 | 2019-12-03 | 杭州九略智能科技有限公司 | 工业网络攻击流量检测方法及服务器 |
CN110753064A (zh) * | 2019-10-28 | 2020-02-04 | 中国科学技术大学 | 机器学习和规则匹配融合的安全检测系统 |
CN111492360A (zh) * | 2017-12-07 | 2020-08-04 | Qomplx有限责任公司 | 使用先进网络决策平台检测并减缓伪造认证对象攻击 |
KR102152338B1 (ko) * | 2019-11-19 | 2020-09-07 | 충북대학교 산학협력단 | Nidps 엔진 간의 룰 변환 시스템 및 방법 |
CN111988343A (zh) * | 2020-10-13 | 2020-11-24 | 之江实验室 | 一种远程设定规则并监测工业网络入侵的系统及方法 |
-
2020
- 2020-12-07 CN CN202011418331.9A patent/CN112532642B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738257A (zh) * | 2004-12-31 | 2006-02-22 | 北京大学 | 基于应用协议检测引擎的网络入侵检测系统和方法 |
CN111492360A (zh) * | 2017-12-07 | 2020-08-04 | Qomplx有限责任公司 | 使用先进网络决策平台检测并减缓伪造认证对象攻击 |
CN110535881A (zh) * | 2019-09-27 | 2019-12-03 | 杭州九略智能科技有限公司 | 工业网络攻击流量检测方法及服务器 |
CN110753064A (zh) * | 2019-10-28 | 2020-02-04 | 中国科学技术大学 | 机器学习和规则匹配融合的安全检测系统 |
KR102152338B1 (ko) * | 2019-11-19 | 2020-09-07 | 충북대학교 산학협력단 | Nidps 엔진 간의 룰 변환 시스템 및 방법 |
CN111988343A (zh) * | 2020-10-13 | 2020-11-24 | 之江实验室 | 一种远程设定规则并监测工业网络入侵的系统及方法 |
Non-Patent Citations (3)
Title |
---|
KIHO NAM;KEECHEON KIM: "A Study on SDN security enhancement using open source IDS/IPS Suricata", 《2018 INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGY CONVERGENCE (ICTC)》 * |
刘超玲; 张棪; 杨慧然; 吴宏晶: "基于DPDK的虚拟化网络入侵防御系统设计与实现", 《信息网络安全》 * |
张玫; 曾彬; 朱成威: "工控系统安全监测及溯源系统的设计与实现", 《信息技术与网络安全》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114205126A (zh) * | 2021-11-25 | 2022-03-18 | 北京国泰网信科技有限公司 | 一种工业系统中攻击检测的方法、设备及介质 |
CN114760126A (zh) * | 2022-04-08 | 2022-07-15 | 沈阳化工大学 | 一种工控网络流量实时入侵检测方法 |
CN114760126B (zh) * | 2022-04-08 | 2023-09-19 | 沈阳化工大学 | 一种工控网络流量实时入侵检测方法 |
CN115208682A (zh) * | 2022-07-26 | 2022-10-18 | 上海欣诺通信技术股份有限公司 | 一种基于snort的高性能网络攻击特征检测方法及装置 |
CN115208682B (zh) * | 2022-07-26 | 2023-12-12 | 上海欣诺通信技术股份有限公司 | 一种基于snort的高性能网络攻击特征检测方法及装置 |
CN116055191A (zh) * | 2023-02-02 | 2023-05-02 | 成都卓讯智安科技有限公司 | 一种网络入侵检测方法、装置、电子设备和存储介质 |
CN116055191B (zh) * | 2023-02-02 | 2023-09-29 | 成都卓讯智安科技有限公司 | 一种网络入侵检测方法、装置、电子设备和存储介质 |
CN117290853A (zh) * | 2023-09-26 | 2023-12-26 | 杭州孝道科技有限公司 | 检验正则表达式安全防御能力的方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112532642B (zh) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112532642B (zh) | 一种基于改进Suricata引擎的工控系统网络入侵检测方法 | |
CN113364752B (zh) | 一种流量异常检测方法、检测设备及计算机可读存储介质 | |
Yang et al. | RIHT: a novel hybrid IP traceback scheme | |
KR101868720B1 (ko) | 정규 표현식들에 대한 컴파일러 | |
US8065722B2 (en) | Semantically-aware network intrusion signature generator | |
US8990259B2 (en) | Anchored patterns | |
CN110417729B (zh) | 一种加密流量的服务与应用分类方法及系统 | |
US8272056B2 (en) | Efficient intrusion detection | |
CN112804253B (zh) | 一种网络流量分类检测方法、系统及存储介质 | |
CN110958231A (zh) | 基于互联网的工控安全事件监测平台及其方法 | |
Wang et al. | Using CNN-based representation learning method for malicious traffic identification | |
CN104022924A (zh) | 一种http通信内容检测的方法 | |
CN115426137A (zh) | 恶意加密网络流量检测溯源方法及系统 | |
Bando et al. | Range hash for regular expression pre-filtering | |
Han et al. | Data mining aided signature discovery in network-based intrusion detection system | |
Alsulami et al. | IoT Protocol-Enabled IDS based on Machine Learning | |
Le et al. | A proactive method of the webshell detection and prevention based on deep traffic analysis | |
de Sa Silva et al. | A neural network application for attack detection in computer networks | |
Weng et al. | Deep packet pre-filtering and finite state encoding for adaptive intrusion detection system | |
CN113382003B (zh) | 一种基于两级过滤器的rtsp混合入侵检测方法 | |
Lysenko et al. | Botnet Detection Approach Based on DNS. | |
CN116319095B (zh) | 一种高通量网络环境下的信标植入检测方法 | |
Raskovalov et al. | Investigation and rectification of NIDS datasets and standardized feature set derivation for network attack detection with graph neural networks | |
CN118540107A (zh) | 一种基于p4的会话数据包多模式字符串匹配方法与系统 | |
Ali et al. | Machine Learning-Based Intrusion Detection System for Encrypted Attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220520 |