CN116781422B - 基于dpdk的网络病毒过滤方法、装置、设备及介质 - Google Patents
基于dpdk的网络病毒过滤方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116781422B CN116781422B CN202311040454.7A CN202311040454A CN116781422B CN 116781422 B CN116781422 B CN 116781422B CN 202311040454 A CN202311040454 A CN 202311040454A CN 116781422 B CN116781422 B CN 116781422B
- Authority
- CN
- China
- Prior art keywords
- current message
- file
- message
- virus
- current
- 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.)
- Active
Links
- 241000700605 Viruses Species 0.000 title claims abstract description 121
- 238000001914 filtration Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000001514 detection method Methods 0.000 claims abstract description 45
- 230000008521 reorganization Effects 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000006798 recombination Effects 0.000 claims description 9
- 238000005215 recombination Methods 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 8
- 238000011100 viral filtration Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及病毒过滤技术领域,特别涉及一种基于DPDK的网络病毒过滤方法、装置、设备及介质。方法包括:利用DPDK收发线程接收报文,每一个报文均执行:对当前报文配置流会话标识;对当前报文进行tcp流重组后进行应用层协议识别和报文解析,若当前报文含有文件内容,则对当前报文配置文件标识;基于协议检查表和文件类型检查表,对当前报文的应用层协议和文件类型分别进行匹配;若至少有一项未匹配成功,则直接转发当前报文;若均匹配成功,则利用病毒过滤异步线程,基于流会话标识、文件标识、文件信息对当前报文的文件内容进行病毒检测,以根据检测结果对当前报文进行处置。本方案可以提高报文转发性能、减少内存消耗。
Description
技术领域
本发明实施例涉及病毒过滤技术领域,特别涉及一种基于DPDK的网络病毒过滤方法、装置、设备及介质。
背景技术
传统的网络病毒过滤方法一般都依赖于tcp流重组模块、应用层协议解析模块和文件还原模块来进行报文处理,在解析到文件已传输完成后,文件还原模块将整个文件缓存下来再进行病毒过滤。这种方案不仅需要缓存整个文件内容,内存开销大,而且这种方案一般基于linux内核方式进行报文收发,且报文处理流程与病毒过滤为串行连接,只有当文件还原模块将整个文件缓存下来后,才会对该文件进行病毒过滤,并且在过滤过程中,报文处理流程无法处理后续报文,会直接影响报文处理转发速度。综上,传统的网络病毒过滤方法存在报文转发性能低下、消耗内存高的问题。
因此,亟需一种新的网络病毒过滤方法。
发明内容
为了解决传统的网络病毒过滤方法存在报文转发性能低下、消耗内存高的问题,本发明实施例提供了一种基于DPDK的网络病毒过滤方法、装置、设备及介质。
第一方面,本发明实施例提供了一种基于DPDK的网络病毒过滤方法,方法包括:
利用DPDK收发线程接收报文,针对接收的每一个报文,均执行:判断当前报文是否已建立流会话,以对当前报文配置流会话标识;
对当前报文进行tcp流重组后进行应用层协议识别和报文解析,若当前报文含有文件内容,则对当前报文配置文件标识,并生成文件内容和文件信息;所述文件信息中含有文件类型;
基于预先配置的协议检查表和文件类型检查表,对识别和解析得到的当前报文的应用层协议和文件类型分别进行匹配;
若至少有一项未匹配成功,则直接转发当前报文;
若均匹配成功,则利用病毒过滤异步线程,基于所述流会话标识、所述文件标识、所述文件信息对当前报文的文件内容进行病毒检测,以根据检测结果对当前报文进行处置。
第二方面,本发明实施例还提供了一种基于DPDK的网络病毒过滤装置,装置包括:
接收单元,用于利用DPDK收发线程接收报文,针对接收的每一个报文,均执行:判断当前报文是否已建立流会话,以对当前报文配置流会话标识;
解析单元,用于对当前报文进行tcp流重组后进行应用层协议识别和报文解析,若当前报文含有文件内容,则对当前报文配置文件标识,并生成文件内容和文件信息;所述文件信息中含有文件类型;
匹配单元,用于基于预先配置的协议检查表和文件类型检查表,对识别和解析得到的当前报文的应用层协议和文件类型分别进行匹配;
转发单元,用于若至少有一项未匹配成功,则直接转发当前报文;
过滤单元,用于若均匹配成功,则利用病毒过滤异步线程,基于所述流会话标识、所述文件标识、所述文件信息对当前报文的文件内容进行病毒检测,以根据检测结果对当前报文进行处置。
第三方面,本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。
本发明实施例提供了一种基于DPDK的网络病毒过滤方法、装置、设备及介质,首先,通过利用DPDK收发线程来接收和转发报文,相较于linux内核的拷贝收包,可以实现零拷贝内核转发,以提高报文处理性能;其次,病毒过滤异步线程是针对每一个报文进行单包检测的,无需利用文件还原模块将整个文件缓存下来再进行病毒过滤,减少了内存占用,进一步提高报文处理性能;最后,通过协议检查表和文件类型检查表对每一个报文进行匹配识别,来将报文转发和病毒过滤作为两个并联的流程,那么长时间的病毒过滤就不会影响到不需要进行病毒过滤的报文的转发,可以避免病毒过滤引擎的长时间扫描过滤对报文转发的影响。因此,本方案可以提高报文转发性能、减少内存消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于DPDK的网络病毒过滤方法的流程图;
图2是本发明一实施例提供的一种计算设备的硬件架构图;
图3是本发明一实施例提供的一种基于DPDK的网络病毒过滤装置结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面描述以上构思的具体实现方式。
请参考图1,本发明实施例提供了一种基于DPDK的网络病毒过滤方法,该方法包括:
步骤100,利用DPDK收发线程接收报文,针对接收的每一个报文,均执行:判断当前报文是否已建立流会话,以对当前报文配置流会话标识;
步骤102,对当前报文进行tcp流重组后进行应用层协议识别和报文解析,若当前报文含有文件内容,则对当前报文配置文件标识,并生成文件内容和文件信息;文件信息中含有文件类型;
步骤104,基于预先配置的协议检查表和文件类型检查表,对识别和解析得到的当前报文的应用层协议和文件类型分别进行匹配;
步骤106,若至少有一项未匹配成功,则直接转发当前报文;
步骤108,若均匹配成功,则利用病毒过滤异步线程,基于流会话标识、文件标识、文件信息对当前报文的文件内容进行病毒检测,以根据检测结果对当前报文进行处置。
本发明实施例中,首先,通过利用DPDK收发线程来接收和转发报文,相较于linux内核的拷贝收包,可以实现零拷贝内核转发,以提高报文处理性能;其次,病毒过滤异步线程是针对每一个报文进行单包检测的,无需利用文件还原模块将整个文件缓存下来再进行病毒过滤,减少了内存占用,进一步提高报文处理性能;最后,通过协议检查表和文件类型检查表对每一个报文进行匹配识别,来将报文转发和病毒过滤作为两个并联的流程,那么长时间的病毒过滤就不会影响到不需要进行病毒过滤的报文的转发,可以避免病毒过滤引擎的长时间扫描过滤对报文转发的影响。因此,本方案可以提高报文转发性能、减少内存消耗。
针对步骤100:
在本步骤中,事先在系统上配置好DPDK大页内存和UIO用户态驱动,通过DMA零拷贝方式从旁路内核转发,DPDK收发线程接收的所有报文都在用户态进行处理和转发,可以从平台层面提高报文处理性能。
在一些实施方式中,步骤“判断当前报文是否已建立流会话,以对当前报文配置流会话标识”,可以包括:
基于当前报文的五元组信息,判断当前报文是否已建立流会话;
若建立,则将已建立的流会话标识配置给当前报文;
若未建立,则建立新的流会话和流会话标识,并将新的流会话标识配置给当前报文。
在本实施例中,由于是对每一个报文单独进行过滤检测的,不需要文件还原模块将整个文件缓存下来,那么为了避免多个流会话的报文同时传入DPDK收发线程难以分辨出哪个报文属于哪个流会话,就需要基于当前报文的五元组信息查询当前报文是否已建立流会话,如果当前报文已建立流会话,则将已建立的流会话标识配置给当前报文,如果未建立,则建立新的流会话,并且生成该流会话唯一的流会话标识flowid,例如flowid_1等,并将该流会话标识配置给当前报文。
针对步骤102:
在配置了流会话标识后,需要对每个流会话的报文进行tcp流重组,来处理乱序和重传的报文,保证应用层协议识别和报文解析的报文是顺序的。
举例来说,若当前报文为流会话flowid_1的第2个报文,但是流会话flowid_1的第1个报文还未到tcp流重组模块,那么tcp流重组模块会将当前报文缓存下来,直至接收到第1个报文,才会将第1个报文和第2个报文按顺序发送到应用层协议识别模块。若假如第1个报文迟迟未到,第3个报文和第4个报文到达tcp流重组模块,则会按顺序将第3个报文和第4个报文缓存下来,直至第1个报文到达,才会将第1个报文-第4个报文按顺序发送出去。
在一些实施方式中,tcp流重组的内存是通过如下方式申请的:
若当前报文未建立流会话,则基于预先配置的预分配内存,申请当前流会话的tcp流重组的第一内存;
当当前流会话的tcp流重组内存不够用时,动态申请第二内存。
在本实施例中,若在步骤100中,当前报文未建立流会话,则建立流会话,生成流会话标识,并且基于预先配置的预分配内存申请当前流会话的tcp流重组的第一内存,那么后续该流会话的报文在进行tcp流重组时,如果缓存内存不够,则动态再申请一段连续的第二内存。相较于传统的直接配置足够内存的方式,本实施例预先申请第一内存做tcp重组缓存用,避免在报文处理过程中实时申请内存影响性能,只有当tcp流重组内存不够用时,再适当动态扩展申请第二内存,在减少内存占用的情况下,可以最大可能地提高转发性能。
接着,对tcp流重组后的当前报文进行应用层协议识别,可以得到当前报文的应用层协议,那么就可以利用应用层协议对当前报文进行解析,解析内容包括确认当前报文传输的内容是否是文件,若是文件,则对当前报文配置文件标识fileid,以使含有同一个文件内容的报文的文件标识相同。可以理解,根据应用层协议可以解析出当前报文的文件内容和文件信息,其中,文件信息包括文件类型、对应的文件名、文件名长度和文件内容长度等信息。
针对步骤104和步骤106:
在本步骤中,需要预先配置协议检查表和文件类型检查表,其中,协议检查表中包括需要进行病毒过滤的应用层协议,文件类型检查表中包括需要进行病毒过滤的文件类型,以对当前报文的应用层协议和文件类型分别从协议检查表和文件类型检查表中进行匹配,均匹配到说明当前报文符合需要进行病毒过滤的条件,执行步骤108;若至少有一项未匹配到,则直接转发当前报文,可以减少需要病毒过滤的报文量。因此,本发明实施例通过协议检查表和文件类型检查表对每一个报文进行匹配识别,以对需要进行病毒过滤的报文进行病毒过滤,不需要进行病毒过滤的报文直接转发出去,可以避免病毒过滤引擎的长时间扫描过滤对报文转发的影响,进一步提高报文转发性能。
针对步骤108:
在一些实施方式中,步骤“若均匹配成功,则利用病毒过滤异步线程,基于流会话标识、文件标识、文件信息对当前报文的文件内容进行病毒检测”,包括:
若均匹配成功,则将当前报文放入过滤队列中,以利用病毒过滤异步线程从过滤队列获取当前报文;
基于当前报文的文件信息以及与当前报文为相同流会话标识和文件标识的历史报文的病毒检测结果,对当前报文的文件内容进行病毒检测。
在本实施例中,采用DPDK ring机制,在对报文进行文件内容病毒过滤时,先把报文缓存在DPDK ring过滤队列中,利用病毒过滤异步线程从过滤队列取出报文进行病毒过滤。本方案通过使用DPDK的ring队列,采用异步方式进行病毒过滤,不会影响不需要进行病毒过滤的报文的转发性能。
在本实施例中,由于是对每一个报文单独进行病毒过滤的,不需要文件还原模块将整个文件缓存下来,那么为了避免多个流会话的报文同时传入DPDK收发线程难以分辨出哪个报文属于哪个流会话,哪几个报文的文件内容为同一个文件,可以根据当前报文的流会话标识和文件标识确定出与当前报文为同一个流会话且是同一个文件的历史报文,并利用历史报文的病毒检测结果和当前报文的文件信息,对当前报文的文件内容进行病毒检测。
在一些实施方式中,步骤“基于当前报文的文件信息以及与当前报文为相同流会话标识和文件标识的历史报文的病毒检测结果,对当前报文的文件内容进行病毒检测”,可以包括:
对当前报文的文件信息和文件内容进行特征检测,确定当前报文的命中特征;
基于当前报文的命中特征以及与当前报文为相同流会话标识和文件标识的每一个历史报文的命中特征,进行病毒特征关联检测,以确定当前报文是否存在病毒。
在本实施例中,单个报文的文件内容难以确定出是否是病毒,需要对同一个流会话且为同一个文件的多个报文的病毒特征进行关联检测,以提高病毒过滤的准确率。
在一些实施方式中,在进行病毒特征关联检测,以确定当前报文对应的文件是否为病毒之后,还包括:
基于当前报文的文件内容和与当前报文为相同流会话标识和文件标识的上一个报文的MD5值,计算当前报文的MD5值;
若当前报文的MD5值与已知病毒的MD5值相同,则确定当前报文存在病毒。
在本实施例中,单单利用病毒特征关联检测比较片面,为了提高检测准确率,还会同一个流会话且同一个文件的MD5值进行累加计算,以对已知病毒的MD5值进行匹配。
在一些实施方式中,根据检测结果对当前报文进行处置,包括:
若检测结果为存在病毒,则丢弃当前报文,并且将与当前报文的流会话标识和文件标识均相同的后续报文直接丢弃;
若检测结果为不存在病毒,则将当前报文放入转发队列中,以使DPDK收发线程从转发队列中取出当前报文进行发送。
在本实施例中,通过病毒特征关联检测和MD5值两种方式进行病毒过滤,只要有至少一种方式确定当前报文存在病毒,那么就确定当前报文的检测结果为存在病毒。对检测出病毒的报文直接丢弃,并且将与当前报文的流会话标识和文件标识均相同的后续报文直接丢弃,以减少进行病毒过滤的报文数量。对于未检测出病毒的报文放入转发ring队列中,再由DPDK收发线程从转发ring队列中取出报文进行发送。
需要说明的是,由于对报文进行了tcp流重组,那么转发出去的报文也是按顺序转发出去的,举例来说,若同一个流会话且同一个文件的第1个报文至第8个报文均未确认存在病毒,那么第1个报文至第8个报文已经被转发到系统了,但是在第9个报文时,通过对第1个报文至第8个报文的命中特征与第9个报文的命中特征进行关联检测,确定文件存在病毒,那么直接拦截第9个报文及后续的报文,虽然第1个报文至第8个报文已经转发出去,但是由于第9个报文及后续的报文缺失,系统并不会中病毒。
综上,本发明实施例的基于DPDK的报文单包检测过滤方式,可以很好的解决传统方法采用linux内核收包、需要缓存完整文件内容进行病毒过滤以及在收包处理线程中同步进行病毒过滤等方案存在占用设备内存多,性能低下的问题。
如图2、图3所示,本发明实施例提供了一种基于DPDK的网络病毒过滤装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图2所示,为本发明实施例提供的一种基于DPDK的网络病毒过滤装置所在计算设备的一种硬件架构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的计算设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图3所示,作为一个逻辑意义上的装置,是通过其所在计算设备的CPU将非易失性存储器中对应的计算机程序读取到内存中运行形成的。本实施例提供的一种基于DPDK的网络病毒过滤装置,装置包括:
接收单元301,用于利用DPDK收发线程接收报文,针对接收的每一个报文,均执行:判断当前报文是否已建立流会话,以对当前报文配置流会话标识;
解析单元302,用于对当前报文进行tcp流重组后进行应用层协议识别和报文解析,若当前报文含有文件内容,则对当前报文配置文件标识,并生成文件内容和文件信息;文件信息中含有文件类型;
匹配单元303,用于基于预先配置的协议检查表和文件类型检查表,对识别和解析得到的当前报文的应用层协议和文件类型分别进行匹配;
转发单元304,用于若至少有一项未匹配成功,则直接转发当前报文;
过滤单元305,用于若均匹配成功,则利用病毒过滤异步线程,基于流会话标识、文件标识、文件信息对当前报文的文件内容进行病毒检测,以根据检测结果对当前报文进行处置。
在本发明一个实施例中,接收单元301在执行判断当前报文是否已建立流会话,以对当前报文配置流会话标识时,用于:
基于当前报文的五元组信息,判断当前报文是否已建立流会话;
若建立,则将已建立的流会话标识配置给当前报文;
若未建立,则建立新的流会话和流会话标识,并将新的流会话标识配置给当前报文。
在本发明一个实施例中,解析单元302中tcp流重组的内存是通过如下方式申请的:
若当前报文未建立流会话,则基于预先配置的预分配内存,申请当前流会话的tcp流重组的第一内存;
当当前流会话的tcp流重组内存不够用时,动态申请第二内存。
在本发明一个实施例中,过滤单元305在执行若均匹配成功,则利用病毒过滤异步线程,基于流会话标识、文件标识、文件信息对当前报文的文件内容进行病毒检测时,用于:
若均匹配成功,则将当前报文放入过滤队列中,以利用病毒过滤异步线程从过滤队列获取当前报文;
基于当前报文的文件信息以及与当前报文为相同流会话标识和文件标识的历史报文的病毒检测结果,对当前报文的文件内容进行病毒检测。
在本发明一个实施例中,过滤单元305在执行基于当前报文的文件信息以及与当前报文为相同流会话标识和文件标识的历史报文的病毒检测结果,对当前报文的文件内容进行病毒检测时,用于:
对当前报文的文件信息和文件内容进行特征检测,确定当前报文的命中特征;
基于当前报文的命中特征以及与当前报文为相同流会话标识和文件标识的每一个历史报文的命中特征,进行病毒特征关联检测,以确定当前报文是否存在病毒。
在本发明一个实施例中,过滤单元305在执行进行病毒特征关联检测,以确定当前报文对应的文件是否为病毒之后,还用于:
基于当前报文的文件内容和与当前报文为相同流会话标识和文件标识的上一个报文的MD5值,计算当前报文的MD5值;
若当前报文的MD5值与已知病毒的MD5值相同,则确定当前报文存在病毒。
在本发明一个实施例中,过滤单元305在执行根据检测结果对当前报文进行处置,包括:
若检测结果为存在病毒,则丢弃当前报文,并且将与当前报文的流会话标识和文件标识均相同的后续报文直接丢弃;
若检测结果为不存在病毒,则将当前报文放入转发队列中,以使DPDK收发线程从转发队列中取出当前报文进行发送。
可以理解的是,本发明实施例示意的结构并不构成对一种基于DPDK的网络病毒过滤装置的具体限定。在本发明的另一些实施例中,一种基于DPDK的网络病毒过滤装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本发明任一实施例中的一种基于DPDK的网络病毒过滤方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时,使所述处理器执行本发明任一实施例中的一种基于DPDK的网络病毒过滤方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于DPDK的网络病毒过滤方法,其特征在于,包括:
利用DPDK收发线程接收报文,针对接收的每一个报文,均执行:判断当前报文是否已建立流会话,以对当前报文配置流会话标识;
对当前报文进行tcp流重组后进行应用层协议识别和报文解析,若当前报文含有文件内容,则对当前报文配置文件标识,并生成文件内容和文件信息;所述文件信息中含有文件类型;
基于预先配置的协议检查表和文件类型检查表,对识别和解析得到的当前报文的应用层协议和文件类型分别进行匹配;
若至少有一项未匹配成功,则直接转发当前报文;
若均匹配成功,则利用病毒过滤异步线程,基于所述流会话标识、所述文件标识、所述文件信息对当前报文的文件内容进行病毒检测,以根据检测结果对当前报文进行处置。
2.根据权利要求1所述的方法,其特征在于,所述判断当前报文是否已建立流会话,以对当前报文配置流会话标识,包括:
基于当前报文的五元组信息,判断当前报文是否已建立流会话;
若建立,则将已建立的流会话标识配置给当前报文;
若未建立,则建立新的流会话和流会话标识,并将新的流会话标识配置给当前报文。
3.根据权利要求1所述的方法,其特征在于,所述tcp流重组的内存是通过如下方式申请的:
若当前报文未建立流会话,则基于预先配置的预分配内存,申请当前流会话的tcp流重组的第一内存;
当当前流会话的tcp流重组内存不够用时,动态申请第二内存。
4.根据权利要求1所述的方法,其特征在于,所述若均匹配成功,则利用病毒过滤异步线程,基于所述流会话标识、所述文件标识、所述文件信息对当前报文的文件内容进行病毒检测,包括:
若均匹配成功,则将当前报文放入过滤队列中,以利用病毒过滤异步线程从所述过滤队列获取当前报文;
基于当前报文的文件信息以及与当前报文为相同流会话标识和文件标识的历史报文的病毒检测结果,对当前报文的文件内容进行病毒检测。
5.根据权利要求4所述的方法,其特征在于,所述基于当前报文的文件信息以及与当前报文为相同流会话标识和文件标识的历史报文的病毒检测结果,对当前报文的文件内容进行病毒检测,包括:
对当前报文的文件信息和文件内容进行特征检测,确定当前报文的命中特征;
基于当前报文的命中特征以及与当前报文为相同流会话标识和文件标识的每一个历史报文的命中特征,进行病毒特征关联检测,以确定当前报文是否存在病毒。
6.根据权利要求5所述的方法,其特征在于,在所述进行病毒特征关联检测,以确定当前报文对应的文件是否为病毒之后,还包括:
基于当前报文的文件内容和与当前报文为相同流会话标识和文件标识的上一个报文的MD5值,计算当前报文的MD5值;
若当前报文的MD5值与已知病毒的MD5值相同,则确定当前报文存在病毒。
7.根据权利要求1-6中任一项所述的方法,其特征在于,根据检测结果对当前报文进行处置,包括:
若检测结果为存在病毒,则丢弃当前报文,并且将与当前报文的流会话标识和文件标识均相同的后续报文直接丢弃;
若检测结果为不存在病毒,则将当前报文放入转发队列中,以使所述DPDK收发线程从所述转发队列中取出当前报文进行发送。
8.一种基于DPDK的网络病毒过滤装置,其特征在于,包括:
接收单元,用于利用DPDK收发线程接收报文,针对接收的每一个报文,均执行:判断当前报文是否已建立流会话,以对当前报文配置流会话标识;
解析单元,用于对当前报文进行tcp流重组后进行应用层协议识别和报文解析,若当前报文含有文件内容,则对当前报文配置文件标识,并生成文件内容和文件信息;所述文件信息中含有文件类型;
匹配单元,用于基于预先配置的协议检查表和文件类型检查表,对识别和解析得到的当前报文的应用层协议和文件类型分别进行匹配;
转发单元,用于若至少有一项未匹配成功,则直接转发当前报文;
过滤单元,用于若均匹配成功,则利用病毒过滤异步线程,基于所述流会话标识、所述文件标识、所述文件信息对当前报文的文件内容进行病毒检测,以根据检测结果对当前报文进行处置。
9.一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311040454.7A CN116781422B (zh) | 2023-08-18 | 2023-08-18 | 基于dpdk的网络病毒过滤方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311040454.7A CN116781422B (zh) | 2023-08-18 | 2023-08-18 | 基于dpdk的网络病毒过滤方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116781422A CN116781422A (zh) | 2023-09-19 |
CN116781422B true CN116781422B (zh) | 2023-10-27 |
Family
ID=87993369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311040454.7A Active CN116781422B (zh) | 2023-08-18 | 2023-08-18 | 基于dpdk的网络病毒过滤方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116781422B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939314A (zh) * | 2015-09-21 | 2016-09-14 | 杭州迪普科技有限公司 | 网络防护方法和装置 |
CN112558948A (zh) * | 2020-12-16 | 2021-03-26 | 武汉绿色网络信息服务有限责任公司 | 一种海量流量下报文识别的方法和装置 |
WO2022100001A1 (zh) * | 2020-11-10 | 2022-05-19 | 华为技术有限公司 | 网络安全防护方法以及防护设备 |
CN116015889A (zh) * | 2022-12-27 | 2023-04-25 | 迈普通信技术股份有限公司 | 数据流转发方法、装置、网络设备及存储介质 |
WO2023065712A1 (zh) * | 2021-10-22 | 2023-04-27 | 中车株洲电力机车有限公司 | 分布式列车控制网络入侵检测方法、系统、存储介质 |
-
2023
- 2023-08-18 CN CN202311040454.7A patent/CN116781422B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939314A (zh) * | 2015-09-21 | 2016-09-14 | 杭州迪普科技有限公司 | 网络防护方法和装置 |
WO2022100001A1 (zh) * | 2020-11-10 | 2022-05-19 | 华为技术有限公司 | 网络安全防护方法以及防护设备 |
CN112558948A (zh) * | 2020-12-16 | 2021-03-26 | 武汉绿色网络信息服务有限责任公司 | 一种海量流量下报文识别的方法和装置 |
WO2023065712A1 (zh) * | 2021-10-22 | 2023-04-27 | 中车株洲电力机车有限公司 | 分布式列车控制网络入侵检测方法、系统、存储介质 |
CN116015889A (zh) * | 2022-12-27 | 2023-04-25 | 迈普通信技术股份有限公司 | 数据流转发方法、装置、网络设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于多核平台的高速网络流量实时捕获方法;令瑞林等;计算机研究与发展;第54卷(第6期);第1300-1313页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116781422A (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10027691B2 (en) | Apparatus and method for performing real-time network antivirus function | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
US9203734B2 (en) | Optimized bi-directional communication in an information centric network | |
US9100319B2 (en) | Context-aware pattern matching accelerator | |
US20140286174A1 (en) | Apparatus and method for analyzing a packet | |
US20130136136A1 (en) | Apparatus and method for processing received data | |
CN108306832B (zh) | 一种网络流量分流方法及装置 | |
CN111404817B (zh) | 一种提升网络通信设备分片数据包转发性能的方法及系统 | |
KR101378115B1 (ko) | Pcre 기반 패턴 매칭 기법을 이용한 네트워크 침입 탐지 장치 및 방법 | |
WO2019033891A1 (zh) | 一种基于rdma的网络流量确定方法及装置 | |
US8214898B2 (en) | ICAP processing of partial content to identify security issues | |
KR101292873B1 (ko) | 네트워크 인터페이스 카드장치 및 상기 네트워크 인터페이스 카드장치를 이용한 트래픽 처리 방법 | |
CN116781422B (zh) | 基于dpdk的网络病毒过滤方法、装置、设备及介质 | |
CN111865811B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN112436998A (zh) | 一种数据传输方法及电子设备 | |
CN113132273B (zh) | 一种数据转发方法及装置 | |
CN112511522B (zh) | 探测扫描中减少内存占用的方法、装置和设备 | |
CN114422624A (zh) | 数据接收方法 | |
US7971254B1 (en) | Method and system for low-latency detection of viruses transmitted over a network | |
Zou et al. | SIP parsing offload: Design and performance | |
JP5885224B2 (ja) | テキストベースのプロトコルによる受信データメッセージのハンドリング | |
CN113645236A (zh) | 一种报文处理方法、装置及存储介质 | |
CN113422760A (zh) | 数据传输方法、装置、电子装置和存储介质 | |
US8005006B2 (en) | Discovery of multiple-parent dependencies in network performance analysis | |
CN108123990B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |