CN117857109A - 数据过滤方法、装置、系统及存储介质 - Google Patents

数据过滤方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN117857109A
CN117857109A CN202311691397.9A CN202311691397A CN117857109A CN 117857109 A CN117857109 A CN 117857109A CN 202311691397 A CN202311691397 A CN 202311691397A CN 117857109 A CN117857109 A CN 117857109A
Authority
CN
China
Prior art keywords
filtering
data
filtered
determining
network
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.)
Pending
Application number
CN202311691397.9A
Other languages
English (en)
Inventor
杨术
吴欣泽
崔来中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen University
Original Assignee
Shenzhen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen University filed Critical Shenzhen University
Priority to CN202311691397.9A priority Critical patent/CN117857109A/zh
Publication of CN117857109A publication Critical patent/CN117857109A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及通信安全领域,尤其涉及数据过滤方法、装置、系统及存储介质。该方法包括:获取待过滤数据的五元组信息;将所述待过滤数据的五元组信息的过滤任务分配至两个以上的网络设备进行过滤操作;根据两个以上的所述网络设备的过滤结果,确定所述待过滤数据的过滤结果。将数据的五元组信息的过滤任务分配至两个以上的网络设备分别进行过滤,可以减少每个网络设备的过滤负载,并使整个网络的负载得到均衡,从而能够更有效的应对高速数据流的数据过滤要求。

Description

