分布式拒绝服务

来自术语
跳转至: 导航搜索

    在拒绝服务基础上产生的一类攻击方式,攻击者利用客户端/服务器技术,将众多受控的计算机联合起来作为攻击平台,对目标主机发起多攻击端协作攻击,从而成倍地提高拒绝服务攻击的威力。09.0890。

属性

英文名 distributed denial of service,DDoS 目标 DoS攻击
借助 服务器技术 中文名 分布式拒绝服务攻击

攻击定义

首先从一个比方来深入理解什么是DDOS。

一群恶霸试图让对面那家有着竞争关系的商铺无法正常营业,他们会采取什么手段呢?(只为举例,切勿模仿)恶霸们扮作普通客户一直拥挤在对手的商铺,赖着不走,真正的购物者却无法进入;或者总是和营业员有一搭没一搭的东扯西扯,让工作人员不能正常服务客户;也可以为商铺的经营者提供虚假信息,商铺的上上下下忙成一团之后却发现都是一场空,最终跑了真正的大客户,损失惨重。此外恶霸们完成这些坏事有时凭单干难以完成,需要叫上很多人一起。嗯,网络安全领域中DoS和DDoS攻击就遵循着这些思路。

信息安全的三要素——“保密性”、“完整性”和“可用性”中,DoS(Denial of Service),即拒绝服务攻击,针对的目标正是“可用性”。该攻击方式利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务。

DdoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项指标不高的性能,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了-目标对恶意攻击包的"消化能力"加强了不少。这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。DDoS就是利用更多的傀儡机(肉鸡)来发起进攻,以比从前更大的规模来进攻受害者

攻击攻击方式

DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。 这种攻击方式可分为以下几种:

攻击攻击特点

  分布式拒绝服务攻击采取的攻击手段就是分布式的,在攻击的模式改变了传统的点对点的攻击模式,使攻击方式出现了没有规律的情况,而且在进行攻击的时候,通常使用的也是常见的协议和服务,这样只是从协议和服务的类型上是很难对攻击进行区分的。在进行攻击的时候,攻击数据包都是经过伪装的,在源IP 地址上也是进行伪造的,这样就很难对攻击进行地址的确定,在查找方面也是很难的。这样就导致了分布式拒绝服务攻击在检验方法上是很难做到的。

攻击攻击特性

  对分布式攻击进行必要的分析,就可以得到这种攻击的特性。分布式拒绝服务在进行攻击的时候,要对攻击目标的流量地址进行集中,然后在攻击的时候不会出现拥塞控制。在进行攻击的时候会选择使用随机的端口来进行攻击,会通过数千端口对攻击的目标发送大量的数据包,使用固定的端口进行攻击的时候,会向同一个端口发送大量的数据包。

攻击分类

  按照TCP/IP协议的层次可将DDOS攻击分为基于ARP的攻击、基于ICMP的攻击、基于IP的攻击、基于UDP的攻击、基于TCP的攻击和基于应用层的攻击。

攻击流程

DDoS并不象入侵一台主机那样简单。了解这些原理之后,你便会更加明白入侵者的意图,从此便掌握了预防的技巧。一般来说,黑客进行DDoS攻击时会经过这样的步骤:

攻击Windows系统防御

对于windows系统来说,可以从以下几个方面来进行防御:

一. 启用 SYN 攻击保护

启用 SYN 攻击保护的命名值位于此注册表项的下面:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。

值名称: SynAttackProtect

建议值: 2

有效值: 0 – 2

说明:使 TCP 调整 SYN-ACK 的重传。配置此值后,在遇到 SYN 攻击时,对连接超时的响应将更快速。在超过 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 的值后,将触发 SYN 攻击保护。

设置 SYN 保护阈值   下列值确定触发 SYN 保护的阈值。这一部分中的所有注册表项和值都位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。这些注册表项和值是:

值名称: TcpMaxPortsExhausted   建议值: 5   有效值: 0 – 65535   说明:指定触发 SYN 洪水攻击保护所必须超过的 TCP 连接请求数的阈值。      值名称: TcpMaxHalfOpen   建议的数值数据: 500   有效值: 100 – 65535   说明:在启用 SynAttackProtect 后,该值指定处于 SYN_RCVD 状态的 TCP 连接数的阈值。在超过 SynAttackProtect 后,将触发 SYN 洪水攻击保护。      值名称: TcpMaxHalfOpenRetried   建议的数值数据: 400   有效值: 80 – 65535   说明:在启用 SynAttackProtect 后,该值指定处于至少已发送一次重传的 SYN_RCVD 状态中的 TCP 连接数的阈值。在超过 SynAttackProtect 后,将触发 SYN 洪水攻击保护。

