一种异常流量检测方法

文档序号:9551278阅读:814来源:国知局
一种异常流量检测方法
【技术领域】
[0001]本发明涉及计算机系统技术领域,尤其涉及一种异常流量检测方法。
【背景技术】
[0002]僵尸网络具有攻击方法简单、影响较大以及难以追查等特点,使得分布式拒绝服务攻击(Distributed Denial of Service, DDoS,)得到快速壮大和日益泛滥。成千上万主机组成的僵尸网络为DDoS攻击提供了所需的带宽和主机,形成了规模巨大的攻击和网络流量,对被攻击网络造成了极大的危害。随着DDoS攻击技术的不断提高和发展,互联网服务提供商(Internet Service Provider,ISP)、因特网内容提供商(Internet ContentProvider, I CP)以及互联网数据中心(Internet Data Center,IDC)等运营商面临的安全和运营挑战也不断增多,运营商必须在DDoS威胁影响关键业务和应用之前,对流量进行检测并加以清洗,确保网络正常稳定的运行以及业务的正常开展。
[0003]由于DD0S攻击的危害是巨大的,不仅会很快就使被攻击的服务器无法正常提供服务,甚至还会造成整个网络出现拥堵,严重时更会令到网络陷入瘫痪,影响同处于该网络中的其他服务器,所以及时找出网络中的攻击显得尤其重要。
[0004]目前的攻击检测方法一般使用固定阈值或者建立流量动态基线的方法,这两种方法都有很明显的缺点。固定阈值会因为阈值的设定过大或者过小造成误判和漏判;而如果使用流量动态基线,本来流量很小的目标因为基数小很容易会出现突发的情况而造成误判,流量大的目标又会因为变化幅度不大而可能会漏判。对于误报正常业务的突发流量,是这两种方法的共同缺陷。而流量动态基线在为每个新目标建立的初始阶段,是无法检测出攻击的,并且如果用攻击的流量来建立基线,甚至可能会出现往后都无法再检测发生在此目标上的攻击。

【发明内容】

