Land攻击
1.原理Land攻击是由著名的黑客组织RootShell发现的,于1997年11月20日公布的,原理比较简单,就是利用TCP连接三握手中的缺陷,向目标主机发送源地址与目标地址一样的数据包,造成目标主机解析Land包占用太多的资源,从而使网络功能完全瘫痪。具体说应该是,Land攻击打造一个特别的SYN包,其源地址和目标地址被设置成同一个计算机的地址,这时将导致该计算机向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每个这样的连接都将保留直到超时。
2.攻击
Land攻击对Windows 95很有效,但实际上,很多基于BSD的操作系统都有这个漏洞。不同的操作系统对Land攻击反应不同,很多Unix将崩溃,而Windows NT会变得非常缓慢,而且对Linux,路由器,其它大量的Unix都具有相当的攻击力。这里提供Land程序的源代码(请见光盘)。
3.防御
打最新的相关的安全补丁,在防火墙上进行配置,将那些在外部接口上进入的含有内部源地址的包过滤掉,包括10域,127域,192.168域,172.16到172.31域。由于Land攻击主要是构造IP包,使源IP和目标IP相同,源端口和目的端口相同,所以如果使用Tcpdump,可记录到攻击特征为:23:45:13 815705 192.168.0.111 23>192.168.0.111 23:S 3868:3868(0) Windows 2048
泪滴——Teardrop攻击
1.原理
Teardrop攻击利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指示该分段所包含的是原包的那一段的信息,某些TCP/IP在收到含有重叠偏移的伪造分段时将崩溃。具体的讲是这样的,物理层通常给所能传输的帧加上一个尺寸上限,IP层将数据报的大小与物理层帧的上限相比较,如果需要就进行分段。在IP报头中设置了一些域用于分段:标志域为发送者传输的每一个报文保留一个独立的值,这个特定的值被拷贝到每个特定报文的每个分段,标志域中有一位作为“更多分段”位,除了最后一段之外,该位在组成一个数据报的所有分段中被置位;分段偏移域含有该分段自初始数据报开始位置的位移。对于存在Teardrop漏洞的操作系统,如果接受到畸形数据分段,则在某些情况下会破坏整个IP协议栈,因此,必须重启计算机才能恢复。
2.攻击
在早期的由BSD实现的网络协议中,在处理数据包分段时存在漏洞,后来的一些操作系统都沿用了BSD的代码,所以这个漏洞在Linux,Windows 98和Windows NT中都是存在的。网上有一个Linux上运行的Teardrop程序——Teardrop.c,它就是实现这样的攻击的。下载地址是:http://www.computec.ch/software/denial_of_service/teardrop/teardrop.c
3.防御:安装最新的服务包,设置防火墙时对分段进行重组,而不是转发它们。
UDP Flood
1.原理
做个简单的实验,用Telnet连接到对方TCP chargen 19号端口,看看返回了什么?很吃惊的是,返回了大量的回应数据,如果能加以利用的话就能够发动DoS攻击了。先介绍一下Chargen服务, RFC0864中定义了这种服务,其UDP/TCP均使用了19号端口。UDP chargen server若收到一个封包,就会随一个封包回去;而TCP chargen server若发现与Client的连线存在,就会不断的发送封包给Client,所以TCP chargen可以直接诱发DoS攻击。不过常用的还是UDP chargen,它常被用来作为DDoS中放大网络流量之用,一般要结合Echo服务。Echo服务用的是UDP的7号端口,如果它收到一个包,就会把包中的负载按原样返回,而如果你向UDP的19号端口Chargen发送一个任意字符,它将返回一个假的随机字符串。UDP Flood攻击就是通过伪造与某一台主机的Chargen服务之间的UDP连接,回复地址指向开着Echo服务的一台主机,这就能在两台主机之间产生无用的数据流,如果数据流足够多就会导致DoS。UDP Flood图解(如图4所示):图4
2.攻击一个典型的UDP Flood攻击工具——UDP Flooder,如图5所示:图5
3.防御
关掉一些不必要的TCP/IP服务,或者对防火墙进行配置,阻断来自Internet的请求这些服务的UDP请求。
分布式拒绝服务——DDoS
1.原理
大名鼎鼎的DDoS在2000年的“电子珍珠港事件”中名声大震,我也没必要说很多。从名字中我们就能得知,它是利用很多台机器一起发动攻击。攻击手法可能只是简单的Ping,也可能是SYN Flood或其它,但是由于它调用了很多台机器,所以规模很大,火力更猛,而且因为它利用了TCP/IP网络协议的缺陷,所以很难防御这种进攻。
2.攻击
2001年用来攻击Yahoo等网站的程序——TFN,Trinoo,TFN2K等都堪称是黑客技术的杰作,而且网上都有它们的源代码。
3.防御
主要谈一下防御。要阻止这种进攻关键是网络出口反欺骗过滤器的功能是否强大,也就是说如果你的WEB服务器收到的数据包的源IP地址是伪造的话,你的边界路由器或防火墙必须能够识别出来并将其丢弃,最快速的方法是和ISP联手通过丢包等方法一起来阻挡这种庞大的进攻。另外针对DDoS进攻是集中于某一个IP地址的特点,使用移动IP地址技术也是一种不错的选择。大多数的DDoS攻击代码是公开的,分析源代码我们也可以根据其特点设计出有效的反击方法,或者使用工具检测这种进攻。现在已经出现了名为Ngrep的工具,它使用DNS来跟踪TFN2K驻留程序。
分布式反射拒绝服务——DRDoS
1.原理
一种比DDoS更可怕的攻击方式已经出现了!它就是DRDoS——分布式反射拒绝服务(Distributed Reflection Denial of Service)。DRDoS不同于以往的拒绝服务方式,它对DDoS作了改进,它是通过对正常的服务器进行网络连接请求来达到攻击目的的。从TCP的三次握手中我们知道了任何合法的TCP连接请求都会得到返回数据包,而这种攻击方法就是将这个返回包直接返回到被攻击的主机上,这里涉及到数据包内的源IP地址问题,就是利用数据包的IP地址欺骗方法,欺骗被利用的网络服务器提供TCP服务,让此服务器认为TCP请求连接都是被攻击主机上发送的,接着它就会发送“SYN+ACK”数据包给被攻击主机,恶意的数据包就从被利用的服务器“反射”到了被害主机上,形成洪水攻击。DRDoS图解(如图9所示):图9
3.攻击
DRDoS很好地隐蔽了攻击者的真实地址,利用时我们也可以使用威力更大的方式。这里提供一款命令行攻击工具——DRDoS(安全焦点有下载),使用很简单,但是威力很大。慎用!
3.防御
防御这种攻击需要相当高的专业技巧,一般来说应该让网络安全事件响应小组来取证分析,并请信息安全服务商来解决。