设置其他保护   这一部分中的所有注册表项和值都位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。这些注册表项和值是:

值名称: TcpMaxConnectResponseRetransmissions   建议的数值数据: 2   有效值: 0 – 255   说明:控制在响应一次 SYN 请求之后、在取消重传尝试之前 SYN-ACK 的重传次数。      值名称: TcpMaxDataRetransmissions   建议的数值数据: 2   有效值: 0 – 65535   说明:指定在终止连接之前 TCP 重传一个数据段(不是连接请求段)的次数。      值名称: EnablePMTUDiscovery   建议的数值数据: 0   有效值: 0, 1   说明:将该值设置为 1(默认值)可强制 TCP 查找在通向远程主机的路径上的最大传输单元或最大数据包大小。攻击者可能将数据包强制分段,这会使堆栈不堪重负。对于不是来自本地子网的主机的连接,将该值指定为 0 可将最大传输单元强制设为 576 字节。      值名称: KeepAliveTime   建议的数值数据: 300000   有效值: 80 – 4294967295   说明:指定 TCP 尝试通过发送持续存活的数据包来验证空闲连接是否仍然未被触动的频率。

值名称: NoNameReleaseOnDemand   建议的数值数据: 1   有效值: 0, 1   说明:指定计算机在收到名称发布请求时是否发布其 NetBIOS 名称。

使用表 1 中汇总的值可获得最大程度的保护。

表 1:建议值

攻击攻击原理

拒绝服务攻击即攻击者想办法让目标机器停止提供服务或资源访问。这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为这是由于网络协议本身的安全缺陷造成的,从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。

  DDOS(分布式拒绝服务):凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击。 也就是说拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的。   虽然同样是拒绝服务攻击,但是DDOS 和DOS 还是有所不同,DDOS的攻击策略侧重于通过很多“僵尸主机”(被攻击者入侵过或可间接利用的主机)向受害主机发送大量看似合法的网络包, 从而造成网络阻塞或服务器资源耗尽而导致拒绝服务分布式拒绝服务攻击一旦被实施, 攻击网络包就会犹如洪水般涌向受害主机, 从而把合法用户的网络包淹没, 导致合法用户无法正常访问服务器的网络资源, 因此, 拒绝服务攻击又被称之为 “洪水式攻击” ,常见的 DDOS 攻击手段有 SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood 等;而 DOS 则侧重于通过对主机特定漏洞的利用攻击导致网络栈失效、系统崩溃、 主机死机而无法提供正常的网络服务功能, 从而造成拒绝服务, 常见的 DOS 攻击手段有 T earDrop、 Land、 Jolt、 IGMP Nuker、 Boink、 Smurf、 Bonk、OOB 等。就这两种拒绝服务攻击而言,危害较大的主要是 DDOS 攻击,原因是很难防范,至于 DOS 攻击,通过给主机服务器打补丁或安装防火墙软件就可以很好地防范DDOS 的表现形式主要有两种,一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞, 合法网络包被虚假的攻击包淹没而无法到达主机; 另一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU 被内核及应用程序占完,造成的无法提供网络服务。

 如何判断网站是否遭受了流量攻击可通过 Ping 命令来测试,若发现 Ping 超时或丢包严重(假定平时是正常的),则可能遭受了流量攻击,此时若发现和你的主机接在同一交换机上的服务器也访问不了, 基本可以确定是遭受了流量攻击。 当然, 这样测试的前提是你到服务器主机之间的 ICMP 协议没有被路由器防火墙等设备屏蔽, 否则可采取 T elnet 主机服务器的网络服务端口来测试,效果是一样的。不过有一点可以肯定,假如平时 Ping 你的主机服务器和接在同一交换机上的主机服务器都是正常的,突然都 Ping 不通了或者是严重丢包,那么假如可以排除网络故障因素的话则肯定是遭受了流量攻击,再一个流量攻击的典型现象是,一旦遭受流量攻击,会发现用远程终端连接网站服务器会失败。   相对于流量攻击而言, 资源耗尽攻击要容易判断一些, 假如平时 Ping 网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,而 Ping 还可以 Ping 通,则很可能遭受了资源耗尽攻击 ,此时若在服务器上用Nistat -na命令观察到有大量的SYN_RECEIVED、TIME_W AIT、FIN_W AIT_1 等状态存在,而EST BLISHED 很少,则可判定肯定是遭受了资源耗尽攻击。还有一种属于资源耗尽攻击的现象是,Ping 自己的网站主机 Ping 不通或者是丢包严重,而 Ping 与自己的主机在同一交换机上的服务器则正常,造成这种原因是网站主机遭受攻击后导致系统内核或某些应用程序 CPU 利用率达到 100%无法回应 Ping 命令,其实带宽还是有的,否则就 Ping 不通接在同一交换机上的主机了。

