[发明专利]一种基于Bloom Filter和开源内核防御SYN Flood攻击的方法有效
申请号: | 201010133254.2 | 申请日: | 2010-03-26 |
公开(公告)号: | CN101958883A | 公开(公告)日: | 2011-01-26 |
发明(设计)人: | 唐欢容;罗新高;李宇;欧阳建权 | 申请(专利权)人: | 湘潭大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 41110*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于Bloom Filter和开源内核防御SYN Flood攻击的方法,包括以下步骤:1、遭受SYN-Flood攻击判断;2、构建Bloom Filter结构;3、更新内核层可信IP地址和TTL数据,启用内核层数据包过滤;4、内核层根据可信IP地址和TTL记录过滤TCP SYN数据包;5、停止内核层数据包过滤。本发明可以达到如下的有益效果:1.通过改进Bloom Filter原始的单一位数组对应多个哈希函数的结构,采用一个哈希函数对应一个位数组的结构,有效降低了误报率,在保证准确率的前提下提高了存储和查找数据包的效率,使得本方法可以有效防御SYN Flood攻击。2.通过结合开源操作系统内核层和用户层协同处理来解决内核层效率高但不适宜处理复杂程序和用户层跟内核协议栈不紧密的问题,从而提高了对数据包的处理效率。 | ||
搜索关键词: | 一种 基于 bloom filter 内核 防御 syn flood 攻击 方法 | ||
【主权项】:
一种基于Bloom Filter和开源内核防御SYN Flood攻击的方法,其特征在于:包括以下步骤:第一步,遭受SYN‑Flood攻击判断;设置记录时间段,在设置记录时间段内在用户空间检测TCP连接请求包速率,取最小值作为阀值t的初始值;设置一个单位长度为10的循环数组,数组第n项记录前n秒内TCP连接请求包的个数,记录最近10秒内连接请求包的个数,对此数组求平均值得到最近10秒内SYN包的平均速率,当这个速率超过阀值t时判断系统当前可能遭受SYN‑Flood攻击,再转第2步;否则转第5步;第二步,构建用户层Bloom Filter结构;对处于连接状态下的TCP数据包,取其IP地址字段和TTL字段作为可信IP和TTL记录,利用改进的Bloom Filter组织成高效匹配结构;取TCP数据包中的源IP地址字段和源端口字段,并使用查看当前网络联机状态的命令查看包含此源IP地址和源端口的TCP连接是否处于ESTABLISHED状态,对于处于ESTABLISHED状态的TCP数据包取其源IP地址字段和TTL字段,并使用下面的方法构建Bloom Filter结构;构造2个2048位的一维数组和1个2048*8位的二维数组,其中数组每项为1位,初始状态时把整个数组的每项置为0,为了存储源IP地址A.B.C.D和TTL值总共5个字节的元素,使用ELFHash、RSHash、JSHash、PJWHash这样4个相互独立的哈希函数,用ELFHash哈希函数对IP地址的前两个字节A和B进行运算,即将A和B转换成两个字符,用ELFHash对其进行哈希运算,并将哈希值对m取模,映射到第1个一维数组;用RSHash哈希函数对IP地址的C和D字节进行运算,并将哈希值对m取模,映射到第二个一维数组;用JSHash哈希函数对IP地址四个字节进行运算,并将运算后的哈希值对m取模,映射到二维数组的第一列的第k个位置,并记录下位置k,同时用PJWHash哈希函数对TTL值进行哈希,将哈希值对n取模,映射到二维数组的第k行;映射时,把映射的位置置为1,构建好Bloom Filter结构后转第3步;第三步,更新内核层可信IP地址和TTL数据,启用内核层数据包过滤;当检测到SYN包速率超过阀值t时,用户层通过内核通信方式通知内核开启数据包过滤器,同时把记录的可信IP地址和TTL记录通过内核通信方式发送至内核层组织成内核层Bloom Filter结构,再转第4步;用户层和内核层通信方式如下:通信数据包结构包含包头和包数据两部分,包头部分的nlmsg_type字段标志着数据包的类型,用户层发往内核层数据包定义nlmsg_type为4时代表关闭内核层数据包过滤,nlmsg_type为5时开启内核层数据包过滤,此两种类型的数据包无需携带数据,nlmsg_type为1时用户层传送可信IP地址和TTL记录,同时携带数据部分,数据部分为u_packet_info结构体,此结构体包含改进的Bloom Filter结构体三个位向量的一个字节以及字节序号;内核层发往用户层的数据包定义nlmsg_type为2,携带数据为k_packet_info结构体,该结构体包含通过或丢弃信息、源IP、目的IP、TTL、源端口、目的端口;第四步,内核层根据可信IP地址和TTL记录过滤TCP SYN数据包;取TCP连接请求包中的IP地址字段和TTL字段,用第二步中构造BloomFilter结构的方法对IP地址和TTL进行哈希操作,在对IP地址进行哈希操作时,如果每个哈希值映射到m位数组的对应位置是1则进行TTL检测,否则丢弃该数据包;TTL检测:如果对TTL进行哈希操作后映射到二维数组对应位置为1则放行该数据包,否则丢弃;第五步,停止内核层数据包过滤;当检测到SYN包速率未超过阀值t并由记录可信IP地址和TTL记录后,停止数据包的过滤,用户层发送关闭命令到内核层数据包过滤模块。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湘潭大学,未经湘潭大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010133254.2/,转载请声明来源钻瓜专利网。
- 上一篇:收信人展示方法及系统
- 下一篇:触摸识别方法、触摸键结构及触摸装置