一种基于FPGA的网络异常流量检测系统和方法与流程

文档序号:30837479发布日期:2022-07-22 23:28阅读:256来源:国知局
一种基于FPGA的网络异常流量检测系统和方法与流程
一种基于fpga的网络异常流量检测系统和方法
技术领域
1.本技术涉及计算机通信技术领域,更具体地,涉及一种基于fpga的网络异常流量检测系统和方法。


背景技术:

2.随着计算机技术的飞速发展,5g技术的普及,网络环境也逐渐变得复杂,网络中存在大量的异常流量,攻击流量,威胁后端服务器的安全使用。随着100g、400g以太网的普及,网络异常流量的监控与防治难度也不断增加,现有的软件检测方式过度依赖于cpu的处理性能,难以进行大数据情况下的检测。
3.因此,如何提高对网络异常流量检测的效率和可靠性,是目前有待解决的技术问题。


技术实现要素:

4.本发明公开了一种基于fpga的网络异常流量检测系统,用以解决现有技术中对网络异常流量检测时效率低、可靠性差的技术问题。
5.该系统包括集成在fpga中的智能处理模块、数据接入模块、流管理模块、攻击检测模块、状态上报模块和规则执行模块,其中,智能处理模块,连接状态上报模块和规则执行模块,用于接收状态上报模块输出的攻击计数,若根据攻击计数判断存在网络攻击,将与网络攻击的类型对应的阻断规则输出至规则执行模块;数据接入模块,接收并缓存骨干网数据流,对骨干网数据流的原始报文进行解析,并将解析结果和原始报文输出至流管理模块;流管理模块,根据解析结果对原始报文进行流表建立操作,并将完成流表建立操作的原始报文作为目标报文输出至攻击检测模块;攻击检测模块,基于预设攻击检测规则对目标报文进行检测并确定攻击计数,并将攻击计数输出至状态上报模块;状态上报模块,将攻击计数上报至智能处理模块;规则执行模块,根据智能处理模块下发的阻断规则对目标报文进行阻断。
6.在本技术一些实施例中,数据接入模块具体用于:将解析结果合并后生成控制块,并根据原始报文生成数据块;将所述控制块和所述数据块同时输出至流管理模块;其中,所述解析结果包括每个原始报文的五元组信息,所述解析结果在原始报文为tcp报文时还包括flag标志。
7.在本技术一些实施例中,攻击检测模块具体用于:若目标报文为tcp报文且目标报文的源ip地址等于目的ip地址,确定目标报文为tcp land攻击,并将攻击计数加1;
若目标报文为tcp报文且不是tcp land攻击,且目标报文的目标端口为137或138或139,且flag标志位的urg位为1,确定目标报文为tcp winnuke攻击,并将攻击计数加1;若目标报文为tcp报文,且目标报文不是tcp land攻击,且目标报文不是tcp winnuke攻击,且目标报文的syn标志位和fin标志位同时设置为1,确定目标报文为syn+fin攻击,并将攻击计数加1;若目标报文为tcp报文,且目标报文不是tcp land攻击,且目标报文不是tcp winnuke攻击,且目标报文不是syn+fin攻击,且目标报文中的flag的标志全为0,确定目标报文为no flag攻击,并将攻击计数加1;若目标报文不是tcp报文,且当前icmp报文速率高出icmp阈值,确定目标报文为icmp flood攻击,并将攻击计数加1;若目标报文不是tcp报文,且目标报文不是icmp flood攻击,且目标报文的源ip地址设为广播地址或者为一个子网关闭地址,确定目标报文为smurf攻击,并将攻击计数加1;若目标报文不是tcp报文,且目标报文不是icmp flood攻击,且目标报文不是smurf攻击,且目标报文的ip头部的下一级协议号大于100,将攻击计数加1。
8.在本技术一些实施例中,攻击检测模块还用于:若目标报文为tcp报文且目标报文不是tcp land攻击,且目标报文不是tcp winnuke攻击,且目标报文不是syn+fin攻击,且目标报文不是no flag攻击,确定目标报文为非攻击报文;或,若目标报文不是tcp报文,且目标报文不是icmp flood攻击,且目标报文不是smurf攻击,且目标报文的ip头部的下一级协议号不大于100,确定目标报文为非攻击报文。
9.在本技术一些实施例中,智能处理模块还用于:若目标报文不是tcp报文且攻击计数为零,根据icmp流量速率设定所述icmp阈值。
10.在本技术一些实施例中,智能处理模块还用于:若攻击计数为零,使规则执行模块输出与目标报文对应的原始报文。
11.在本技术一些实施例中,智能处理模块还用于:通过前端页面实时展示攻击计数。
12.在本技术一些实施例中,流管理模块具体用于:对控制块中原始报文的五元组信息进行hash计算确定hash值,并基于hash值对原始报文进行流表建立操作。
13.在本技术一些实施例中,流表建立操作包括新建,拆流,老化刷新和非老化刷新,基于流表建立操作生成的流表存放与外挂ddr芯片中。
14.相应的,本发明还提出了一种基于fpga的网络异常流量检测方法,所述方法应用于如上所述的系统中,所述方法包括:接收并缓存骨干网数据流,对骨干网数据流的原始报文进行解析并生成解析结果;根据解析结果对原始报文进行流表建立操作,并将完成流表建立操作的原始报文确定为目标报文;基于预设攻击检测规则对目标报文进行检测并确定攻击计数;若根据攻击计数判断存在网络攻击,根据与网络攻击的类型对应的阻断规则对目
标报文进行阻断。
15.通过应用以上技术方案,基于fpga的网络异常流量检测系统包括集成在fpga中的智能处理模块、数据接入模块、流管理模块、攻击检测模块、状态上报模块和规则执行模块,其中,智能处理模块,连接状态上报模块和规则执行模块,用于接收状态上报模块输出的攻击计数,若根据攻击计数判断存在网络攻击,将与网络攻击的类型对应的阻断规则输出至规则执行模块;数据接入模块,接收并缓存骨干网数据流,对骨干网数据流的原始报文进行解析,并将解析结果和原始报文输出至流管理模块;流管理模块,根据解析结果对原始报文进行流表建立操作,并将完成流表建立操作的原始报文作为目标报文输出至攻击检测模块;攻击检测模块,基于预设攻击检测规则对目标报文进行检测并确定攻击计数,并将攻击计数输出至状态上报模块;状态上报模块,将攻击计数上报至智能处理模块;规则执行模块,根据智能处理模块下发的阻断规则对目标报文进行阻断,由于该系统采用fpga硬件设计,较传统纯软方式,大幅提升了检测性能,提高了对网络异常流量检测的效率,并且系统可串接在网络,不影响正常访问流量,提高了可靠性。
附图说明
16.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1示出了本发明实施例提出的一种基于fpga的网络异常流量检测系统的结构示意图;图2示出了本发明实施例中攻击检测模块的工作原理示意图;图3示出了本发明实施例提出的一种基于fpga的网络异常流量检测方法的流程示意图。
具体实施方式
18.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
19.本技术实施例提供一种基于fpga(field programmable gate array,现场可编程逻辑门阵列)的网络异常流量检测系统,如图1所示,所述系统包括集成在fpga中的智能处理模块m100、数据接入模块m200、流管理模块m300、攻击检测模块m400、状态上报模块m500和规则执行模块m600,其中,智能处理模块m100,连接状态上报模块m500和规则执行模块m600,用于接收状态上报模块m500输出的攻击计数,若根据攻击计数判断存在网络攻击,将与网络攻击的类型对应的阻断规则输出至规则执行模块m600;数据接入模块m200,接收并缓存骨干网数据流,对骨干网数据流的原始报文进行解析,并将解析结果和原始报文输出至流管理模块m300;
流管理模块m300,根据解析结果对原始报文进行流表建立操作,并将完成流表建立操作的原始报文作为目标报文输出至攻击检测模块m400;攻击检测模块m400,基于预设攻击检测规则对目标报文进行检测并确定攻击计数,并将攻击计数输出至状态上报模块m500;状态上报模块m500,将攻击计数上报至智能处理模块m100;规则执行模块m600,根据智能处理模块m100下发的阻断规则对目标报文进行阻断。
20.本实施例中,数据接入模块m200接收并缓存骨干网数据流,该缓存操作可防止突发流量导致的丢包,并对骨干网数据流的原始报文进行实时解析,并将解析结果和原始报文输出至流管理模块m300。流管理模块m300对骨干网数据流进行流管理操作,具体为根据解析结果对原始报文进行流表建立操作,并将完成流表建立操作的原始报文作为目标报文输出至攻击检测模块m400。攻击检测模块m400中设置有预设攻击检测规则,基于预设攻击检测规则对目标报文进行检测并确定攻击计数,并将攻击计数输出至状态上报模块m500,状态上报模块m500会将攻击计数上报至智能处理模块m100,智能处理模块m100根据攻击计数进行判断,若判断存在网络攻击,将与网络攻击的类型对应的阻断规则输出至规则执行模块m600,使规则执行模块m600按照阻断规则对目标报文进行阻断。从而可有效的利用fpga硬件系统的高效性,可针对骨干网络进行网络攻击检测且对攻击流量进行阻断隔离,防止流量攻击下游服务器。
21.为了提高数据接入模块的可靠性,在本技术一些实施例中,数据接入模块具体用于:将解析结果合并后生成控制块,并根据原始报文生成数据块;将所述控制块和所述数据块同时输出至流管理模块。
22.本实施例中,解析结果包括每个原始报文的五元组信息,包括源ip地址,目的ip地址,源端口,目的端口,协议号。如果原始报文为tcp报文,解析结果还包括flag标志。flag标志的长度为6bits,其表示tcp包特定的连接状态。
23.数据接入模块将解析结果合并后生成控制块,并根据原始报文生成数据块,然后将控制块和数据块同时输出至流管理模块。
24.为了提高攻击检测模块的可靠性,在本技术一些实施例中,攻击检测模块具体用于:若目标报文为tcp报文且目标报文的源ip地址等于目的ip地址,确定目标报文为tcp land攻击,并将攻击计数加1;若目标报文为tcp报文且不是tcp land攻击,且目标报文的目标端口为137或138或139,且flag标志位的urg位为1,确定目标报文为tcp winnuke攻击,并将攻击计数加1;若目标报文为tcp报文,且目标报文不是tcp land攻击,且目标报文不是tcp winnuke攻击,且目标报文的syn标志位和fin标志位同时设置为1,确定目标报文为syn+fin攻击,并将攻击计数加1;若目标报文为tcp报文,且目标报文不是tcp land攻击,且目标报文不是tcp winnuke攻击,且目标报文不是syn+fin攻击,且目标报文中的flag的标志全为0,确定目标报文为no flag攻击,并将攻击计数加1;
若目标报文不是tcp报文,且当前icmp报文速率高出icmp阈值,确定目标报文为icmp flood攻击,并将攻击计数加1;若目标报文不是tcp报文,且目标报文不是icmp flood攻击,且目标报文的源ip地址设为广播地址或者为一个子网关闭地址,确定目标报文为smurf攻击,并将攻击计数加1;若目标报文不是tcp报文,且目标报文不是icmp flood攻击,且目标报文不是smurf攻击,且目标报文的ip头部的下一级协议号大于100,将攻击计数加1。
25.本实施例中,tcp land攻击是拒绝服务攻击(dos攻击)的一种,通过发送精心构造的、具有相同源地址和目标地址的欺骗数据包,致使缺乏相应防护机制的目标设备瘫痪。
26.winnuke攻击是一种拒绝服务攻击,又称“带外传输攻击”,它的特征是攻击目标端口,被攻击的目标端口通常是139、138、137,而且urg位设为1,即紧急模式。
27.正常情况下,syn标志(连接请求标志)和fin标志(连接拆除标志)是不能同时出现在一个tcp报文中的。而且rfc也没有规定ip协议栈如何处理这样的畸形报文,因此,各个操作系统的协议栈在收到这样的报文后的处理方式也不同,攻击者就可以利用这个特征,通过发送syn和fin同时设置的报文,来判断操作系统的类型,然后针对该操作系统,进行进一步的攻击。
28.icmp(internet control message protocol,internet控制报文协议) flood是一种ddos攻击,该攻击在短时间内向目的主机发送大量ping包,消耗主机资源,主机资源耗尽后就会瘫痪或者无法提供其他服务。
29.smurf攻击是一种病毒攻击,以最初发动这种攻击的程序“smurf”来命名。这种攻击方法结合使用了ip欺骗和icmp回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。
30.攻击检测模块按预设攻击检测规则检测目标报文是否为tcp land攻击、或tcp winnuke攻击、或syn+fin攻击、或no flag攻击、或icmp flood攻击、或smurf攻击,是否目标报文的ip头部的下一级协议号大于100,若是,则将攻击计数加1。
31.需要说明的是,以上实施例的方案仅为本技术所提出的一种具体实现方案,本领域技术人员可根据实际需要使攻击检测模块增加对其他攻击类型的检测,这并不影响本技术的保护范围。
32.为了提高系统的可靠性,在本技术一些实施例中,攻击检测模块还用于:若目标报文为tcp报文且目标报文不是tcp land攻击,且目标报文不是tcp winnuke攻击,且目标报文不是syn+fin攻击,且目标报文不是no flag攻击,确定目标报文为非攻击报文;或,若目标报文不是tcp报文,且目标报文不是icmp flood攻击,且目标报文不是smurf攻击,且目标报文的ip头部的下一级协议号不大于100,确定目标报文为非攻击报文。
33.本实施例中,根据目标报文是否为tcp报文分别确定目标报文是否为非攻击报文。可以理解的是,与非攻击报文对应的攻击计数为零。
34.为了提高系统的可靠性,在本技术一些实施例中,智能处理模块还用于:若目标报文不是tcp报文且攻击计数为零,根据icmp流量速率设定所述icmp阈值。
35.为了保证系统的可靠性,在本技术一些实施例中,智能处理模块还用于:若攻击计数为零,使规则执行模块输出与目标报文对应的原始报文。
36.本实施例中,若攻击计数为零,说明目标报文是非攻击报文,智能处理模块没有对应的阻断规则,可使规则执行模块输出与目标报文对应的原始报文。
37.为了提高用户体验,在本技术一些实施例中,智能处理模块还用于:通过前端页面实时展示攻击计数。
38.本实施例中,通过前端页面实时展示攻击计数,可及时使用户了解当前的网络安全状态,若攻击计数不为零,及时通知运维管理人员,对攻击流量进行源头追溯。
39.为了提高流管理模块的可靠性,在本技术一些实施例中,流管理模块具体用于:对控制块中原始报文的五元组信息进行hash计算确定hash值,并基于hash值对原始报文进行流表建立操作。
40.为了提高流管理模块的可靠性,在本技术一些实施例中,流表建立操作包括新建,拆流,老化刷新和非老化刷新,基于流表建立操作生成的流表存放与外挂ddr(double data rate,双倍数据速率)芯片中。
41.通过应用以上技术方案,基于fpga的网络异常流量检测系统包括集成在fpga中的智能处理模块、数据接入模块、流管理模块、攻击检测模块、状态上报模块和规则执行模块,其中,智能处理模块,连接状态上报模块和规则执行模块,用于接收状态上报模块输出的攻击计数,若根据攻击计数判断存在网络攻击,将与网络攻击的类型对应的阻断规则输出至规则执行模块;数据接入模块,接收并缓存骨干网数据流,对骨干网数据流的原始报文进行解析,并将解析结果和原始报文输出至流管理模块;流管理模块,根据解析结果对原始报文进行流表建立操作,并将完成流表建立操作的原始报文作为目标报文输出至攻击检测模块;攻击检测模块,基于预设攻击检测规则对目标报文进行检测并确定攻击计数,并将攻击计数输出至状态上报模块;状态上报模块,将攻击计数上报至智能处理模块;规则执行模块,根据智能处理模块下发的阻断规则对目标报文进行阻断,由于该系统采用fpga硬件设计,较传统纯软方式,大幅提升了检测性能,提高了对网络异常流量检测的效率,并且系统可串接在网络,不影响正常访问流量,提高了可靠性。
42.为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
43.本技术实施例提供一种基于fpga的网络异常流量检测系统,可有效的利用fpga硬件系统的高效性,可针对100g骨干网络进行网络攻击检测且对攻击流量进行阻断隔离,防止流量攻击下游服务器,使服务器瘫痪,对攻击流量进行实时展示告警,通知运维管理人员,对攻击流量进行源头追溯。
44.如图1所示,该系统包括:智能处理模块m100:用于接收状态上报模块m500的攻击计数,对攻击计数进行统计,并通过页面对攻击计数进行实时展示;同时,也对攻击计数进行分析,向规则执行模块m600下发相应的阻断策略,防止攻击渗透至下游服务器。
45.数据接入模块m200:用于接收骨干网原始数据,支持100g/10g接口,对数据进行缓存以及预处理,并对网络报文进行协议解析,解出报文的五元组等关键信息。
46.流管理模块m300:对网络报文的五元组进行hash计算,并通过hash值对报文进行流表建立操作,对数据流进行流管理。
47.攻击检测模块m400:该模块主要对进入的网络报文进行实时检测,对网络中常见
的多种异常攻击进行分析计数,将计数实时输出至状态上报模块m500。
48.状态上报模块m500:对当前骨干网中的网络实时情况,攻击情况等通过计数形式上报给智能策略模块规则执行模块m600:用于接收智能处理模块m100生成的阻断规则,并根据相应规则对数据进行阻断处理。
49.具体实现方式如下:s100:骨干网数据流接入系统,数据进入数据接入模块m200,对数据流进行缓存操作,防止突发流量导致的丢包,对数据进行实时解析操作,解析出每个报文的五元组信息,如果是tcp协议报文,则还需要解析出对应flag标志,然后将报文信息合并生成控制块;数据块则是原始的报文信息。控制块和数据块生成完毕以后同时输出至流管理模块m300。
50.s200:流管理模块m300对网络报文根据数据接入模块m200生成的控制块对数据做流管理操作。流管理模块m300是对数据流进行流管理操作,对第一次见到的五元组报文或者tcp的syn报文进行建流操作,支持新建,拆流,老化刷新,非老化刷新等流表存放于ddr芯片中,容量大小取决于外挂ddr芯片大小,8gb的ddr芯片可存放6000w条流表信息。
51.s300:攻击检测模块m400对已完成流管理的报文数据进行攻击检测判断,如图2所示:s310:对报文进行tcp land检测,检测是否是tcp报文,如果不是则进入s350,如果是则检测tcp的sip是否等于dip,如果是则为tcp land攻击,该项攻击计数值加1,如果sip不等于dip,则进入s320;s320:对报文进行tcp winnuke检测,检测目标端口是否为137,138,139,并且flag标志位的urg位为1,如果是则该项计数值加1,如果不是则进入s330;s330:对报文进行syn+fin攻击检测,检测报文中syn标志位和fin标志位是否同时设置为1,如果是则该项计数值加1,如果不是则进入s340;s340:对报文进行no flag攻击检测,检测报文中flag的标志是否全为0,如果是则该项计数值加1,如果不是,则确定报文无攻击行为;s350:对报文进行icmp flood攻击检测,实时跟踪其icmp echo报文速率,如果当前icmp报文速率高出其配置典型值(即icmp阈值),则判断为icmp flood攻击,如果不是进入s360;s360:smurf攻击检测,检测报文的源地址设为广播地址或者未一个子网关闭地址,即认为是smurf攻击,即判断其sip中a.b.c.d中的d为255,则该项计数值加1,如果不是则进入s370;s370:检测报文的协议号,如果ip头部的下一级协议号大于100,则该项计数值加1,如果不是则跳出检测状态,认为该报文无攻击行为。
52.s400:智能处理模块m100状态上报模块m500上报的攻击计数,判断当前报文是否为攻击报文,如果是,判断属于哪种类型的网络攻击,根据网络攻击类型生成相应的阻断规则,同时还需要根据网络正常情况下icmp流量速率,设定正常icmp阈值,如果当前icmp请求超过阈值,则判断为icmp flood攻击,并生成攻击阻断规则。
53.s500:当数据进行完攻击检测判断后,智能处理模块m100判断是否有对应的阻断规则,如果没有,则原样输出原始报文,如果有,则向规则执行模块m600下发阻断规则,不输
出该报文。
54.本技术实施例还提出了一种基于fpga的网络异常流量检测方法,所述方法应用于如上所述的系统中,如图3所示,所述方法包括以下步骤:步骤s101,接收并缓存骨干网数据流,对骨干网数据流的原始报文进行解析并生成解析结果;步骤s102,根据解析结果对原始报文进行流表建立操作,并将完成流表建立操作的原始报文确定为目标报文;步骤s103,基于预设攻击检测规则对目标报文进行检测并确定攻击计数;步骤s104,若根据攻击计数判断存在网络攻击,根据与网络攻击的类型对应的阻断规则对目标报文进行阻断。
55.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1