攻击攻击手段

  当前主要有三种流行的 DDOS:

1、SYN/ACK Flood 攻击:   这种攻击方法是经典最有效的 DDOS 方法, 可通杀各种系统的网络服务, 主要是通过向   受害主机发送大量伪造源 IP 和源端口的 SYN 或 ACK 包,导致主机的缓存资源被耗尽或忙   于发送回应包而造成拒绝服务, 由于源都是伪造的故追踪起来比较困难, 缺点是实施起来有   一定难度, 需要高带宽的僵尸主机支持。 少量的这种攻击会导致主机服务器无法访问, 但却   可以 Ping 的通, 在服务器上用 Netstat -na 命令会观察到存在大量的 SYN_RECEIVED 状态,   大量的这种攻击会导致 Ping 失败、TCP/IP 栈失效,并会出现系统凝固现象,即不响应键盘   和鼠标。普通防火墙大多无法抵御此种攻击。   2、TCP 全连接攻击:   这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过   滤 T earDrop、Land 等 DOS 攻击的能力,但对于正常的 TCP 连接是放过的,殊不知很多网   络服务程序(如:IIS、Apache 等 W eb 服务器)能接受的 TCP 连接数是有限的,一旦有大   量的 TCP 连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP 全连接攻   击就是通过许多僵尸主机不断地与受害服务器建立大量的 TCP 连接,直到服务器的内存等   资源被耗尽而被拖跨, 从而造成拒绝服务, 这种攻击的特点是可绕过一般防火墙的防护而达   到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的 IP 是暴露的,因此容易被   追踪。   3、刷 Script 脚本攻击:   这种攻击主要是针对存在 ASP、JSP、PHP、CGI 等脚本程序,并调用 MSSQLServer、   MySQLServer、Oracle 等数据库的网站系统而设计的,特征是和服务器建立正常的 TCP 连   接, 并不断的向脚本程序提交查询、 列表等大量耗费数据库资源的调用, 一般来说, 提交一   个 GET 或 POST 指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此   请求却可能要从上万条记录中去查出某个记录, 这种处理过程对资源的耗费是很大的, 常见   的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举   的, 因此攻击者只需通过 Proxy 代理向主机服务器大量递交查询指令, 只需数分钟就会把服   务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP 程序失效、PHP 连   接数据库失败、数据库主程序占用 CPU 偏高。这种攻击的特点是可以完全绕过普通的防火   墙防护, 轻松找一些 Proxy 代理就可实施攻击, 缺点是对付只有静态页面的网站效果会大打   折扣,并且有些 Proxy 会暴露攻击者的 IP 地址。   怎么抵御 DDOS   仅仅依靠某种系统或产品防住 DDOS 是不现实的, 可以肯定的是, 完全杜绝 DDOS   是不可能的,但通过适当的措施抵御 90%的 DDOS 攻击是可以做到的,基于攻击和防御都   有成本开销的缘故,若通过适当的办法增强了抵御 DDOS 的能力,也就意味着加大了攻击   者的攻击成本,那么绝大多数攻击者将无法继续下去而放弃,也就相当于成功的抵御了   DDOS 攻击。

攻击防御基础

总体来说,对DoS和DDoS的防范主要从下面几个方面考虑:



链接

Zhishi.me http://zhishi.me/baidubaike/resource/分布式拒绝服务
http://zhishi.me/hudongbaike/resource/分布式拒绝服务
http://zhishi.me/zhwiki/resource/分布式拒绝服务