掌桥专利:专业的专利平台
掌桥专利
首页

一种基于坐标系的攻击检测规则匹配的方法及装置

文献发布时间:2024-01-17 01:14:25


一种基于坐标系的攻击检测规则匹配的方法及装置

技术领域

本发明涉及工控网络安全技术领域,尤其涉及一种基于坐标系的攻击检测规则匹配的方法及装置。

背景技术

攻击检测是网络安全领域常用的一种安全手段,它的作用是通过匹配规则,发现威胁,并进行告警,攻击检测的主要难点之一就是规则数据很多,匹配效率慢,对于网络延时要求较高的领域会有影响。在规则匹配中,通常是需要查找网络数据报文中是否包含某些特定的数据,传统的方法是针对每条规则中的特征数据对当前接收到的报文进行匹配,如果规则数据很多比如几十万条,那么匹配一轮需要较长的时间。基于此,本发明提出一种基于坐标系的攻击检测规则匹配的方法及装置,提升规则匹配效率,可以大幅提升匹配效率。

发明内容

本发明提供了一种基于坐标系的攻击检测规则匹配的方法,包括:

创建一个直角坐标系,X轴为规则特征数据的长度,Y轴为数据的偏移,单位为字节;

读取规则文件,依次对规则文件中的每条规则执行如下操作:根据每条规则的偏移量和数据长度对应到直角坐标系中点(X,Y),对每条规则的特征数据进行哈希计算,将哈希结果存入哈希桶,并将其对应的坐标Y也存入哈希桶,汇总哈希桶得到一个哈希表T;将直角坐标系的点进行X轴投射,得到一个投射数组E;

响应于接收到报文,从报文的首个字节开始,按照数组E的所有值长度进行分割,分割的数据组成一个数组元素,对分割的数据进行哈希计算得到哈希值数组H;

根据哈希值数组H中的哈希值在哈希表T中进行查找,如果能够命中,则把数据的长度数值和当前命中的哈希桶的Y坐标进行对比,如果相等,则比对真实数据是否完全相同,如果完全相同就找到了对应的规则,匹配成功。

如上所述的一种基于坐标系的攻击检测规则匹配的方法,其中,设定规则特征数据的约束条件,即特征数据有固定的偏移和长度。

如上所述的一种基于坐标系的攻击检测规则匹配的方法,其中,令字节位N=1,对报文的有效数据进行分割,分割方式为从有效数据的第N个字节开始,按着数组E的数值进行,即第1次分割起始位置为第1个字节,分割长度分别对应数组E的所有值。

如上所述的一种基于坐标系的攻击检测规则匹配的方法,其中,如果不能命中或与哈希桶Y坐标对比不相等或与真实数据不完全相同,则说明哈希表T里没有对应的规则,那么匹配失败,令N=N+1继续返回进行匹配。

本发明还提供一种基于坐标系的攻击检测规则匹配的装置,包括:

直角坐标系创建模块,用于创建一个直角坐标系,X轴为规则特征数据的长度,Y轴为数据的偏移,单位为字节;

哈希表构建模块,用于读取规则文件,依次对规则文件中的每条规则执行如下操作:根据每条规则的偏移量和数据长度对应到直角坐标系中点(X,Y),对每条规则的特征数据进行哈希计算,将哈希结果存入哈希桶,并将其对应的坐标Y也存入哈希桶,汇总哈希桶得到一个哈希表T;将直角坐标系的点进行X轴投射,得到一个投射数组E;

报文处理模块,用于在响应于接收到报文后,从报文的首个字节开始,按照数组E的所有值长度进行分割,分割的数据组成一个数组元素,对分割的数据进行哈希计算得到哈希值数组H;

规则匹配模块,用于根据哈希值数组H中的哈希值在哈希表T中进行查找,如果能够命中,则把数据的长度数值和当前命中的哈希桶的Y坐标进行对比,如果相等,则比对真实数据是否完全相同,如果完全相同就找到了对应的规则,匹配成功。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于被处理器执行上述任一项所述的一种基于坐标系的攻击检测规则匹配的方法。

本发明实现的有益效果如下:本发明提出的基于坐标系的攻击检测规则匹配的方法从收到的报文本身进行分析,不需要逐条去匹配,可以大大提升匹配效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种基于坐标系的攻击检测规则匹配的方法流程图;

图2是本发明实施例提供的一种基于坐标系的攻击检测规则匹配的装置示意图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

如图1所示,本发明实施例一提供一种基于坐标系的攻击检测规则匹配的方法,包括:

步骤110、创建一个直角坐标系,用X轴和Y轴代表规则特征数据的长度和数据的偏移;

