技术
拒绝服务技术的创新已经基本尘埃落定,而上个世纪最后十年的发明也逐渐遥远。然而,随着宽带接入、自动化和如今家庭计算机功能的日益强大,使得对拒绝服务攻击的研究有些多余。尤其是当我们发现一些本已在90年代末销声匿迹的古老的攻击方式,(例如land ,其使用类似的源和目标 IP 地址和端口发送 UDP 信息包)这些攻击技术 现在又卷土重来时,这个结论就更加显而易见。在这一方面唯一的进步就是可以发起并行任务,从而可以通过简单的 486 处理器所无法实现的方式来显著提高攻击强度。
另一个要考虑的重点是事实上IP堆栈似乎并未正确地安装补丁程序。计算机不再会因为单一的信息包而崩溃;但是,CPU操作会为了处理这种信息包而保持高速运行。因为补丁失效期间生成的信息包是有限的,所以要实现有效的攻击并不容易。可能是技术提高得太快。不管是什么原因,这些陈旧过时的攻击方式现在又卷土重来,而且还非常有效。
使用拒绝服务
拒绝服务攻击开始可能只是为了“取乐”,对系统操作员进行某种报复或是实现各种复杂的攻击,例如对远程服务的隐形欺骗。某人因在某一信道上遭到侮辱后也经常会将IRC服务器作为攻击目标。这种情况下的网络和因特网使用是“保密的”,这些攻击对其造成的影响微乎其微。
随着时间的流逝,因特网逐渐成为一种通信渠道,hacktivism(网络激进主义)越来越流行。地理政治形势、战争、宗教问题、生态等任何动机都可能成为对公司、政治组织或甚至国家的IT基础架构发动进攻的动机。
最近的拒绝服务攻击更多的是与联机游戏有关。某些玩家对在游戏中被人杀死或丢失他们喜爱的武器不满意,因此发动拒绝服务攻击,许多服务器已经成为这种攻击的牺牲品。
但是如今使用拒绝服务的目的大多数是纯粹的敲诈勒索。越来越多的企业开始依赖他们的IT基础架构。邮件、关键数据、甚至电话都通过网络来处理。如果没有这些主要的通信渠道,大多数公司都难以在竞争中幸存。而且,因特网还是一种生产工具。例如,搜索引擎和博彩web 站点都完全依赖网络连接。
因此,随着公司直接或间接地依赖因特网,原有的敲诈信逐渐转变成数字形式。首先在短暂而非紧要的时间段内发动攻击。然后受害者就不得不支付“保护费”。
网络协议攻击
这些攻击瞄准传输信道,并因此以IP堆栈作为攻击目标,IP堆栈是内存和 CPU 之类关键资源的进入点。
SYN洪水
SYN洪水是典型的基于概念的拒绝服务攻击,因为这种攻击完全依赖于TCP连接的建立方式。在最初的 3 向握手期间,服务器填写保存内存中会话信息的 TCB(传输控制块)表。当服务器收到来自客户机的初始 SYN 信息包时,向客户机发送回一个 SYN-ACK 信息包并在 TCB 中创建一个入口。只要服务器在等待来自客户机的最终 ACK 信息包,该连接便处于 TIME_WAIT 状态。如果最终没有收到 ACK 信息包,则将另一个 SYN-ACK 发送到客户机。最后,如果经多次重试后,客户机没有认可任何 SYN-ACK 信息包,则关闭会话并从 TCB 中刷新会话。从传输第一个 SYN-ACK 到会话关闭这段时间通常大约为 30 秒。
在这段时间内,可能会将数十万个SYN信息包发送到开放的端口且绝不会认可服务器的SYN-ACK 信息包。TCB 很快就会超过负荷,且堆栈无法再接受任何新的连接并将现有的连接断开。因为攻击者不用接收来自服务器的 SYN-ACK 信息包,所以他们可以伪造初始 SYN 信息包的源地址。这就使得跟踪攻击的真实来源更加困难。此外,因为 SYN-ACK 信息包没有发送到攻击者,所以这样还为攻击者节省了带宽。
生成这种攻击很容易,只要在命令行输入一条命令就足够了。
#hping3--rand-source–S –L 0 –p
存在的变体也很少,通常为了增加CPU的使用率会将某些异常添加到SYN 信息包。这些可能是序列号或源端口0等合法的异常。
SYN-ACK洪水
SYN-ACK洪水的作用基础是令CPU资源枯竭。从理论上讲,这种信息包是 TCP 3 向握手的第二步,而且在 TCB 中应该有对应的入口。浏览 TCB 将会使用 CPU 资源,尤其 TCB 很大时会耗用更多的 CPU 资源。因此,负荷较重时,这种对资源的使用会影响系统性能。
这也就是SYN-ACK攻击所仰仗的利器。向系统发送一个巨荷的SYN-ACK 信息包会显著增加系统 CPU 的使用率。因此,用于组织 TCB 的哈希算法和哈希表大小之选择会影响攻击的效率(请参阅“概念”和“逻辑缺陷”)。而且,因为这些 SYN-ACK 信息包不属于现有的连接,所以目标机器不得不将 RST 信息包发送到源机器,从而增加了链路上的带宽占用率。对于 SYN 洪水,攻击者为了避免接收到 RST,当然可以伪造源机器的 IP 地址,这样还可以提高攻击者的可用带宽。
这也只需要一条简单的命令就可以进行这种攻击。
一个重要因子是由第三方服务器基于反射机制而生成SYN-ACK信息包的能力。在将SYN 信息包发送到服务器的开放端口时,该服务器将 SYN-ACK 信息包发送回源机器。此时任何服务器都可能为这种攻击充当中继。发送到服务器的简单 SYN 信息包带有伪造的源,其发送到目标时生成 SYN-ACK 返回目标。这种技术让跟踪更加困难。而且,在某些情况下,还可以绕过某些防伪机制。尤其当目标和攻击者属于同一干道而且部署的 uRPF (参阅“防伪”) 距离目标机器和攻击者足够远时,更有可能避开防伪机制。
通过与SYN洪水联结还可以提高此种攻击的强度。SYN洪水在TCB 中创建入口,而TCB因此变得越来越大。由于此时浏览 TCB 所需的时间更长,所以 SYN-ACK 洪水的功效大大增加。