分布式拒绝服务(DDoS:Distributed Denial of Service)***指借助于客户/服务器技术,将多个计算机联合起来作为***平台,对一个或多个目标发动DDoS***,从而成倍地提高拒绝服务***的威 力。通常,***者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动***。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。

  • 定义

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

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


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


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


wKioL1T_BhOzCJvFAAHK4_MHv8c199.jpg

  • ***方式


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

  1. 1.通过使网络过载来干扰甚至阻断正常的网络通讯;

  2. 2.通过向服务器提交大量请求,使服务器超负荷;

  3. 3.阻断某一用户访问服务器;

  4. 4.阻断某服务与特定系统或个人的通讯。



  • IP Spoofing(IP 欺骗)

IP欺骗***是一种***通过向服务端发送虚假的包以欺骗服务器的做法。具体说,就是将包中的源IP地址设置为不存在或不合法的值。服务器一旦接受到该包便会返回接受请求包,但实际上这个包永远返回不到来源处的计算机。这种做法使服务器必需开启自己的监听端口不断等待,也就浪费了系统各方面的资源。


  • LAND attack

这种***方式与SYN floods类似,不过在LAND attack***包中的原地址和目标地址都是***对象的IP。这种***会导致被***的机器死循环,最终耗尽资源而死机。


  • ICMP Floods

ICMPfloods是通过向未良好设置的路由器发送广播信息占用系统资源的做法


  • Application

与前面叙说的***方式不同,Application level floods主要是针对应用软件层的,也就是高于OSI的。它同样是以大量消耗系统资源为目的,通过向IIS这样的网络服务程序提出无节制的资源申请来迫害正常的网络服务。


  • ***现象

  1. 1.被***主机上有大量等待的TCP连接;

  2. 2.网络中充斥着大量的无用的数据包;

  3. 3.源地址为假 制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯;

  4. 4.利用受害主机提供的传输协议上的缺陷反复高速的发出特定的服务请求,使主机无法处理所有正常请求;

  5. 5.严重时会造成系统死机。


  • ***特点

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

  • ***特性

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

  • 分类

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


1.基于ARP

ARP是无连接的协议,当收到***者发送来的ARP应答时。它将接收ARP应答包中所提供的信息。更新ARP缓存。因此,含有错误源地址信息的ARP请求 和含有错误目标地址信息的ARP应答均会使上层应用忙于处理这种异常而无法响应外来请求,使得目标主机丧失网络通信能力。产生拒绝服务,如ARP重定向攻 击。



2.基于ICMP

***者向一个子网的广播地址发送多个ICMP Echo请求数据包。并将源地址伪装成想要***的目标主机的地址。这样,该子网上的所有主机均对此ICMP Echo请求包作出答复,向被***的目标主机发送数据包,使该主机受到***,导致网络阻塞。


3.基于IP

TCP/IP中的IP数据包在网络传递时,数据包可以分成更小的片段。到达目的地后再进行合并重装。在实现分段重新组装的进程中存在漏洞,缺乏必要的检查。利用IP报文分片后重组的重叠现象***服务器,进而引起服务器内核崩溃。如Teardrop是基于IP的***。


4.基于应用层

应用层包括SMTP,HTTP,DNS等各种应用协议。其中SMTP定义了如何在两个主机间传输邮件的过程,基于标准SMTP的邮件服务器,在客户端请求 发送邮件时,是不对其身份进行验证的。另外,许多邮件服务器都允许邮件中继。***者利用邮件服务器持续不断地向***目标发送垃圾邮件,大量侵占服务器资源


  • 流程

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

1.搜集资料

下列情况是***非常关心的情报:被***目标主机数目、地址情况 目标主机的配置、性能 目标的宽

对于DDoS***者来说,***互联网上的某个站点,有一个重点就是确定到底有多少台主机在支持这个站点,一个大的网站可能有很多台主机利用负载均衡技术提供同一个网站的www服务。

如果要进行DDoS***的话,应该***哪一个地址呢?使这台机器瘫痪,但其他的主机还是能向外提供www服务,所以想让别人访问不到网站的话,要所有这些IP地址的机器都瘫掉才行。在实际的应用中,一个IP地址往往还代表着数台机器:网站维护者使用了四层或七层交换机来做负载均衡,把对一个IP地址的访问以特定的算法分配到下属的每个主机上去。这时对于DDoS***者来说情况就更复杂了,他面对的任务可能是让几十台主机的服务都不正常。

