1简介
分布式拒绝 服务攻击英文缩写即"Ddos",指以分散攻击源来黑进指定网站的黑客方式。 DdoS的攻击方式有很多种,最基本的 DoS攻击就是利用合理的 服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。 DdoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当攻击目标 CPU速度低、内存小或者网络带宽小等等各项指标不高的性能,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了 千兆级别的网络,这使得DoS攻击的困难程度加大了-目标对恶意攻击包的"消化能力"加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的 主机与 网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。
这时候分布式的拒绝 服务攻击手段(DDoS)就应运而生了。你理解了 DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,
用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的 傀儡机( 肉鸡)来发起进攻,以比从前更大的规模来进攻受害者。
高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时, 黑客占领攻击用的 傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过 路由器的跳数少,效果好。而电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的 傀儡机位置可以在分布在更大的范围,选择起来更灵活了。
2分布式网络回溯分析
《科来网络回溯分析系统》是一款集成大容量存储的高性能硬件平台,可以分布式部署在网络的关键节点,在实现对网络通讯进行数据包级的高性能实时分析的同时,还能够实时捕获并保存网络通讯流量,提供对长期的网络通讯数据进行快速数据挖掘和检索的能力,从而为用户提供其他网管或安全产品所不具备的价值。
3攻击方式
DDOS攻击示意图
DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。这种攻击方式可分为以下几种:
-
通过使网络过载来干扰甚至阻断正常的网络通讯;
-
通过向 服务器提交大量请求,使服务器超负荷;
-
阻断某一用户访问 服务器;
-
阻断某 服务与特定系统或个人的 通讯。
-
IPSpoofing
IP欺骗攻击是一种 黑客通过向 服务端发送虚假的包以欺骗 服务器的做法。具体说,就是将包中的源 IP地址设置为不存在或不合法的值。 服务器一旦接受到该包便会返回接受请求包,但实际上这个包永远返回不到来源处的计算机。这种做法使 服务器必需开启自己的监听端口不断等待,也就浪费了系统各方面的资源。
-
LANDattack
这种攻击方式与SYNfloods类似,不过在 LANDattack攻击包中的原地址和目标地址都是攻击对象的IP。这种攻击会导致被攻击的机器死循环,最终耗尽资源而 死机。
-
ICMPfloods
ICMPfloods是通过向未良好设置的 路由器发送广播信息占用系统资源的做法。
-
Application
与前面叙说的攻击方式不同,Applicationlevelfloods主要是针对应用软件层的,也就是高于OSI的。它同样是以大量消耗系统资源为目的,通过向IIS这样的网络 服务程序提出无节制的资源申请来迫害正常的网络服务。
4攻击现象
-
被攻击 主机上有大量等待的TCP连接;
-
网络中充斥着大量的无用的 数据包;
-
源地址为假制造高流量无用数据,造成 网络拥塞,使受害 主机无法正常和外界 通讯;
-
利用受害 主机提供的 传输协议上的缺陷反复高速的发出特定的 服务请求,使主机无法处理所有正常请求;
-
严重时会造成系统 死机。
5攻击特点
分布式拒绝服务攻击采取的攻击手段就是分布式的,在攻击的模式改变了传统的点对点的攻击模式,使攻击方式出现了没有规律的情况,而且在进行攻击的时候,通常使用的也是常见的协议和服务,这样只是从协议和服务的类型上是很难对攻击进行区分的。在进行攻击的时候,攻击数据包都是经过伪装的,在源IP地址上也是进行伪造的,这样就很难对攻击进行地址的确定,在查找方面也是很难的。这样就导致了分布式拒绝服务攻击在检验方法上是很难做到的。
6攻击特性
对分布式攻击进行必要的分析,就可以得到这种攻击的特性。分布式拒绝服务在进行攻击的时候,要对攻击目标的流量地址进行集中,然后在攻击的时候不会出现拥塞控制。在进行攻击的时候会选择使用随机的端口来进行攻击,会通过数千端口对攻击的目标发送大量的数据包,使用固定的端口进行攻击的时候,会向同一个端口发送大量的数据包。
7攻击分类
按照TCP/MP协议的层次可将DDOS攻击分为基于ARP的攻击、基于ICMP的攻击、基于IP的攻击、基于UDP的攻击、基于TCP的攻击和基于应用层的攻击。
基于ARP的攻击
ARP是无连接的协议,当收到攻击者发送来的ARP应答时。它将接收ARP应答包中所提供的信息。更新ARP缓存。因此,含有错误源地址信息的ARP请求和含有错误目标地址信息的ARP应答均会使上层应用忙于处理这种异常而无法响应外来请求,使得目标主机丧失网络通信能力。产生拒绝服务,如ARP重定向攻击。
基于ICMP的攻击
攻击者向一个子网的广播地址发送多个ICMPEcho请求数据包。并将源地址伪装成想要攻击的目标主机的地址。这样,该子网上的所有主机均对此ICMPEcho请求包作出答复,向被攻击的目标主机发送数据包,使该主机受到攻击,导致网络阻塞。
基于IP的攻击
TCP/IP中的IP数据包在网络传递时,数据包可以分成更小的片段。到达目的地后再进行合并重装。在实现分段重新组装的进程中存在漏洞,缺乏必要的检查。利用IP报文分片后重组的重叠现象攻击服务器,进而引起服务器内核崩溃。如Teardrop是基于IP的攻击。
基于应用层的攻击
应用层包括SMTP,HTTP,DNS等各种应用协议。其中SMTP定义了如何在两个主机间传输邮件的过程,基于标准SMTP的邮件服务器,在客户端请求发送邮件时,是不对其身份进行验证的。另外,许多邮件服务器都允许邮件中继。攻击者利用邮件服务器持续不断地向攻击目标发送垃圾邮件,大量侵占服务器资源。 [1]
8流程
DDoS并不象入侵一台主机那样简单。了解这些原理之后,你便会更加明白入侵者的意图,从此便掌握了预防的技巧。一般来说, 黑客进行DDoS攻击时会经过这样的步骤:
搜集资料
下列情况是 黑客非常关心的情报:
被攻击目标主机数目、地址情况目标主机的配置、性能目标的带宽。
对于DDoS攻击者来说,攻击 互联网上的某个站点,有一个重点就是确定到底有多少台 主机在支持这个站点,一个大的网站可能有很多台主机利用 负载均衡技术提供同一个网站的 www 服务。
如果要进行DDoS攻击的话,应该攻击哪一个地址呢?使这台机器瘫痪,但其他的 主机还是能向外提供 www 服务,所以想让别人访问不到网站的话,要所有这些 IP地址的机器都瘫掉才行。在实际的应用中,一个IP地址往往还代表着数台机器:网站维护者使用了四层或七层交换机来做 负载均衡,把对一个IP地址的访问以特定的算法分配到下属的每个 主机上去。这时对于DDoS攻击者来说情况就更复杂了,他面对的任务可能是让几十台 主机的 服务都不正常。
所以说事先搜集情报对DDoS攻击者来说是非常重要的,这关系到使用多少台 傀儡机才能达到效果的问题。简单地考虑一下,在相同的条件下,攻击同一站点的2台主机需要2台 傀儡机的话,攻击5台主机可能就需要5台以上的傀儡机。有人说做攻击的 傀儡机越多越好,不管你有多少台主机我都用尽量多的傀儡机来攻就是了,反正傀儡机超过了时候效果更好。
但在实际过程中,有很多 黑客并不进行情报的搜集而直接进行DDoS的攻击,这时候攻击的盲目性就很大了,效果如何也要靠运气。其实做黑客也象 网管员一样,是不能偷懒的。一件事做得好与坏,态度最重要,水平还在其次。
占领
黑客最感兴趣的是有下列情况的 主机:
网络
状态好的主机性能好的主机安全管理水平差的主机
这一部分实际上是使用了另一大类的攻击手段:利用形攻击。这是和DDoS并列的攻击方式。简单地说,就是占领和控制被攻击的主机。取得最高的管理权限,或者至少得到一个有权限完成DDoS攻击任务的帐号。对于一个DDoS攻击者来说,准备好一定数量的 傀儡机是一个必要的条件,下面说一下他是如何攻击并占领它们。
首先, 黑客做的工作一般是扫描,随机地或者是有针对性地利用扫描器去发现 互联网上那些有 漏洞的机器,像程序的 溢出漏洞、 cgi、 Unicode、 ftp、数据库漏洞…(简直举不胜举啊),都是黑客希望看到的扫描结果。随后就是尝试入侵了,具体的手段就不在这里多说了,感兴趣的话网上有很多关于这些内容的文章。
总之 黑客占领了一台 傀儡机了!然后他做什么呢?除了上面说过留后门擦脚印这些基本工作之外,他会把DDoS攻击用的程序上载过去,一般是利用 ftp。在攻击机上,会有一个DDoS的发包程序, 黑客就是利用它来向受害目标发送恶意攻击包的。
实际攻击
经过前2个阶段的精心准备之后, 黑客就开始瞄准目标准备发射了。前面的准备做得好的话,实际攻击过程反而是比较简单的。就象图示里的那样, 黑客登录到做为控制台的 傀儡机,向所有的攻击机发出命令:"预备~,瞄准~,开火!"。这时候埋伏在攻击机中的DDoS攻击程序就会响应控制台的命令,一起向受害主机以高速度发送大量的 数据包,导致它 死机或是无法响应正常的请求。 黑客一般会以远远超出受害方处理能力的速度进行攻击,他们不会" 怜香惜玉"。
老道的攻击者一边攻击,还会用各种手段来监视攻击的效果,在需要的时候进行一些调整。简单些就是开个窗口不断地 ping目标主机,在能接到回应的时候就再加大一些流量或是再命令更多的 傀儡机来加入攻击。
9关于防范
到目前为止,进行DDoS攻击的防御还是
比较困难的。首先,这种攻击的特点是它利
用了 TCP/IP协议的漏洞,除非你不用TCP/IP,才有可能完全抵御住DDoS攻击。一位资深的安全专家给了个形象的比喻:DDoS就好象有1,000个人同时给你家里打电话,这时候你的朋友还打得进来吗?
南京大学黄皓教授做防范专题演讲
不过即使它难于防范,也不是说我们就应该逆来顺受,实际上防止DDoS并不是绝对不可行的事情。
主机设置
所有的主机平台都有抵御DoS的设置,总结一下,基本的有几种:
关闭不必要的 服务
限制同时打开的Syn半连接数目
缩短Syn半连接的timeout时间
及时更新 系统补丁
网络设置
网络设备可以从 防火墙与 路由器上考虑。这两个设备是到外界的接口设备,在进行防DDoS设置的同时,要注意一下这是以多大的效率牺牲为代价的,对你来说是否值得。
1. 防火墙
禁止对主机的非开放 服务的访问限制同时打开的SYN最大连接数限制特定IP地址的访问启用 防火墙的防DDoS的属性严格限制对外开放的服务器的向外访问第五项主要是防止自己的 服务器被当做工具去害人。
2. 路由器
以Cisco 路由器为例
CiscoExpressForwarding(CEF)使用unicastreverse-path 访问控制列表(ACL)过滤设置SYN 数据包流量速率升级版本过低的ISO为 路由器建立logserver
10防御
一.启用SYN攻击保护
启用SYN攻击保护的命名值位于此注册表项的下面:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。
值名称:SynAttackProtect
建议值:2
有效值:0�C2
说明:使TCP调整SYN-ACK的重传。配置此值后,在遇到SYN攻击时,对连接超时的响应将更快速。在超过TcpMaxHalfOpen或TcpMaxHalfOpenRetried的值后,将触发SYN攻击保护。
设置SYN保护阈值
下列值确定触发SYN保护的阈值。这一部分中的所有注册表项和值都位于注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services的下面。这些注册表项和值是:
下列值确定触发SYN保护的阈值。这一部分中的所有注册表项和值都位于注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services的下面。这些注册表项和值是:
值名称:TcpMaxPortsExhausted
建议值:5
有效值:0�C65535
说明:指定触发SYN洪水攻击保护所必须超过的TCP连接请求数的阈值。
值名称:TcpMaxHalfOpen
建议的数值数据:500
有效值:100�C65535
说明:在启用SynAttackProtect后,该值指定处于SYN_RCVD状态的TCP连接数的阈值。在超过SynAttackProtect后,将触发SYN洪水攻击保护。
值名称:TcpMaxHalfOpenRetried
建议的数值数据:400
有效值:80�C65535
说明:在启用SynAttackProtect后,该值指定处于至少已发送一次重传的SYN_RCVD状态中的TCP连接数的阈值。在超过SynAttackProtect后,将触发SYN洪水攻击保护。
建议值:5
有效值:0�C65535
说明:指定触发SYN洪水攻击保护所必须超过的TCP连接请求数的阈值。
值名称:TcpMaxHalfOpen
建议的数值数据:500
有效值:100�C65535
说明:在启用SynAttackProtect后,该值指定处于SYN_RCVD状态的TCP连接数的阈值。在超过SynAttackProtect后,将触发SYN洪水攻击保护。
值名称:TcpMaxHalfOpenRetried
建议的数值数据:400
有效值:80�C65535
说明:在启用SynAttackProtect后,该值指定处于至少已发送一次重传的SYN_RCVD状态中的TCP连接数的阈值。在超过SynAttackProtect后,将触发SYN洪水攻击保护。
设置其他保护
这一部分中的所有注册表项和值都位于注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services的下面。这些注册表项和值是:
这一部分中的所有注册表项和值都位于注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services的下面。这些注册表项和值是:
值名称:TcpMaxConnectResponseRetransmissions
建议的数值数据:2
有效值:0�C255
说明:控制在响应一次SYN请求之后、在取消重传尝试之前SYN-ACK的重传次数。
值名称:TcpMaxDataRetransmissions
建议的数值数据:2
有效值:0�C65535
说明:指定在终止连接之前TCP重传一个数据段(不是连接请求段)的次数。
值名称:EnablePMTUDiscovery
建议的数值数据:0
有效值:0,1
说明:将该值设置为1(默认值)可强制TCP查找在通向远程主机的路径上的最大传输单元或最大数据包大小。攻击者可能将数据包强制分段,这会使堆栈不堪重负。对于不是来自本地子网的主机的连接,将该值指定为0可将最大传输单元强制设为576字节。
值名称:KeepAliveTime
建议的数值数据:300000
有效值:80�C4294967295
说明:指定TCP尝试通过发送持续存活的数据包来验证空闲连接是否仍然未被触动的频率。
建议的数值数据:2
有效值:0�C255
说明:控制在响应一次SYN请求之后、在取消重传尝试之前SYN-ACK的重传次数。
值名称:TcpMaxDataRetransmissions
建议的数值数据:2
有效值:0�C65535
说明:指定在终止连接之前TCP重传一个数据段(不是连接请求段)的次数。
值名称:EnablePMTUDiscovery
建议的数值数据:0
有效值:0,1
说明:将该值设置为1(默认值)可强制TCP查找在通向远程主机的路径上的最大传输单元或最大数据包大小。攻击者可能将数据包强制分段,这会使堆栈不堪重负。对于不是来自本地子网的主机的连接,将该值指定为0可将最大传输单元强制设为576字节。
值名称:KeepAliveTime
建议的数值数据:300000
有效值:80�C4294967295
说明:指定TCP尝试通过发送持续存活的数据包来验证空闲连接是否仍然未被触动的频率。
值名称:NoNameReleaseOnDemand
建议的数值数据:1
有效值:0,1
说明:指定计算机在收到名称发布请求时是否发布其NetBIOS名称。
建议的数值数据:1
有效值:0,1
说明:指定计算机在收到名称发布请求时是否发布其NetBIOS名称。
使用表1中汇总的值可获得最大程度的保护。
表1:建议值
值名称
|
值(REG_DWORD)
|
SynAttackProtect
|
2
|
TcpMaxPortsExhausted
|
1
|
TcpMaxHalfOpen
|
500
|
TcpMaxHalfOpenRetried
|
400
|
TcpMaxConnectResponseRetransmissions
|
2
|
TcpMaxDataRetransmissions
|
2
|
EnablePMTUDiscovery
|
0
|
KeepAliveTime
|
300000(5分钟)
|
NoNameReleaseOnDemand
|
1
|
二.抵御ICMP攻击
这一部分的命名值都位于注册表项HKLM\System\CurrentControlSet\Services\AFD\Parameters的下面
值:EnableICMPRedirect
建议的数值数据:0
有效值:0(禁用),1(启用)
说明:通过将此注册表值修改为0,能够在收到ICMP重定向数据包时禁止创建高成本的主机路由。
建议的数值数据:0
有效值:0(禁用),1(启用)
说明:通过将此注册表值修改为0,能够在收到ICMP重定向数据包时禁止创建高成本的主机路由。
使用表2中汇总的值可以获得最大程度的保护:
表2:建议值
值名称
|
值(REG_DWORD)
|
EnableICMPRedirect
|
0
|
三.抵御SNMP攻击
这一部分的命名值位于注册表项HKLM\System\CurrentControlSet\Services\Tcpip\Parameters的下面。
值:EnableDeadGWDetect
建议的数值数据:0
有效值:0(禁用),1(启用)
说明:禁止攻击者强制切换到备用网关
建议的数值数据:0
有效值:0(禁用),1(启用)
说明:禁止攻击者强制切换到备用网关
使用表3中汇总的值可以获得最大程度的保护:
表3:建议值
值名称
|
值(REG_DWORD)
|
EnableDeadGWDetect
|
0
|
四.AFD.SYS保护
下面的注册表项指定内核模式驱动程序Afd.sys的参数。Afd.sys用于支持WindowsSockets应用程序。这一部分的所有注册表项和值都位于注册表项HKLM\System\CurrentControlSet\Services\AFD\Parameters的下面。这些注册表项和值是:
值EnableDynamicBacklog
建议的数值数据:1
有效值:0(禁用),1(启用)
说明:指定AFD.SYS功能,以有效处理大量的SYN_RCVD连接。有关详细信息,请参阅“InternetServerUnavailableBecauseofMaliciousSYNAttacks”,
值名称:MinimumDynamicBacklog
建议的数值数据:20
有效值:0�C4294967295
说明:指定在侦听的终结点上所允许的最小空闲连接数。如果空闲连接的数目低于该值,线程将被排队,以创建更多的空闲连接
值名称:MaximumDynamicBacklog
建议的数值数据:20000
有效值:0�C4294967295
说明:指定空闲连接以及处于SYN_RCVD状态的连接的最大总数。
值名称:DynamicBacklogGrowthDelta
建议的数值数据:10
有效值:0�C4294967295
默认情况下是否出现:否
说明:指定在需要增加连接时将要创建的空闲连接数。
建议的数值数据:1
有效值:0(禁用),1(启用)
说明:指定AFD.SYS功能,以有效处理大量的SYN_RCVD连接。有关详细信息,请参阅“InternetServerUnavailableBecauseofMaliciousSYNAttacks”,
值名称:MinimumDynamicBacklog
建议的数值数据:20
有效值:0�C4294967295
说明:指定在侦听的终结点上所允许的最小空闲连接数。如果空闲连接的数目低于该值,线程将被排队,以创建更多的空闲连接
值名称:MaximumDynamicBacklog
建议的数值数据:20000
有效值:0�C4294967295
说明:指定空闲连接以及处于SYN_RCVD状态的连接的最大总数。
值名称:DynamicBacklogGrowthDelta
建议的数值数据:10
有效值:0�C4294967295
默认情况下是否出现:否
说明:指定在需要增加连接时将要创建的空闲连接数。
使用表4中汇总的
值可以获得最大程度的保护。
表4:建议值
值名称
|
值(REG_DWORD)
|
EnableDynamicBacklog
|
1
|
MinimumDynamicBacklog
|
20
|
MaximumDynamicBacklog
|
20000
|
DynamicBacklogGrowthDelta
|
10
|
其他保护
这一部分的所有注册表项和值都位于注册表项HKLM\System\CurrentControlSet\Services\Tcpip\Parameters的下面。
保护屏蔽的网络细节
网络地址转换(NAT)用于将网络与传入连接屏蔽开来。攻击者可能规避此屏蔽,以便使用IP源路由来确定网络拓扑。
网络地址转换(NAT)用于将网络与传入连接屏蔽开来。攻击者可能规避此屏蔽,以便使用IP源路由来确定网络拓扑。
值:DisableIPSourceRouting
建议的数值数据:1
有效值:0(转发所有数据包),1(不转发源路由数据包),2(丢弃所有传入的源路由数据包)。
说明:禁用IP源路由,后者允许发送者确认数据报在网络中应采用的路由。
建议的数值数据:1
有效值:0(转发所有数据包),1(不转发源路由数据包),2(丢弃所有传入的源路由数据包)。
说明:禁用IP源路由,后者允许发送者确认数据报在网络中应采用的路由。
避免接受数据包片段
处理数据包片段可以是高成本的。虽然拒绝服务很少来自外围网络内,但此设置能防止处理数据包片段。
处理数据包片段可以是高成本的。虽然拒绝服务很少来自外围网络内,但此设置能防止处理数据包片段。
值:EnableFragmentChecking
建议的数值数据:1
有效值:0(禁用),1(启用)
说明:禁止IP堆栈接受数据包片段。
建议的数值数据:1
有效值:0(禁用),1(启用)
说明:禁止IP堆栈接受数据包片段。
切勿转发去往多台主机的数据包
多播数据包可能被多台主机响应,从而导致响应淹没网络。
多播数据包可能被多台主机响应,从而导致响应淹没网络。
值:EnableMulticastForwarding
建议的数值数据:0
有效范围:0(false),1(true)
说明:路由服务使用此参数来控制是否转发IP多播。此参数由路由和远程访问服务创建。
建议的数值数据:0
有效范围:0(false),1(true)
说明:路由服务使用此参数来控制是否转发IP多播。此参数由路由和远程访问服务创建。
只有防火墙可以在网络间转发数据包
多主机服务器切勿在它所连接的网络之间转发数据包。明显的例外是防火墙。
多主机服务器切勿在它所连接的网络之间转发数据包。明显的例外是防火墙。
值:IPEnableRouter
建议的数值数据:0
有效范围:0(false),1(true)
说明:将此参数设置为1(true)会使系统在它所连接的网络之间路由IP数据包。
建议的数值数据:0
有效范围:0(false),1(true)
说明:将此参数设置为1(true)会使系统在它所连接的网络之间路由IP数据包。
屏蔽网络拓扑结构细节
可以使用ICMP数据包请求主机的子网掩码。只泄漏此信息是无害的;但是,可以利用多台主机的响应来了解内部网络的情况。
可以使用ICMP数据包请求主机的子网掩码。只泄漏此信息是无害的;但是,可以利用多台主机的响应来了解内部网络的情况。
值:EnableAddrMaskReply
建议的数值数据:0
有效范围:0(false),1(true)
说明:此参数控制计算机是否响应ICMP地址屏蔽请求。
建议的数值数据:0
有效范围:0(false),1(true)
说明:此参数控制计算机是否响应ICMP地址屏蔽请求。
使用表5中汇总的值可以获得最大程度的保护。
表5:建议值
值名称
|
值(REG_DWORD)
|
DisableIPSourceRouting
|
1
|
EnableFragmentChecking
|
1
|
EnableMulticastForwarding
|
0
|
IPEnableRouter
|
0
|
EnableAddrMaskReply
|
0
|
缺陷
在测试这些值的变化时,请参照在产品中所期望的网络流量进行测试。这些设置会修改被认为正常并偏离了测试默认值的项目的阈值。一些阈值可能由于范围太小而无法在客户端的连接速度剧烈变化时可靠地支持客户端。
11攻击原理
拒绝服务攻击即攻击者想办法让目标机器停止提供服务或资源访问。这些资源包括磁盘空
间、内存、进程甚至网络带宽,从而阻止正常用户的访问。其实对网络带宽进行的消耗性攻
击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死
机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为这
是由于网络协议本身的安全缺陷造成的,从而拒绝服务攻击也成为了攻击者的终极手法。攻
击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接
收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。
间、内存、进程甚至网络带宽,从而阻止正常用户的访问。其实对网络带宽进行的消耗性攻
击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死
机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为这
是由于网络协议本身的安全缺陷造成的,从而拒绝服务攻击也成为了攻击者的终极手法。攻
击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接
收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。
DDOS(分布式拒绝服务):凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击。也就是说拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的。
虽然同样是拒绝服务攻击,但是DDOS和DOS还是有所不同,DDOS的攻击策略侧重于通过很多“僵尸主机”(被攻击者入侵过或可间接利用的主机)向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源耗尽而导致拒绝服务,分布式拒绝服务攻击一旦被实施,攻击网络包就会犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源,因此,拒绝服务攻击又被称之为“洪水式攻击”,常见的DDOS攻击手段有SYNFlood、ACKFlood、UDPFlood、ICMPFlood、TCPFlood、ConnectionsFlood、ScriptFlood、ProxyFlood等;而DOS则侧重于通过对主机特定漏洞的利用攻击导致网络栈失效、 系统崩溃、主机死机而无法提供正常的网络服务功能,从而造成拒绝服务,常见的DOS攻击手段有TearDrop、Land、Jolt、IGMPNuker、Boink、Smurf、Bonk、OOB等。就这两种拒绝服务攻击而言,危害较大的主要是DDOS攻击,原因是很难防范,至于DOS攻击,通过给主机服务器打补丁或安装防火墙软件就可以很好地防范DDOS的表现形式主要有两种,一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机;另一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完,造成的无法提供网络服务。
如何判断网站是否遭受了流量攻击呢?可通过Ping命令来测试,若发现Ping超时或丢包严重(假定平时是正常的),则可能遭受了流量攻击,此时若发现和你的主机接在同一交换机上的服务器也访问不了,基本可以确定是遭受了流量攻击。当然,这样测试的前提是你到服务器主机之间的ICMP协议没有被路由器和防火墙等设备屏蔽,否则可采取Telnet主机服务器的网络服务端口来测试,效果是一样的。不过有一点可以肯定,假如平时Ping你的主机服务器和接在同一交换机上的主机服务器都是正常的,突然都Ping不通了或者是严重丢包,那么假如可以排除网络故障因素的话则肯定是遭受了流量攻击,再一个流量攻击的典型现象是,一旦遭受流量攻击,会发现用远程终端连接网站服务器会失败。
相对于流量攻击而言,资源耗尽攻击要容易判断一些,假如平时Ping网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,而Ping还可以Ping通,则很可能遭受了资源耗尽攻击,此时若在服务器上用Nistat-na命令观察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等状态存在,而ESTBLISHED很少,则可判定肯定是遭受了资源耗尽攻击。还有一种属于资源耗尽攻击的现象是,Ping自己的网站主机Ping不通或者是丢包严重,而Ping与自己的主机在同一交换机上的服务器则正常,造成这种原因是网站主机遭受攻击后导致系统内核或某些应用程序CPU利用率达到100%无法回应Ping命令,其实带宽还是有的,否则就Ping不通接在同一交换机上的主机了。
12攻击手段
当前主要有三种流行的DDOS:
1、SYN/ACKFlood攻击:
这种攻击方法是经典最有效的DDOS方法,可通杀各种系统的网络服务,主要是通过向
受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙
于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有
一定难度,需要高带宽的僵尸主机支持。少量的这种攻击会导致主机服务器无法访问,但却
可以Ping的通,在服务器上用Netstat-na命令会观察到存在大量的SYN_RECEIVED状态,
大量的这种攻击会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘
和鼠标。普通防火墙大多无法抵御此种攻击。
2、TCP全连接攻击:
这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过
滤TearDrop、Land等DOS攻击的能力,但对于正常的TCP连接是放过的,殊不知很多网
络服务程序(如:IIS、Apache等Web服务器)能接受的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攻击。
这种攻击方法是经典最有效的DDOS方法,可通杀各种系统的网络服务,主要是通过向
受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙
于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有
一定难度,需要高带宽的僵尸主机支持。少量的这种攻击会导致主机服务器无法访问,但却
可以Ping的通,在服务器上用Netstat-na命令会观察到存在大量的SYN_RECEIVED状态,
大量的这种攻击会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘
和鼠标。普通防火墙大多无法抵御此种攻击。
2、TCP全连接攻击:
这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过
滤TearDrop、Land等DOS攻击的能力,但对于正常的TCP连接是放过的,殊不知很多网
络服务程序(如:IIS、Apache等Web服务器)能接受的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攻击。
13防御基础
1、采用高性能的网络设备引
首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时
候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就
更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的
DDOS攻击是非常有效的。
候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就
更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的
DDOS攻击是非常有效的。
2、尽量避免NAT的使用
无论是路由器还是硬件防护墙设备要尽量避免采用网络地址转换NAT的使用,因为采用
此技术会较大降低网络通信能力,其实原因很简单,因为NAT需要对地址来回转换,转换
过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间,但有些时候必须使
用NAT,那就没有好办法了。
此技术会较大降低网络通信能力,其实原因很简单,因为NAT需要对地址来回转换,转换
过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间,但有些时候必须使
用NAT,那就没有好办法了。
3、充足的网络带宽保证
网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施
都很难对抗当今的SYNFlood攻击,至少要选择100M的共享带宽,最好的当然是挂在
1000M的主干上了。但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽
就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M
的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为
10M,这点一定要搞清楚。
都很难对抗当今的SYNFlood攻击,至少要选择100M的共享带宽,最好的当然是挂在
1000M的主干上了。但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽
就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M
的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为
10M,这点一定要搞清楚。
4、升级主机服务器硬件
在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击
包,服务器的配置至少应该为:P42.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和
内存,若有志强双CPU的话就用它吧,内存一定要选择DDR的高速内存,硬盘要尽量选择
SCSI的,别只贪IDE价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一
定要选用3COM或Intel等名牌的,若是Realtek的还是用在自己的PC上吧。
包,服务器的配置至少应该为:P42.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和
内存,若有志强双CPU的话就用它吧,内存一定要选择DDR的高速内存,硬盘要尽量选择
SCSI的,别只贪IDE价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一
定要选用3COM或Intel等名牌的,若是Realtek的还是用在自己的PC上吧。
5、把网站做成静态页面
大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑
客入侵带来不少麻烦,至少到为止关于HTML的溢出还没出现,新浪、搜狐、网易等
门户网站主要都是静态页面,若你非需要动态脚本调用,那就把它弄到另外一台单独主机去,
免的遭受攻击时连累主服务器,当然,适当放一些不做数据库调用脚本还是可以的,此外,
最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问你网站的
80%属于恶意行为。
客入侵带来不少麻烦,至少到为止关于HTML的溢出还没出现,新浪、搜狐、网易等
门户网站主要都是静态页面,若你非需要动态脚本调用,那就把它弄到另外一台单独主机去,
免的遭受攻击时连累主服务器,当然,适当放一些不做数据库调用脚本还是可以的,此外,
最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问你网站的
80%属于恶意行为。