理论教育 计算机网络技术:拒绝服务攻击原理

计算机网络技术:拒绝服务攻击原理

时间:2023-10-28 理论教育 版权反馈
【摘要】:另一种拒绝服务攻击以消耗服务器链路的有效带宽为目的,攻击者通过发送大量的有用或无用数据包,将整条链路的带宽全部占用,从而使合法用户请求无法通过链路到达服务器。下面介绍几种常见的拒绝服务攻击。UDP Flood、ICMP Flood攻击的原理与SYN Flood攻击类似。Collapsar(黑洞)是绿盟科技的一款抗DDoS产品品牌,在对抗拒绝服务攻击的领域内具有比较高的影响力和口碑。

计算机网络技术:拒绝服务攻击原理

DoS攻击就是想办法让目标机器停止提供服务或资源访问,这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。

DoS的攻击方式有很多种,根据其攻击的手法和目的不同,有两种不同的存在形式。

一种是以消耗目标主机的可用资源为目的,使目标服务器忙于应付大量非法的、无用的连接请求,占用了服务器所有的资源,造成服务器对正常的请求无法再做出及时响应,从而形成事实上的服务中断。这是最常见的拒绝服务攻击形式之一。这种攻击主要利用的是网络协议或者是系统的一些特点和漏洞进行攻击,主要的攻击方法有死亡之Ping、SYN Flood、UDP Flood、ICMP Flood、Land、Teardrop等。针对这些漏洞的攻击,目前在网络中都有大量的工具可以利用。

另一种拒绝服务攻击以消耗服务器链路的有效带宽为目的,攻击者通过发送大量的有用或无用数据包,将整条链路的带宽全部占用,从而使合法用户请求无法通过链路到达服务器。例如,蠕虫对网络的影响。具体的攻击方式很多,如发送垃圾邮件,向匿名FTP塞垃圾文件,把服务器的硬盘塞满;合理利用策略锁定账户,一般服务器都有关于账户锁定的安全策略,某个账户连续3次登录失败,那么这个账号将被锁定。破坏者伪装一个账号,去错误地登录,使这个账号被锁定,正常的合法用户则不能使用这个账号登录系统了。

下面介绍几种常见的拒绝服务攻击。

(一)死亡之Ping

死亡之Ping(Ping of Death)是最古老、最简单的拒绝服务攻击,发送畸形的、超大尺寸的ICMP数据包,如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。

此外,向目标主机长时间、连续、大量地发送ICMP数据包,最终也会使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使目标主机耗费大量的CPU资源。

正确地配置操作系统防火墙、阻断ICMP及任何未知协议,都可以防止此类攻击。

(二)SYN Flood攻击

SYNFlood攻击利用的是TCP缺陷。通常一次TCP连接的建立包括3个步骤:客户端发送SYN包给服务器端;服务器分配一定的资源并返回SYN/ACK包,并等待连接建立的最后的ACK包;最后客户端发送ACK报文。这样两者之间的连接建立起来,并可以通过连接传送数据。攻击的过程就是疯狂地发送SYN报文,而不返回ACK报文。当服务器未收到客户端的确认包时,规范标准规定必须重发SYN/ACK请求包,一直到超时,才将此条目从未连接队列删除。SYNFlood攻击耗费CPU和内存资源,而导致系统资源占用过多,没有能力响应其他操作,或者不能响应正常的网络请求,如图2-97所示。

图2-97 SYN攻击

由于TCP/IP相信报文的源地址,攻击者可以伪造源IP地址,如图2-98所示,为追查造成很大困难。如果想要查找,必须通过所有骨干网络运营商的路由器,逐级地向上查找。

SYN Flood攻击除了能影响主机外,还危害路由器、防火墙等网络系统,事实上SYNFlood攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。(www.daowen.com)

图2-98 伪装源IP的SYN攻击

SYN Flood攻击实现起来非常简单,网上有大量现成的SYN Flood攻击工具,如xdos、Pdos、SYN-Killer等。以SYN-Killer为例,选择随机的源地址和源端口,并填写目标机器地址和TCP端口,激活运行,很快就会发现目标系统运行缓慢。UDP Flood、ICMP Flood攻击的原理与SYN Flood攻击类似。

关于SYN Flood攻击的防范,目前许多防火墙和路由器都可以做到。首先关掉不必要的TCP/IP服务,对防火墙进行配置,过滤来自同一主机的后续连接,然后根据实际的情况来判断。

(三)Land攻击

Land攻击是打造一个特别的SYN包,包的源IP地址和目标IP地址都被设置成被攻击的服务器地址。这时将导致服务器向自己的地址发送SYN/ACK消息,结果这个地址又发回ACK消息,并创建一个空连接,每一个这样的连接都将保留直到超时。不同的系统对Land攻击的反应不同,许多UNIX系统会崩溃,而Windows NT会变得极其缓慢(大约持续5分钟)。有人专门用Land对某种路由器进行了测试,结果发现,当对23端口进行攻击时,路由器则不能连到本地网或外网。路由器前面面板上的灯也停止了闪烁,用Ping没有响应,Tenlnet命令也无效。此时,唯一的选择便是硬重启。

(四)Teardrop攻击

Teardrop(泪珠)攻击的原理是,IP数据包在网络传递时,数据包可以分成更小的片段,攻击者可以通过发送两段(或者更多)数据包来实现。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。

关于Land攻击、泪珠攻击的防范,系统打最新的补丁即可。

(五)CC攻击

前面讲的几种DoS攻击是针对TCP/IP协议的,现在说说CC(Challenge Collapsar)攻击。Collapsar(黑洞)是绿盟科技的一款抗DDoS产品品牌,在对抗拒绝服务攻击的领域内具有比较高的影响力和口碑。因此,此攻击更名为Challenge Collapsar,表示要向黑洞发起挑战。

CC攻击跟DDoS攻击本质上是一样的,都是以消耗服务器资源为目的。目前看来,它主要针对Web应用程序比较消耗资源的地方进行疯狂请求,如论坛中的搜索功能,如果不加以限制,任由人搜索,普通配置的服务器在几百个并发请求下,MYSQL服务性能就下降很多。CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停地进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。

假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说它一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60秒,那么使用CC模拟120个用户并发连接,经过1分钟,服务器被请求了7 200次,处理了6 000次,于是剩下了1 200个并发连接没有被处理。这时候服务器会开始丢连接,但是服务器是按先来后到的顺序丢的,这1 200,个是在最后10秒的时候发起的,服务器满负开始丢连接的时候,应该是有7 200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了。这样服务器达到了超级繁忙状态,从而达到了DoS攻击的目的。

每个攻击源攻击业务的流量和频率与相对真实业务相差无几,也没有携带具有明显特征的User-Agent或者Referer,因此,在这种场景下,无法通过行为特征或字段特征的方式快速区分出攻击流量,对攻击防护也无从下手。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