CN110768865A - 一种深度报文检测引擎激活方法、装置及电子设备 - Google Patents
一种深度报文检测引擎激活方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110768865A CN110768865A CN201911011000.0A CN201911011000A CN110768865A CN 110768865 A CN110768865 A CN 110768865A CN 201911011000 A CN201911011000 A CN 201911011000A CN 110768865 A CN110768865 A CN 110768865A
- Authority
- CN
- China
- Prior art keywords
- deep packet
- packet inspection
- engine
- data stream
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- 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/1425—Traffic logging, e.g. anomaly detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种深度报文检测引擎激活方法、装置及电子设备。其中,所述方法包括:接收用户态进程发送的用户态引擎数据;根据所述用户态引擎数据构建第二深度报文检测引擎;在接收到所述用户态进程发送的引擎激活通知后,调用所述第二深度报文检测引擎对新的数据流进行深度报文检测,并继续调用所述第一深度报文检测引擎对接收到所述引擎激活通知前已接收的数据流进行深度报文检测;当不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流时,删除所述第一深度报文检测引擎。可以在引擎激活过程中,仍然能够对数据流进行深度报文检测,有效提高引擎激活过程中的网络安全性。
Description
技术领域
本发明涉及信息安全技术领域,特别是涉及一种深度报文检测引擎激活方法、装置及电子设备。
背景技术
数据流中可能携带有影响网络安全的恶意数据,出于保护网络安全的考虑,一些网络设备中,如防火墙设备,可以对接收到的数据流中的报文进行深度报文检测(DeepPacket Inspection,DPI),以检测这些报文中是否包含恶意数据,进而采取对应的规则对报文所属数据流进行处理,如阻断数据流、转发数据流等。
相关技术中,可以从样本报文的文本中,提取能够作为这些样本报文的特征的字符串,将这些字符串保存在规则库中。并在规则库中对应保存处理包含这些样本报文的数据流时所采用的规则,这些规则可以是人工设置的,也可以是利用其他报文检测方法确定得到的。
处于用户态的进程(下文称用户态进程)对规则库中保存的数据进行解析,以得到字符串与规则间的映射关系,根据该映射关系构建深度报文检测引擎的配置数据(下文称用户态引擎数据),用户态引擎数据存储于用户态进程能够访问的地址空间(下文称用户空间),并将用户态引擎数据发送至处于内核态的进程(下文称内核态进程),内核态进程根据接收到的用户态引擎数据,构建深度报文检测引擎相关的数据结构,构建得到的数据结构即为深度报文检测引擎,深度报文检测引擎存储于内核态进程能够访问而用户态进程无法访问的地址空间(下文称内核空间)。在接收到新的数据流时,内核态进程调用内核空间中的深度报文检测引擎,对该数据流中的报文进行深度报文检测,以确定处理该数据流时所采用的规则,网络设备按照该规则对该数据流进行处理。
在一些应用场景中,可能需要构建新的深度报文检测引擎,以替代原先所使用的深度报文检测引擎(该过程下文称激活)。例如,在规则库中的数据进行增删后可以进行激活,以基于新的规则库构建新的深度报文检测引擎,替代原先所使用的旧的深度报文检测引擎。
相关技术中,可以是由用户态进程通知相应的内核态进程停止深度报文检测,并通知内核态进程删除内核空间中的旧的深度报文检测引擎。用户态进程在用户空间中删除旧的深度报文检测引擎的用户态引擎数据,通过对新的规则库中的数据的解析以构建新的用户态引擎数据,并将这些新的用户态引擎数据批量下发至内核态进程。内核态进程根据这些新的用户态引擎数据,构建新的深度报文检测引擎,并调用新的深度报文检测引擎对报文进行深度报文检测。
但是,内核态进程在删除旧的深度报文检测引擎,至构建得到新的深度报文检测模型这一过程中,无法进行深度报文检测,导致该过程中网络安全性较差。
发明内容
本发明实施例的目的在于提供一种深度报文检测引擎激活方法、装置及电子设备,以实现在激活深度报文检测引擎的过程中,仍然能够对接收到的数据流进行深度报文检测。具体技术方案如下:
在本发明的第一方面,提供了一种深度报文检测引擎激活方法,所述方法包括:
接收用户态进程发送的用户态引擎数据;
根据所述用户态引擎数据构建第二深度报文检测引擎;
在接收到所述用户态进程发送的引擎激活通知后,调用所述第二深度报文检测引擎对新的数据流进行深度报文检测,并继续调用所述第一深度报文检测引擎对接收到所述引擎激活通知前已接收的数据流进行深度报文检测;
当不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流时,删除所述第一深度报文检测引擎。
在一种可能的实现方式中,所述方法还包括:
根据在接收到所述引擎激活通知前接收的数据流的数量,以及所述第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过所述第一深度报文检测引擎进行深度报文检测的数据流。
在一种可能的实现方式中,所述根据在接收到所述引擎激活通知前接收的数据流的数量,以及所述第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过所述第一深度报文检测引擎进行深度报文检测的数据流,包括:
在接收到所述用户态进程发送的引擎激活通知前,每新接收一个数据流,则将预设计数器的计数增加预设数值;
每当所述第一深度报文检测引擎输出一个处理数据流所采用的规则,则将所述预设计数器的计数减少所述预设数值;
当所述预设计数器的计数等于所述预设计数器的初始值时,确定不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流。
在一种可能的实现方式中,所述方法还包括:
在接收到所述用户态进程发送的引擎激活通知前,每新接收一个数据流,则使用预设标识标注该数据流;
所述当不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流时,删除所述第一深度报文检测引擎,包括:
当获取所有标注有所述预设标识的数据流的规则时,删除所述第一深度报文检测引擎。
在本发明的第二方面,提供了一种深度报文检测引擎激活装置,所述装置包括:
数据接收模块,用于接收用户态进程发送的用户态引擎数据;
引擎构建模块,用于根据所述用户态引擎数据构建第二深度报文检测引擎;
深度报文检测模块,用于在接收到所述用户态进程发送的引擎激活通知后,调用所述第二深度报文检测引擎对新的数据流进行深度报文检测,并继续调用所述第一深度报文检测引擎对接收到所述引擎激活通知前已接收的数据流进行深度报文检测;
引擎管理模块,用于当不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流时,删除所述第一深度报文检测引擎。
在一种可能的实现方式中,所述引擎管理模块,所述引擎管理模块,还用于根据在接收到所述引擎激活通知前接收的数据流的数量,以及所述第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过所述第一深度报文检测引擎进行深度报文检测的数据流。
在一种可能的实现方式中,所述引擎管理模块,具体用于在接收到所述用户态进程发送的引擎激活通知前,每新接收一个数据流,则将预设计数器的计数增加预设数值;
每当所述第一深度报文检测引擎输出一个处理数据流所采用的规则,则将所述预设计数器的计数减少所述预设数值;
当所述预设计数器的计数等于所述预设计数器的初始值时,确定不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流。
在一种可能的实现方式中,所述引擎管理模块,还用于在接收到所述用户态进程发送的引擎激活通知前,每新接收一个数据流,则使用预设标识标注该数据流;
所述引擎管理模块具体用于当获取所有标注有所述预设标识的数据流的规则时,删除所述第一深度报文检测引擎。
在本发明的第三方面,提供了一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
在本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
本发明实施例提供的深度报文检测引擎激活方法、装置及电子设备,可以通过在一定时间段内使得第一深度报文检测引擎和第二深度报文检测引擎并存的方式,使得第一深度报文检测引擎和第二深度报文检测引擎的替换在时域上不存在真空期,因此在引擎激活过程中,仍然能够对数据流进行深度报文检测,有效提高引擎激活过程中的网络安全性。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的深度报文检测引擎激活方法的一种流程示意图;
图2为本发明实施例提供的深度报文检测引擎激活方法的另一种流程示意图;
图3为本发明实施例提供的深度报文检测引擎激活装置的一种结构示意图;
图4为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的深度报文检测引擎激活方法可以应用于任一具有深度报文检测功能的设备中的内核态进程,例如该设备可以是防火墙设备。该设备中包括用户态进程和内核态进程。
该内核态进程初始时用于调用内核空间中的第一深度报文检测引擎对报文进行深度报文检测。在一些应用场景中,可能需要使用新的深度报文检测引擎替代第一深度报文检测引擎,即需要进行深度报文检测引擎激活。例如,在规则库进行升级后,由于基于升级后的规则库能够构建得到更准确的深度报文检测引擎,因此需要基于升级后的规则库构建新的深度报文检测引擎,并使用新的深度报文检测引擎替代第一深度报文检测引擎。
在这些应用场景中,用户态进程可以解析升级后的规则库中的数据,以得到升级后的规则库中字符串与规则间的映射关系。用户态进程删除用户空间中第一深度报文检测引擎的用户态引擎数据,并基于解析得到的映射关系,构建第二深度报文检测引擎的用户态引擎数据,将第二深度报文检测引擎的用户态数据通过进程间通信的方式发送至内核态进程。
下面将对深度报文检测引擎激活的过程中,内核态进程的执行逻辑进行说明,可以参见图1,图1所示为本发明实施例提供的深度报文检测引擎激活方法的一种流程示意图,方法可以包括:
S101,接收用户态进程发送的用户态引擎数据。
用户态进程可以是在深度报文检测引擎激活开始后,通过解析规则库中的数据得到用户态引擎数据的。
S102,根据用户态引擎数据构建第二深度报文检测引擎。
可以理解的是,在S101和S102的过程中,用户态进程同时调用第一深度报文检测引擎对接收到的数据流进行深度报文检测。可以理解的是,对数据流进行深度报文检测,即对该数据流中的报文进行深度报文检测。
S103,在接收到用户态进程发送的引擎激活通知后,调用第二深度报文检测引擎对新的数据流进行深度报文检测,并继续调用第一深度报文检测引擎对接收到的引擎激活通知前已接收的数据流进行深度报文检测。
其中,新的数据流是指在接收到引擎激活通知后接收到的数据流。引擎激活通知可以是用户态进程在确定内核态进程已经构建完成第二深度报文检测引擎后,发送至用户态进程的。接收到数据流,可以是指设备接收到该数据流中的一个或多个报文。
对于在接收到引擎激活通知前已接收的数据流,是通过第一深度报文检测引擎进行深度报文检测的。如果在接收到引擎激活通知时,内核态进程已经通过调用第一深度报文检测引擎完成该数据流的深度报文检测,即第一深度报文检测引擎已经输出处理该数据流时所采用的规则,则无需再对该数据流中的报文进行深度报文检测,如果在接收到引擎激活通知时,内核态进程仍在通过调用第一深度报文检测引擎对该数据流进行深度报文检测,则继续调用第一深度报文检测引擎对该数据流进行深度报文检测。
S104,当不存在通过第一深度报文检测引擎进行深度报文检测的数据流时,删除第一深度报文检测引擎。
关于如何确定是否存在通过第一深度报文检测引擎进行深度报文检测的数据流,将在后续的实施例中进行描述,在此不再赘述。可以理解的是,由于在接收到引擎激活通知后,新的数据流不再通过第一深度报文检测引擎进行深度报文检测,因此随着在接收到引擎激活通知前已经接收到的数据流的深度报文检测逐渐完成,通过第一深度报文检测引擎进行深度报文检测的数据流的数量将逐渐减少至零。当不存在通过第一深度报文检测引擎进行深度报文检测的数据流时,所有正在进行的深度报文检测都是通过第二深度报文检测引擎进行的,可以视为已经使用第二深度报文检测引擎成功替代第一深度报文检测引擎,因此可以删除第一深度报文检测引擎。删除第一深度报文检测引擎,可以是删除第一深度报文检测引擎在内核空间中相关的数据结构。
选用该实施例,可以通过在一定时间段内使得第一深度报文检测引擎和第二深度报文检测引擎并存的方式,使得第一深度报文检测引擎和第二深度报文检测引擎的替换在时域上不存在真空期,因此内核态进程在引擎激活过程中,仍然能够对数据流进行深度报文检测,有效提高引擎激活过程中的网络安全性。
下面将对如何确定是否存在通过第一深度报文检测引擎进行深度报文检测的数据流进行说明。
在一种可能的实施例中,内核态进程在接收到引擎激活通知前,可以每新接收到一个数据流,则对使用预设标识标注该数据流,例如可以是对该数据流中的报文内指定的一个或多个预留字段进行置位,以标注该数据流。
在接收到引擎激活通知后,内核态进程可以实时(也可以是定期或不定期)的确定是否已经获取处理每个标注有预设标识的数据流所采用的规则,如果内核态进程已经获取所有标注有预设标识的数据流的规则,则可以认为已经不存在通过第一深度报文检测引擎进行深度报文检测的数据流,因此可以删除第一深度报文检测引擎。
可以理解的是,接收到引擎激活通知前,接收到的数据流是通过第一深度报文检测引擎进行深度报文检测的,如果第一深度报文检测引擎已经完成对该数据流的深度报文检测,则理论上可以获取到处理该数据流所采用的规则。而在接收到引擎激活通知时,所有标注有预设标识的数据流即为通过第一深度报文检测引擎进行深度报文检测的数据流的集合,因此如果已经获取处理每个标注有预设标识的数据流所采用的规则,则可以认为所有通过第一深度报文检测引擎进行深度报文检测的数据流均已完成深度报文检测,因此不存在通过第一深度报文检测引擎进行深度报文检测的数据流。
在另一种可能的实施例中,可以是根据在接收到引擎激活通知前新接收的数据流的数量,以及第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过第一深度报文检测引擎进行深度报文检测的数据流。
示例性的,在一种可能的实施例中,内核态进程可以在接收到用户态发送的引擎激活通知前,每新接收一个数据流,则将预设计数器的计数增加预设数值,例如增加1(在其他可能的实施例中,也可以是增加2、3等其他数值,本实施例对此不做限制)。每当第一深度报文检测引擎输出一个数据流的规则时(无论是在接收到引擎激活通知前,还是在接收到引擎激活通知后),内核态进程则将预设计数器的计数减少预设数值。
在接收到引擎激活通知后,实时(也可以是定期或不定期)确定预设计数器的计数是否为初始值,当预设计数器的计数等于初始值时,确定不存在通过第一深度报文检测引擎进行深度报文检测的数据流。
可以理解的是,由于接收到激活引擎通知后,新接收的数据流不再通过第一深度报文检测引擎进行深度报文检测,并且每新接收到一个数据流,则计数器增加预设数值,因此在接收到引擎激活通知前接收的数据流的数量,即预设计数器的计数增加预设数值的次数,等于所有通过第一深度报文检测引擎进行深度报文检测的数据流的数量。
而第一深度报文检测引擎每输出一个数据流的规则,则可以认为通过第一深度报文检测引擎完成了一个数据流的深度报文检测,每完成一个数据流的检测,则计数器减少预设数值,因此预设计数器减少预设数值的次数,等于第一深度报文检测引擎完成数据流检测的次数。
如果预设计数器的计数为初始值,则表示预设计数器的计数增加预设数值的次数,等于预设计数器减少预设数值的次数。如前述分析,此时可以认为所有通过第一深度报文检测引擎进行深度报文检测的数据流的数量,等于第一深度报文检测引擎完成数据流检测的次数。因此,可以认为所有通过第一深度报文检测引擎进行深度报文检测的数据流均已完成深度报文检测。即不存在通过第一深度报文检测引擎进行深度报文检测的数据流。
选用该实施例,可以通过设置计数器的方式确定是否存在通过第一深度报文检测引擎进行深度报文检测的数据流,无需更改数据流的传输协议,因此适用性较强。
在另一种可能的实施例中,也可以是针对第一深度报文检测引擎设置两个计数器,为描述方便分别称为第一计数器和第二计数器,在接收到引擎激活通知前每新接收一个数据流,内核态进程则将第一计数器的计数增加预设数值。无论是在接收到引擎激活通知前,还是在接收到引擎激活通知后,第一深度检测引擎每输出处理一个数据流所采用的规则(无论是在接收到引擎激活通知前,还是在接收到引擎激活通知后),内核态进程则将第二计数器的计数增加预设数值。在接收到激活通知后,内核态进程可以实时(也可以是定期或不定期)的确定第一计数器和第二计数器的计数是否相同,如果第一计数器和第二计数器的计数相同,则确定不存在通过第一深度报文检测引擎进行深度报文检测的数据流。
为更清楚的对本发明实施例提供的深度报文检测引擎激活方法进行说明,下面将结合用户态进程的业务逻辑进行说明,可以参见图2,图2所示为本发明实施例提供的深度报文检测引擎激活方法的另一种流程示意图,可以包括:
S201,用户态进程对规则库进行解析。
S202,用户态进程删除第一深度报文检测引擎的用户引擎态数据。
可以理解的是,内核态进程已经预先基于用户态进程发送的第一深度报文检测引擎的用户态引擎数据,在内核空间中完成第一深度报文检测引擎的构建,即第一深度报文检测引擎已经被存储于内核空间中,内核态进程可以通过调用内核空间中的第一深度报文检测引擎对报文进行报文深度报文检测。因此删除第一深度报文检测引擎在用户空间中的用户态引擎数据,不会影响到内核态进程调用第一深度报文检测引擎进行深度报文检测。
S203,用户态进程构建第二深度报文检测引擎的用户态引擎数据。
S204,用户态进程批量下发第二深度报文检测引擎的用户态引擎数据至内核态进程。
用户态进程和内核态进程间可以是通过IPC(Imter Process Communication,进程间通信)的方式进行通信的。
S205,内核态进程根据用户态引擎数据构建第二深度报文检测引擎。
S206,用户态进程在确定第二深度报文检测引擎构建完成时,向用户态进程发送引擎激活通知。
用户态向内核态发送用户态引擎数据时,可以是阻塞式的。当内核态进程完成所有用户态引擎数据的处理时,向用户态进程反馈预设信息,用户态进程在接收到该预设信息后,用户态进程可以确定内核态进程已经完成第二深度报文检测引擎的构建。
S207,内核态进程在接收到用户态进程发送的引擎激活通知后,调用第二深度报文检测引擎对新的数据流进行深度报文检测,并继续调用第一深度报文检测引擎对接收到引擎激活通知之前已接收的数据流进行深度报文检测。
在整个过程中,内核态进程维护有针对第一深度报文检测引擎设置的计数器,计数器的业务逻辑可以参见前述相关实施例的描述,在此不再赘述。并且在构建第二深度报文检测引擎后,同时维护针对第二深度报文检测设置的计数器。在接收到引擎激活通知后,内核态进程每新接收到一个数据流,则将针对第二深度报文检测设置的计数器的计数增加预设数值,直至再次接收到引擎激活通知。并且,内核态进程在第二深度报文检测引擎每输出处理一个数据流所采用的规则时,将将针对第二深度报文检测设置的计数器的计数减少预设数值。
并且内核态进程在接收到引擎激活通知前,通过第一深度报文检测引擎对接收到的数据流进行深度报文检测。
S208,内核态进程确定计数器的计数是否为初始值,如果为初始值,则执行S209,如果不为初始值,则返回执行S207。
S209,内核态进程删除第一深度报文检测引擎。
参见图3,图3所示为本发明实施例提供的深度报文检测引擎激活装置的结构示意图,可以包括:
数据接收模块301,用于接收用户态进程发送的用户态引擎数据;
引擎构建模块302,用于根据用户态引擎数据构建第二深度报文检测引擎;
深度报文检测模块303,用于在接收到用户态进程发送的引擎激活通知后,调用第二深度报文检测引擎对新的数据流进行深度报文检测,并继续调用第一深度报文检测引擎对接收到引擎激活通知前已接收的数据流进行深度报文检测;
引擎管理模块304,用于当不存在通过第一深度报文检测引擎进行深度报文检测的数据流时,删除第一深度报文检测引擎。
在一种可能的实施例中,引擎管理模块304,还用于根据在接收到引擎激活通知前接收的数据流的数量,以及第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过第一深度报文检测引擎进行深度报文检测的数据流。
在一种可能的实施例中,引擎管理模块304,具体用于在接收到用户态进程发送的引擎激活通知前,每新接收一个数据流,则将预设计数器的计数增加预设数值;
每当第一深度报文检测引擎输出一个处理数据流所采用的规则,则将预设计数器的计数减少预设数值;
当预设计数器的计数等于预设计数器的初始值时,确定不存在通过第一深度报文检测引擎进行深度报文检测的数据流。
在一种可能的实施例中,引擎管理模块304,还用于在接收到用户态进程发送的引擎激活通知前,每新接收一个数据流,则使用预设标识标注该数据流;
引擎管理模块具体用于当获取所有标注有预设标识的数据流的规则时,删除第一深度报文检测引擎。
本发明实施例还提供了一种电子设备,如图4所示,包括:
存储器401,用于存放计算机程序;
处理器402,用于执行存储器401上所存放的程序时,实现如下步骤:
接收用户态进程发送的用户态引擎数据;
根据用户态引擎数据构建第二深度报文检测引擎;
在接收到用户态进程发送的引擎激活通知后,调用第二深度报文检测引擎对新的数据流进行深度报文检测,并继续调用第一深度报文检测引擎对接收到引擎激活通知前已接收的数据流进行深度报文检测;
当不存在通过第一深度报文检测引擎进行深度报文检测的数据流时,删除第一深度报文检测引擎。
在一种可能的实施例中,方法还包括:
根据在接收到引擎激活通知前接收的数据流的数量,以及第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过第一深度报文检测引擎进行深度报文检测的数据流。
在一种可能的实施例中,根据在接收到引擎激活通知前接收的数据流的数量,以及第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过第一深度报文检测引擎进行深度报文检测的数据流,包括:
在接收到用户态进程发送的引擎激活通知前,每新接收一个数据流,则将预设计数器的计数增加预设数值;
每当第一深度报文检测引擎输出一个处理数据流所采用的规则,则将预设计数器的计数减少预设数值;
当预设计数器的计数等于预设计数器的初始值时,确定不存在通过第一深度报文检测引擎进行深度报文检测的数据流。
在一种可能的实施例中,方法还包括:
在接收到用户态进程发送的引擎激活通知前,每新接收一个数据流,则使用预设标识标注该数据流;
当不存在通过第一深度报文检测引擎进行深度报文检测的数据流时,删除第一深度报文检测引擎,包括:
当获取所有标注有预设标识的数据流的规则时,删除第一深度报文检测引擎。
上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一深度报文检测引擎激活方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一深度报文检测引擎激活方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种深度报文检测引擎激活方法,应用于内核态进程,所述内核态进程初始时用于调用第一深度报文检测引擎对报文进行深度报文检测,其特征在于,所述方法包括:
接收用户态进程发送的用户态引擎数据;
根据所述用户态引擎数据构建第二深度报文检测引擎;
在接收到所述用户态进程发送的引擎激活通知后,调用所述第二深度报文检测引擎对新的数据流进行深度报文检测,并继续调用所述第一深度报文检测引擎对接收到所述引擎激活通知前已接收的数据流进行深度报文检测;
当不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流时,删除所述第一深度报文检测引擎。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据在接收到所述引擎激活通知前接收的数据流的数量,以及所述第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过所述第一深度报文检测引擎进行深度报文检测的数据流。
3.根据权利要求2所述的方法,其特征在于,所述根据在接收到所述引擎激活通知前接收的数据流的数量,以及所述第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过所述第一深度报文检测引擎进行深度报文检测的数据流,包括:
在接收到所述用户态进程发送的引擎激活通知前,每新接收一个数据流,则将预设计数器的计数增加预设数值;
每当所述第一深度报文检测引擎输出一个处理数据流所采用的规则,则将所述预设计数器的计数减少所述预设数值;
当所述预设计数器的计数等于所述预设计数器的初始值时,确定不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到所述用户态进程发送的引擎激活通知前,每新接收一个数据流,则使用预设标识标注该数据流;
所述当不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流时,删除所述第一深度报文检测引擎,包括:
当获取所有标注有所述预设标识的数据流的规则时,删除所述第一深度报文检测引擎。
5.一种深度报文检测引擎激活装置,应用于内核态级进程,所述内核态进程初始时用于调用第一深度报文检测引擎对报文进行深度报文检测,其特征在于,所述装置包括:
数据接收模块,用于接收用户态进程发送的用户态引擎数据;
引擎构建模块,用于根据所述用户态引擎数据构建第二深度报文检测引擎;
深度报文检测模块,用于在接收到所述用户态进程发送的引擎激活通知后,调用所述第二深度报文检测引擎对新的数据流进行深度报文检测,并继续调用所述第一深度报文检测引擎对接收到所述引擎激活通知前已接收的数据流进行深度报文检测;
引擎管理模块,用于当不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流时,删除所述第一深度报文检测引擎。
6.根据权利要求5所述的装置,其特征在于,所述引擎管理模块,还用于根据在接收到所述引擎激活通知前接收的数据流的数量,以及所述第一深度报文检测引擎完成数据流检测的次数,确定是否存在通过所述第一深度报文检测引擎进行深度报文检测的数据流。
7.根据权利要求6所述的装置,其特征在于,所述引擎管理模块,具体用于在接收到所述用户态进程发送的引擎激活通知前,每新接收一个数据流,则将预设计数器的计数增加预设数值;
每当所述第一深度报文检测引擎输出一个处理数据流所采用的规则,则将所述预设计数器的计数减少所述预设数值;
当所述预设计数器的计数等于所述预设计数器的初始值时,确定不存在通过所述第一深度报文检测引擎进行深度报文检测的数据流。
8.根据权利要求5所述的装置,其特征在于,所述引擎管理模块,还用于在接收到所述用户态进程发送的引擎激活通知前,每新接收一个数据流,则使用预设标识标注该数据流;
所述引擎管理模块具体用于当获取所有标注有所述预设标识的数据流的规则时,删除所述第一深度报文检测引擎。
9.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911011000.0A CN110768865B (zh) | 2019-10-23 | 2019-10-23 | 一种深度报文检测引擎激活方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911011000.0A CN110768865B (zh) | 2019-10-23 | 2019-10-23 | 一种深度报文检测引擎激活方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110768865A true CN110768865A (zh) | 2020-02-07 |
CN110768865B CN110768865B (zh) | 2021-08-27 |
Family
ID=69332960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911011000.0A Active CN110768865B (zh) | 2019-10-23 | 2019-10-23 | 一种深度报文检测引擎激活方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110768865B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726633A (zh) * | 2022-04-14 | 2022-07-08 | 中国电信股份有限公司 | 流量数据处理方法及装置、存储介质及电子设备 |
CN115426135A (zh) * | 2022-08-12 | 2022-12-02 | 中国电信股份有限公司 | 流量检测规则的处理、网络流量的检测方法、装置及设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442493A (zh) * | 2008-12-26 | 2009-05-27 | 华为技术有限公司 | Ip报文分发方法、集群系统和负载均衡器 |
CN101854391A (zh) * | 2010-05-25 | 2010-10-06 | 南京邮电大学 | 一种基于对等网络的阿瑞斯协议分析系统的实现方法 |
CN101867558A (zh) * | 2009-04-17 | 2010-10-20 | 深圳市永达电子股份有限公司 | 用户态网络协议栈系统及处理报文的方法 |
WO2013070346A2 (en) * | 2011-10-05 | 2013-05-16 | Freeband Technologies, Inc. | Application enabled bandwidth billing system and method |
CN103609070A (zh) * | 2012-10-29 | 2014-02-26 | 华为技术有限公司 | 网络流量检测方法、系统、设备及控制器 |
US20140226478A1 (en) * | 2013-02-11 | 2014-08-14 | Vmware, Inc. | Distributed deep packet inspection |
CN106060149A (zh) * | 2016-06-24 | 2016-10-26 | 北京交通大学 | 一种移动互联网海量数据分析审计技术架构 |
CN106603376A (zh) * | 2016-12-14 | 2017-04-26 | 东软集团股份有限公司 | 报文处理方法和虚拟专用网络sslvpn服务器 |
CN107547566A (zh) * | 2017-09-29 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种处理业务报文的方法及装置 |
CN107645502A (zh) * | 2017-09-20 | 2018-01-30 | 新华三信息安全技术有限公司 | 一种报文检测方法及装置 |
CN107797848A (zh) * | 2016-08-29 | 2018-03-13 | 华为数字技术(苏州)有限公司 | 进程调度方法、装置和主机设备 |
CN108200086A (zh) * | 2018-01-31 | 2018-06-22 | 四川九洲电器集团有限责任公司 | 一种高速网络数据包过滤装置 |
CN109343977A (zh) * | 2018-09-21 | 2019-02-15 | 新华三技术有限公司成都分公司 | 跨态通信方法和通道驱动装置 |
CN109388499A (zh) * | 2017-08-04 | 2019-02-26 | 东软集团股份有限公司 | 报文转发方法及装置、计算机可读存储介质、电子设备 |
CN109496409A (zh) * | 2017-12-27 | 2019-03-19 | 华为技术有限公司 | 一种数据传送的方法和虚拟交换机 |
-
2019
- 2019-10-23 CN CN201911011000.0A patent/CN110768865B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442493A (zh) * | 2008-12-26 | 2009-05-27 | 华为技术有限公司 | Ip报文分发方法、集群系统和负载均衡器 |
CN101867558A (zh) * | 2009-04-17 | 2010-10-20 | 深圳市永达电子股份有限公司 | 用户态网络协议栈系统及处理报文的方法 |
CN101854391A (zh) * | 2010-05-25 | 2010-10-06 | 南京邮电大学 | 一种基于对等网络的阿瑞斯协议分析系统的实现方法 |
WO2013070346A2 (en) * | 2011-10-05 | 2013-05-16 | Freeband Technologies, Inc. | Application enabled bandwidth billing system and method |
CN103609070A (zh) * | 2012-10-29 | 2014-02-26 | 华为技术有限公司 | 网络流量检测方法、系统、设备及控制器 |
US20140226478A1 (en) * | 2013-02-11 | 2014-08-14 | Vmware, Inc. | Distributed deep packet inspection |
CN106060149A (zh) * | 2016-06-24 | 2016-10-26 | 北京交通大学 | 一种移动互联网海量数据分析审计技术架构 |
CN107797848A (zh) * | 2016-08-29 | 2018-03-13 | 华为数字技术(苏州)有限公司 | 进程调度方法、装置和主机设备 |
CN106603376A (zh) * | 2016-12-14 | 2017-04-26 | 东软集团股份有限公司 | 报文处理方法和虚拟专用网络sslvpn服务器 |
CN109388499A (zh) * | 2017-08-04 | 2019-02-26 | 东软集团股份有限公司 | 报文转发方法及装置、计算机可读存储介质、电子设备 |
CN107645502A (zh) * | 2017-09-20 | 2018-01-30 | 新华三信息安全技术有限公司 | 一种报文检测方法及装置 |
CN107547566A (zh) * | 2017-09-29 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种处理业务报文的方法及装置 |
CN109496409A (zh) * | 2017-12-27 | 2019-03-19 | 华为技术有限公司 | 一种数据传送的方法和虚拟交换机 |
CN108200086A (zh) * | 2018-01-31 | 2018-06-22 | 四川九洲电器集团有限责任公司 | 一种高速网络数据包过滤装置 |
CN109343977A (zh) * | 2018-09-21 | 2019-02-15 | 新华三技术有限公司成都分公司 | 跨态通信方法和通道驱动装置 |
Non-Patent Citations (5)
Title |
---|
ALYSSON SANTOS: "High-Performance Traffic Workload Architecture for Testing DPI Systems", 《2011 IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE - GLOBECOM 2011》 * |
刘坤灿: "防火墙深度包检测技术的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
杜晔等: "基于NDIS中间层驱动的对等网络流量监管机制", 《北京交通大学学报》 * |
汪胜: "基于NDIS防火墙的设计与实现", 《移动通信》 * |
蔡俊朝等: "一种网络信息监管系统的设计与实现", 《微电子学与计算机》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726633A (zh) * | 2022-04-14 | 2022-07-08 | 中国电信股份有限公司 | 流量数据处理方法及装置、存储介质及电子设备 |
CN114726633B (zh) * | 2022-04-14 | 2023-10-03 | 中国电信股份有限公司 | 流量数据处理方法及装置、存储介质及电子设备 |
CN115426135A (zh) * | 2022-08-12 | 2022-12-02 | 中国电信股份有限公司 | 流量检测规则的处理、网络流量的检测方法、装置及设备 |
CN115426135B (zh) * | 2022-08-12 | 2023-12-12 | 中国电信股份有限公司 | 流量检测规则的处理、网络流量的检测方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110768865B (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889547B (zh) | 一种异常网络设备的检测方法及装置 | |
CN110830986B (zh) | 一种物联网卡异常行为检测方法、装置、设备及存储介质 | |
CN113489713B (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
CN112003838B (zh) | 网络威胁的检测方法、装置、电子装置和存储介质 | |
CN110519265B (zh) | 一种防御攻击的方法及装置 | |
US20190147163A1 (en) | Inferential exploit attempt detection | |
CN113408948A (zh) | 一种网络资产管理方法、装置、设备和介质 | |
CN110768865B (zh) | 一种深度报文检测引擎激活方法、装置及电子设备 | |
CN109889511B (zh) | 进程dns活动监控方法、设备及介质 | |
CN110022259B (zh) | 消息到达率确定方法、装置、数据统计服务器及存储介质 | |
US11568053B2 (en) | Automated malware monitoring and data extraction | |
CN109815702B (zh) | 软件行为的安全检测方法、装置及设备 | |
CN114208114B (zh) | 每参与者的多视角安全上下文 | |
CN108933781B (zh) | 用于处理字符串的方法、装置及计算机可读存储介质 | |
CN113098852B (zh) | 一种日志处理方法及装置 | |
CN107612946B (zh) | Ip地址的检测方法、检测装置和电子设备 | |
CN113992426A (zh) | 一种报文分发方法、装置、存储介质及电子设备 | |
CN113051571B (zh) | 一种误报漏洞的检测方法、装置及计算机设备 | |
CN109976828B (zh) | 一种配置文件的方法及装置 | |
CN112948831B (zh) | 应用程序风险识别的方法和装置 | |
CN109802965B (zh) | 一种自定义ips特征文件导入方法及装置 | |
CN106155736B (zh) | 软件安装启动类型检测方法、装置及用户终端 | |
CN109067726B (zh) | 建站系统识别方法、装置、电子设备及存储介质 | |
JP2018106634A (ja) | ホワイトリスト作成装置 | |
CN113839948A (zh) | 一种dns隧道流量检测方法、装置、电子设备和存储介质 |
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 |