System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于网络安全,具体涉及一种基于可编程交换机的多模式字符串流式匹配方法与系统。
技术介绍
1、多模式字符串匹配是网络入侵检测系统(intrusion detection system,ids)和防火墙等网络安全应用的关键技术,用于识别恶意软件签名、网络攻击模式等。这些应用程序提取数据包的有效负载,并针对负载进行多模式字符串匹配,从而判断数据包是否包含恶意信息。传统多模式字符串匹配方法主要在cpu(central processing unit,中央处理器)、gpu(graphics processing unit,图形处理器)、和fpga(field programmable gatearray,现场可编程门阵列)交换机上部署。
2、在cpu上部署的多模式字符串匹配方法已经被广泛研究和应用,主要是基于rk(rabin-karp)算法、ac(aho-corasick)算法、bmh(boyer-moore-horspool)算法的改进。然而,基于cpu的多模式字符串匹配在单个服务器内无法达到20gbps。而现有的gpu与fpga的多模式字符串匹配算法虽然可以通过硬件的并行性进行加速检测,但其吞吐量也难以超过100gbps。然而目前许多区域互联网服务提供商的业务流量汇聚点的网络带宽已经突破了400gps,网络设备提供商和组织也正在迈向tbps级别的时代。随着数据中心和高性能计算环境对网络带宽和处理能力的需求日益增长,传统的多模式匹配方法逐渐难以满足日益增长的性能需求。
3、为了能与高网络带宽要求的能力适
4、(programming protocol-independent packet processors,编程协议无关的数据包处理器)的多模式字符串匹配方法,如pps和bolt等,这类方法性能可以达到tbps以上。然而,这些方法目前也存在着一系列缺陷,尤其是它们无法部署在较复杂的网络环境中。在复杂网络环境条件下,数据包可能因为mtu(maximum transmission unit,最大传输单元)限制等原因被分片或分段,并且在网络传输的过程中还可能产生乱序等问题。目前,最先进的基于p4的pps、bolt等多模式字符串匹配方法均缺乏针对数据包分片场景的模式字符串检测处理,这会导致模式字符串检测精度的丢失。综上所述,现有的p4多模式字符串匹配方法还无法有效支持复杂场景下的多模式字符串匹配。
技术实现思路
1、为了解决上述问题,本专利技术提供了一种基于可编程交换机的多模式字符串流式匹配方法与系统。
2、第一方面,本专利技术实施例提供了一种基于可编程交换机的多模式字符串流式匹配方法,该方法包括以下步骤:
3、服务器生成并下发匹配规则条目;
4、p4网络设备接收所述匹配规则条目并从设备端口获取数据包,对数据包有效负载执行多模式字符串匹配并提取规则信息后,将提取的规则信息以及乱序数据包上传至服务器;
5、服务器的乱序数据包处理模块对接收的乱序数据包补充nfa状态转移并提取规则信息,服务器的规则提取模块根据接收到的规则信息反向提取对应模式信息,并将提取结果上传至数据库。
6、在一些可能的实施方式中,所述服务器生成并下发匹配规则,包括以下步骤:
7、启动并初始化服务器系统,根据匹配需求以及数据库信息表的内容,在服务器中构建或修改状态表;
8、基于所述状态表,向p4网络设备生成并下发对应的匹配规则条目;
9、所述状态表的每个状态表信息条目包含以下字段:三元组id(tuple id)、nfa状态转移条目id(nfa transition entry id)、会话规则条目id(session rule entry id)、时间戳(change time)、启用状态(state);
10、下发的所述匹配规则条目包括以下条目:nfa状态转移条目、规则条目、会话规则条目。
11、在一些可能的实施方式中,若需要变更下发的匹配规则条目,则修改所述状态表或者数据库信息表;根据变更后的所述状态表生成对应的匹配规则条目后,再将所述匹配规则条目下发至p4网络设备。
12、在一些可能的实施方式中,所述若需要变更下发的匹配规则条目,则修改所述状态表或者数据库信息表,包括以下可执行操作:
13、若需要修改某一匹配规则条目,则通过用户控制端对状态表中匹配规则条目对应的状态表信息条目表项进行修改;若修改后的所述状态表信息条目中的启用状态字段被设置为“启用(on)”,服务器生成并下发状态表信息条目对应的匹配规则条目;
14、若需要删除某一匹配规则条目,则通过用户控制端对所述状态表中对应的状态表信息条目进行删除;若删除的状态表信息条目已经启用,服务器则相应生成并向p4网络设备下发空条目;
15、若需要增加新的匹配规则条目,且数据库信息表已存在对应规则信息,则根据数据库信息表的规则信息直接在状态表中添加对应的表项;若数据库信息表中不存在待增加的匹配规则信息,则需要在数据库信息表中新增该规则信息,并将对应各匹配规则条目的id配置增加到状态表中,最后将状态表启用状态字段设置为“关闭(off)”;
16、状态表增加新的状态表信息条目过程中,当状态表条目数等于阈值n时,向用户上报所述状态表已满,并由用户选择:放弃条目增加操作,或者先删除其他状态表信息条目后,再执行增加操作。
17、在一些可能的实施方式中,所述p4网络设备接收所述匹配规则条目并从设备端口获取数据包,对数据包有效负载执行多模式字符串匹配并提取规则信息后,将提取的规则信息以及乱序数据包上传至服务器,包括以下步骤:
18、p4网络设备从入端口接收数据包,若所述数据包不是udp/tcp数据包,则直接从转发端口转发所述数据包;
19、若所述数据包为udp/tcp数据包,则镜像所述数据包至再循环端口,再从转发端口转发所述数据包;
20、再循环端口接收到再循环数据包时,所述p4网络设备通过哈希函数计算该数据包的五元组哈希结果,并由所述哈希结果读取寄存器中的pir信息;如图11所示,所述pir记录内容包括:五元组索引(5-tuple hash)、ip偏移(ip offset)、tcp序号(tcp seq)、nfa状态(nfa state)、模式位图(pattern bitmaps)、单向流规则id(unidirectional rule id);
21、若所述再循环数据包为udp数据包,p4网络设备则通过pir中ip偏移判断所述在循环数据包是否为分片数据包;若所述再循环数据包为tcp数据包,p4网络设备通过tcp序号判断所述再循环数据包是否分段;
22、若所述再循环数据包为分片数据包或者分段数据包,所述p4网络设备再判断数据包是否为乱序数据包;
23、若所述再循环数据包为乱序数据包,p4网络设备则将所述再循本文档来自技高网...
【技术保护点】
1.一种基于可编程交换机的多模式字符串流式匹配方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于可编程交换机的多模式字符串流式匹配方法,其特征在于,所述服务器生成并下发匹配规则,包括以下步骤:
3.根据权利要求2所述的一种基于可编程交换机的多模式字符串流式匹配方法,
4.根据权利要求3所述的一种基于可编程交换机的多模式字符串流式匹配方法,其特征在于,所述若需要变更下发的匹配规则条目,则修改所述状态表或者数据库信息表,包括以下可执行操作:
5.根据权利要求1所述的一种基于可编程交换机的多模式字符串流式匹配方法,
6.根据权利要求5所述的一种基于可编程交换机的多模式字符串流式匹配方法,其特征在于,所述若所述再循环数据包不是乱序数据包,则对所述再循环数据包的有效负载执行多模式字符串匹配算法,包括以下步骤:
7.根据权利要求6所述的一种基于可编程交换机的多模式字符串流式匹配方法,其特征在于,所述若所述再循环数据包不是乱序数据包,则对所述再循环数据包的有效负载执行多模式字符串匹配算法,还包括以下步骤:<
...【技术特征摘要】
1.一种基于可编程交换机的多模式字符串流式匹配方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于可编程交换机的多模式字符串流式匹配方法,其特征在于,所述服务器生成并下发匹配规则,包括以下步骤:
3.根据权利要求2所述的一种基于可编程交换机的多模式字符串流式匹配方法,
4.根据权利要求3所述的一种基于可编程交换机的多模式字符串流式匹配方法,其特征在于,所述若需要变更下发的匹配规则条目,则修改所述状态表或者数据库信息表,包括以下可执行操作:
5.根据权利要求1所述的一种基于可编程交换机的多模式字符串流式匹配方法,
6.根据权利要求5所述的一种基于可编程交换机的多模式字符串流式匹配方法,其特征在于,所述若所述再循环数据包不是乱序数据包,则对所述再循环数据包的有效负载执行多模式字符串匹配算法,包括以...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。