运行模式
每个应用程序都有特定的功能和运行方式。因此要描述出所有的缺陷是不可能的。然而,某些典型和有效的示例可以对常见的无掩蔽性操作提供线索。
DHCP服务器容易遭受的攻击尽管很微小但却能快速耗尽其可用IP地址的池。前面已经分析过协议本身的缺陷(请参阅第 3 层连接攻击)。除此之外,在 DHCP 交换的第一阶段中,DHCP 服务器在没有得到来自客户机的任何确认情况下会锁定 IP 地址。令 DHCP 服务器用尽可用的 IP 地址便只是使用 chaddr 数据字段中指定的不同 MAC 地址来发送多个 DHCPDISCOVER 请求的问题。甚至不需要伪造 MAC。广播、缺少认证和“早期处理”组合起来构成拒绝服务攻击的关键因素。
另一种“先进”的攻击是基于设计不良的运行方式,这就是DNS服务器的洪水攻击。当DNS 服务器接收到对不在其缓存中的名称之解析请求,或当请求指定应答必须具有权威性时,服务器将请求发送到 TLD(顶级域名)服务器,以便获得域的 SOA(颁发机构起始)地址。一旦获得该地址,目标 DNS 服务器便向 SOA 服务器发出另一个请求以便解析该请求的名称。获得应答后,便立即将这些应答发送回给客户机。由于不需要由客户机进行认证,且客户机与服务器之间的通信是基于 UDP 协议,所以很轻易就可以将数千个请求从伪造的来源发送到服务器。可以对不同级别的攻击效率作如下区分。
− 针对不存在的域上主机之请求:这种情况下,TLD 将一个错误发送到目标 DNS 服务器,该服务器再将该错误转发到客户机。这种影响相对较低,而且需要攻击者提供大量请求。然而,很轻易就可以创建一个工具来生成这种攻击,因为任何字段(主机、域)可以是随机的,且不必是真实字段。
− 针对极少数现有域上主机之请求:这种情况下,目标服务器就每个域向 TLD 发送一个请求以获取 SOA。然后,把来自攻击者的每个请求转发到 SOA。不存在的主机会生成错误。另一方面,与现有主机有关的请求从 SOA 生成应答,这些应答是转发到源的较大信息包。这种情况下,较高的数据流量和更重要的处理可以提高攻击的效率。因为查找几个现有的域比较简单,所以这种攻击仍然相对容易实施。然而,攻击的效率主要取决于这些域的 SOA 对目标服务器发送给它们的大量请求进行处理的能力和这些域上众多主机名的可用性。
− 针对多个现有域上主机之请求。在这最后一种情况下,几乎所有发送到目标服务器的请求都会令目标服务器产生到 TLD 的请求,随后便是到 SOA 的请求和对应答的处理。这种攻击很难实施,因为它需要定义包含数千个现有域和主机的列表。然而,它特别有效,只在每秒内进行几千次请求就能使得大多数 DNS 服务器崩溃。
这种DNS的情况之出现大都是因为使用无态协议,使得攻击者可在不受影响的情况下在服务器端产生较高的数据流量和处理负荷。
对上下文和会话的处理是应用程序中另一常见的重要缺陷。在SMTP服务器对HELO 命令参数的有效性实施特定检查的情况下,由于不能对结果进行即时处理而会增强这一缺陷的影响。根据标准,只有出现 RCPT TO 命令时才可以拒收邮件。因此,建立一个会话并发出数千个 HELO 请求将会让目标服务器重复处理参数,这些参数通常位于规则的表达式上。最糟糕的情况是在执行名称解析时,因为这会添加更多的处理和数据流量。因为单条 HELO 命令约有 100 个字节,所以有可能从通过宽带接入而连接到因特网的标准 PC 对邮件服务器发动十分有效的攻击。如果一检测到异常便中断会话,则这种攻击不可能实现。
改善效率
大多数拒绝服务攻击实施起来非常简单。然而某些情况下,标准PC和宽带接入并不足以发动有效的攻击。尤其当在目标基础结构上实施群集和负载平衡之类机制时更是如此。在此情况下将会把一个单一的目标IP 地址物理链接到许多服务器,从而产生大规模攻击需求。
有两种方式能使得攻击在这种情况下有效。第一种方式是找到一些提高攻击媒介能力(信息包、会话的数量或带宽等)的平衡因子。第二种方式取决于影响通信路径上设备或资源的某些副作用。
小型信息包
最常见的副作用是需由内联网络或安全设备来处理的巨量小型信息包的影响。根据在这些设备上实施的功能,将信息包从一个接口转发到另一个接口可能需要若干操作。简单的路由器必须根据其路由表做出决策。在信息包筛选操作中,必须检查第4层标头来验证筛选器。有态检验因需要检查会话表而增加了复杂性。像逆向代理等最后一个应用程序层设备必须在第7 层处理信息包。像信息包销毁或 NAT 等某些其他操作甚至需要更多的处理,因为必须重写信息包并重新计算若干校验和。
小型信息包产生的影响很容易用数字来说明。一般来说,指定用于处理特定带宽的设备在处理64字节的信息包时几乎不能提供大于10% 声明性能的吞吐量。任何依赖于小于 100 字节信息包的攻击可能首先会令路由器和防火墙崩溃,而不仅仅是影响目标服务器。
上行链路洪水攻击
另一个常见的副作用是在到目标的路径上对链路的洪水攻击。攻击者发送的请求和信息包很少能生成足够的数据流量来填满链路。然而,来自目标的响应通常会使数据流量大大增加。基本的例子就是SYN洪水。64字节的 SYN 信息包令目标生成 3 个 SYN-ACK(原因在于重新传输尝试)。这种效果在基于应用程序的攻击中更加有效。简单的 HTTP 请求通常约有 200 字节,同时发回到客户端的数据通常大约10,000 字节。
在“一对一”的攻击中,关键是来自服务器的响应不发往攻击者,因为这种回应最终也会对攻击者的链路进行洪水攻击。这种情况下,伪造需可以且容易容易执行。基于应用程序的UDP完全适合生成这种结果。在DNS 洪水的情况下对此点进行论证特别简单(请参阅逻辑缺陷/运行方式)。无需考虑任何到 TLD 和 SOA 的请求(通过目标因特网链接而再度提高数据流量),对重要域上 MX 记录的请求为原始请求量添加了一个重要的倍增因子。
#digradware.commx
− 请求:71 个字节
− 应答:551 个字节
− 倍增因子 = 7¾
这些副作用应视为主要问题,尤其在共享的基础架构中,,针对单个服务器的攻击可能影响到依赖与原始目标相同的基础架构的数十个系统。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




