网络流量检测方法、装置、系统、电子设备及存储介质
文献发布时间:2024-01-17 01:26:37
技术领域
本申请涉及通信技术领域,尤其涉及一种网络流量检测方法、装置、系统、电子设备及存储介质。
背景技术
入侵检测系统(Intrusion Detection System,IDS)和入侵防御系统(IntrusionPrevention System,IPS)通常部署在服务器或主机上,利用服务器或主机上的CPU(Central Processing Unit,中央处理器)实现流量检测、规则匹配等功能,并根据设定的管理规则对特定流量进行放行或者限制等操作。
近年来,随着网络技术的发展,区域网络业务提供商(Internet ServiceProvider,ISP)的流量聚合点的网络带宽已达到数百Gbps,且网络设备厂商、标准组织以及企业在可预见的未来对高网络带宽的需求还会不断增加。传统的服务器或主机CPU无法满足现今高带宽、大流量的需求,因此,可能会造成服务器或主机CPU出现故障,影响部署在服务器或者主机上的IDS/IPS对流量的检测,造成网络安全系统效率低下。
发明内容
本申请实施例的主要目的在于提出一种网络流量检测方法、装置、系统、电子设备及存储介质,在加快流量的检测速度的同时能够适应高带宽、大流量的处理环境,增强系统的鲁棒性。
为实现上述目的,本申请实施例的第一方面提出了一种网络流量检测方法,应用于网络流量检测系统,所述系统包括:数据平面子系统,包括流量匹配与管制模块;计算平面子系统,位于所述数据平面子系统的上层,包括检测引擎模块和数据库模块;控制平面子系统,位于所述计算平面子系统的上层,包括编译安装程序模块;所述方法包括:通过数据平面子系统接收数据包,并对接收的所述数据包进行一级检测;其中,所述一级检测包括:利用流量匹配与管制模块根据流表对所述数据包进行规则匹配;若所述数据包与所述流表中的规则匹配成功,得到所述数据包的第一检测结果;根据所述第一检测结果,对所述数据包进行转发或丢弃处理;若所述数据包在进行一级检测时与所述流表中的规则匹配失败,对所述数据包进行转发后,将所述数据包传送至计算平面子系统的检测引擎模块进行二级检测,得到第二检测结果;将所述数据包和所述二级检测结果更新至所述数据库模块的数据库信息表中,由所述编译安装程序模块根据更新后的所述数据库信息表编译新的流表,并将所述流表安装至所述流量匹配与管制模块。
根据本申请的一些实施例,所述得到所述数据包的第一检测结果之后,还包括:获取所述流表对应的规则失效时间;若所述规则达到失效时间,将匹配到所述规则的数据包上传至所述计算平面子系统的检测引擎模块进行二级检测。
根据本申请的一些实施例,所述方法还包括:统计在同一属性下数据包的动作匹配项为拒绝的次数;其中,所述属性包括标识符、互联网协议地址和位置信息;若所述次数达到预设次数,对所述属性添加第一标识;其中,所述第一标识用于对动作匹配项为拒绝的数据包进行辨别;将所述数据包上传至所述计算平面子系统的检测引擎模块进行二级检测,得到第二检测结果。
根据本申请的一些实施例,所述控制平面子系统还包括用户控制模块,所述用户控制模块位于所述编译安装程序模块的上层;所述方法还包括:从所述数据库模块中获取数据库信息表;利用所述用户控制模块从所述数据库信息表中,提取规则生效标识为被置位状态的条目对应的规则信息,构建初始状态表;其中,所述数据库信息表包括规则、匹配项、动作、历史命中次数、命中时间戳、数据内容以及规则生效标识;将所述初始状态表中的最后命中时间初始化为0;将所述初始状态表的可修改标识初始化为可修改;根据所述数据库信息表中的动作,对所述初始状态表中的存储标志进行初始化后,生成状态表;其中,所述状态表包括规则、最后命中时间、可修改标志以及存储标志;利用所述编译安装程序模块根据所述数据库信息表的数据结构,生成流表,并将所述流表安装至流量匹配与管制模块。
根据本申请的一些实施例,所述计算平面子系统还包括分类存储模块,所述分类存储模块位于所述流量匹配与管制模块的上层,所述根据所述第一检测结果,对所述数据包进行转发或丢弃处理,包括:若所述第一检测结果匹配的规则对应的动作匹配项为允许,则通过所述流量匹配与管制模块将所述数据包进行转发并收取;其中,所述动作匹配项包括允许、警告和拒绝;若所述第一检测结果匹配的规则对应的动作匹配项为警告,则通过所述流量匹配与管制模块在将所述数据包进行转发并收取后,将所述数据包镜像后添加虚拟局域网,并传输至分类存储模块,以使得所述分类存储模块根据状态表中的存储标志对镜像数据包进行处理;若所述第一检测结果匹配的规则对应的动作匹配项为拒绝,通过所述流量匹配与管制模块丢弃所述数据包,将所述数据包镜像后添加虚拟局域网,并传输至分类存储模块,以使得所述分类存储模块根据所述状态表中的存储标志对镜像数据包进行处理。
根据本申请的一些实施例,所述镜像数据包由所述分类存储模块通过以下方式进行处理:若所述存储标志未被置位时,丢弃所述镜像数据包;若所述存储标志被置位时,利用所述分类存储模块从添加的所述虚拟局域网中提取所述镜像数据包,并根据虚拟局域网标识将所述镜像数据包分类存储至所述数据库模块的数据库信息表中;根据所述数据包的匹配信息,对所述数据库信息表和状态表进行更新。
根据本申请的一些实施例,所述根据所述数据包的匹配信息,对所述数据库信息表和状态表进行更新,包括;将所述数据包与所述流表中的规则匹配成功的时间作为命中时间进行记录;根据所述命中时间对所述镜像数据包的命中时间戳进行更新;对所述镜像数据包的内容和所述命中时间戳进行记录,并将所述数据库信息表中对应数据包的历史命中次数增加1次;向用户控制模块进行报告,以使得所述用户控制模块根据所述命中时间戳对所述状态表的最后命中时间进行更新。
根据本申请的一些实施例,所述控制平面子系统还包括用户控制模块,所述用户控制模块用于对所述数据库模块进行管理;所述将所述数据包和所述二级检测结果更新至所述数据库模块的数据库信息表中,包括:通过所述检测引擎模块在所述数据库信息表中对所述数据包进行查询;若所述数据库信息表中存在所述数据包对应的条目,则对所述条目中的内容进行更新;若所述数据库信息表中不存在对应规则的条目,则通过用户控制模块在所述数据库信息表中对所述条目进行创建。
根据本申请的一些实施例,所述通过用户控制模块在所述数据库信息表中对所述条目进行创建,包括:通过所述用户控制模块对所述条目的规则、匹配项和动作进行指定;将历史命中次数、命中时间戳和数据内容初始化为空,并将所述规则生效标识设为未置位;将所述条目添加至所述数据库信息表中。
根据本申请的一些实施例,所述方法还包括:通过所述用户控制模块对所述条目进行删除,包括:通过所述用户控制模块在所述状态表中查找需要删除的条目,并将所述条目进行删除;将所述数据库信息表中的所述条目的规则生效标识设为未置位;通过所述用户控制模块对所述条目进行增加,包括:通过所述用户控制模块查询所述数据库信息表中是否存在所述条目;若所述数据库信息表中不存在所述条目,对所述条目的规则、匹配项和动作进行指定;将所述条目的历史命中次数、命中时间戳和数据内容初始化为空,并将所述规则生效标识设为未置位;将所述条目增加至所述数据库信息表中;通过所述用户控制模块对所述条目进行修改,包括:通过所述用户控制模块在所述状态表中将对应条目的可修改标志设定为不可替换;根据存储策略,对存储标识进行修改,以确定存在数据包对所述规则匹配成功时,是否需要对所述规则进行存储。
根据本申请的一些实施例,所述通过所述用户控制模块对所述条目进行增加之后,还包括:对所述状态表的条目数进行统计;若所述条目数小于预设数量,则通过用户控制模块将所述数据库信息表中的规则条目增加至所述状态表中;或者,若所述条目数大于或者等于所述预设数量,且可修改标志为可替换的条目,则获取所述状态表中最后命中时间与当前时间间隔最长的条目,并通过用户控制模块对所述条目进行删除;或者,若检测到多个相同条目,则对至少其中的一个条目进行删除;或者,若不存在可修改标志为可替换的所述条目,则上报状态表已满且无法删除条目的信息至用户控制模块;对所述条目进行删除之后,增加新的规则条目。
根据本申请的一些实施例,所述方法还包括:当所述状态表中的条目发生删除、增加或修改时,通过用户模块对所述状态表中的规则进行查询;在所述数据库信息表中提取所述规则对应的匹配项和动作,并通过编译安装程序模块根据所述规则、所述匹配项和所述动作生成新的流表规则,再将所述流表规则下发至所述流量匹配与管制模块,以使所述规则生效。
本申请第二方面实施例提出了一种网络流量检测装置,所述装置包括:一级检测模块,用于通过数据平面子系统接收数据包,并对接收的所述数据包进行一级检测;其中,所述一级检测包括:利用流量匹配与管制模块根据流表对所述数据包进行规则匹配;第一检测结果获取模块,用于若所述数据包与所述流表中的规则匹配成功,得到所述数据包的第一检测结果;数据包处理模块,用于根据所述第一检测结果,对所述数据包进行转发或丢弃处理;第二检测结果获取模块,用于若所述数据包在进行一级检测时与所述流表中的规则匹配失败,对所述数据包进行转发后,将所述数据包传送至计算平面子系统的检测引擎模块进行二级检测,得到第二检测结果;更新与安装模块,用于将所述数据包和所述二级检测结果更新至所述数据库模块的数据库信息表中,由所述编译安装程序模块根据更新后的所述数据库信息表编译新的流表,并将所述流表安装至所述流量匹配与管制模块。
本申请第三方面实施例提出了一种网络流量检测系统,所述系统包括:数据平面子系统,包括流量匹配与管制模块;计算平面子系统,位于所述数据平面子系统的上层,包括检测引擎模块、数据库模块和分类存储模块;控制平面子系统,位于所述计算平面子系统的上层,包括用户控制模块和编译安装程序模块。
本申请第四方面实施例提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面实施例任一项所述的网络流量检测方法。
本申请第五方面实施例提出了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面实施例任一项所述的网络流量检测方法。
本申请提出的网络流量检测方法、装置、系统、电子设备及存储介质,能够将数据包在数据平面子系统进行一级检测,若在数据平面子系统中数据包与规则匹配失败,再将数据包上传至控制平面子系统的上层,即计算平面子系统进行二级检测,并对流表进行更新。因此,本申请的技术方案能够在上层子系统出现故障时,依然不影响下层子系统的检测,增加了系统的鲁棒性,且流量首先通过数据平面子系统进行检测,此时不必再占用服务器或者主机上的CPU内存,使得系统能够适应高带宽、大流量的处理环境。
附图说明
图1是本申请实施例提供的网络流量检测系统的硬件配置结构示意图;
图2时本申请实施例提供的网络流量检测系统的示意图;
图3是本申请实施例提供的网络流量检测方法的流程图;
图4是本申请实施例提供的数据包匹配未命中流程图;
图5是本申请实施例提供的得到数据包的第一检测结果之后的步骤流程图;
图6是本申请实施例提供的又一个网络流量检测方法的流程图;
图7是本申请另一实施例提供的网络流量检测方法的流程图;
图8是本申请实施例提供的数据库信息表条目图;
图9是本申请实施例提供的状态表示意图;
图10是图3中的步骤S103的一个流程图;
图11是本申请实施例提供的规则匹配图;
图12是本申请实施例提供的分类存储模块对镜像数据包的处理步骤图;
图13是图12示出的步骤S603的一个流程图;
图14是本申请实施例提供的更新数据库信息表的流程图;
图15是本申请实施例提供的创建条目步骤图;
图16是本申请实施例提供的删除条目步骤图;
图17是本申请实施例提供的增加条目步骤图;
图18是本申请实施例提供的修改条目步骤图;
图19是本申请实施例提供的增加条目之后的步骤图;
图20是本申请实施例提供的条目状态变动处理过程图;
图21是本申请实施例提供的再一个方法流程图;
图22是本申请实施例提供的网络流量检测装置的功能模块示意图;
图23是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
网络流量检测技术作为入侵检测系统(Intrusion Detection System,IDS)和入侵防御系统(Intrusion Prevention System,IPS)的基础,是网络安全系统的重要组成部分。IDS/IPS已经成为大多数公司或机构的网络安全基础架构中重要的一环,可以利用IDS/IPS来设置安全策略,防止外部恶意攻击系统或者个人违反特定安全策略行为的发生,同时也可用于收集网络信息。IDS/IPS会持续监视通过部署该系统的网络设备上的网络流量,利用规则匹配技术审查和识别可能存在风险的流量或数据包,并根据设定的管理规则对特定流量进行放行或者限制等操作。因此,网络安全系统的效率很大程度取决于网络流量检测技术。
现有IDS/IPS通常部署在服务器或主机上,利用CPU(Central Processing Unit,中央处理器)实现流量检测、规则匹配等功能。但是随着网络技术的发展,区域网络业务提供商(Internet Service Provider,ISP)的流量聚合点的网络带宽已达到数百Gbps(“Gigabits per second,千兆比特每秒),且网络设备厂商、标准组织以及企业在可预见的未来对高网络带宽的需求还会不断增加。因此,传统的服务器或主机CPU无法满足现今高带宽、大流量的需求,单纯采用IDS/IPS难以实现高速流量检测,造成网络安全系统处理流量数据的效率低下。
P4(Programming Protocol-independent Packet Processors)网络设备是一种可编程的网络交换机,可以通过使用P4语言来定义网络数据包的处理方式和流量转发规则,P4网络设备可以根据网络需求自定义处理数据包,从而提高网络的效率和灵活性。
基于此,本申请实施例提供了一种网络流量检测方法、装置、系统、电子设备及存储介质,能够加快对流量的检测速度,以使得流量的检测不受限于传统的服务器或者主机的内存。
本申请实施例提供的网络流量检测方法、装置、系统、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的网络流量检测系统。
请参照图1,首先,对网络流量检测系统的硬件配置进行介绍。在一些实施例中,网络检测系统的硬件配置包括服务器部分和P4网络设备部分(即流量匹配与管制模块)。其中,服务器部分包括CPU、内存以及存储器,在一些实施例中,检测引擎模块(即IDS/IPS检测引擎模块,图中未示出)部署在服务器部分的CPU上,或者部署在服务器的其他模块上,本申请对此不予限制。P4网络设备部分包括P4芯片以及入端口(IN)以及出端口(OUT)。
在一些实施例中,数据流量通过流量入端口进入网络流量检测系统,首先由P4网络设备的P4芯片对数据包进行规则匹配,若规则匹配成功,则由P4网络设备对流量进行转发或者丢弃处理,其中,转发的数据包经由出端口进行传输;若规则匹配失败,则将数据包镜像打包,由服务器上部署的检测引擎模块对镜像数据包进行检测,检测完毕后通过流量出端口进行传输。
请参照图2,在一些实施例中,网络流量检测系统包括:数据平面子系统100、计算平面子系统200、控制平面子系统300。
其中,数据平面子系统100包括流量匹配与管制模块110,负责对入端口流量进行规则匹配并按照规则对对应流量进行管制。可以理解的是,流量匹配与管制模块即为P4网络设备,如可编程交换机、网卡等等。
计算平面子系统200位于数据平面子系统100的上层,包括检测引擎模块210、数据库模块220和分类存储模块230,负责在软件形式上对流量进行匹配和管制,并且对指定数据包进行信息收集和分类存储管理由匹配规则所指定的数据包。
控制平面子系统300位于计算平面子系统200的上层,包括用户控制模块310和编译安装程序模块320,主要负责对流量匹配规则进行查询、生成、下发和删除,对整个网络流量检测系统进行数据管理和功能调整。
本申请的流量检测方法、装置、系统、电子设备及存储介质,能够利用P4语言将流量匹配规则编程为流表,并下发至数据平面子系统的流量匹配与管制模块,高速提取数据包信息并进行流量的匹配和管制,协同检测引擎模块对流量进行检测,并加快其检测速度,从而适应高带宽、大流量的网络环境;且本申请将控制逻辑和计算逻辑分离,因此,在用户控制模块崩溃时,也不会影响其他模块的正常运行,提高了系统的鲁棒性。
本申请实施例中的网络流量检测方法可以通过如下实施例进行说明。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意,例如,获取用户存储的数据以及用户的缓存数据访问请求时,均会先获得用户的许可或者同意。而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的用户相关数据。
本申请的网络流量检测方法,应用于网络流量检测系统,系统包括:
数据平面子系统,包括流量匹配与管制模块;
计算平面子系统,位于数据平面子系统的上层,包括检测引擎模块和数据库模块;
控制平面子系统,位于计算平面子系统的上层,包括编译安装程序模块;
本申请在上文已对网络流量检测系统进行介绍,对此不予赘述。
图3是本申请实施例提供的网络流量检测方法的一个可选的流程图,图3中的方法可以包括但不限于包括步骤S101至步骤S106:
步骤S101,通过数据平面子系统接收数据包,并对接收的数据包进行一级检测;其中,一级检测包括:利用流量匹配与管制模块根据流表对数据包进行规则匹配;
步骤S102,若数据包与流表中的规则匹配成功,得到数据包的第一检测结果;
步骤S103,根据第一检测结果,对数据包进行转发或丢弃处理;
步骤S104,若数据包在进行一级检测时与流表中的规则匹配失败,对数据包进行转发后,将数据包传送至计算平面子系统的检测引擎模块进行二级检测,得到第二检测结果;
步骤S105,将数据包和二级检测结果更新至数据库模块的数据库信息表中,由编译安装程序模块根据更新后的数据库信息表编译新的流表,并将流表安装至流量匹配与管制模块。
在一些实施例中,一级检测由数据平面子系统中的流量匹配与管制模块进行,二级检测由计算平面子系统中的检测引擎模块进行。在一些实施例中,流量匹配与管制模块为P4网络设备(Programming Protocol-Independent Packet Processors,可编程协议无关数据包处理器),P4网络设备是一种可编程的网络设备,可以接收编译安装程序下发的流表,并根据流表中的规则对入端口进入的数据包进行一级检测。
在一些实施例中,检测引擎模块为IDS/IPS检测引擎模块,IDS/IPS检测引擎模块是指用于检测网络中是否存在安全漏洞、恶意攻击等的软件模块,IDS代表入侵检测系统,IPS代表入侵防御系统。具体地,IDS/IPS检测引擎模块通常会使用以下几种方法进行流量的检测,一是签名检测,检测引擎模块会对流量中的数据包进行匹配,检查是否与已知的攻击模式匹配,如果匹配则被视为攻击;二是异常检测:检测引擎模块可以通过分析网络流量的行为模式,检测出与正常行为不一致的流量,并将其视为攻击;三是协议检测,检测引擎模块会检查流量中所使用的协议是否存在漏洞或异常,如果存在则被视为攻击;四是基于统计的检测,引擎通过对流量进行统计分析,检测出异常的数据流,并认为其可能构成攻击。可以理解的是,检测引擎模块可以通过多种方式对流量进行检测,上述列举的方式只是部分实施例,还可以通过其他方式对流量进行检测。在一些实施例中,本申请将检测引擎模块对数据包进行的检测称之为二级检测,通过检测引擎模块对数据包进行检测,能够提高网络的安全性。
参照图4,可以理解的是,由于计算平面子系统位于数据平面子系统的上层,因此,数据包首先经过数据平面子系统中的流量匹配与管制模块进行一级检测,若一级检测中数据包匹配流表中的规则成功,则直接根据匹配的规则对数据包进行处理。具体的,若数据包对应的规则中的动作匹配项为允许或者警告,将数据包通过出端口进行转发,若数据包对应的规则中的动作匹配项为拒绝,则将数据包丢弃。可以理解的是,若在一级检测中,对规则匹配失败,则将数据包通过出端口进行转发之后,上传至计算平面子系统的检测引擎模块进行检测。
可以理解的是,在检测引擎模块对数据包进行检测并得到检测结果之后,由于数据包之前并未命中匹配规则,因此,可以将检测结果更新至数据库信息表中。在一些实施例中,由于流表和状态表是根据数据库信息表的内容或者结构生成的,因此,数据库信息表更新之后,用户控制模块从数据库信息表中提取已置为的规则生效标志建立初始状态表,再将状态表中的规则条目进行初始化,形成状态表。在一些实施例中,编译安装程序模块能够根据数据库信息表中的数据结构和数据内容进行编译,形成可以安装在流量匹配与管制模块的流表,并将流表下发安装至流量匹配与管制模块,以便于后续流量匹配与管制模块能够根据中的流表对相同类型的数据包进行规则匹配。
在一些实施例中,流表由编译安装模块根据数据库信息表的数据结构安装至流量匹配与管制模块,因此,具备了与数据库信息表相同的条目信息,在数据流量通过入端口进入系统后,流量匹配与管制模块根据流表中的规则对数据包进行规则匹配,若匹配成功,则直接由流量匹配与管制模块对数据包进行处理,因此,无需再占用服务器或者CPU内存对数据包进行处理,不会造成服务器的卡顿,提高了对流量的管控速度,大大节约了存储容量。
本申请提出的网络流量检测方法、装置、系统、电子设备及存储介质,能够将数据包在数据平面子系统进行一级检测,若在数据平面子系统中数据包与规则匹配失败,再将数据包上传至控制平面子系统的上层,即计算平面子系统进行二级检测,并对流表进行更新。因此,本申请的技术方案能够在上层子系统出现故障时,依然不影响下层子系统的检测,增加了系统的鲁棒性,且流量首先通过数据平面子系统进行检测,此时不必再占用服务器或者主机上的CPU内存,使得系统能够适应高带宽、大流量的处理环境。
参照图5,在一些实施例中,得到数据包的第一检测结果之后,还包括但不限于步骤S201至步骤S202:
步骤S201,获取流表对应的规则失效时间;
步骤S202,若规则达到失效时间,将匹配到规则的数据包上传至计算平面子系统的检测引擎模块进行二级检测。
在一些实施例中,可以对流表设置对应的规则失效时间。具体的,可以通过编译安装模块在已有的流表条目上安装规则失效条目,或者在其他条目上增加规则失效时间的处理逻辑。具体地,可以对所有条目增加规则失效时间,或者,只对需要增加规则失效时间的条目进行规则失效时间的增加。在一些实施例中,需要在规则失效时间处理逻辑的相关代码中设置规则失效时间的触发条件,例如可以在指定时间后触发失效,或者在某些特定条件下触发失效。在一些实施例中,可以在代码中设置规则失效时间触发后的处理逻辑,例如可以将失效的规则从条目中移除,或者将其标记为已失效。
可以理解的是,对流表设置规则失效时间,可以确保系统的安全性。具体地,在网络环境中,攻击者可能会利用已有的流表规则进行非法攻击,例如进行DDoS攻击(Distributed Denial of Service Attack,分布式拒绝服务攻击)等。可以理解的是,若流表规则没有失效时间,攻击者可以持续利用流表中的规则进行攻击,从而导致网络瘫痪。设置规则失效时间可以强制流表规则定期更新,防止攻击者利用旧规则进行攻击。在一些实施例中,对流表设置规则失效时间可以节约资源,具体地,网络设备通常会有流表规则的总数限制,如果没有规则失效时间,规则将会一直存在于流表中,占用其它流表的匹配资源,设置规则失效时间可以让旧的规则自动失效,给新的流表规则提供空间。并且,若流表规则没有设置规则失效时间,可能会出现规则之间相互冲突的情况,使得流量检测无法正常进行,示例性地,当一个新的规则与旧的规则发生冲突时,旧的规则可能会优先生效,从而导致流量被错误地转发,设置规则失效时间可以确保规则及时更新,防止出现规则之间的冲突。
在一些实施例中,若某条规则达到了失效时间,那么,数据包通过入端口进入流量匹配与管制模块时,及时数据包与该条规则匹配成功,依然将对应的数据包上传至检测引擎模块进行检测,以确保流量检测的有效性和安全性。
请参照图6,在一些实施例中,方法还包括但不限于步骤S301至步骤S303:
步骤S301,统计在同一属性下数据包的动作匹配项为拒绝的次数;其中,属性包括标识符、互联网协议地址和位置信息;
步骤S302,若次数达到预设次数,对属性添加第一标识;其中,第一标识用于对动作匹配项为拒绝的数据包进行辨别;
步骤S303,将数据包上传至计算平面子系统的检测引擎模块进行二级检测,得到第二检测结果。
在一些实施例中,统计流量数据包的动作匹配项为拒绝的次数,并添加第一标签,可以通过统计拒绝的次数,对可能存在潜在安全风险的流量二级检测。具体地,某个流量在进行一级检测的过程中,若对于警告(Alert)的预设次数为10次,匹配规则为警告的次数达到了10次,那么,在对该流量进行第11次检测时,该流量即使在一级检测的规则匹配为警告或者允许,也依然将其转发至计算平面子系统的检测引擎模块进行二级检测,以确保该流量的安全性。
在一些实施例中,具体地,某个流量在进行一级检测的过程中,若对于丢弃(Deny)的预设次数为5次,匹配规则为丢弃的次数达到了5次,那么,在对该流量进行第6次检测时,即使该流量在一级检测的规则匹配为警告或者允许,也依然将其转发至计算平面子系统的检测引擎模块进行二级检测,以确保该流量的安全性。
在一些实施例中,若某个流量被添加第一标识,那么,在后续相应的流量再次通过入端口进入系统时,流量匹配与管制模块识别了该流量的属性之后,可不用对其进行一级检测,直接将该流量上传至检测引擎模块进行二级检测,如此,能够在确保安全性的情况下,提高流量检测的速度。具体地,流量的属性可以为标识符、互联网协议地址和位置信息等等。
在一些实施例中,第一标识为对于匹配的规则为警告或者丢弃的次数达到了预设次数添加的标识。在一些实施例中,第一标识可以为黑名单标识。在一些实施例中,可以对第一标识进行识别后分类,如攻击型流量,破坏型流量、感染型流量、窃密型流量等等,更多分类的方式在此不予赘述。
请参照图7,在一些实施例中,控制平面子系统还包括用户控制模块,用户控制模块位于编译安装程序模块的上层;方法还包括但不限于包括步骤S401至步骤S406:
步骤S401,从数据库模块中获取数据库信息表;
步骤S402,利用用户控制模块从数据库信息表中,提取规则生效标识为被置位状态的条目对应的规则信息,构建初始状态表;其中,数据库信息表包括规则、匹配项、动作、历史命中次数、命中时间戳、数据内容以及规则生效标识;
步骤S403,将初始状态表中的最后命中时间初始化为0;
步骤S404,将初始状态表的可修改标识初始化为可修改;
步骤S405,根据数据库信息表中的动作,对初始状态表中的存储标志进行初始化后,生成状态表;其中,状态表包括规则、最后命中时间、可修改标志以及存储标志;
步骤S406,利用编译安装程序模块根据数据库信息表的数据结构,生成流表,并将流表安装至流量匹配与管制模块。
在一些实施例中,数据库信息表用来存储和管理已知的网络威胁、漏洞、攻击等与流量有关的信息。可以理解的是,数据库信息表中的信息可以来自公开的漏洞库、攻击特征库、恶意软件库等,也可以由系统内部的检测引擎模块经过二级检测更新的。在一些实施例中,检测引擎模块可以通过数据库信息表来对流量进行检测。在一些实施例中,数据库信息表还可以用于日志记录和安全分析,以追溯和分析安全事件的来源和影响。
参照图8,在一些实施例中,数据库信息表(也称信息表)至少包含但不限于以下条目:
规则(rule_id):规则(rule_id)指的是一条用于检测和防御网络安全攻击的规则的唯一标识符,规则标识符通常由一个数字或字符串组成,用于区别不同的规则。例如,Snort是一款IDS/IPS软件,规则的标识通常以"SID"开头,后面跟着一个数字,表示规则的唯一标识符。比如,规则ID为"SID:12345"的规则表示一条检测和防御某种类型的网络攻击数据的规则。可以理解的是,规则可以被IDS/IPS用来检测相应的攻击行为,在匹配到对应的规则之后,可对数据包进行允许、警告、拒绝操作;
匹配项(match_elm):指的是用于匹配数据包的条件,匹配项的作用是帮助流量匹配与管制模块判断数据包的去向和处理方式,匹配项标识了所要匹配的数据包元素及数据包元素的值,包含五元组(指源IP地址、目的IP地址、源端口、目的端口、传输协议)和负载(指数据包中携带的具体内容);
动作(action),标识当有数据包对匹配项进行匹配时,流量匹配与管制模块对数据包所要执行的动作,具体包含三类动作,一是正常转发(Allow),二是拒绝转发或弃包(Deny),三是警告并转发(Alert);
在一些实施例中,数据库信息表还包括:历史命中次数(match_num),表示在系统运行周期内匹配命中某条规则(rule_id)的次数,也即命中某条规则的数据包数量;命中时间戳(match_time),记录命中某条规则的时间;数据内容(pkt_content),存储了命中某条规则的数据包;规则生效标志(effective_tag),标识某条规则是否在流量匹配与管制模块中生效,当规则生效标志的值为0时表示未生效(未置位),1时表示生效(置位)。
在一些实施例中,编译安装程序模块可以根据数据库信息表的数据结构编译安装流表至流量匹配与管制模块中,具有上述结构的规则可以由直接下发至流量匹配与管制模块并生效。
可以理解的是,数据库信息表内包含的信息不限于上述内容。
在一些实施例中,对网络流量检测系统进行初始化包括建立并维护状态表以及编译安装流表。可以理解的是,状态表是用于记录数据包状态的表格。在一些实施例中,通过状态表可以实时监测通过入端口进入系统的数据包的状态,提高网络的性能和稳定性。在一些实施例中,在网络设备进行数据包转发和处理时,会根据状态表中维护的条目进行判断和处理,从而实现对流量的控制和管理。
在一些实施例中,用户控制模块从数据库信息表中提取规则生效标志(effective_tag=1)的条目的规则(rule_id)信息构建初始状态表,并将状态表中所有最后命中时间(match_last_time)初始化为0,将所有可修改标志(change_tag)初始化为y(标志为“y”时表示对应的规则可替换);依照数据库信息表中动作(action)表项初始化状态表中的存储标志(store)项,当动作(action)为允许时存储标志(store)项为0,当动作为警告或者拒绝时,存储标志项为1。由此,生成状态表并将状态表下发至编译安装程序模块。
如图9所示,在一些实施例中,建立好的状态表有4项维护的条目:一是规则(rule_id),由一串数字与字母唯一标识匹配规则;二是最后命中时间(match_last_time),记录了最后一次数据包匹配中某条规则的时间戳;三是可修改标志(change_tag),用于标志某条规则可否被替换,当该标志为“y”时代表可替换,当该标志为“n”时为不可替换;四是存储标志(store),用于标志匹配命中该规则的数据包内容是否被储存,当该表项为0时表示无需存储,当表项为1时表示需要存储。可以理解的是,状态表的条目数量上限为流量匹配与管制模块所能容纳的流表最大条目数,记为N。
可以理解的是,流表指的是P4流表,流表是由编译安装程序模块根据数据库信息表定义的数据结构和数据内容生成的,用于存储和管理数据库信息表中定义的匹配规则和处理操作,实现数据包的处理功能。在一些实施例中,当数据包进入网络流量检测系统的入端口时,流量匹配与管制模块会依据流表中记录的规则和动作对数据包进行处理和转发。
可以理解的是,对状态表和流表进行安装之后,完成了网络流量检测系统的初始化。
请参照图10,在一些实施例中,计算平面子系统还包括分类存储模块,分类存储模块位于流量匹配与管制模块的上层,步骤S103包括但不限于包括步骤S501至步骤S503:
步骤S501,若第一检测结果匹配的规则对应的动作匹配项为允许,则通过流量匹配与管制模块将数据包进行转发并收取;其中,动作匹配项包括允许、警告和拒绝;
步骤S502,若第一检测结果匹配的规则对应的动作匹配项为警告,则通过流量匹配与管制模块在将数据包进行转发并收取后,将数据包镜像后添加虚拟局域网,并传输至分类存储模块,以使得分类存储模块根据状态表中的存储标志对镜像数据包进行处理;
步骤S503,若第一检测结果匹配的规则对应的动作匹配项为拒绝,通过流量匹配与管制模块丢弃数据包,将数据包镜像后添加虚拟局域网,并传输至分类存储模块,以使得分类存储模块根据状态表中的存储标志对镜像数据包进行处理。
参照图10和图11,流量从入端口进入,当数据包与流表中的规则匹配成功后,流量匹配与管制模块根据流表的动作(action)对匹配命中的数据包进行管制。具体地,当数据包匹配中的规则的动作为允许(Allow)时,正常转发、收取对应的数据包;若数据包匹配中的规则的动作不为允许时,判断数据包匹配中的规则的动作是否为警告(Alert)时,正常转发、收取对应的数据包,并镜像该数据包,添加虚拟局域网(VLAN层,VLAN ID为101)至分类存储模块;当匹配中的规则的动作为拒绝时,丢弃对应的数据包,不对数据包进行转发、收取,并镜像对应的数据包、添加虚拟局域网(VLAN层,VLAN ID为102)至分类存储模块。
可以理解的是,数据包对动作的匹配可以依次进行,也可以同时进行。也即是说,可以同时判断对应的数据包匹配的动作是允许、警告或者拒绝。或者,可以先对数据包的动作是否为允许进行判断,再对数据包的动作是否为警告进行判断,再对数据包的动作是否为拒绝进行判断,判断的动作匹配项不分先后。
在一些实施例中,在镜像处理动作匹配项为拒绝的数据包,可以将数据包的的内容复制后发送至分类存储模块,而原始数据包则被丢弃,以避免对网络性能造成影响。这样,可以在不影响正常流量处理的情况下,对网络数据流量进行分析,发现潜在的网络安全问题和异常行为,并采取相应的措施。
参照图12,在一些实施例中,分类存储模块对镜像数据包的处理步骤包括但不限于步骤S601至步骤S603:
步骤S601,若存储标志未被置位时,丢弃镜像数据包;
步骤S602,若存储标志被置位时,利用分类存储模块从添加的虚拟局域网中提取镜像数据包,并根据虚拟局域网标识将镜像数据包分类存储至数据库模块的数据库信息表中;
步骤S603,根据数据包的匹配信息,对数据库信息表和状态表进行更新。
参照图11和图12,在一些实施例中,计算平面子系统的分类存储模块接收到镜像数据包之后,在状态表中对镜像数据包的存储标志进行查询,若镜像数据包对应的存储标志为0,即表明无需对该镜像数据包进行存储;若镜像数据包对应的存储标志不为0,则根据虚拟局域网的标识(即VLAN ID)将数据包分类存储至数据库信息表中,对该数据包在数据库信息表的内容进行更新,并将数据库信息表的更新信息报告至状态表,从而对状态表进行更新。
参照图13,在一些实施例中,步骤S603包括但不限于步骤S701至步骤S704;
步骤S701,将数据包与流表中的规则匹配成功的时间作为命中时间进行记录;
步骤S702,根据命中时间对镜像数据包的命中时间戳进行更新;
步骤S703,对镜像数据包的内容和命中时间戳进行记录,并将数据库信息表中对应数据包的历史命中次数增加1次;
步骤S704,向用户控制模块进行报告,以使得用户控制模块根据命中时间戳对状态表的最后命中时间进行更新。
在一些实施例中,可以根据数据包的匹配信息,对数据库信息表和状态表进行更新。具体地,在数据包进行一级检测时,若数据包与对应的规则匹配成功,那么,会对规则匹配成功的时间作为命中时间进行记录。在一些实施例中,可以将命中时间作为镜像数据包的命中时间戳(match_time)进行更新,并将历史命中次数(match_num)增加一次,同时将更新通知报告用户控制模块,用户控制模块根据命中时间戳在状态表中对该数据包的最后命中时间进行更新。
示例性地,当数据包通过入端口进入系统后,经过一级检测,匹配规则成功,匹配成功的时间为2021年10月1日21点30分02秒,系统会将该命中时间记录下来,镜像数据包之后,该镜像数据包在的命中时间戳更新为2021年10月1日21点30分02秒,同时将历史命中次数加1。在一些实施例中,系统还会将更新通知报告给用户控制模块,用户控制模块会在状态表中找到该数据包的记录,并将对应数据包的最后命中时间更新为2021年10月1日21点30分02秒。可以理解的是,根据命中时间对数据库信息表和状态表进行更新,可以有效地跟踪和管理网络流量。
参照图14,在一些实施例中,控制平面子系统还包括用户控制模块,用户控制模块用于对数据库模块进行管理;将数据包和二级检测结果更新至数据库模块的数据库信息表中,包括但不限于步骤S801至步骤S803:
步骤S801,通过检测引擎模块在数据库信息表中对数据包进行查询;
步骤S802,若数据库信息表中存在数据包对应的条目,则对条目中的内容进行更新;
步骤S803,若数据库信息表中不存在对应规则的条目,则通过用户控制模块在数据库信息表中对条目进行创建。
在一些实施例中,在对数据包进行二级检测并得到检测结果之后,可以通过检测引擎模块在数据库信息表中进行查询,以判断数据库信息表中是否存在与数据包对应规则的条目。可以理解的是,由于规则生效标志(effective_tag)为1的条目会存在于流表中,若流表中存在该条条目,则对数据包进行一级检测,一般情况下都无需再进行二级检测,所以,经过二级检测的的数据包对应条目的规则生效标志(effective_tag)都为0,即未置位状态。因此,可以在数据库信息表中对该条目下的内容进行更新。如对规则、匹配项、动作等进行更新。可以理解的是,若在数据库信息表中不存在对应规则的条目,则表明该数据包是第一次出现,因此,可以通过用户控制模块在数据库信息表中对条目进行创建,并根据创建后的条目对状态表和流表进行更新,以便于后续的流量检测。
参照图15,在一些实施例中,通过用户控制模块在数据库信息表中对条目进行创建,包括但不限于步骤S901至步骤S903:
步骤S901,通过用户控制模块对条目的规则、匹配项和动作进行指定;
步骤S902,将历史命中次数、命中时间戳和数据内容初始化为空,并将规则生效标识设为未置位;
步骤S903,将条目添加至数据库信息表中。
在一些实施例中,可以通过用户控制模块增加数据包对应的条目至状态表中。具体地,用户在数据库信息表中创建该规则条目,首先根据二级检测结果对规则(rule_id)、匹配项(match_elm)和动作(action)进行指定,如二级检测结果为对该数据包允许转发,那么动作(action)为允许。
在一些实施例中,将历史命中次数(match_num)、命中时间戳(match_time)和数据内容(pkt_content)初始化为空,并将规则生效标识(effective_tag)设为未置位,即将规则生效标识初始化为0。在一些实施例中,将各个条目数据项进行初始化之后,即可将条目添加至数据库信息表中,并根据数据库信息表,对流表和状态表进行更新。
可以理解的是,计算平面子系统可以为Snort3,Snort3定义有各个数据包的规则,当需要对数据库信息表进行更新时,可以指定位于Snort3中的规则转换为数据库信息表中的规则条目。
例如,假设用户在Snort3中定义了一条规则,如当Snort3检测到任何TCP(Transmission Control Protocol,传输控制协议)流量发送到IP地址为192.168.1.1的主机的80端口时,将会发出"Web traffic detected"的警告,并且将该事件标记为ID(标识符)为10001的规则。然后,可以指定将该规则转换为数据库信息表中的规则条目。
参照图16,在一些实施例中,通过用户控制模块对条目进行删除,包括但不限于步骤S1001至步骤1002:
步骤S1001,通过用户控制模块在状态表中查找需要删除的条目,并将条目进行删除;
步骤S1002,将数据库信息表中的条目的规则生效标识设为未置位;
在一些实施例中,用户可以通过用户控制模块手动删除状态表中的规则条目。具体地,当用户确定删除某条规则时,状态表将该条规则的状态信息从状态表中删除,并将数据库信息表中对应规则的条目中的生效标识(effective_tag)置为0,以使对应的规则失效。
参照图17,在一些实施例中,通过用户控制模块对条目进行增加,包括但不限于步骤S1101至步骤S1104:
步骤S1101,通过用户控制模块查询数据库信息表中是否存在条目;
步骤S1102,若数据库信息表中不存在条目,对条目的规则、匹配项和动作进行指定;
步骤S1103,将条目的历史命中次数、命中时间戳和数据内容初始化为空,并将规则生效标识设为未置位;
步骤S1104,将条目增加至数据库信息表中;
在一些实施例中,用户可以通过用户控制模块手动增加规则条目至状态表中。在一些实施例中,用户首先通过用户控制模块查询数据库信息表中是否已存在该条规则,若存在该条规则,则根据数据库信息表的各项条目,对该条规则的内容进行更新。
在一些实施例中,可以通过用户控制模块增加数据包对应的条目至状态表中。具体地,用户在数据库信息表中创建该规则条目,首先对规则(rule_id)、匹配项(match_elm)和动作(action)进行指定,具体由计算平面子系统确定。在一些实施例中,将历史命中次数(match_num)、命中时间戳(match_time)和数据内容(pkt_content)初始化为空,并将规则生效标识(effective_tag)设为未置位,即将规则生效标识初始化为0。在一些实施例中,将各个条目数据项进行初始化之后,即可将条目添加至数据库信息表中,并根据数据库信息表,对流表和状态表进行更新。
参照图18,在一些实施例中,通过用户控制模块对条目进行修改,包括但不限于步骤S1201至步骤S1202:
步骤S1201,通过用户控制模块在状态表中将对应条目的可修改标志设定为不可替换;
步骤S1202,根据存储策略,对存储标识进行修改,以确定存在数据包对规则匹配成功时,是否需要对规则进行存储。
在一些实施例中,用户可以通过用户控制模块手动修改状态表中的可修改标志(change_tag)为未置位,以对该条目进行锁定,标识该条规则不可被替换。在一些实施例中,可以通过修改存储标志(store)项来确定数据包存储策略,当存储标志未被置位(即store项为0)时,表示在检测的过程中,匹配命中该条规则的数据包无需存储;若存储标志为置位,即store为1时,表示匹配命中该条规则的数据包需要存储。可以理解的是,当需要修改该条规则为其他规则时,则通过先删除该条规则对应的条目,再添加新的条目来实现。
参照图19,在一些实施例中,通过用户控制模块对条目进行增加之后,还包括但不限于步骤S1301至步骤S1302:
步骤S1301,对状态表的条目数进行统计;
步骤S1302,若条目数小于预设数量,则通过用户控制模块将数据库信息表中的规则条目增加至状态表中;
或者,若条目数大于或者等于预设数量,且可修改标志为可替换的条目,则获取状态表中最后命中时间与当前时间间隔最长的条目,并通过用户控制模块对条目进行删除;
或者,若检测到多个相同条目,则对至少其中的一个条目进行删除;
或者,若不存在可修改标志为可替换的条目,则上报状态表已满且无法删除条目的信息至用户控制模块;
对条目进行删除之后,增加新的规则条目。
参照图20,在一些实施例中,当状态表未满即条目数 在一些实施例中,当状态表条目数满了,即条目数=N时,用户控制模块删除当前状态表中不常用的条目,即在可修改标志(change_tag)为置位(为y)的条目中,删除对规则的最后命中时间(match_last_time)离当前时间最久的条目,之后对新的条目进行增加。 在一些实施例中,若有多个条目的最后命中时间相同,则随机删除其中一个条目;若不存在可修改标志为置位的条目,则对状态表已满且无法删除条目的信息至用户控制模块,由用户选择对信息忽略或者继续执行手动删除条目操作。 参照图21,在一些实施例中,方法还包括但不限于步骤S1401至步骤S1402: 步骤S1401,当状态表中的条目发生删除、增加或修改时,通过用户模块对状态表中的规则进行查询; 步骤S1402,在数据库信息表中提取规则对应的匹配项和动作,并通过编译安装程序模块根据规则、匹配项和动作生成新的流表规则,再将流表规则下发至流量匹配与管制模块,以使规则生效。 在一些实施例中,当数据库信息表或者状态表发生变动时,即数据库信息表或者状态表发生修改、删除或增加的情况时,用户控制模块通过编译安装程序模块,对发生修改、删除或增加的规则进行提取后编译,形成对应的指令,并根据指令在流量匹配与管制模块的流表中对相应的规则进行修改、删除或增加,以使得新的流表生效。 在一些实施例中,用户控制模块可以通过编译安装程序模块,根据发生变动的数据库信息表或者状态表生成新的流表规则,并将相应的流表下发至流量匹配与管制模块,以使对应的规则生效。 参照图22,在一些实施例中,本申请实施例还提供了一种网络流量检测装置,装置包括: 一级检测模块2201,用于通过数据平面子系统接收数据包,并对接收的数据包进行一级检测;其中,一级检测包括:利用流量匹配与管制模块根据流表对数据包进行规则匹配; 第一检测结果获取模块2202,用于若数据包与流表中的规则匹配成功,得到数据包的第一检测结果; 数据包处理模块2203,用于根据第一检测结果,对数据包进行转发或丢弃处理; 第二检测结果获取模块2204,用于若数据包在进行一级检测时与流表中的规则匹配失败,对数据包进行转发后,将数据包传送至计算平面子系统的检测引擎模块进行二级检测,得到第二检测结果; 更新与安装模块2205,用于将数据包和二级检测结果更新至数据库模块的数据库信息表中,由编译安装程序模块根据更新后的数据库信息表编译新的流表,并将流表安装至流量匹配与管制模块。 在一些实施例中,一级检测由数据平面子系统中的流量匹配与管制模块进行,二级检测由计算平面子系统中的检测引擎模块进行。在一些实施例中,流量匹配与管制模块为P4网络设备(Programming Protocol-Independent Packet Processors,可编程协议无关数据包处理器),P4网络设备是一种可编程的网络设备,可以接收编译安装程序下发的流表,并根据流表中的规则对入端口进入的数据包进行一级检测。 在一些实施例中,检测引擎模块为IDS/IPS检测引擎模块,IDS/IPS检测引擎模块是指用于检测网络中是否存在安全漏洞、恶意攻击等的软件模块,IDS代表入侵检测系统,IPS代表入侵防御系统。具体地,IDS/IPS检测引擎模块通常会使用以下几种方法进行流量的检测,一是签名检测,检测引擎模块会对流量中的数据包进行匹配,检查是否与已知的攻击模式匹配,如果匹配则被视为攻击;二是异常检测:检测引擎模块可以通过分析网络流量的行为模式,检测出与正常行为不一致的流量,并将其视为攻击;三是协议检测,检测引擎模块会检查流量中所使用的协议是否存在漏洞或异常,如果存在则被视为攻击;四是基于统计的检测,引擎通过对流量进行统计分析,检测出异常的数据流,并认为其可能构成攻击。可以理解的是,检测引擎模块可以通过多种方式对流量进行检测,上述列举的方式只是部分实施例,还可以通过其他方式对流量进行检测。在一些实施例中,本申请将检测引擎模块对数据包进行的检测称之为二级检测,通过检测引擎模块对数据包进行检测,能够提高网络的安全性。 参照图4,可以理解的是,由于计算平面子系统位于数据平面子系统的上层,因此,数据包首先经过数据平面子系统中的流量匹配与管制模块进行一级检测,若一级检测中数据包匹配流表中的规则成功,则直接根据匹配的规则对数据包进行处理。具体的,若数据包对应的规则中的动作匹配项为允许或者警告,将数据包通过出端口进行转发,若数据包对应的规则中的动作匹配项为拒绝,则将数据包丢弃。可以理解的是,若在一级检测中,对规则匹配失败,则将数据包通过出端口进行转发之后,上传至计算平面子系统的检测引擎模块进行检测。 可以理解的是,在检测引擎模块对数据包进行检测并得到检测结果之后,由于数据包之前并未命中匹配规则,因此,可以将检测结果更新至数据库信息表中。在一些实施例中,由于流表和状态表是根据数据库信息表的内容或者结构生成的,因此,数据库信息表更新之后,用户控制模块从数据库信息表中提取已置为的规则生效标志建立初始状态表,再将状态表中的规则条目进行初始化,形成状态表。在一些实施例中,编译安装程序模块能够根据数据库信息表中的数据结构和数据内容进行编译,形成可以安装在流量匹配与管制模块的流表,并将流表下发安装至流量匹配与管制模块,以便于后续流量匹配与管制模块能够根据中的流表对相同类型的数据包进行规则匹配。 在一些实施例中,流表由编译安装模块根据数据库信息表的数据结构安装至流量匹配与管制模块,因此,具备了与数据库信息表相同的条目信息,在数据流量通过入端口进入系统后,流量匹配与管制模块根据流表中的规则对数据包进行规则匹配,若匹配成功,则直接由流量匹配与管制模块对数据包进行处理,因此,无需再占用服务器或者CPU内存对数据包进行处理,不会造成服务器的卡顿,提高了对流量的管控速度,大大节约了存储容量。 本申请提出的网络流量检测方法、装置、系统、电子设备及存储介质,能够将数据包在数据平面子系统进行一级检测,若在数据平面子系统中数据包与规则匹配失败,再将数据包上传至控制平面子系统的上层,即计算平面子系统进行二级检测,并对流表进行更新。因此,本申请的技术方案能够在上层子系统出现故障时,依然不影响下层子系统的检测,增加了系统的鲁棒性,且流量首先通过数据平面子系统进行检测,此时不必再占用服务器或者主机上的CPU内存,使得系统能够适应高带宽、大流量的处理环境。 该网络流量检测装置的具体实施方式与上述网络流量检测方法的具体实施例基本相同,在此不再赘述。在满足本申请实施例要求的前提下,网络流量检测装置还可以设置其他功能模块,以实现上述实施例中的网络流量检测方法。 本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述网络流量检测方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。 请参阅图23,图23示意了另一实施例的电子设备的硬件结构,电子设备包括: 处理器2301,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案; 存储器2302,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器2302可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器2302中,并由处理器2301来调用执行本申请实施例的网络流量检测方法; 输入/输出接口2303,用于实现信息输入及输出; 通信接口2304,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信; 总线2305,在设备的各个组件(例如处理器2301、存储器2302、输入/输出接口2303和通信接口2304)之间传输信息; 其中处理器2301、存储器2302、输入/输出接口2303和通信接口2304通过总线2305实现彼此之间在设备内部的通信连接。 本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述网络流量检测方法。 存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。 本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。 本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。 以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。 本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。 本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。 应当理解,在本申请中,“至少一个(项)”和“若干”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。 在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。 上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。 集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。 以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
- 一种液位检测装置和包含其的设备以及液位检测方法、电子设备及计算机可读存储介质
- 手势关键点检测方法、装置、电子设备及存储介质
- 加密恶意流量检测方法、装置、电子设备及存储介质
- 对象检测方法及装置、电子设备和存储介质
- 一种卡顿检测方法、装置、电子设备和存储介质
- 网络流量检测方法、系统、电子设备和存储介质
- 网络流量检测方法、系统、电子设备和存储介质