一种异常流量攻击检测处置的方法和装置的制造方法
【技术领域】
[0001] 本发明涉及一种网络攻击检测和防护技术,尤其涉及一种针对低流量的应用型 DD0S的异常流量攻击检测处置的方法和装置。
【背景技术】
[0002] 随着互联网技术的快速发展,利用互联网进行攻击的行为也越来越多,其中,分布 式拒绝服务(DD0S)攻击就是一种常见的攻击手段,其共同的特征就是利用协议漏洞,并通 过很多伪造的"僵尸主机"向受害目标主机发送大量看似合法的网络包,从而导致网络阻塞 或目标服务器资源耗尽而导致服务不可用。DD0S攻击的手段和表现形式很多,主要分为流 量型和应用型,其中流量型DD0S攻击(针对传送控制协议的TCP Flood、针对用户数据报协 议的UDP Flood、针对控制报文协议的ICMP Flood等)主要是一些常见的UDP和TCP Flood 包,协议特征明显较容易检测和过滤。
[0003] 而应用型DD0S攻击(包括针对DNS服务器的DNS FLOOD、针对系统漏洞的CC攻击、针 对WEB应用的HTTP FLOOD等)由于具有流量小、速度慢、很容易混杂在正常应用访问中难以 甄别和防护,处理效率和检测准确率是衡量该项攻防技术的关键指标。其流量特征如图2所 示,实线阴影部分表示一个具有周期统计特性的正常流量,统计周期为T,虚线表示异常流 量,其中,(Mi、M 2……Mk)为将周期T分为K份采样量化得到的流量数值序列。
[0004] 目前,针对应用型DD0S攻击的异常流量检测技术较少而且实现复杂,存在以下一 个或多个缺点:基于流量FLOW统计的的检测和防御攻击,其精度性不高,没法深入到应用协 议本身;仅针对单个IP攻击检测及过滤方法,在大量新伪造来访IP中将严重失效;目前常用 的单纯针对IP流量面积来判断异常攻击的检测过滤方法,在有大流量的正常应用行为(如 DNS查询、WEB访问等)存在时,误判增多方法失效;而针对DNS服务器查询日志的行为识别方 法,需要额外的与DNS服务器交互信息,实现和部署不便,且不够实时。
【发明内容】
[0005] 鉴于上述不足,本发明提供一种异常流量攻击检测处置的方法和装置,提高异常 行为的处理效率和检测准确率,快速检测和处理异常攻击流量而且不能影响正常的流量访 问。
[0006] 为了解决上述技术问题,本发明采用的技术方案如下:
[0007] -种异常流量攻击检测处置的方法,步骤包括:
[0008] 1)过滤来访IP地址的已知的异常流量和正常流量;
[0009] 2)根据通过的来访IP地址的当前流量数值与流量TOP N动态过滤表中对应的流量 模板数值区分出所述通过的来访IP地址中的异常流量和正常流量;
[0010] 3)丢弃异常流量,转发正常流量。
[0011] 进一步地,步骤1)所述已知的异常流量为IP地址在黑名单中的流量;已知的正常 流量为IP地址在白名单中的流量。
[0012] 进一步地,所述流量TOP N动态过滤表为链表,其信息根据历史访问流量从大到小 依次排序建立,包括:
[0013] 1……N+M行IP信息链表,每行IP信息链表包括IP地址、历史访问流量统计和流量 模板,该流量模板包括全部时间节点的流量模板数值,这些数值是根据该IP地址的历史访 问流量通过自学习算法得到;
[0014] 链表E,其IP地址和历史访问流量统计为空,其流量平均模板EQ包括全部节点的流 量模板数值,这些数值是对应时间节点的所有非TOP N历史访问流量(即不在流量TOP N动 态过滤表的N+M行中的来访IP地址的历史访问流量)统计平均值。
[0015] 进一步地,所述流量TOP N动态过滤表通过自动排序更新,或通过人工手动添加、 删除或调整数值进行更新。
[0016] 进一步地,所述步骤2)为,根据预先设定的时间窗口周期及当前流量所处的时间 节点,判断所述IP地址是否在流量TOP N动态过滤表的前N中,如果在,将当前流量数值与对 应流量模板的该时间节点的流量模板数值作比较运算;如果不在,将当前流量数值与平均 流量模板EQ的该时间节点的流量模板数值作比较运算,以区分异常流量和正常流量。
[0017] 进一步地,所述比较运算是指,根据当前流量的时间节点k,取当前流量数值X(k), 并检索到该时间节点的流量模板数值1(1〇,判断X(k)/M n(k)与预设阈值0的大小,如果X (k)/Mn(k)>0,则判定该流量为异常流量,如果1〇((1〇/^1(1〇〈0,则判定为疑似流量;
[0018] 对于疑似流量,根据当前流量模板,往后取I个流量数值X(k+1)……X(k+I),并检 索对应的流量模板数值1仏+1)……M n(k+I),如果X(k)/Mn(k)+X(k+1)/Mn(k+1)+……+X(k+ I) /Mn(k+I) >0,则判定为异常流量,否则为正常流量。
[0019] 进一步地,所述预设阈值B = 3,I = 5。
[0020] 进一步地,将步骤2)区分出的正常流量通过自学习算法进行流量学习,更新流量 TOP N动态过滤表中相应的流量模板数值。
[0021] 进一步地,所述自学习算法为: r n jK倉)』
[0022]
[0028] 一处理单元,转发正常流量和丢弃异常流量。
[0029] 本发明提供了一种异常流量攻击检测处置的方法和装置,与其它检测方法相比, 本发明最大的特点是通过静态与动态结合的方式,采用一个动态更新的流量TOP N动态过 滤表来对异常流量进行动态过滤,通过查表的动态过滤方式能够快速甄别出异常流量,而 通过流量数值与流量TOP N动态过滤表中相应的流量模板数值的比较运算判定异常的方法 提高了检测异常流量的准确率,确保将异常攻击从正常访问行为中甄别出来,相比其它基 于FLOW统计的DD0S攻击检测方法具有识别精度更高、处理速度更快而且实现复杂度较低的 特点。
【附图说明】
[0030] 图1为实施例中一种异常流量攻击检测处置方法流程图。
[0031 ]图2为异常流量和流量模板示意图。
[0032]图3为实施例中一种异常流量攻击检测处置的装置结构示意图。
[0033]图4为流量自学习方法示意图。
【具体实施方式】
[0034]为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作 详细说明如下。
[0035]本实施例提供一种异常流量攻击检测处置的方法,如图1所示,详细步骤如下: [0036] 步骤S101:监视来访IP的访问请求。
[0037]步骤S102:判断IP地址是否在系统白名单中,如果是,则进入步骤S109直接转发请 求;如果否,则进入步骤S103。
[0038] 步骤S103:判断IP地址是否在系统黑名单中,如果是,则进入步骤S108直接丢弃该 流量;如果否,则进入步骤S104。
[0039] 步骤S104:判断源地址IP是否在流量TOP N动态过滤表的TOP N排序中。
[0040] 本步骤的细化如下:
[0041]第一步:根据预设的时间分段模式获得当前时间所属时间节点。由于应用流量的 访问行为通常具有很强的周期性(天/周),故采用24*m小时作为当前的周期,计算当前时间 所属时间段,当然可以根据实际应用场景需要变换m的数值加大这个周期长度,这里采用当 前时间/24*m来获得来访IP所属时间节点k。
[0042] 第二步:自动加载当前流量TOP N动态过滤表,流量TOP N动态过滤表可以通过链 表来实现,具体内容如下表1所示:
[0044] 表 1
[0045] 该流量TOP N动态过滤表内容包含了从1……N+M个有记录的流量排序最靠前的IP 信息链表,按照历史流量从大到小依次排序,其中排序为n的一个链表的内容包括:IP地址 XXX ? XXX ? XXX ? XXX、历史访问流量统计XX、流量模板Rn= (Mn( 1)、Mn(2)、Mn(3)......Mn(k);流量 模板为该表项的主要内容,如果将一个特定流量周期的时间分成K份,则Mn(k)表示时间点k 上该IP地址在该时间段里历史流量的特征值,称作流量模板数值,这个值是由周期统计特 性的历史流量最大期望值,计算方法由自学习算法来不断的动态更新。在实际应用中,应用 流量的访问行为通常具有很强的周期性(天/周),这是采用该算法的关键所在。
[0046]此外,流量TOP N动态过滤表内容还包含了链表E,它的IP地址和历史访问累计数 为空,其流量平均模板EQ= (E( 1)、E(2)、E(3)……E(k))中的每个节点的流量模板数值是所 有非TOP N历史访问流量在该时间点的统计平均值,例如将一个特定流量周期的时间分成K 份,则Ek表示时间点k内所有正常流量在该时间段的特征值,实际就是历史流量的求和平均 值,这也是很多其它流量检测方法采用的最常见的方式。
[0047] 流量TOP N动态过滤表由自学习得到,也允许人工调整和修正流量TOP N动态过滤 表,具备较大的人工操作空间。
[0048]第三步:自动加载当前流量TOP N动态过滤表,根据历史流量统计实时更新排列顺 序,其中排列顺序的更新依据是IP地址的历史访问流量统计,前N个IP信息链表的具体排序 说明如下:参考所有的IP地址历史访问流量统计,如果当前IP地址的历史访问流量统计数 超过排序第N个的IP地址时,则将该IP地址的相关信息替换第N个IP信息链表中,对应的第k 个流量模板数值直接取流量平均模板EQ中第k个值Mn(k) =E(k),此外将第N个排序的原IP 信息链表往下移一列,进入到由M个缓冲记录组成的潜在IP信息链表中。
[0049]更新流量TOP N动态过滤表中链表对应的流量模板数值,具体说明如下:对每个来 访的IP地址,当IP地址在流量排序前N+M个表中第n行,而且已经判定了该流量数值为正常 流量,则将该流量数值R作为一个输入更新第n行对应时间点k的流量模板数值M n(k),方法 由自学习算法来更新。当地址不在流量排序前N+M个表中,而且判定一条流量为普通正常流 量,则将该流量作为一个输入值X (k)与流量平均模板对应时间点k的流量模板数值E (k)做 平均运算,得到新的流量模板数值Enew(k)并更新到信息链表中,方法同样由自学习算法E new (k) = [E0id(k)+b(k)*X(k) ]/2〇
[0050]这里可以看到,流量TOP N动态过滤表过滤的方法与攻击检测方法不同,本方法采 用快速查询动态表的方式,并没有复杂的逻辑处理和判断,实现了 IP访问情况的快速处理 和转发,不会引起因应用访问的时延而影响访问体验。方法处理的精度主要取决于参数N、M 和K的设