发明名称 一种基于二叉树检测UDP Flood攻击和防御的方法
摘要 本发明涉及网络安全技术领域,具体涉及一种基于二叉树检测来判定UDPFlood攻击和防御的方法,包括以下步骤:1、构建二叉树结构,对UDP数据包及相关信息进行存储和查询;2、对UDP数据包及其相关信息进行预存储;3、查找二叉树,对已存入二叉树的信息与当前分析的信息进行循环比较,判定是否为UDP Flood攻击;4、调用操作系统防火墙程序过滤发送UDP Flood的主机IP,拒绝接收数据包。本发明可以达到如下的有益效果:对大型DDoS类型的UDP Flood攻击采取基于二叉树的循环检测方式,通过二叉树来预存储UDP数据包和搜索二叉树来匹配及循环检测,检测迅速高效,精确度很高,有着优秀的防御效果。
申请公布号 CN102299901A 申请公布日期 2011.12.28
申请号 CN201010208893.0 申请日期 2010.06.25
申请人 湘潭大学 发明人 唐欢容;李勇周;王辉;李宇;欧阳建权
分类号 H04L29/06(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 代理人
主权项 一种基于二叉树检测UDP Flood攻击和防御的方法,其特征在于:按如下步骤进行;第一步构建环境变量创建二叉树A和二叉树B,树A用来存储等待分析的UDP数据包,树B用来存储已被检测出来的正在进行UDP Flood攻击的主机IP,分别初始化树A和树B,使每个节点都为空,转第二步;第二步判断收到IP数据包是否为UDP数据包从网卡队列中读取一个IP数据包,基于libnids抓包,检查其IP协议字段代号,若为17,则该数据包是UDP数据包,转第三步;否则转第十五步;第三步判断UDP数据包是否为第一分片或者完整的UDP数据包检查并判断该IP数据包内的分段偏移量字段的值是否为0,若为0,则该数据包为UDP数据包的第一分片或完整的UDP数据包,转第四步;否则转第十五步;第四步对IP数据包的源IP地址和其中的UDP数据包的数据部分进行预存储首先,取IP数据包的源IP地址和其中的UDP数据包的数据部分,并设置两个标记字段分别记录匹配次数和不匹配次数,初始化为0;分别存入一个字符数组S1中,该数组大小为1500字节;然后,检查树A的根节点是否为空,如果是,则将S1存入该根节点,转第十五步;如果不是,将S1的源IP地址与树A根节点中IP地址比较;若S1的源IP地址小,转第五步;若大,转第六步;若相等,转第七步;第五步访问树A当前节点的左孩子,若不存在,创建一个空节点作为左孩子,并将该左孩子设为当前节点;检查该节点是否为空,如果是,则将S1存入当前节点,转第十五步;如果不是,将其中IP地址与S1的源IP地址比较,若S1的源IP地址小,转第五步;若大,转第六步;若相等,转第七步;第六步访问树A当前节点的右孩子,若不存在,创建一个空节点作为右孩子,并将该右孩子设为当前节点;检查该节点是否为空,如果是,则将S1存入当前节点,转第十五步;如果不是,将其中IP地址与S1的源IP地址比较, 若S1的源IP地址小,转第五步;若大,转第六步;若相等,转第七步;第七步将S1内UDP数据包的数据部分与树A当前节点中的UDP数据包的数据部分进行匹配,若完全匹配,转第八步;否则,转第九步;第八步树A当前节点中的匹配次数标记字段加1并判断其值是否大于等于规定的数值4‑8,如果是,则可判定IP地址为当前节点内存储的源IP地址的主机正在进行UDP Flood攻击,转第十步;否则,转第十五步;第九步树A当前节点中的不匹配次数标记字段加1并判断其值是否大于等于规定的数值4‑8,如果是,则可判定IP地址为当前节点内存储的源IP地址的主机没有进行UDP Flood攻击,转第十四步;否则,转第十五步;第十步取树A当前节点存储的源IP地址,检查树B的根节点存储的内容是否为空,如果是,则将此源IP地址存入B树的根节点,转第十三步;否则,将此源IP地址与B树根节点存储的IP地址进行比较;若源IP地址小,转第十一步;若大,转第十二步;若相等,转第十四步;第十一步访问B树当前节点的左孩子,若不存在,创建一个空节点作为左孩子,并将该左孩子设为当前节点;检查当前节点是否为空,如果是,则将此源IP地址存入当前节点,转第十三步;否则,将此源IP地址与当前节点内存储的IP地址进行比较;若源IP地址小,转第十一步;若大,转第十二步;若相等,转第十四步;第十二步访问B树当前节点的右孩子,若不存在,创建一个空节点作为右孩子,并将该右孩子设为当前节点;检查当前节点是否为空,如果是,则将此源IP地址存入当前节点,转第十三步;否则,将此源IP地址与当前节点内存储的IP地址进行比较;若源IP地址小,转第十一步;若大,转第十二步;若相等,转第十四步;第十三步调用操作系统防火墙程序的过滤命令,过滤源IP地址为树B当前节点内存储的IP地址的数据包;转第十四步;第十四步清空树A当前节点;转第十五步;第十五步停止并跳出处理,转第二步。
地址 411105 湖南省湘潭市羊牯塘