2.毕业设计(论文)任务要研究或解决的问题和拟采用的方法:
2.1 本课题要研究或解决的问题
(1)Ubuntu 14.04系统中,Netfilter框架及其钩子函数的注册和调用方法。
(2)基于Ubuntu 14.04 系统,状态检测防火墙的设计原理及实现,以及了解防火墙在内核中的位置。
(3)DDOS攻击的特征和种类,尤其是关于SYN FLOOD、ICMP FLOOD等攻击的原理、特征和异常数据包的相似性,从而建立攻击特征库。
(4)在状态防火墙中,抗DDOS攻击的方法及实现。
(5)TCP/IP协议的结构及其漏洞,以及Linux系统中TCP/IP协议栈的结构划分。
(6)针对DDOS攻击,能否找到一种合适的算法,在不影响系统整体性能的前提下,有效规避之。
2.2 本课题拟采用的解决方法(技术)
2.2.1 开发平台
Linux作为一款开放源代码的操作系统,具有良好的稳定性和开放性的优点,因此可以作为优秀的防火墙操作系统平台,并且Linux从2.3版本之后加入Netfilter框架,使得其防火墙功能更加强大,并且配合其iptables模块,使得用户可以通过键入规则管理防火墙。因此本次课题,我选择基于Linux 3.1.2的Ubuntu 14.04版本,该款Linux发行版,拥有友好的桌面,适合多数软件开发工作。
2.2.2 涉及的网络协议
SYN FLOOD攻击是所有DDOS攻击类型中最为常见的攻击形式,它主要利用TCP协议建立连接时的漏洞。攻击者通过向被攻击主机发送大量的半连接TCP数据包,导致被攻击主机的连接队列资源耗尽而无法响应正常用户的请求。因此涉及到的网络协议为TCP/IP。另外TCP/IP中涉及到的例如IP协议、TCP协议等也是本次课题需要了解的网络协议。
2.2.3 系统设计方案
首先,在装好的Ubuntu 14.04系统中,先对其原有的防火墙进行关闭处理,并且清理其防火墙的所有策略。之后,进入其内核模块,找到有关于Netfilter框架的文件,并对其中的关键位置进行修改,状态检测防火墙的状态检测机制和抵抗DDOS攻击的方法可以通过Netfilter框架的五个处理点实现。当一个数据包进入防火墙的时候,最先经过NF_IP_PRE_ROUTING,因此这里是抵抗DDOS攻击的关键,并且这也是状态监测机制的场所。可以在此建立规则库,用来匹配端口号、源IP地址、目的IP地址等,如果该数据包不匹配所有的规则,那么丢弃该包;如果该数据包被接受,开始进入状态检测环节,此处就相当于一个包过滤防火墙。
当数据包被接受后,防火墙将自动提取本次会话与安全策略相关的状态信息,并且将之保存在连接状态表中,接下来所有与该状态信息相关的数据包都将被看成与前一个数据包相似的数据包,从而将这些数据包归于同一连接状态表下,再将该连接状态表中的相关信息与DDOS攻击特征库进行比较,如果发现为DDOS攻击,则将该数据包阻塞并丢弃,如果不是,则将该状态信息加入至连接状态表中,当该类数据包下次访问的时候,可根据连接状态表直接将该数据包放行。这里,状态防火墙对于每个到来的数据包都会经过判断,若是之前已经通过的数据包,那么将自动接受,如果不是,将被提取状态信息与攻击特征库进行对比。规则库和DDOS攻击特征库都是存放在数据库中,都需要用Netfilter特有的钩子函数进行调用。同时,针对所有攻击行为,防火墙会自动生成攻击日志,以供管理员查看和总结,管理员可以通过这些攻击行为的特点将之加入到规则库和DDOS攻击库中。
2.2.4 开发手段
本课题是基于Ubuntu 14.04 系统,一切的操作都是在其内核下完成,Linux系统最初的开发语言便是C语言,因此,本次课题有关的代码、函数代码等都是通过C语言编程实现。
2.2.5 技术指标
(1)适用平台:状态防火墙能基于Ubuntu 14.04 及其品牌下其他系统正常工作。
(2)该防火墙能实现状态检测功能,针对不同的数据包,能建立出不同的连接状态表,从而进行连接追踪,并且适时丢弃。
(3)防护类型:对于DDOS攻击中的SYN FLOOD、ICMP FLOOD等攻击,能有效预防和抵抗。
(4)可扩展性:管理员能够查看攻击日志为规则库或DDOS攻击特征库加入最新规则,充分保障该防火墙下局域网的安全性和可扩展性。
(5)防火墙所选取的数据结构与算法不会对整个系统产生影响,系统趋于稳定,平均响应时间正常。
(6)整机吞吐量:防火墙在状态检测机制下能够处理一定包长数据的最大转发。
(7)最大并发连接数:防火墙能同时容纳一定数量的连接,不会对防火墙和整个系统产生明显影响,并且在该数量下,所有TCP、UDP的访问都是正常的。
(8)处理能力:针对DDOS攻击,在10M带宽环境下,能够抵抗一定数量的每秒攻击连接数量,服务器系统性能趋于稳定。
(9)每秒新建连接数:防火墙每秒可以建立一定数量的完整TCP/UDP的连接,使得内网访问外网正常。
2.2.6 算法与数据结构
目前关于抗DDOS攻击的算法有很多,作为本课题研究的主要重点,我在选取算法的时候,需要综合考虑各种算法对于系统将会产生的影响,确保所选的算法既能有效降低DDOS攻击,又能使系统整体性能趋于稳定。
2.3 主要技术简介
2.3.1 Netfilter防火墙内核模块开发技术
Netfilter可以对流入和流出的信息进行喜欢控制,且可以在一台低配置机器上很好的运行,可以实现防火墙、NAT和数据包的分割等功能。Netfilter工作在内核内部,基于钩子函数和IP表对数据包进行处理,并且各自的模块相互独立,又彼此协调工作。
2.3.2 状态检测技术
状态检测技术是防火墙近几年才应用的新技术。传统的包过滤防火墙只是通过检测IP包头的相关信息来决定数据流的通过还是拒绝,而状态检测技术采用的是一种基于连接的状态检测机制,将属于同一连接的所有包作为一个整体的数据流看待,构成连接状态表,通过规则表与状态表的共同配合,对表中的各个连接状态因素加以识别。这里动态连接状态表中的记录可以是以前的通信信息,也可以是其他相关应用程序的信息,因此,与传统包过滤防火墙的静态过滤规则表相比,它具有更好的灵活性和安全性。
2.3.3 DDOS攻击特征库
特征是对已知的攻击行为的描述,特征必须能准确描述某一种攻击行为的特点,针对DDOS攻击,我们可以通过分析其攻击数据包,提取出有关的攻击特征,针对SYN FLOOD,因为其攻击方式是有某一台主机操控发起的,并且发送至傀儡机的数据包都是相同的,因此可以通过分析和提取该数据包独有的序列,存入数据库中,对DDOS攻击起到预防作用。
2.3.4 规则库
规则库相当于一个包过滤防火墙,它会针对数据包进行一些简单的筛选和过滤,规则库里面主要是一些目的IP地址、源IP地址之类的信息,规则库先对数据包进行简单的过滤,过滤到那些明显有问题的数据包,再将剩下的数据包提交至状态防火墙处理。 |