所以说事先搜集情报对DDoS***者来说是非常重要的,这关系到使用多少台傀儡机才能达到效果的问题。简单地考虑一下,在相同的条件下,***同一站点的2台主机需要2台傀儡机的话,***5台主机可能就需要5台以上的傀儡机。有人说做***的傀儡机越多越好,不管你有多少台主机我都用尽量多的傀儡机来攻就是了,反正傀儡机超过了时候效果更好。

但在实际过程中,有很多***并不进行情报的搜集而直接进行DDoS的***,这时候***的盲目性就很大了,效果如何也要靠运气。其实做***也象网管员一样,是不能偷懒的。一件事做得好与坏,态度最重要,水平还在其次。

2.占领

***最感兴趣的是有下列情况的主机:网络状态好的主机 性能好的主机 安全管理水平差的主机

这一部分实际上是使用了另一大类的***手段:利用形***。这是和DDoS并列的***方式。简单地说,就是占领和控制被***的主机。取得最高的管理权限,或者至少得到一个有权限完成DDoS***任务的帐号。对于一个DDoS***者来说,准备好一定数量的傀儡机是一个必要的条件,下面说一下他是如何***并占领它们。

首先,***做的工作一般是扫描,随机地或者是有针对性地利用扫描器去发现互联网上那些有漏洞的机器,像程序的溢出漏洞、cgi、Unicode、ftp、数据库漏洞…(简直举不胜举啊),都是***希望看到的扫描结果。随后就是尝试***了,具体的手段就不在这里多说了,感兴趣的话网上有很多关于这些内容的文章。

总之***占领了一台傀儡机了!然后他做什么呢?除了上面说过留后门擦脚印这些基本工作之外,他会把DDoS***用的程序上载过去,一般是利用ftp。在***机上,会有一个DDoS的发包程序,***就是利用它来向受害目标发送恶意***包的

  • ***原理

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


  • ***手段

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的防范主要从下面几个方面考虑:

  1. 1.尽可能对系统加载最新补丁,并采取有效的合规性配置,降低漏洞利用风险;

  2. 2.采取合适的安全域划分,配置防火墙、***检测和防范系统,减缓***。

  3. 3.采用分布式组网、负载均衡、提升系统容量等可靠性措施,增强总体服务能力。

1.采用高性能的网络设备

首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、 口碑好的产品。 再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量***发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDOS ***是非常有效的。

2.尽量避免NAT的转换

无论是路由器还是硬件防护墙设备要尽量避免采用网络地址转换 NAT 的使用, 因为采用此技术会较大降低网络通信能力,其实原因很简单,因为 NAT 需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多 CPU 的时间,但有些时候必须使用 NAT,那就没有好办法了。

3.充足的网络带宽保证

网络带宽直接决定了能抗受***的能力, 假若仅仅有 10M 带宽的话, 无论采取什么措施都很难对抗当今的 SYNFlood ***, 至少要选择 100M 的共享带宽,最好的当然是挂在1000M 的主干上了。但需要注意的是,主机上的网卡是 1000M 的并不意味着它的网络带宽就是千兆的, 若把它接在 100M 的交换机上, 它的实际带宽不会超过 100M, 再就是接在 100M的带宽上也不等于就有了百兆的带宽, 因为网络服务商很可能会在交换机上限制实际带宽为10M,这点一定要搞清楚

4.升级主机服务硬件

在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒 10 万个 SYN ***包,服务器的配置至少应该为:P4 2.4G/DDR512M/SCSI-HD,起关键作用的主要是 CPU 和内存, 若有志强双 CPU 的话就用它吧, 内存一定要选择 DDR 的高速内存, 硬盘要尽量选择SCSI 的,别只贪 IDE 价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一定要选用 3COM 或 Intel 等名牌的,若是 Realtek 的还是用在自己的 PC 上吧。

5.把网站做成静态页面

大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗***能力,而且还给******带来不少麻烦,至少到为止关于 HTML 的溢出还没出现,新浪、搜狐、网易等门户网站主要都是静态页面, 若你非需要动态脚本调用, 那就把它弄到另外一台单独主机去,免的遭受***时连累主服务器, 当然, 适当放一些不做数据库调用脚本还是可以的, 此外,最好在需要调用数据库的脚本中拒绝使用代理的访问, 因为经验表明使用代理访问你网站的80%属于恶意行为。