CN110138797A - 一种报文处理方法及装置 - Google Patents
一种报文处理方法及装置 Download PDFInfo
- Publication number
- CN110138797A CN110138797A CN201910445067.9A CN201910445067A CN110138797A CN 110138797 A CN110138797 A CN 110138797A CN 201910445067 A CN201910445067 A CN 201910445067A CN 110138797 A CN110138797 A CN 110138797A
- Authority
- CN
- China
- Prior art keywords
- data message
- central processing
- processing unit
- message
- data
- 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
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/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
- 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/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9031—Wraparound memory, e.g. overrun or underrun detection
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种报文处理方法及装置,该报文处理方法包括:在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从环形缓冲区读取数据报文;中央处理器判断数据报文是否匹配预先生成的数据字节码,数据字节码用于匹配疑似攻击的数据报文;若是,则中央处理器将数据报文从环形缓冲区中删除。在上述的实现过程中,在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从环形缓冲区读取并根据预先生成的数据字节码过滤该数据报文,在环形缓冲区中过滤攻击数据报文,避免其进入套接字缓存,改善频繁地分配和释放套接字缓存导致浪费计算资源和内存资源的问题。
Description
技术领域
本申请涉及网络安全的技术领域,具体而言,涉及一种报文处理方法及装置。
背景技术
分布式拒绝服务(Distributed Denial of Service,DDoS)攻击,是指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常攻击者可以对目标在短时间内发起大量的数据报文,消耗目标的内存资源或计算资源,导致目标无法对正常的数据报文进行处理。
目前,传统的防御DDoS攻击的方法大都是基于硬件防火墙和软件防火墙的方法,基于硬件防火墙的方法是在网络路由协议层过滤掉大量的攻击数据报文,例如:网关防火墙法和中继防火墙法;基于软件防火墙的方法是根据具体的应用场景对攻击数据报文进行过滤,例如:操作***自带的软件防火墙和应用软件防火墙。基于软件防火墙的方法在DDoS攻击中,大多数的数据报文都是攻击数据报文,然而这些攻击数据报文均要频繁地分配和释放套接字缓存,浪费了计算资源和内存资源。因此,现有技术中存在频繁地分配和释放套接字缓存导致浪费计算资源和内存资源的问题。
发明内容
本申请实施例的目的在于提供一种报文处理方法及装置,用于改善频繁地分配和释放套接字缓存导致浪费计算资源和内存资源的问题。
本申请实施例提供了一种报文处理方法,包括:在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从所述环形缓冲区读取所述数据报文;所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码,所述数据字节码用于匹配疑似攻击的数据报文;若是,则所述中央处理器将所述数据报文从所述环形缓冲区中删除。在上述的实现过程中,在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从环形缓冲区读取并根据预先生成的数据字节码过滤该数据报文,在环形缓冲区中过滤攻击数据报文,避免其进入套接字缓存,改善了频繁地分配和释放套接字缓存导致浪费计算资源和内存资源的问题。
可选地,在本申请实施例中,所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码,包括:解析所述数据报文获得报文长度和报文格式;所述中央处理器判断所述报文长度和所述报文格式是否匹配所述数据字节码。在上述的实现过程中,根据报文长度和报文格式匹配不符合要求的数据报文,通过这种方式初步地过滤掉了不匹配所述数据字节码的数据报文,从而有效地提高了对数据报文进行过滤的速度。
可选地,在本申请实施例中,在所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码之后,还包括:若所述数据报文不匹配所述数据字节码,则所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至套接字缓存。在上述的实现过程中,通过将数据报文从环形缓冲区读取并存储至套接字缓存,提高了数据报文在套接字缓存里进行匹配过滤的速度。
可选地,在本申请实施例中,在所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至所述套接字缓存之后,还包括:所述中央处理器解析所述套接字缓存存储的所述数据报文,获得协议类型和协议字段;所述中央处理器判断所述协议类型和所述协议字段是否满足第一预设条件,所述第一预设条件用于过滤疑似攻击的数据报文;若是,则所述中央处理器将所述数据报文从所述套接字缓存中删除。在上述的实现过程中,在套接字缓存里通过对数据报文的协议类型和数据报文的协议字段的匹配和过滤,提高了数据报文在套接字缓存里进行匹配过滤的正确率。
可选地,在本申请实施例中,在所述中央处理器判断所述协议类型和所述协议字段是否满足第一预设条件之后,还包括:若所述协议类型和所述协议字段不满足所述第一预设条件,则所述中央处理器将所述数据报文从所述套接字缓存中读取并存储至用户态缓冲区。在上述的实现过程中,通过将数据报文从套接字缓存中读取并存储至用户态缓冲区,提高了数据报文在用户态缓冲区里进行匹配过滤的速度。
可选地,在本申请实施例中,在所述中央处理器将所述数据报文从所述套接字缓存中读取并存储至用户态缓冲区之后,还包括:所述中央处理器解析所述用户态缓冲区存储的所述数据报文,获得网络地址和网络端口;若所述网络地址和所述网络端口满足第二预设条件,则所述中央处理器将所述数据报文从所述用户态缓冲区中删除,所述第二预设条件用于过滤疑似攻击的数据报文。在上述的实现过程中,在用户态缓冲区里通过对数据报文的网络地址和数据报文的网络端口的匹配和过滤,提高了数据报文在用户态缓冲区里进行匹配过滤的正确率。
可选地,在本申请实施例中,在所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码之后,还包括:若所述数据报文不匹配所述数据字节码,则所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至用户态缓冲区。在上述的实现过程中,通过将数据报文从环形缓冲区中读取并存储至用户态缓冲区,提高了数据报文在用户态缓冲区里进行匹配过滤的速度。
可选地,在本申请实施例中,在所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至所述用户态缓冲区之后,还包括:所述中央处理器解析所述用户态缓冲区存储的所述数据报文,获得第一标志和第二标志;若所述第一标志和所述第二标志满足第三预设条件,则所述中央处理器将所述数据报文从所述用户态缓冲区中删除,所述第三预设条件用于过滤疑似攻击的数据报文。在上述的实现过程中,在用户态缓冲区里通过对数据报文的第一标志和数据报文的第二标志的匹配和过滤,提高了数据报文在用户态缓冲区里进行匹配过滤的正确率。
本申请实施例还提供了一种报文处理装置,包括:第一读取模块,用于在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从所述环形缓冲区读取所述数据报文;第一判断模块,用于所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码,所述数据字节码用于匹配疑似攻击的数据报文;第一删除模块,用于若所述数据报文匹配预先生成的数据字节码,则所述中央处理器将所述数据报文从所述环形缓冲区中删除。在上述的实现过程中,在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从环形缓冲区读取并根据预先生成的数据字节码过滤该数据报文,在环形缓冲区中过滤攻击数据报文,避免其进入套接字缓存,改善了频繁地分配和释放套接字缓存导致浪费计算资源和内存资源的问题。
可选地,在本申请实施例中,所述第一判断模块包括:第一解析模块,用于解析所述数据报文获得报文长度和报文格式;第二判断模块,用于所述中央处理器判断所述报文长度和所述报文格式是否匹配所述数据字节码。
可选地,在本申请实施例中,还包括:第二读取模块,用于若所述数据报文不匹配所述数据字节码,则所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至套接字缓存。
可选地,在本申请实施例中,还包括:第二解析模块,用于所述中央处理器解析所述套接字缓存存储的所述数据报文,获得协议类型和协议字段;第三判断模块,用于所述中央处理器判断所述协议类型和所述协议字段是否满足第一预设条件,所述第一预设条件用于过滤疑似攻击的数据报文;第二删除模块,用于若所述协议类型和所述协议字段满足第一预设条件,则所述中央处理器将所述数据报文从所述套接字缓存中删除。
可选地,在本申请实施例中,还包括:第三读取模块,用于若所述协议类型和所述协议字段不满足所述第一预设条件,则所述中央处理器将所述数据报文从所述套接字缓存中读取并存储至用户态缓冲区。
可选地,在本申请实施例中,还包括:第三解析模块,用于所述中央处理器解析所述用户态缓冲区存储的所述数据报文,获得网络地址和网络端口;第三删除模块,用于若所述网络地址和所述网络端口满足第二预设条件,则所述中央处理器将所述数据报文从所述用户态缓冲区中删除,所述第二预设条件用于过滤疑似攻击的数据报文。
可选地,在本申请实施例中,还包括:第四读取模块,用于若所述数据报文不匹配所述数据字节码,则所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至用户态缓冲区。
可选地,在本申请实施例中,还包括:第四解析模块,用于所述中央处理器解析所述用户态缓冲区存储的所述数据报文,获得第一标志和第二标志;第四删除模块,用于若所述第一标志和所述第二标志满足第三预设条件,则所述中央处理器将所述数据报文从所述用户态缓冲区中删除,所述第三预设条件用于过滤疑似攻击的数据报文。
本申请实施例还提供了一种电子设备,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如上所述的方法。
本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的电子设备的结构示意图;
图2示出了本申请实施例提供的报文处理方法流程示意图;
图3示出了本申请实施例提供的在步骤S120之后的匹配过滤方法的流程示意图;
图4示出了本申请实施例提供的报文处理装置结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。
请参见图1,图1示出了本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备101,包括:处理器102和存储器103,存储器103存储有处理器102可执行的机器可读指令,机器可读指令被处理器102执行时执行如下的方法。
请参见图1,本申请实施例还提供了一种存储介质104,该存储介质104上存储有计算机程序,该计算机程序被处理器102运行时执行如下的方法。
其中,存储介质104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在介绍本申请实施例中的方案之前,下面先介绍本申请实施例中涉及到的一些概念:
互联网协议地址(Internet Protocol Address,又译为网际协议地址),缩写为IP地址,是分配给用户上网使用的网际协议(Internet Protocol,IP)的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类,但是也有其他不常用的小分类。
柏克莱封包过滤器(Berkeley Packet Filter,BPF),是类Unix***上数据链路层的一种原始接口,提供原始链路层封包的收发,除此之外,如果网卡驱动支持洪泛模式,那么它可以让网卡处于此种模式。这里的洪泛模式是指可以收到网络上的所有包,不管他们的目的地是不是所在主机。
输入输出护罩项目(IO Visor Project,IOVP),是指一个由社区开发者所开发的开源项目,该开源项目旨在为了使用创新、开发和共享虚拟化内核输入输出服务,来实现跟踪、分析、监控、安全和网络等功能。
快速数据路径(eXpress Data Path,XDP),是指在Linux内核中提供一个高性能、可编程的网络数据路径工具,是作为IOVP的一部分。XDP提供了在裸金属(Bare Metal)数据报文处理,裸金属是表征脱离操作***级别且不失去可编程性达到理想速度的处理效果。此外,新版本的XDP能够在不修改Linux内核的情况下动态地集成快速数据路径,来实现对底层数据报文的快速处理的效果。
中央处理器(Central Processing Unit,CPU)是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
直接内存存取(Direct Memory Access,DMA)是指允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载。否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU对于其他的工作来说就无法使用。
套接字缓存(socket buffer,SKB)是Linux网络核心数据结构,SKB代表一个要发送或处理的报文,并贯穿于整个协议栈。当应用程序向一个套接字传输数据之后,该套接字将创建相应的套接字缓存,并将用户数据拷贝到缓存中。
数据平面开发包(Data Plane Development Kit,DPDK)是指运行在一个多CPU架构上的一系列加速数据报文负载处理的库。
第一实施例
请参见图2,图2示出了本申请实施例提供的报文处理方法流程示意图。本申请实施例提供了一种报文处理方法,可选的一种实施方式可以包括以下步骤:
步骤S110:在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从环形缓冲区读取数据报文。
其中,网络适配器将接收的数据报文存储至环形缓冲区的具体方式,可以是网络适配器将接收的数据报文通过DMA的方式存储至环形缓冲区,然后,网络适配器再以中断请求的方式通知中央处理器数据报文已到达环形缓冲区。这里的中断请求(InterruptReQuest,IRQ)是指在电脑中执行硬件中断请求的动作,比如需要读取硬盘中的一段数据时,当数据读取完毕,硬盘就通过IRQ来通知***,当然相应的数据也已经写到指定的内存或缓存中。
步骤S120:中央处理器判断数据报文是否匹配预先生成的数据字节码,数据字节码用于匹配疑似攻击的数据报文。
其中,这里的数据字节码可以是BPF字节码,也可以是eBPF字节码。这里的eBPF字节码是BPF字节码的扩展,BPF字节码和eBPF字节码均可以通过编译器工具(例如bpftools工具)将编程语言(例如C语言)写的代码编译成BPF字节码或eBPF字节码,这些代码主要是由用户自定义的各种匹配过滤规则构成的,例如:以太(Ethernet)帧的报文长度小于64字节,则判定为不匹配预先生成的BPF字节码。
在本申请实施例中,步骤S120的其中一种实施方式可以包括如下步骤:
步骤S121:解析数据报文获得报文长度和报文格式。
其中,各种报文类型的报文格式例如:以太帧、地址解析协议(AddressResolution Protocol,ARP)帧、虚拟局域网络(Virtual Local Area Network,VLAN)帧、高级数据链路控制(High-Level Data Link Control,HDLC)帧等等。报文长度是随着报文类型变化而变化的,举例来说:以太帧的常见报文长度(在除去上层负载后)为18字节,地址解析协议帧的常见报文长度为8字节,虚拟局域网络帧的常见报文长度为4字节,高级数据链路控制帧的常见报文长度为8字节等等。
步骤S122:中央处理器判断报文长度和报文格式是否匹配数据字节码。
其中,中央处理器执行使用Iptables中的xt_bpf模块判断报文长度和报文格式是否匹配BPF字节码,这里的Iptables为Linux操作***内核集成的IP信息包过滤程序。报文长度不匹配BPF字节码的情况例如:以太(Ethernet)帧的报文长度小于64字节,则判定为不匹配BPF字节码;又例如以太帧的报文长度大于1518字节,则判定为不匹配BPF字节码;再例如以太帧的报文长度大于64字节且小于1518字节,则判定为匹配BPF字节码;传输控制协议(Transmission Control Protocol,TCP)的报文长度大于65535字节,则判定为匹配BPF字节码;若TCP报文的长度小于65535字节,则判定为不匹配BPF字节码。报文格式不匹配BPF字节码的情况例如:使用报文头部的信息计算出来的校验位与数据报文中的校验位不一致,则判定为不匹配BPF字节码,若使用报文头部的信息计算出来的校验位与数据报文中的校验位一致,则判定为匹配BPF字节码。
步骤S130:若数据报文匹配预先生成的数据字节码,则中央处理器将数据报文从环形缓冲区中删除。
当然,在匹配成功删除数据报文后,即中央处理器将数据报文从环形缓冲区中删除之后,还可以使用GateBot工具分析触发匹配BPF字节码的流量请求,并部署与可疑流量请求相匹配的DDoS缓解措施。使用上述的方法采用模块化的设计思想,设计出生成规则模块bpftools、流量分析引擎模块Gatebot、以及规则执行模块XDP,同时和iptables有机结合,从而构建出一个匹配疑似DDoS攻击流量请求的高效防御***。
在上述实现过程中,在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从环形缓冲区读取并根据预先生成的数据字节码过滤该数据报文,在环形缓冲区中过滤攻击数据报文,避免其进入套接字缓存,改善了频繁地分配和释放套接字缓存导致浪费计算资源和内存资源的问题。
请参见图3,图3示出了本申请实施例提供的在步骤S120之后的匹配过滤方法的流程示意图。为了增强匹配过滤的技术效果,在本申请实施例中,在步骤S120之后的匹配过滤有两种实施方式,第一种实施方式,包括两个阶段:第一阶段为将数据报文从环形缓冲区拷贝至套接字缓存进行过滤,第二阶段再将数据报文从套接字缓存拷贝至用户态缓冲区进行过滤;第二种实施方式,可以直接将数据报文从环形缓冲区拷贝至用户态缓冲区进行过滤。
第一种实施方式,在步骤S120之后,包括第一阶段,将数据报文从环形缓冲区拷贝至套接字缓存进行过滤的方法如下:
步骤S140:若数据报文不匹配数据字节码,则中央处理器将数据报文从环形缓冲区读取并存储至套接字缓存。
其中,在中央处理器将数据报文从环形缓冲区读取并存储至套接字缓存之前,需要根据数据报文的大小向操作***内核申请SKB存储空间,再将数据报文从环形缓冲区拷贝至套接字缓存。
步骤S150:中央处理器解析套接字缓存存储的数据报文,获得协议类型和协议字段。
其中,这里的协议类型例如:传输控制协议、用户数据报协议(User DatagramProtocol,UDP)、超文本传输协议(HyperText Transfer Protocol,HTTP)和超文本传输安全协议(Hyper Text Transfer Protocol over Secure Socket Layer或HypertextTransfer Protocol Secure,HTTPS)等等。以TCP数据报文为例,获得TCP数据报文的协议字段例如:SYN字段、FIN字段、ACK字段、PSH字段、RST字段和URG字段等等。
步骤S160:中央处理器判断协议类型和协议字段是否满足第一预设条件。
其中,这里的第一预设条件用于过滤疑似攻击的数据报文,使用第一预设条件对协议类型和协议字段进行过滤的方式,例如:开发和编写内核模块,并将该内核模块注入到***网络模块中,当中央处理器接收到数据后,中央处理器向操作***内核申请SKB存储空间,中央处理器解析SKB结构体并对其进行匹配和过滤。判断协议类型和协议字段是否满足第一预设条件的具体方式例如:TCP数据报文同时设置了SYN和FIN标志,则判定为满足第一预设条件;又例如TCP数据报文同时设置了所有的标志位,则满足第一预设条件;若TCP数据报文只设置了SYN或FIN标志,则判定为不满足第一预设条件。
步骤S170:若协议类型和协议字段满足第一预设条件,则中央处理器将数据报文从套接字缓存中删除。
其中,在匹配成功删除数据报文后,即中央处理器将数据报文从套接字缓存中删除之后,还可以使用GateBot工具分析触发匹配BPF字节码的流量请求,并部署与可疑流量请求相匹配的DDoS缓解措施;也可以通过工具导出匹配BPF字节码的流量,为建立ddos黑名单数据库提供依据。
在上述的实现过程中,在套接字缓存里通过对数据报文的协议类型和数据报文的协议字段的匹配和过滤,提高了数据报文在套接字缓存里进行匹配过滤的正确率。
如上面所描述的,在步骤S120之后,第一种实施方式还包括第二阶段,将数据报文从套接字缓存拷贝至用户态缓冲区进行过滤的方法如下:
步骤S180:若协议类型和协议字段不满足第一预设条件,则中央处理器将数据报文从套接字缓存中读取并存储至用户态缓冲区。
其中,如果协议类型和协议字段不满足第一预设条件,则中央处理器可以将数据报文从操作***内核的协议栈的套接字缓存中读取并存储至用户态缓冲区中。
步骤S190:中央处理器解析用户态缓冲区存储的数据报文,获得网络地址和网络端口。
其中,这里以数据报文为IP报文为例,解析获得的网络地址例如:123.123.123.123或123.11.11.11,网络端口例如:22或3389等。
步骤S200:若网络地址和网络端口满足第二预设条件,则中央处理器将数据报文从用户态缓冲区中删除。
其中,网络地址和网络端口满足第二预设条件的具体方式,可以为通过网络端口判断是否满足第二预设条件的预设端口,例如,对外开放的端口为80端口,而请求的端口是22或3389,则可以将这里的预设端口设置为22或3389,当获得的数据报文中的端口是22或3389,则判定该数据报文满足第二预设条件,当获得的数据报文中的端口是80,则判定该数据报文不满足第二预设条件;也可以为通过网络地址判断是否满足第二预设条件的预设地址,例如,该设备有两个公网浮动网络地址:123.123.123.123和123.11.11.11,对外开放的网络地址仅为123.123.123.123,而123.11.11.11地址仅为备用状态,则可以将这里的预设地址设置为123.11.11.11;当获得的数据报文中的地址是123.11.11.11,则判定该数据报文满足第二预设条件,当获得的数据报文中的地址是123.123.123.123,则判定该数据报文不满足第二预设条件。可以理解的是,这里的第二预设条件用于过滤疑似攻击的数据报文。
在上述的实现过程中,在用户态缓冲区里通过对数据报文的网络地址和数据报文的网络端口的匹配和过滤,提高了数据报文在用户态缓冲区里进行匹配过滤的正确率。
第二种实施方式,在步骤S120之后,还包括直接将数据报文从环形缓冲区拷贝至用户态缓冲区进行过滤的方法如下:
步骤S210:若数据报文不匹配数据字节码,则中央处理器将数据报文从环形缓冲区读取并存储至用户态缓冲区。
其中,若数据报文不匹配数据字节码,则使用DPDK绕过内核网络协议栈直接将数据包从DMA环形缓冲区拷贝到用户态缓冲区。可以理解的是,可以通过开发和编写内核模块,并将该内核模块注入到***网络模块中,当中央处理器接收到数据已经存储在环形缓冲区的通知后,直接将数据报文从环形缓冲区读取并存储至用户态缓冲区。
步骤S220:中央处理器解析用户态缓冲区存储的数据报文,获得第一标志和第二标志。
其中,这里的数据报文可以是TCP数据报文,这里的第一标志可以是SYN标志,这里的第二标志可以是FIN标志,当然,也可以是其它的标志,例如:ACK字段、PSH字段、RST字段和URG字段等等。
步骤S230:若第一标志和第二标志满足第三预设条件,则中央处理器将数据报文从用户态缓冲区中删除,第三预设条件用于过滤疑似攻击的数据报文。
为了便于理解和描述,这里的数据报文以TCP数据报文为例,这里的第一标志可以是SYN标志,这里的第二标志可以是FIN标志,判断第一标志和第二标志是否满足第三预设条件的具体方式例如:TCP数据报文同时设置了SYN和FIN标志,则判定为满足第三预设条件;又例如TCP数据报文同时设置了所有的标志位,则满足第三预设条件;若TCP数据报文只设置了SYN或FIN标志,则判定为不满足第三预设条件。
在上述的实现过程中,在用户态缓冲区里通过对数据报文的第一标志和数据报文的第二标志的匹配和过滤,提高了数据报文在用户态缓冲区里进行匹配过滤的正确率。
第二实施例
请参见图4,图4示出了本申请实施例提供的报文处理装置结构示意图。本申请实施例提供了一种报文处理装置100,该装置包括:
第一读取模块110,用于在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从环形缓冲区读取数据报文。
第一判断模块120,用于中央处理器判断数据报文是否匹配预先生成的数据字节码,数据字节码用于匹配疑似攻击的数据报文。
第一删除模块130,用于若数据报文匹配预先生成的数据字节码,则中央处理器将数据报文从环形缓冲区中删除。
在上述的实现过程中,在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从环形缓冲区读取并根据预先生成的数据字节码过滤该数据报文,在环形缓冲区中过滤攻击数据报文,避免其进入套接字缓存,改善了频繁地分配和释放套接字缓存导致浪费计算资源和内存资源的问题。
可选地,在本申请实施例中,第一判断模块包括:
第一解析模块,用于解析数据报文获得报文长度和报文格式。
第二判断模块,用于中央处理器判断报文长度和报文格式是否匹配数据字节码。
可选地,在本申请实施例中,装置包括:
第二读取模块,用于若数据报文不匹配数据字节码,则中央处理器将数据报文从环形缓冲区读取并存储至套接字缓存。
可选地,在本申请实施例中,装置还包括:
第二解析模块,用于中央处理器解析套接字缓存存储的数据报文,获得协议类型和协议字段。
第三判断模块,用于中央处理器判断协议类型和协议字段是否满足第一预设条件,第一预设条件用于过滤疑似攻击的数据报文。
第二删除模块,用于若协议类型和协议字段满足第一预设条件,则中央处理器将数据报文从套接字缓存中删除。
可选地,在本申请实施例中,该装置还包括:
第三读取模块,用于若协议类型和协议字段不满足第一预设条件,则中央处理器将数据报文从套接字缓存中读取并存储至用户态缓冲区。
可选地,在本申请实施例中,该装置还可以包括:
第三解析模块,用于中央处理器解析用户态缓冲区存储的数据报文,获得网络地址和网络端口。
第三删除模块,用于若网络地址和网络端口满足第二预设条件,则中央处理器将数据报文从用户态缓冲区中删除,第二预设条件用于过滤疑似攻击的数据报文。
可选地,在本申请实施例中,报文处理装置还可以包括:
第四读取模块,用于若数据报文不匹配数据字节码,则中央处理器将数据报文从环形缓冲区读取并存储至用户态缓冲区。
可选地,在本申请实施例中,该报文处理装置还可以包括:
第四解析模块,用于中央处理器解析用户态缓冲区存储的数据报文,获得第一标志和第二标志。
第四删除模块,用于若第一标志和第二标志满足第三预设条件,则中央处理器将数据报文从用户态缓冲区中删除,第三预设条件用于过滤疑似攻击的数据报文。
以上,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (10)
1.一种报文处理方法,其特征在于,包括:
在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从所述环形缓冲区读取所述数据报文;
所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码,所述数据字节码用于匹配疑似攻击的数据报文;
若是,则所述中央处理器将所述数据报文从所述环形缓冲区中删除。
2.根据权利要求1所述的方法,其特征在于,所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码,包括:
解析所述数据报文获得报文长度和报文格式;
所述中央处理器判断所述报文长度和所述报文格式是否匹配所述数据字节码。
3.根据权利要求1所述的方法,其特征在于,在所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码之后,还包括:
若所述数据报文不匹配所述数据字节码,则所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至套接字缓存。
4.根据权利要求3所述的方法,其特征在于,在所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至所述套接字缓存之后,还包括:
所述中央处理器解析所述套接字缓存存储的所述数据报文,获得协议类型和协议字段;
所述中央处理器判断所述协议类型和所述协议字段是否满足第一预设条件,所述第一预设条件用于过滤疑似攻击的数据报文;
若是,则所述中央处理器将所述数据报文从所述套接字缓存中删除。
5.根据权利要求4所述的方法,其特征在于,在所述中央处理器判断所述协议类型和所述协议字段是否满足第一预设条件之后,还包括:
若所述协议类型和所述协议字段不满足所述第一预设条件,则所述中央处理器将所述数据报文从所述套接字缓存中读取并存储至用户态缓冲区。
6.根据权利要求5所述的方法,其特征在于,在所述中央处理器将所述数据报文从所述套接字缓存中读取并存储至用户态缓冲区之后,还包括:
所述中央处理器解析所述用户态缓冲区存储的所述数据报文,获得网络地址和网络端口;
若所述网络地址和所述网络端口满足第二预设条件,则所述中央处理器将所述数据报文从所述用户态缓冲区中删除,所述第二预设条件用于过滤疑似攻击的数据报文。
7.根据权利要求1所述的方法,其特征在于,在所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码之后,还包括:
若所述数据报文不匹配所述数据字节码,则所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至用户态缓冲区。
8.根据权利要求7所述的方法,其特征在于,在所述中央处理器将所述数据报文从所述环形缓冲区读取并存储至所述用户态缓冲区之后,还包括:
所述中央处理器解析所述用户态缓冲区存储的所述数据报文,获得第一标志和第二标志;
若所述第一标志和所述第二标志满足第三预设条件,则所述中央处理器将所述数据报文从所述用户态缓冲区中删除,所述第三预设条件用于过滤疑似攻击的数据报文。
9.一种报文处理装置,其特征在于,包括:
第一读取模块,用于在网络适配器将接收的数据报文存储至环形缓冲区后,中央处理器从所述环形缓冲区读取所述数据报文;
第一判断模块,用于所述中央处理器判断所述数据报文是否匹配预先生成的数据字节码,所述数据字节码用于匹配疑似攻击的数据报文;
第一删除模块,用于若所述数据报文匹配预先生成的数据字节码,则所述中央处理器将所述数据报文从所述环形缓冲区中删除。
10.根据权利要求9所述的装置,其特征在于,所述第一判断模块包括:
第一解析模块,用于解析所述数据报文获得报文长度和报文格式;
第二判断模块,用于所述中央处理器判断所述报文长度和所述报文格式是否匹配所述数据字节码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445067.9A CN110138797B (zh) | 2019-05-27 | 2019-05-27 | 一种报文处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445067.9A CN110138797B (zh) | 2019-05-27 | 2019-05-27 | 一种报文处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110138797A true CN110138797A (zh) | 2019-08-16 |
CN110138797B CN110138797B (zh) | 2021-12-14 |
Family
ID=67581861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910445067.9A Active CN110138797B (zh) | 2019-05-27 | 2019-05-27 | 一种报文处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110138797B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112153013A (zh) * | 2020-09-02 | 2020-12-29 | 杭州安恒信息技术股份有限公司 | 一种Socket数据转发方法、装置、电子设备和存储介质 |
WO2021078233A1 (zh) * | 2019-10-24 | 2021-04-29 | 北京大学 | 一种多路径传输设备及架构 |
CN113572774A (zh) * | 2021-07-27 | 2021-10-29 | 杭州迪普科技股份有限公司 | 一种网络设备中的报文转发方法及装置 |
CN114189455A (zh) * | 2021-12-08 | 2022-03-15 | 兴业银行股份有限公司 | 基于ebpf技术的容器网络流量监控统计方法及*** |
TWI825763B (zh) * | 2022-03-21 | 2023-12-11 | 瑞昱半導體股份有限公司 | 網路流量配置方法與電腦系統 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633110A (zh) * | 2005-01-14 | 2005-06-29 | 中国科学院计算技术研究所 | 基于Linux内核的流量分析方法 |
US8112491B1 (en) * | 2009-01-16 | 2012-02-07 | F5 Networks, Inc. | Methods and systems for providing direct DMA |
CN103023914A (zh) * | 2012-12-26 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 一种防火墙***及其实现方法 |
CN103391256A (zh) * | 2013-07-25 | 2013-11-13 | 武汉邮电科学研究院 | 一种基于Linux***的基站用户面数据处理优化方法 |
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及*** |
CN104022998A (zh) * | 2013-03-01 | 2014-09-03 | 北京瑞星信息技术有限公司 | 网络传输数据病毒检测处理方法 |
CN105260378A (zh) * | 2015-09-08 | 2016-01-20 | 上海上讯信息技术股份有限公司 | 数据库审计的方法和设备 |
CN105281984A (zh) * | 2015-11-27 | 2016-01-27 | 上海斐讯数据通信技术有限公司 | 一种抓取和过滤报文的虚拟终端和方法 |
US9537972B1 (en) * | 2014-02-20 | 2017-01-03 | Fireeye, Inc. | Efficient access to sparse packets in large repositories of stored network traffic |
CN107181738A (zh) * | 2017-04-25 | 2017-09-19 | 中国科学院信息工程研究所 | 一种软件化入侵检测***及方法 |
-
2019
- 2019-05-27 CN CN201910445067.9A patent/CN110138797B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633110A (zh) * | 2005-01-14 | 2005-06-29 | 中国科学院计算技术研究所 | 基于Linux内核的流量分析方法 |
US8112491B1 (en) * | 2009-01-16 | 2012-02-07 | F5 Networks, Inc. | Methods and systems for providing direct DMA |
CN103023914A (zh) * | 2012-12-26 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 一种防火墙***及其实现方法 |
CN104022998A (zh) * | 2013-03-01 | 2014-09-03 | 北京瑞星信息技术有限公司 | 网络传输数据病毒检测处理方法 |
CN103391256A (zh) * | 2013-07-25 | 2013-11-13 | 武汉邮电科学研究院 | 一种基于Linux***的基站用户面数据处理优化方法 |
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及*** |
US9537972B1 (en) * | 2014-02-20 | 2017-01-03 | Fireeye, Inc. | Efficient access to sparse packets in large repositories of stored network traffic |
CN105260378A (zh) * | 2015-09-08 | 2016-01-20 | 上海上讯信息技术股份有限公司 | 数据库审计的方法和设备 |
CN105281984A (zh) * | 2015-11-27 | 2016-01-27 | 上海斐讯数据通信技术有限公司 | 一种抓取和过滤报文的虚拟终端和方法 |
CN107181738A (zh) * | 2017-04-25 | 2017-09-19 | 中国科学院信息工程研究所 | 一种软件化入侵检测***及方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021078233A1 (zh) * | 2019-10-24 | 2021-04-29 | 北京大学 | 一种多路径传输设备及架构 |
CN112153013A (zh) * | 2020-09-02 | 2020-12-29 | 杭州安恒信息技术股份有限公司 | 一种Socket数据转发方法、装置、电子设备和存储介质 |
CN113572774A (zh) * | 2021-07-27 | 2021-10-29 | 杭州迪普科技股份有限公司 | 一种网络设备中的报文转发方法及装置 |
CN113572774B (zh) * | 2021-07-27 | 2023-04-28 | 杭州迪普科技股份有限公司 | 一种网络设备中的报文转发方法及装置 |
CN114189455A (zh) * | 2021-12-08 | 2022-03-15 | 兴业银行股份有限公司 | 基于ebpf技术的容器网络流量监控统计方法及*** |
CN114189455B (zh) * | 2021-12-08 | 2023-06-06 | 兴业银行股份有限公司 | 基于ebpf技术的容器网络流量监控统计方法及*** |
TWI825763B (zh) * | 2022-03-21 | 2023-12-11 | 瑞昱半導體股份有限公司 | 網路流量配置方法與電腦系統 |
Also Published As
Publication number | Publication date |
---|---|
CN110138797B (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110138797A (zh) | 一种报文处理方法及装置 | |
CN112073411B (zh) | 一种网络安全推演方法、装置、设备及存储介质 | |
US7685254B2 (en) | Runtime adaptable search processor | |
US8086609B2 (en) | Graph caching | |
US7904959B2 (en) | Systems and methods for detecting and inhibiting attacks using honeypots | |
JP4162210B2 (ja) | セッション追跡を利用する動的パケットフィルター | |
US20110016154A1 (en) | Profile-based and dictionary based graph caching | |
US11349866B2 (en) | Hardware acceleration device for denial-of-service attack identification and mitigation | |
CN111355686B (zh) | 泛洪攻击的防御方法、装置、***和存储介质 | |
CN116545978B (zh) | 数据处理方法、装置、***、可读存储介质及进口网卡 | |
US9306908B2 (en) | Anti-malware system, method of processing packet in the same, and computing device | |
US11128602B2 (en) | Efficient matching of feature-rich security policy with dynamic content using user group matching | |
Hsu et al. | Scalable network-based buffer overflow attack detection | |
Gil | MULTOPS: A data structure for denial-of-service attack detection | |
US20200145379A1 (en) | Efficient matching of feature-rich security policy with dynamic content using incremental precondition changes | |
Ru et al. | The side-channel vulnerability in network protocol | |
Jeffrey et al. | A survey of semantic techniques for active networks | |
Park | A study about dynamic intelligent network security systems to decrease by malicious traffic | |
US10965647B2 (en) | Efficient matching of feature-rich security policy with dynamic content | |
CN116599716A (zh) | 网络安全防护方法、装置、设备及介质 | |
Chimkode | Design of an FPGA based Embedded System for protecting the server from SYN flood attack | |
CN118101242A (zh) | 基于符号执行的DDoS攻击漏洞挖掘方法、***、设备、介质 | |
Branitskiy et al. | Software Tool for Testing the Packet Analyzer of Network Attack Detection Systems | |
Okumura et al. | The Netnice packet filter: bridging the structural mismatches in end-host network control | |
Rogers | rlogin (1): The Untold Story |
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 |