一种异常流量检测方法_3

文档序号:9551278阅读:来源:国知局
[0088]该方法包括如下步骤:
[0089]S601、建立全局IP哈希数组和排序数组;
[0090]所述IP哈希数组用来统计IP流量等信息,所述IP哈希数组可以包含变量SYN、ICMP、UDP以及DNA,分别用于统计同步报文数量、控制信息报文数量、用户数据报文数量以及抽取用户数据报文流量特征;所述排序数组用来保存排名前N位的IP信息。
[0091]S602、创建线程 1;
[0092]S603、所述线程1负责接收报文并从其中获取IP地址和报文类型;
[0093]S604、判断报文类型是否为同步报文,若是,则执行S605,否则执行S606 ;
[0094]S605、HASH[IP] — SYN+1 ;
[0095]S606、判断报文类型是否为控制信息报文,若是,则执行S607,否则执行S608 ;
[0096]S607、HASH[IP] — ICMP+1 ;
[0097]S608、判断报文类型是否为用户数据报文,若是,则执行S609,否则返回执行S603 ;
[0098]S609、HASH[IP] — UDP+1 ;
[0099]S610、判断IP是否存在于TOP — UDP数组中,若是,则执行S611,否则返回执行S603 ;
[0100]S611、取出报文 SPORT,DPORT,CHECK,取出 IP 成员 DNA ;
[0101]示例性的,由于用户数据报文流量特征多样,需要根据其端口的出现频率、校验码的相同程度再加以判断,优选的,选取SPORT、DP0RT以及CHECK对用户数据报文进行细化分析。DNA,用于抽取用户数据报文流量特征,其成员可以包括多个,优选的,DNA成员包括CUR、SAME、REPLY 以及 TCP。
[0102]S612、判断SPORT的值是否为某些特定值,例如,目前已经在网络中出现过的攻击的一些端口:123,1900,53,若是,则执行S613,否则执行S614 ;
[0103]S613、DNA — REPLY+1 ;
[0104]S614、判断DP0RT的值是否为某些特定值,例如,目前已经在网络中出现过的攻击的一些端口:22,80,443,若是,则执行3615,否则执行3616 ;
[0105]S615、DNA — TCP+1 ;
[0106]S616、判断CHECK是否等于DNA — CUR,若是,则执行S617,否则执行S618 ;
[0107]S617、DNA — SAME+1 ;
[0108]S618、DNA — CUR = CHECK ;
[0109]S619、创建线程 2;
[0110]S620、所述线程2负责遍历IP哈希数组获得当前IP对象A ;
[0111]S621、依次取出对象A的成员SYN,ICMP,UDP表示为P ;
[0112]S622、判断P是否存在于TOP — P数组中;若是,则执行S623,否则执行S634 ;
[0113]S623、得到P在TOP — P数组的位置j ;
[0114]S624、判断A是否大于T0P[j];若是,则执行S625,否则执行S626 ;
[0115]S625、T0P — P[j] = P,调用 top_down(j);
[0116]S626、T0P — P[j] = P,调用 top_up (j);
[0117]S627、判断P是否为UDP,若是,则执行S628,否则执行S630 ;
[0118]S628、判断DNA成员REPLY,TCP,SAME是否任意一个大于设定特征值,例如:10000,若是,则执行S629 ;
[0119]S629、发生 UDP FLOOD 攻击;
[0120]S630、判断P是否大于设定特征值,例如:10000,若是,则执行S631 ;
[0121]S631、判断P是否为SYN类型,若是,则执行S632,否则执行S633 ;
[0122]S632、发生 SYN FLOOD 攻击;
[0123]S633、发生 ICMP FLOOD 攻击;
[0124]S634、判断P是否大于TOP —P[l],若是,则依次执行S635、S636以及S637 ;
[0125]S635、把TOP — P[l]原来的IP信息成员P的TOP属性取消;
[0126]S636、TOP — P[l] = P 并且为 P 添加上 TOP 属性;
[0127]S637、调用 top_down (1) ο
[0128]本发明实施例四提供的方法,综合上述实施例的技术方案,全面细致地计算出整个网络中流量等各项指标排名前列的目标,再对排名前列的目标加以行为分析准确地判定出这些目标是否发生了异常流量行为,能够准确和及时地发现流量异常的情况,把误报率和漏报率大大降低。
[0129]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种异常流量检测方法,其特征在于,包括: 接收报文; 根据报文类型进行数量统计,存储至IP哈希数组,并在所述IP哈希数组中存储流量特征; 根据所述IP哈希数组中存储的报文数量信息,将数量排名前N位的报文的IP信息存储至排序数组中,N为自然数; 接收新IP信息,更新排名前N位的报文的IP信息并存储到排序数组; 在更新后的所述排序数组中,根据设定特征值校验对应类型的报文是否发生异常流量行为。2.根据权利要求1所述的方法,其特征在于,根据报文类型进行数量统计,存储至IP哈希数组包括: 识别报文类型; 如果所述报文类型为同步报文,则在所述IP哈希数组的第一流量特征中记录同步报文数量; 如果所述报文类型为控制信息报文,则在所述IP哈希数组的第二流量特征中记录控制信息报文数量; 如果所述报文类型为用户数据报文,则在所述IP哈希数组的第三流量特征中记录用户数据报文数量; 从所述用户数据报文中提取流量特征,存储至所述IP哈希数组的第四流量特征中。3.根据权利要求1所述的方法,其特征在于, 还包括:初始化排序数组,所述排序数组的成员包括第一排序子数组、第二排序子数组以及第三排序子数组,每个子数组成员的长度为N+1,分别用于保存前N位报文的IP信息; 相应的,根据所述IP哈希数组中存储的报文数量信息,将数量排名前N位的报文的IP信息存储至排序数组中包括:根据所述IP哈希数组中存储的报文数量信息,按照报文类型,以最小二根堆的形式将数量排名前N位的报文的IP信息存储至各排序子数组中。4.根据权利要求3所述的方法,其特征在于,根据所述IP哈希数组中存储的报文数量信息,按照报文类型,以最小二根堆的形式将数量排名前N位的报文的IP信息存储至各排序子数组中包括: 根据所述IP哈希数组中存储的报文数量信息,按照报文类型,采用第一排序函数,通过向上遍历排序子数组保持所述排序子数组的最小二根堆特性; 根据所述IP哈希数组中存储的报文数量信息,按照报文类型,采用第二排序函数,通过向下遍历排序子数组保持所述排序子数组的最小二根堆特性。5.根据权利要求1所述的方法,其特征在于,接收新IP信息,更新排名前N位的报文的IP信息并存储到排序数组包括: 创建两个线程; 第一线程负责在流入流出报文中抽取IP地址和报文类型,存入IP哈希数组; 第二线程负责遍历所述IP哈希数组,获取所述IP哈希数组中每一个IP信息,判断所述IP信息是否存在于相应的排序数组中。 若不存在,则将所述IP信息对应的流量特征与所述排序数组中首个IP信息对应的流量特征进行比较,如果比首个IP信息对应的流量特征大,则替换首个IP信息并调用第二排序函数; 若存在,则将所述IP信息的新的流量特征与所述排序数组中此IP信息的旧的流量特征做比较,并根据比较结果相应地调用第一排序函数或者第二排序函数,使排序数组保持最小二根堆特性,然后将所述新的流量特征和旧的流量特征进行比较,判断是否发生异常流量行为。6.根据权利要求1所述的方法,其特征在于,在所述更新后的排序数组中,根据设定特征值校验对应类型的报文是否发生异常流量行为包括: 所述设定特征值可以根据所在的网络环境中总流量的大小自行设定。
【专利摘要】本发明公开了一种异常流量检测方法,该方法包括:接收报文;根据报文类型进行数量统计,存储至IP哈希数组,并在所述IP哈希数组中存储流量特征;根据所述IP哈希数组中存储的报文数量信息,将数量排名前N位的报文的IP信息存储至排序数组中,N为自然数;接收新IP信息,更新排名前N位的报文的IP信息并存储到排序数组;在更新后的所述排序数组中,根据设定特征值校验对应类型的报文是否发生异常流量行为。采用本技术方案,克服了当前异常流量检测方法无法解决的漏报误报等问题,本技术方案能实时计算出整个网络中流量等各项指标排名前列的目标,再对这些目标进行详细的行为检测,能够精准和及时地发现攻击,把误报率和漏报率大大降低。
【IPC分类】H04L29/06
【公开号】CN105306436
【申请号】CN201510591310
【发明人】梁润强, 史伟, 麦剑, 黄衍博, 闵宇, 易建仁
【申请人】广东睿江科技有限公司
【公开日】2016年2月3日
【申请日】2015年9月16日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1