[0005]有鉴于此,本发明实施例提供一种异常流量检测方法,以解决现有技术中的技术问题。
[0006]本发明实施例提供了一种异常流量检测方法,包括:
[0007]接收报文;
[0008]根据报文类型进行数量统计,存储至IP哈希数组,并在所述IP哈希数组中存储流量特征;
[0009]根据所述IP哈希数组中存储的报文数量信息,将数量排名前N位的报文的IP信息存储至排序数组中,N为自然数;
[0010]接收新IP信息,更新排名前N位的报文的IP信息并存储到排序数组;
[0011]在更新后的所述排序数组中,根据设定特征值校验对应类型的报文是否发生异常流量行为。
[0012]本发明实施例提供的一种异常流量检测方法,通过使用改良的最小二根堆算法实时计算出整个网络中流量等各项指标排名前列的目标,再对排名前列的目标加以行为分析准确地判定出这些目标是否发生了异常流量行为,本方法适用于任何一个网络中,同时能够把程序刚刚启动时发生的攻击也能检测出来,也能区分正常突发的业务流量。本发明实施例提供的异常流量检测方法正是解决固定阈值和流量动态基线等现有方法无法解决的漏报误报等问题,能够准确和及时地发现攻击,把误报率和漏报率大大降低。
【附图说明】
[0013]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0014]图1是本发明实施例一提供的一种异常流量检测方法流程图;
[0015]图2是本发明实施例一提供的一种异常流量检测方法具体过程流程图;
[0016]图3是本发明实施例二提供的一种异常流量检测方法流程图;
[0017]图4是本发明实施例三提供的一种异常流量检测方法流程图;
[0018]图5是本发明实施例三提供的一种异常流量检测方法具体过程流程图;
[0019]图6是本发明实施例四提供的一种异常流量检测方法流程图。
【具体实施方式】
[0020]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0021]实施例一
[0022]图1为本发明实施例一中的一种异常流量检测方法流程图,本实施例提供了一种异常流量检测方法,该方法可以由任意执行流量检测的装置来执行,该装置可以通过软件和/或硬件实现。如图1所示,该方法包括:
[0023]S110、接收报文;
[0024]S120、根据报文类型进行数量统计,存储至IP哈希数组,并在所述IP哈希数组中存储流量特征;
[0025]示例性的,建立一个全局的IP哈希数组(HASH)用来统计IP流量等信息,所述IP哈希数组可以包含不同的变量来对IP流量等信息进行统计。优选的,所述IP哈希数组可以对IP流量包含的报文信息进行统计,例如:所述IP哈希数组可以包含变量SYN、ICMP以及UDP,分别用于统计同步报文(syn报文)数量、控制信息报文(icmp报文)数量以及用户数据报文(udp报文)数量。由于同步报文和控制信息报文流量特征比较单一,判断攻击比较简单,所以可以直接通过对这两种报文出现的频率做出判断,但用户数据报文流量特征多样,其出现频率再大都可能是正常的,所以用户数据报文需要根据其端口的出现频率、校验码的相同程度再加以判断,所述IP哈希数组还可以包含变量DNA,用于抽取用户数据报文流量特征,其成员可以包括多个,优选的,DNA成员可以包括⑶R、SAME、REPLY以及TCP。
[0026]参见图2,基于上述方案,该操作包括:
[0027]S121、识别报文类型;
[0028]S122、如果所述报文类型为同步报文,则在所述IP哈希数组的第一流量特征中记录同步报文数量;
[0029]S123、如果所述报文类型为控制信息报文,则在所述IP哈希数组的第二流量特征中记录控制信息报文数量;
[0030]S124、如果所述报文类型为用户数据报文,则在所述IP哈希数组的第三流量特征中记录用户数据报文数量;
[0031]S125、从所述用户数据报文中提取流量特征,存储至所述IP哈希数组的第四流量特征中。
[0032]S130、根据所述IP哈希数组中存储的报文数量信息,将数量排名前N位的报文的IP信息存储至排序数组中,N为自然数;
[0033]示例性的,建立一个全局的排序数组(TOP数组)用来保存排名前N位的IP信息,初始化排序数组,所述排序数组的成员包括第一排序子数组(SYN)、第二排序子数组(ICMP)以及第三排序子数组(UDP),每个子数组成员的长度为N+1 (第一个即下标为0的元素不使用),分别用于保存前N位报文的IP信息。进一步的,根据所述IP哈希数组中存储的报文数量信息,按照报文类型,以最小二根堆的形式将数量排名前N位的报文的IP信息存储至各排序子数组中。例如,排名前N位的同步报文的IP信息存储至第一排序子数组;排名前N位的控制信息报文的IP信息存储至第二排序子数组;排名前N位的用户数据报文的IP信息存储至第三排序子数组。
[0034]S140、接收新IP信息,更新排名前N位的报文的IP信息并存储到排序数组;
[0035]所述排序数组为动态数组,需要根据新IP信息的具体情况根据最小二根堆特性重新排序。
[0036]S150、在更新后的所述排序数组中,根据设定特征值校验对应类型的报文是否发生异常流量行为。
[0037]进一步的,所述设定特征值可以根据所在的网络环境中总流量的大小自行设定,例如设定为10000。当所在网络环境流量较大时可以设定较大的特征值,例如设定为100000,当所在网络环境流量较小时可以设定较小的特征值,例如设定为1000,所述特征值的设定比较灵活,可视具体情况而定,所述特征值的设定不单一。
[0038]本发明实施例一提供的异常流量检测方法,通过建立全局的IP哈希数组以及全局的排序数组,将IP信息的各项指标分别进行存储、排序以及流量检查分析,可以实时计算出整个网络中流量等各项指标排名前列的目标,再对这些排名前列的目标进行详细的行为检测,能够准确和及时地发现流量异常的情况,把误报率和漏报率大大降低。
[0039]实施例二
[0040]图3为本发明实施例二中的一种异常流量检测方法流程图,本实施例的技术方案以上述实施例一为基础,在实施例一的基础上作进一步的优化。
[0041]进一步的,根据所述IP哈希数组中存储的报文数量信息,按照报文类型,以最小二根堆的形式将数量排名前N位的报文的IP信息存储至各排序子数组中包括:
[0042]S310、根据所述IP哈希数组中存储的报文数量信息,按照报文类型,采用第一排序函数,通过向上遍历排序子数组保持所述排序子数组的最小二根堆特性;
[0043]S320、根据所述IP哈希数组中存储的报文数量信息,按照报文类型,采用第二排序函数,通过向下遍历排序子数组保持所述排序子数组的最小二根堆特性。
[0044]示例性的,所述排序数组中每个成员为一个最小二根堆,即所述排序数组中每个成员以完全二叉树的形式存在,以第一排序子数组为例:
[0045]假设TOP — SYN[i]为非叶子节点,则其左孩子为TOP — SYN[i*2],其右孩子为TOP — SYN[i*2+l],此时所述最小二根堆的第一个非叶子节点从1开始;
[0046]假设TOP — SYN[i]为非叶子节点,则其左孩子为TOP — SYN[i*2+l],其右孩子为TOP — SYN[i*2+2],此时所述最小二根堆的第一个非叶子节点从0开始;
[0047]假设TOP — S
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1