可选地,使用X轴表示规则特征数据的长度,Y轴表示数据的偏移,单位为字节;另外也可以使用Y轴表示规则特征数据的长度,X轴表示数据的偏移;上述两种情况所达到的技术效果相同。

步骤120、读取规则文件,依次对规则文件中的每条规则执行如下操作:根据每条规则的偏移量和数据长度对应到直角坐标系中点(X,Y),对每条规则的特征数据进行哈希计算,将哈希结果存入哈希桶,并将其对应的坐标Y也存入哈希桶,汇总哈希桶得到一个哈希表T;将直角坐标系的点进行X轴投射,得到一个投射数组E;

其中,设定规则特征数据的约束条件,即特征数据有固定的偏移和长度。

由于规则数据的长度大部分都是几个字节,所以对坐标系中的数据进行X轴的投影,得到一个投影的数组E。而这个数据E一般情况会很小,大部分规则的特征数据都不会超过10个字节。

步骤130、响应于接收到报文,从报文的首个字节开始,按照数组E的所有值长度进行分割,分割的数据组成一个数组元素,对分割的数据进行哈希计算得到哈希值数组H;

具体地,令字节位N=1(即从首个字节开始);

对报文的有效数据进行分割,分割方式为从有效数据的第N个字节开始,按着数组E的数值进行,例如:第1次分割起始位置为第1个字节,分割长度分别对应数组E的所有值,并对分割的数据进行哈希计算得到一个数组元素和数组E相同的哈希值数组H。

步骤140、根据哈希值数组H中的哈希值在哈希表T中进行查找,如果能够命中,则把数据的长度数值和当前命中的哈希桶的Y坐标进行对比,如果相等,则比对真实数据是否完全相同,如果完全相同就找到了对应的规则,匹配成功;若任意一个条件不能满足,则匹配失败。

对H里面的哈希值在步骤120生成的哈希表T进行查找,如果命中,则把数据的长度数值和当前命中的哈希桶的Y坐标进行对比,如果相等,那么再比对一下真实数据是否完全相同,如果完全相同就找到了对应的规则,匹配结束;如果不能命中或与哈希桶Y坐标对比不相等或与真实数据不完全相同,则说明哈希表T里没有对应的规则,那么匹配失败,令N=N+1继续返回步骤130进行匹配。

实施例二

参见图2,本发明实施例二提供一种基于坐标系的攻击检测规则匹配的装置,包括:

直角坐标系创建模块21,用于创建一个直角坐标系,X轴为规则特征数据的长度,Y轴为数据的偏移,单位为字节;

哈希表构建模块22,用于读取规则文件,依次对规则文件中的每条规则执行如下操作:根据每条规则的偏移量和数据长度对应到直角坐标系中点(X,Y),对每条规则的特征数据进行哈希计算,将哈希结果存入哈希桶,并将其对应的坐标Y也存入哈希桶,汇总哈希桶得到一个哈希表T;将直角坐标系的点进行X轴投射,得到一个投射数组E;

报文处理模块23,用于在响应于接收到报文后,从报文的首个字节开始,按照数组E的所有值长度进行分割,分割的数据组成一个数组元素,对分割的数据进行哈希计算得到哈希值数组H;

规则匹配模块24,用于根据哈希值数组H中的哈希值在哈希表T中进行查找,如果能够命中,则把数据的长度数值和当前命中的哈希桶的Y坐标进行对比,如果相等,则比对真实数据是否完全相同,如果完全相同就找到了对应的规则,匹配成功。

本发明利用了匹配规则数据的数据长度有限的特点,通过分割当前需要匹配的数据来进行快速匹配,此方法可以大大降低匹配的次数,例如一个100个字节长的有效数据,数据规则的长度种类有10种,如果规则有10万条,那么逐条匹配需要匹配10万次,而本发明只需要匹配1000次。如果规则数据的规模继续提升,例如50万条,那么现有技术逐条匹配需要匹配50万次,而本发明还是只需要1000次,匹配效率大大提升。

与上述实施例对应的,本发明实施例提供一种基于坐标系的攻击检测规则匹配的装置,包括:至少一个存储器和至少一个处理器;

存储器用于存储一个或多个程序指令;

处理器,用于运行一个或多个程序指令,用以执行一种基于坐标系的攻击检测规则匹配的方法。

与上述实施例对应的,本发明实施例提供一种计算机可读存储介质,计算机存储介质中包含一个或多个程序指令,一个或多个程序指令用于被处理器执行一种基于坐标系的攻击检测规则匹配的方法。

本发明所公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述的一种基于坐标系的攻击检测规则匹配的方法。

在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。

存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。

其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。

易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。

本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

技术分类

06120116078739