数据过滤方法、装置、系统及存储介质
技术领域
本申请涉及通信安全领域,尤其涉及数据过滤方法、装置、系统及存储介质。
背景技术
随着现代网络规模的扩大和IP欺骗的日益严重,如何平衡流量过滤的安全性和性能已成为一个关键挑战。针对DDoS和IP欺骗问题,已有许多解决方案,包括如基于路由器维护的黑名单来过滤恶意流量。
然而,由于黑名单的大小急剧增加,使得过滤规模持续增长,且安全需求也有所增加。随着存储的黑名单数量的增加,以及防御策略的复杂化,会使得设备的负载过高,不能有效的应对高速数据流的数据过滤要求。
发明内容
有鉴于此,本申请实施例提供了一种数据过滤方法、装置、系统及存储介质,以解决现有技术中由于网络规模的扩大和IP欺骗的盛行,黑名单数量增加,防御策略复杂化,使得设备的负载过高,不能有效的应对高速数据流的数据过滤要求的问题。
本申请实施例的第一方面提供了一种数据过滤方法,所述方法包括:
获取待过滤数据的五元组信息;
将所述待过滤数据的五元组信息的过滤任务分配至两个以上的网络设备进行过滤操作;
根据两个以上的所述网络设备的过滤结果,确定所述待过滤数据的过滤结果。
结合第一方面,在第一方面的第一种可能实现方式中,将所述待过滤数据的五元组信息的过滤任务分配至两个以上的网络设备进行过滤操作,包括:
获取数据平面的所述两个以上的网络设备的网络拓扑结构;
根据所述网络拓扑结构,结合所述网络设备的容量利用率,确定所述五元组信息的过滤任务在各网络设备的负载分配信息;
通过控制平面向所述数据平面发送负载分配信息,并根据所述负载分配信息确定所述网络设备的过滤任务。
结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,根据所述网络拓扑结构,结合所述网络设备的容量利用率,确定所述五元组信息的过滤任务在各网络设备的负载分配信息,包括:
根据所述五元组信息生成待过滤的比特位序列,根据所述网络拓扑结构获得生成树;
对所述生成树的节点所分配的比特位序列的数量进行遍历,确定各生成树的节点分配方案中的最大容量利用率;
根据最大利用率最小的分配方案确定所述网络设备的负载分配信息。
结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,在对所述生成树的节点所分配的比特位序列的数量进行遍历,确定各生成树的节点分配方案中的最大容量利用率之前,所述方法包括:
根据预先设定的过滤操作类型与操作成本的对应关系,确定所述网络设备中的待过滤的比特位序列的负载;
根据所述比特位序列的负载和所述网络设备的容量,确定所述网络设备的容量利用率。
结合第一方面的第二种可能实现方式,在第一方面的第四种可能实现方式中,对所述生成树的节点所分配的比特位序列的数量进行遍历,包括:
当所述网络设备为生成树中的叶子节点时,根据该叶子节点当前遍历的比特位数量确定所述叶子节点的负载;
当所述网络设备所在节点不是叶子节点时,则根据所述节点当前遍历的比特位数量作为所述节点和所述子节点的比特位数量和,遍历所述节点和所述节点下的子节点。
结合第一方面,在第一方面的第五种可能实现方式中,根据两个以上的所述网络设备的过滤结果,确定所述待过滤数据的过滤结果,包括:
对五元组黑名单集按照预定规则进行拆分,得到五元组黑名单包括的多个字段,根据多个黑名单的相同位置的字段创建字段表;
获取所述待过滤数据与所述字段表匹配的目标字段,根据所述目标字段创建布隆过滤器;
对多个字段对应的布隆过滤器执行按位与操作,根据按位与操作计算后的布隆过滤器获得第一交集;
确定字段表与待过滤数据匹配的目标字段最少的第一目标字段集,通过所述第一交集检索所述第一目标字段集中的目标字段,得到第二目标字段集;
根据所述第二目标字段集和所述五元组黑名单集中的协议号进行过滤校验,确定所述待过滤数据的过滤结果。
结合第一方面的第五种可能实现方式,在第一方面的第六种可能实现方式中,根据所述第二目标字段集和所述五元组黑名单集中的协议号进行过滤校验,确定所述待过滤数据的过滤结果,包括:
根据所述第二目标字段集中的黑名单序号查找对应的黑名单数据;
将查找的黑名单数据中的协议号与所述待过滤数据的协议号进行比较,根据比较结果对所述第二目标字段集进行筛选,得到所述待过滤数据的过滤结果。
本申请实施例的第二方面提供了一种数据过滤装置,所述装置包括:
信息获取单元,用于获取待过滤数据的五元组信息;
任务分配单元,用于将所述待过滤数据的五元组信息的过滤任务分配至两个以上的网络设备进行过滤操作;
过滤结构确定单元,用于根据两个以上的所述网络设备的过滤结果,确定所述待过滤数据的过滤结果。
结合第二方面,在第二方面的第一种可能实现方式中,所述任务分配单元包括:
拓扑结构获取子单元,用于获取数据平面的所述两个以上的网络设备的网络拓扑结构;
负载分配子单元,用于根据所述网络拓扑结构,结合所述网络设备的容量利用率,确定所述五元组信息的过滤任务在各网络设备的负载分配信息;
分配信息发送子单元,用于通过控制平面向所述数据平面发送负载分配信息,并根据所述负载分配信息确定所述网络设备的过滤任务。
结合第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述负载分配子单元包括:
生成模块,用于根据所述五元组信息生成待过滤的比特位序列,根据所述网络拓扑结构获得生成树;
遍历模块,用于对所述生成树的节点所分配的比特位序列的数量进行遍历,确定各生成树的节点分配方案中的最大容量利用率;
负载分配信息确定模块,用于根据最大利用率最小的分配方案确定所述网络设备的负载分配信息。
结合第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,所述装置包括:
负载确定单元,用于根据预先设定的过滤操作类型与操作成本的对应关系,确定所述网络设备中的待过滤的比特位序列的负载;
容量利用率确定单元,用于根据所述比特位序列的负载和所述网络设备的容量,确定所述网络设备的容量利用率。
结合第二方面的第二种可能实现方式,在第二方面的第四种可能实现方式中,所述遍历模块包括:
叶子节点遍历子模块,用于当所述网络设备为生成树中的叶子节点时,根据该叶子节点当前遍历的比特位数量确定所述叶子节点的负载;
非叶子节点遍历子模块,用于当所述网络设备所在节点不是叶子节点时,则根据所述节点当前遍历的比特位数量作为所述节点和所述子节点的比特位数量和,遍历所述节点和所述节点下的子节点。
结合第二方面,在第二方面的第五种可能实现方式中,所述过滤结果确定单元包括:
拆分子单元,用于对五元组黑名单集按照预定规则进行拆分,得到五元组黑名单包括的多个字段,根据多个黑名单的相同位置的字段创建字段表;
过滤器创建子单元,用于获取所述待过滤数据与所述字段表匹配的目标字段,根据所述目标字段创建布隆过滤器;
第一交集确定子单元,用于对多个字段对应的布隆过滤器执行按位与操作,根据按位与操作计算后的布隆过滤器获得第一交集;
第二目标字段集确定子单元,用于确定字段表与待过滤数据匹配的目标字段最少的第一目标字段集,通过所述第一交集检索所述第一目标字段集中的目标字段,得到第二目标字段集;
过滤结果确定子单元,用于根据所述第二目标字段集和所述五元组黑名单集中的协议号进行过滤校验,确定所述待过滤数据的过滤结果。
结合第二方面的第五种可能实现方式,在第二方面的第六种可能实现方式中,所述校验子单元包括:
查找模块,用于根据所述第二目标字段集中的黑名单序号查找对应的黑名单数据;
过滤结果确定模块,用于将查找的黑名单数据中的协议号与所述待过滤数据的协议号进行比较,根据比较结果对所述第二目标字段集进行筛选,得到所述待过滤数据的过滤结果。
本申请实施例的第三方面提供了数据过滤系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例在执行数据过滤时,先获取待过滤数据的五元组信息,将五元组信息的过滤任务可以按比特位分配至两个以上的网络设备分别进行过滤,可以减少每个网络设备的过滤负载,并使整个网络的负载得到均衡,从而能够更有效的应对高速数据流的数据过滤要求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据过滤方法的实施场景示意图;
图2是本申请实施例提供的一种数据过滤方法的实现流程示意图;
图3是本申请实施例提供的一种数据过滤的处理流程示意图;
图4是本申请实施例提供的一种确定网络设备的过滤任务的实现流程示意图;
图5是本申请实施例提供的一种确定网络设备的负载分配信息方法的实现流程示意图;
图6是本申请实施例提供的一种确定过滤结果的示意图;
图7是本申请实施例提供的一种数据过滤装置的示意图;
图8是本申请实施例提供的一种数据过滤系统的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
针对DDoS(英文全称为Distributed Denial of Service,中文全称为分布式拒绝服务)和IP欺骗问题,已有许多解决方案。如众所周知的基于转发表的uRPF(英文全称为Unicast Reverse Path Forwarding,中文全称为单播反向路径转发)技术,但是这种解决方案不适用于非对称路径。NetHCF(英文全称为Network Hop-Count Filteringl,中文全称为网络跳数过滤)是一种基于跳数的过滤方案,提议使用缓存或散列来存储过滤状态,尽管这种方法能够在线速度上过滤被欺骗的IP流量,但在流量到达终端之前无法进行过滤。
随着现代网络规模的扩大和IP欺骗的日益严重,黑名单的大小急剧增加,使得过滤规模持续增长,且安全需求也有所增加。目前的数据包过滤方通常存在以下问题:1)成本高昂:基于硬件的过滤方案(如中间盒)单位过滤成本十分高;2)灵活性低:基于硬件的过滤方案通常是使用的是定制硬件,无法应对网络攻击的快速变化;3)高延迟:基于软件的过滤方案(如部署商业服务器),采用的普通的桌面级CPU无法满足高速数据流的过滤要求;4)安全性:大多数方案是基于源IP地址过滤的,安全性不够高;5)存储资源受限:随着要存储的黑名单数量越来越多以及防御策略的复杂化,黑名单的存储空间也面临瓶颈,导致单个设备的处理负载过高。
本申请实施例为优化上述提到的问题,在硬件上选择可编程交换机过滤恶意流量。与传统的CPU相比,可编程交换机具有更快、更灵活的优点。可编程交换机的成本比传统的基于硬件的过滤方案更低,具备高灵活和高处理性能的特性。本申请可以采用P4编程语言重新编程数据平面设备的数据包处理流水线,使得整个网络可以分布式协同过滤恶意流量,使得每个交换机的处理负载更低,所需要的存储资源也更少,另外,本申请采用数据包的五元组信息进行过滤,使得网络安全性更高。
图1为本申请实施例提供的一种数据过滤方法的实施场景示意图。如图1所示,防火墙右侧的网络节点,即域内网络设备形成一个用于过滤恶意流量的集体防御系统。该集体防御系统包括可编程交换机和资源编排服务器。其中,多个可编程交换机属于数据平面的设备,可用于根据资源调度服务器下发的过滤任务分配信息,确定数据平面中的设备需要过滤的任务执行过滤操作。资源编排服务器可用于根据数据平面的设备的网络拓扑结构,计算各个网络设备(可编程交换机)的过滤任务(负载),使得网络设备的负载均衡。资源调度服务器可作为系统的控制平面。控制平面可与数据平面通信,控制平面可接收数据平面的过滤结果和待过滤的任务信息,并可将资源编排服务器所确定的过滤任务分配信息下发至数据平面。
合法客户端和非法客户端发送的数据,经过防火墙后,通过资源编排服务器将待过滤的数据的五元组信息分配至数据平面中的各个网络设备进行数据过滤,确定待过滤数据的合法性。
图2为本申请实施例提供的一种数据过滤方法的实现流程示意图。详述如下:
在S201中,获取待过滤数据的五元组信息。
待过滤数据可以包括互联网数据、局域网内的数据等。待过滤数据所传送的目标位置可以包括如WEB服务器、网络服务器(包括如DNS服务器、FTP服务器、游戏服务器等)、云服务器以及基础设施服务器(包括如电力系统、交通控制系统等)等。
待过滤数据中的五元组信息,可以包括源IP地址,目的IP地址,源端口号,目的端口号和协议号。其中,源IP地址和目的IP地址可以包括两种不同版本的互联网协议,分别为IPv4和IPv6。IP协议不同时,五元组信息中包括的比特位的数量也不相同。比如IPv4的IP地址包括32个比特位,IPv6的IP地址包括128个比特位。
根据所获取的待过滤数据的五元组信息,可以将五元组信息的比特位依次组合,得到待过滤数据的比特位序列。比如,组合得到的比特位序列可以为:b0,b1…bn,其中,n为比特位序列的长度。假设IP地址为32位的IP地址,端口号的长度为16位,协议号的长度为8位,则比特位序列的长度可以为:32*2+16*2+8=104位。
在S202中,将所述待过滤数据的五元组信息的过滤任务分配至两个以上的网络设备进行过滤操作。
将待过滤的数据的五元组信息的过滤任务分配至两个以上的网络设备时,可以根据五元组信息确定比特位序列,根据控制平面下发的负载分配信息,对比特位序列进行拆分,得到多个比特位段。将拆分的比特位段分配至数据平面中的网络设备。
其中,负载即为网络设备需要进行过滤计算的比特位数。
在对五元组信息确定的比特位序列进行分配时,可以根据源IP地址、目的IP地址、源端口号、目的端口号和协议号进行划分。也可以不必局限于源IP地址、目的IP地址、源端口号、目的端口号和协议号的划分,可以对五元组信息构成的比特位序列中,将源IP地址和目的IP地址构成的比特位序列,在任意两个比特位之间进行划分,得到分配给网络设备进行过滤计算任意长度的比特位段。
比如图3所示,客户端A和客户端B通过网络向客户端C发送数据。客户端B的源IP地址和源端口号是伪造的。客户端B发送数据的五元组信息记录在黑名单中。在客户端C所在的局域网中设定有用于过滤计算的四台网络设备(可以为交换机等设备),分别为s1、s2、s3和s4。其中,根据资源编排服务器所计算的负载分配信息,s1用于检查源IP地址的前24位,s2用于检查源IP地址的后8位(该IP地址一共32位)和目的IP地址,s3用于检查源端口号、目的端口号和协议号。在网络设备对五元组信息进行过滤检查时,如果待过滤数据是恶意的,比如客户端B发送的数据,则会在经过前三个网络设备检查时被标记,在数据到达s4时,对标记的数据做检查和确认。由于前三个设备使用布隆过滤器进行筛选可能存在一定概率误判,可以通过s4查找匹配的黑名单,读取匹配的黑名单与待过滤数据进行二次确认,如果读取的黑名单与待过滤数据的五元组信息匹配,则被丢弃该待过滤数据。客户端A发送的数据,由于其五元组信息不在黑名单中,则会顺利到达客户端C。
本申请实施例中的资源编排服务器确定各个网络设备的负载分配信息时,可以如图4所示,包括:
在S401中,获取数据平面的所述两个以上的网络设备的网络拓扑结构。
本申请实施例可以根据网络设备的连接关系,确定用于数据过滤的数据平面的网络设备的网络拓扑结构。
由于待过滤数据进入数据平面的网络设备、数据平面输出时网络设备可以根据五元组信息确定,因此,可以根据待过滤数据的输入设备、输出设备,确定待过滤数据在数据平面的过滤路径。所确定的过滤路径可以为最短路径,也可以不是最短路径。在输入设备与输出设备之间的路径包括两个以上时,可以遍历两个以上的路径所对应的最大容量利用率为最小时所对应的路径,作为该数据平面的过滤计算的路径,路径中的节点即为网络拓扑结构中的网络设备。
在S402中,根据所述网络拓扑结构,结合所述网络设备的容量利用率,确定所述五元组信息的过滤任务在各网络设备的负载分配信息。
在确定了网络设备的网络拓扑结构之后,可以根据输入设备和输出设备确定网络拓扑结构包括的过滤路径。可以将待过滤数据的五元组信息的过滤任务分配至网络拓扑结构中的各个节点,在网络设备的最大容量利用率为最小值的情况下,确定五元组信息的过滤任务的负载分配信息,即过滤任务分配信息。由于最大容量利用率最小,使得系统中的每个网络设备处理的过滤任务或负载均衡,从而能够有效的使过滤系统满足大量数据的过滤要求。
基于网络拓扑结构和容量利用率确定网络设备的负载分配信息的实现流程可以如图5所示,包括:
在S501中,根据所述五元组信息生成待过滤的比特位序列,根据所述网络拓扑结构获得生成树。
其中,可以将五元组信息中包括的比特位,按照预定的顺序依次连接,得到比特位序列。比如,当IP地址为32位的IPv4的IP地址,端口号为16位的端口号,协议号为8位的协议号,按照源IP地址、目的IP地址、源端口号、目的端口号和协议号的顺序,依次连接得到104位比特位序列。
在确定数据在网络设备中的输入设备和输出设备后,可以得到一条或两条以上的过滤路径。对于任意过滤路径,可以结合网络拓扑结构,得到网络拓扑结构对应的生成树。比如,可以将输入设备作为根节点,输出设备作为叶子节点,根据网络设备之间的连接关系,得到网络拓扑结构对应的生成树。
在S502中,对所述生成树的节点所分配的比特位序列的数量进行遍历,确定各生成树的节点分配方案中的最大容量利用率。
在对生成树中的节点进行遍历时,可以先将生成树中的节点按先序遍历序列推入一个堆栈中,根据堆栈的先入后出的数据存取特点,按序为节点分配过滤任务,使得各节点遍历该节点可能的过滤任务。在遍历不同过滤任务的过程中,对于任意一种不同数值的过滤任务的分配方式,对应为一种过滤任务的分配方案。
比如,在第一个节点分配过滤任务时,可以将0至最大比特位序列长度(比如为104位)之间的任意数值的比特位过滤任务分配给第一个节点。根据第一个节点分配的过滤任务,确定第二个节点可能需要处理的过滤任务。比如,第一个节点分配的过滤任务的比特位数量为a,则第二个节点可能分配处理的过滤任务的最长比特位数为104-a,可以在0至104-a中的任意数值的比特位过滤任务分配给第二个节点。依此类推,直到分配至最后一个节点。根据每个节点可能的负载分配信息进行组合,即可得到所遍历的所有可能的负载分配信息。事实上,根据堆栈先入后出的数据存取特点,叶子节点最先被遍历,负载分配顺序为从下往上遍历,时间复杂度很低,与设备数量呈线性关系。该计算过程的时间复杂度可以表示为:其中/>表示比特位序列的长度,取决于IP版本,通常是一个固定值,O(·)表示复杂度计算函数,|V|表示设备的数量。由此可知,该本申请实施例中的数据过滤过程的时间复杂度与结点数呈线性关系,适合部署在大规模网络中。
在可能的实现方式中,为了提升负载分配信息的确定效率,可以设定每个节点分配的比特位过滤任务应当小于该网络设备的容量。网络设备的容易受网络设备的CPU资源限制,为了能够以线速度处理数据,每个网络设备在满足线速度处理要求下,执行过滤操作的次数有限,可以根据网络设备的CPU等资源信息确定网络设备的容量。通过网络设备的容易限制,可以减少影响网络设备数据处理速度的分配方案的计算,从而提高负载分配信息的确定效率。
在确定网络设备或节点可能分配的过滤任务或比特位时,可以根据网络设备的节点特征,相应的确定该节点的负载分配信息。
比如,当节点为叶子节点时,则可以将需要遍历的过滤任务或比特位,直接分配至该节点。当节点不是叶子节点时,则可以根据该节点所包括的子节点,共同确定该节点需要遍历的过滤任务或比特位。比如节点X1不是叶子节点,且节点X1下包括节点X2和X3时,则可以将该节点需要遍历的过滤任务或比特位,按照可能的组合方式,分配至节点X1、X2和X3,从而满足对该节点及子节点所需要遍历的过滤任务或比特位的要求。
在S503中,根据最大利用率最小的分配方案确定所述网络设备的负载分配信息。
在本申请实施例中,网络设备或节点的利用率,为所述网络设备所分配的负载与所述网络设备的容量的商。即:利用率=负载/容量。当使用比特位来表示网络设备的负载时,由于不同类型的比特位执行过滤操作的成本不同,为了能够准确的表示网络设备的负载,可以确定不同类型的比特位的操作成本,根据操作成本与比特位数量的乘积确定网络设备的负载。
比如,可以设表示设备v必须检查IP字段时每一个比特位操作的成本,/>表示设备v必须检查端口号字段时每一次操作的成本,/>表示设备v必须检查协议号字段时每一次操作的成本。例如,我们假设/>设fd(v)为设备v的容量利用率函数,对于入口设备d,其容量利用率表示为:其中λ1和λ2分别表示是否分配了过滤端口号和协议号的任务,1表示已分配,0表示未分配。/>表示设备v应当检查来自设备d的流量的比特位序列,/>表示应当检查来自设备d的IP字段的位的有序集合。
通过遍历各个节点可能的负载,通过排列组合得到多个分配方案,可以获取各个分配方案中的节点对应的容量利用率,并建立分配方案与节点的最大容量利用率的对应关系。根据每个分配方案与最大容量利用率的对应关系,选择最大容量利用率最小的分配方案,确定资源编排服务器的负载分配信息。
在可能的实现方式中,也可以不需要使用生成树,直接对各个网络设备的过滤任务进行遍历,根据每个网络设备分配的比特位,排列组合得到多个分配方案,确定每个分配方案中的最大容量利用率,选择最大容量利用率最小的分配方案,确定负载分配信息。
在S403中,通过控制平面向所述数据平面发送负载分配信息,并根据所述负载分配信息确定所述网络设备的过滤任务。
在确定各个网络设备的负载分配信息后,资源编排服务器可以通过控制平面向数据平面发送负载分配信息,数据平面的网络设备根据所接收的负载分配信息,确定网络设备需要用于过滤判断的比特位数。通过预先存储的需要用于比较的、与分配的比特位数相对应的黑名单信息进行过滤操作。
在S203中,根据两个以上的所述网络设备的过滤结果,确定所述待过滤数据的过滤结果。
通过两个以上的网络设备分工合作,对五元组信息确定的比特位序列进行过滤任务的分配,得到每个网络设备的过滤结果。基于每个网络设备的过滤结果确定待过滤数据的过滤结果。
本申请实施例中的过滤操作可以采用布隆过滤器执行过滤操作。由于布隆过滤器可能存在误判,为了提升检测精度,可以如图6所示,确定过滤结果的过程包括:
1)、将带有五个字段(源IP地址,目的IP地址,源端口号,目的端口号,协议号)的五元组黑名单按字段拆分为预定数量的字段,得到预定数据的字段表。比如,可以拆分为图6中的五个表(分别为源IP地址表、源目的IP地址表、源端口表、目的端口表和协议号表),相同类型的字段属于同一个表。
2)、获取所述待过滤数据与所述字段表匹配目标字段,根据所述目标字段创建布隆过滤器。
可以将待匹配数据的对应字段分别在这些表(协议号表除外)中进行查找,确定待匹配数据的对应字段与字段表中匹配的目标字段,记录匹配的目标字段的序号。序号i用于表示字段表中的第i个字段与待匹配数据的相应字段匹配。
可以为每个字段表(比如可以包括源IP字段表、目的IP字段表、源端口表和目的端口表)创建一个布隆过滤器。根据字段表中匹配的目标字段,可以使用预定的哈希算子,计算每个目标字段的哈希值,根据计算的哈希值更新布隆过滤器上的数值。
3)、对多个字段对应的布隆过滤器执行按位与操作,根据按位与操作计算后的布隆过滤器获得第一交集。
将源IP字段表、目的IP字段表、源端口表和目的端口表对应的四个布隆过滤器进行按位与计算,得到四个布隆过滤器的交集,即第一交集。根据第一交集的布隆过滤器的数值,确定可能与待匹配数据匹配的五元组黑名单的序号。
4)、确定字段表与待过滤数据匹配的目标字段最少的目标字段集,通过所述第一交集检索所述第一目标字段集中的目标字段,得到第二目标字段集。
在将各个字段表分别与待匹配数据的相应字段进行匹配时,可以得到各个字段表与待匹配数据的相应字段匹配成功的目标字段(目标字段的数量可能为1个,或者两个以上)。与四个字段表匹配得到四个目标字段集。每个目标字段集中包括的目标字段的数量可能不同,可以选择目标字段数量最少的目标字段集(即图6中的最小规则集)对第一交集进行筛选,筛除掉第一交集中,最小规则集中不属于黑名单的序号,得到第二目标字段集,即待过滤数据可能匹配的黑名单的序号。
5)、将第二目标字段集与五元组黑名单集中的协议号进行过滤校验,确定待过滤数据的过滤结果。
根据第二目标字段集确定待过滤数据的前四个字段,即源IP地址、目的IP地址、源端口号和目的端号可能匹配的黑名单后,还可以获取待过滤数据的前四个字段匹配的黑名单的协议号,与待过滤数据的协议号进行比较,以对第二目标字段集中的序号进行筛选。将协议号不匹配的黑名单,从第二目标字段集中筛除,得到确定待过滤数据的过滤结果。
在可能的实现方式中,由于布隆过滤器的过滤特性,可以根据过滤结果中的黑名单的序号,从黑名单集中取出该序号对应的五元组信息,将取出的五元组信息与待过滤的五元组信息进行二次确认,从而提高过滤结果的可靠性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图7为本申请实施例提出的一种数据过滤装置的示意图。如图7所示,该装置包括:
信息获取单元701,用于获取待过滤数据的五元组信息;
任务分配单元702,用于将所述待过滤数据的五元组信息的过滤任务分配至两个以上的网络设备进行过滤操作;
过滤结果确定单元703,用于根据两个以上的所述网络设备的过滤结果,确定所述待过滤数据的过滤结果。
图7所示的数据过滤装置,与图2所示的数据过滤方法对应。
图8是本申请实施例提供的数据过滤系统的示意图。如图8所示,该实施例的数据过滤系统8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82,例如数据过滤程序。所述处理器80执行所述计算机程序82时实现上述各个数据过滤方法实施例中的步骤。或者,所述处理器80执行所述计算机程序82时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述数据过滤系统8中的执行过程。
所述数据过滤系统可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是数据过滤系统8的示例,并不构成对数据过滤系统8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据过滤系统还可以包括输入输出设备、网络接入设备、总线等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81可以是所述数据过滤系统8的内部存储单元,例如数据过滤系统8的硬盘或内存。所述存储器81也可以是所述数据过滤系统8的外部存储设备,例如所述数据过滤系统8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述数据过滤系统8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述数据过滤系统所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据过滤方法,其特征在于,所述方法包括:
获取待过滤数据的五元组信息;
将所述待过滤数据的五元组信息的过滤任务分配至两个以上的网络设备进行过滤操作;
根据两个以上的所述网络设备的过滤结果,确定所述待过滤数据的过滤结果。
2.根据权利要求1所述的方法,其特征在于,将所述待过滤数据的五元组信息的过滤任务分配至两个以上的网络设备进行过滤操作,包括:
获取数据平面的所述两个以上的网络设备的网络拓扑结构;
根据所述网络拓扑结构,结合所述网络设备的容量利用率,确定所述五元组信息的过滤任务在各网络设备的负载分配信息;
通过控制平面向所述数据平面发送负载分配信息,并根据所述负载分配信息确定所述网络设备的过滤任务。
3.根据权利要求2所述的方法,其特征在于,根据所述网络拓扑结构,结合所述网络设备的容量利用率,确定所述五元组信息的过滤任务在各网络设备的负载分配信息,包括:
根据所述五元组信息生成待过滤的比特位序列,根据所述网络拓扑结构获得生成树;
对所述生成树的节点所分配的比特位序列的数量进行遍历,确定各生成树的节点分配方案中的最大容量利用率;
根据最大利用率最小的分配方案确定所述网络设备的负载分配信息。
4.根据权利要求3所述的方法,其特征在于,在对所述生成树的节点所分配的比特位序列的数量进行遍历,确定各生成树的节点分配方案中的最大容量利用率之前,所述方法包括:
根据预先设定的过滤操作类型与操作成本的对应关系,确定所述网络设备中的待过滤的比特位序列的负载;
根据所述比特位序列的负载和所述网络设备的容量,确定所述网络设备的容量利用率。
5.根据权利要求3所述的方法,其特征在于,对所述生成树的节点所分配的比特位序列的数量进行遍历,包括:
当所述网络设备为生成树中的叶子节点时,根据该叶子节点当前遍历的比特位数量确定所述叶子节点的负载;
当所述网络设备所在节点不是叶子节点时,则根据所述节点当前遍历的比特位数量作为所述节点和所述子节点的比特位数量和,遍历所述节点和所述节点下的子节点。
6.根据权利要求1所述的方法,其特征在于,根据两个以上的所述网络设备的过滤结果,确定所述待过滤数据的过滤结果,包括:
对五元组黑名单集按照预定规则进行拆分,得到五元组黑名单包括的多个字段,根据多个黑名单的相同位置的字段创建字段表;
获取所述待过滤数据与所述字段表匹配的目标字段,根据所述目标字段创建布隆过滤器;
对多个字段对应的布隆过滤器执行按位与操作,根据按位与操作计算后的布隆过滤器获得第一交集;
确定字段表与待过滤数据匹配的目标字段最少的第一目标字段集,通过所述第一交集检索所述第一目标字段集中的目标字段,得到第二目标字段集;
根据所述第二目标字段集和所述五元组黑名单集中的协议号进行过滤校验,确定所述待过滤数据的过滤结果。
7.根据权利要求6所述的方法,其特征在于,根据所述第二目标字段集和所述五元组黑名单集中的协议号进行过滤校验,确定所述待过滤数据的过滤结果,包括:
根据所述第二目标字段集中的黑名单序号查找对应的黑名单数据;
将查找的黑名单数据中的协议号与所述待过滤数据的协议号进行比较,根据比较结果对所述第二目标字段集进行筛选,得到所述待过滤数据的过滤结果。
8.一种数据过滤装置,其特征在于,所述装置包括:
信息获取单元,用于获取待过滤数据的五元组信息;
任务分配单元,用于将所述待过滤数据的五元组信息的过滤任务分配至两个以上的网络设备进行过滤操作;
过滤结果确定单元,用于根据两个以上的所述网络设备的过滤结果,确定所述待过滤数据的过滤结果。
9.一种数据过滤系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
CN202311691397.9A 2023-12-08 2023-12-08 数据过滤方法、装置、系统及存储介质 Pending CN117857109A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311691397.9A CN117857109A (zh) 2023-12-08 2023-12-08 数据过滤方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311691397.9A CN117857109A (zh) 2023-12-08 2023-12-08 数据过滤方法、装置、系统及存储介质

