DOS攻击方式的研究及实现-1-DoS攻击方式的研究及实现摘要:本文在对两种攻击方式的具体分析后,归纳出当前流行的DoS攻击方式的主要特点,并根据攻击的特点提供一些针对这些攻击的防御方法。通过查阅各种攻击手段的资料,对其代码进行研究,用代码实现两种攻击程序,然后在特定的环境下,模拟了攻击测试,并对测试结果进行比较、分析。关键字:套接字;报文;拒绝服务;资源衰竭;缓冲区;校验和;广播;带宽耗用DOS攻击方式的研究及实现-2-目录引言........................................................................................................................................-3-1问题的提出.............................................................................................................-3-1.1DoS攻击的概念............................................................................................................-3-1.2DoS攻击类型................................................................................................................-3-1.3两种攻击方式分析.......................................................................................................-4-2基于DoS攻击的分析和设计...........................................................-9-2.1功能需求.......................................................................................................................-9-2.2性能需求.......................................................................................................................-9-2.3系统结构图.................................................................................................................-10-2.4数据流程图.................................................................................................................-11-3程序实现.................................................................................................................-13-3.1实现SYNFLOOD.....................................................................................................-13-3.2实现SMURF..............................................................................................................-15-4攻击测试.................................................................................................................-21-4.1攻击实例......................................................................................................................-21-4.2防御方法.....................................................................................................................-24-结论......................................................................................................................................-26-致谢......................................................................................................................................-26-参考文献........................................................................................................................-26-DOS攻击方式的研究及实现-3-引言随着信息技术特别是网络技术的不断发展,国际互联网的全球化热潮使人类社会进入了一个新的信息时代。由于国际互联网具有不受时间、地域限制的特性,而且计算机的处理能力迅速增长,越来越多的网络攻击工具被攻击者应用于因特网而引发了大混乱,而在攻击中又以拒绝服务(DoS)为主,这些拒绝服务型攻击每年造成的商业损失达成百上千万美元,对任何系统和网络都构成了威胁。为了防止DoS造成更多的损失,很多研究人员加入到研究行列中来。为了让大家对DoS有更多的了解,所以对DOS攻击原理以及常见方法进行研究。1问题的提出1.1DoS攻击的概念DoS是DenialofService的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。被DoS攻击时,主机上有大量等待的TCP连接,网络中充斥着大量的无用的数据包。攻击者源地址为假,制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯。攻击者利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求,严重时会造成系统死机。1.2DoS攻击类型最常见的DoS攻击形式有4种:1)带宽耗用(bandwidth-consumption)攻击,攻击者有更多的可用带宽而能够造成受害者的拥塞或者征用多个站点集中网络连接对网络进行攻击。即以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。2)资源衰竭(resource-starvation)攻击,与带宽耗用不同的是在于消耗系统DOS攻击方式的研究及实现-4-资源,一般涉及cpu利用率、内存、文件系统限额和系统进程总数之类的系统资源消耗。即用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。3)编程缺陷(programmingflaw)是应用程序、操作系统在处理异常条件上的失败。这些异常条件通常在用户向脆弱的元素发送非期望的数据时发生。对于依赖用户输入的特定应用程序来说,攻击者可能发送大数据串,这样就有可能创建一个缓冲区溢出条件而导致其崩溃。4)DNS攻击是基于域名系统的攻击,攻击者向放大网络的广播地址发送源地址伪造成受害者系统的ICMP回射请求分组,这样放大效果开始表现,放大网络上的所有系统对受害者系统作出响应,受害者系统所有可用带宽将被耗尽。1.3两种攻击方式分析1)TCP/IP协议因为对于网络协议都是分层的,所以TCP/IP协议不例外,它可以分为四个层次:1.链路层:数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡;2.网络层:互连网层,处理分组在网络中的活动,网络层协议包括(IP协议、ICMP协议、IGMP协议);3.传输层:它主要为两台主机上的应用程序提供端到端的通信;4.应用层:负责处理特定的应用程序细节(Telnet远程登陆、FTP文件传输协议、SMTP用于电子邮件的简单邮件传输协议、SNMP简单网络管理协议。TCP/IP协议的重点就是IP协议(网际互连协议)和TCP协议(传输控制协议)。首先介绍IP协议,IP协议的主要功能包括无连接数据报传送、数据报寻径以及差错处理三部分。IP层作为通信子网的最高层,提供无连接的数据报传输机制。IP数据报协议非常简单,不能保证传输的可靠性。IP协议是点到点的,它向上层提供统一的IP数据报,使得各种物理帧的差异性对上层协议不复存在。TCP建立在不可靠的IP协议之上,IP不能提供任何可靠性机制,所以TCP的可靠性完全由自己实现。TCP采用的最基本的可靠性技术是:确认与超时重传。流量控制也是保证可靠性的一个重要措施,假如无流量控制,可能因接受缓冲区溢出而丢失大量数据,导致许多重传。此外,TCP还要进行拥塞控制,目的也不外乎提供可靠性。怎样才能建立可靠的连接呢?TCP使用了“三次握手”机制:第一次,“客户机”向“服务器”发送连接请求,其中包括“客户机”端的初始报文序号(比如X)。第二次,“服务器”收到连接请求后,发回连接确认,其中包括“服务器”端的初始报文序号(比如Y),以及“服务器”对“客户机”初始报文序号(X)的确认。第三次,“客户机”向“服务器”发送X序号数据,其中包括对“服务器”初始序号Y的确认。撤消连接比建立连接简单,但也可能造成数据丢失,因为连接的双方都可以发起撤除连接操作。假如A、B两机建立连接并传输报文。在A机毫无准备的情况下,B机单方面发出断连请求,并立刻终止接收该连接上的数据。在A机未收到断连接请求之前,随时可能向B机发送数据,于是便有了数据丢失的可能性。为了解决此问题,DOS攻击方式的研究及实现-5-再次用到三次握手方法。一方发出断连请求后并不立即撤除连接,而要等待对方确认;对方收到请求后,发送确认报文,并撤除连接;发起方收到确认后最后撤除连接。TCP的拥塞控制也是基于滑动窗口协议的,通过限制发送端向网间网注入报文的速率而达到控制拥塞的目的。TCP发现拥塞的途径有两条:一条是来自ICMP的源抑制报文,一条是报文丢失现象。TCP/IP协议的分析主要在于IP数据报和TCP数据报的格式。那么我们应该首先了解IP数据报和TCP数据报的格式。各种数据格式常常以32bit(即4字节)为单位来描述。IP数据报的完整格式:优先级别DTRC未用↓版本首部长度服务类型总长度标识标志片偏移生存时间协议首部检验和源地址目的地址长度可变的可选字段填充↓IP数据报首部IP数据部分IP数据报首部的固定部分中的各字段1.版本:占4bit,指IP协议的版本。通信双方使用的IP协议的版本必须一致。2.首部长度:占4bit,可以表示的最大数值是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。3.服务类型:占8