Publications (1)

Publication Number Publication Date
CN117857109A true CN117857109A (zh) 2024-04-09

Family

ID=90538877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311691397.9A Pending CN117857109A (zh) 2023-12-08 2023-12-08 数据过滤方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN117857109A (zh)

Similar Documents

Publication Publication Date Title
US10084752B2 (en) Hybrid hardware-software distributed threat analysis
EP3420487B1 (en) Hybrid hardware-software distributed threat analysis
EP3022873B1 (en) Removing lead filter from serial multiple-stage filter used to detect large flows in order to purge flows for prolonged operation
US9736115B2 (en) Firewall packet filtering
US9282064B2 (en) Method for processing a plurality of data and switching device for switching communication packets
US10785130B2 (en) Network infrastructure device to implement pre-filter rules
US7602780B2 (en) Scalably detecting and blocking signatures at high speeds
US7619990B2 (en) Two tiered packet labeling for data network traceback
US8510830B2 (en) Method and apparatus for efficient netflow data analysis
US20180367431A1 (en) Heavy network flow detection method and software-defined networking switch
CN105429879B (zh) 流表项查询方法、设备及系统
KR20080010095A (ko) 개선된 블룸필터 기반의 분산 서비스 거부 공격 탐지구조와 이를 이용한 탐지 알고리즘.
Yang Hybrid single‐packet IP traceback with low storage and high accuracy
CN115834515B (zh) 一种报文处理方法、装置、设备及介质
CN117857109A (zh) 数据过滤方法、装置、系统及存储介质
US11627110B2 (en) Systems and methods for operating a networking device
Yang et al. High accuracy and low storage hybrid IP traceback
CN111106982B (zh) 一种信息过滤方法、装置、电子设备及存储介质
CN118764398A (zh) 报文处理方法、装置和电子设备
CN114448892A (zh) 一种软硬件选路方法及装置

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