阅读:4198回复:3
DDOS介绍及防御专题图片:d_dos_01.gif DDoS全名是Distributed Denial of service(分布式拒绝服务攻击),很多DOS攻击源一起攻击某台服务器就组成了DDoS攻击。DDoS最早可追述到1996年最初,在中国2002年开始频繁出现,2003年已经初具规模。近几年由于宽带的普及,很多网站开始盈利,其中很多非法网站利润巨大,造成同行之间互相攻击,还有一部分人利用网络攻击来敲诈钱财。同时windows平台的漏洞大量的被公布,流氓软件、病毒、木马大量充斥着网络,有些技术的人可以很容易非法入侵控制大量的个人计算机来发起DDoS攻击,从中谋利。攻击已经成为互联网上的一种最直接的竞争方式,而且收入非常高,利益的驱使下,攻击已经演变成非常完善的产业链。通过在大流量网站的网页里注入病毒木马,木马可以通过windows平台的漏洞感染浏览网站的人,一旦中了木马,这台计算机就会被后台操作的人控制,这台计算机也就成了所谓的肉鸡,每天都有人专门收集肉鸡然后以几毛到几块的一只的价格出售,因为利益需要攻击的人就会购买,然后遥控这些肉鸡攻击服务器。 图片:d_dos_02.gif DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使服务器无法处理合法用户的指令。 DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当被攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高时它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了,目标对恶意攻击包的“消化能力”加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。 这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。你理解了DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台攻击不再能起作用的话,那么用10台攻击机同时攻击呢?100台呢?DDoS就是利用更多的傀儡机来发起进攻,以更大的规模来进攻受害者。 高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了。 DDoS攻击时的现象 被攻击主机上有大量等待的TCP连接;网络中充斥着大量的无用的数据包,源地址为假、制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯;利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求;严重时会造成系统死机。 图片:d_dos_03.gif 一般来说,黑客进行DDoS攻击时会经过这样的步骤: 一、搜集了解目标的情况 下列情况是黑客非常关心的情报:被攻击目标主机数目、地址情况、目标主机的配置、性能、目标的带宽。 对于DDoS攻击者来说,攻击互联网上的某个站点,如http://www.abc.com,有一个重点就是确定到底有多少台主机在支持这个站点,一个大的网站可能有很多台主机利用负载均衡技术提供同一个网站的www服务。以abc为例,一般会有下列地址都是提供http://www.abc.com服务的:66.164.103.103 66.164.103.104 66.164.103.105。 如果要进行DDoS攻击的话,应该攻击哪一个地址呢?使66.164.103.103这台机器瘫掉,但其他的主机还是能向外提供www服务,所以想让别人访问不到http://www.abc.com的话,要所有这些IP地址的机器都瘫掉才行。在实际的应用中,一个IP地址往往还代表着数台机器:网站维护者使用了四层或七层交换机来做负载均衡,把对一个IP地址的访问以特定的算法分配到下属的每个主机上去。这时对于DDoS攻击者来说情况就更复杂了,他面对的任务可能是让几十台主机的服务都不正常。所以说事先搜集情报对DDoS攻击者来说是非常重要的,这关系到使用多少台傀儡机才能达到效果的问题。 二、占领傀儡机 黑客最感兴趣的是有下列情况的主机:链路状态好的主机、性能好的主机、安全管理水平差的主机 这一部分实际上是使用了另一大类的攻击手段:利用形攻击。这是和DDoS并列的攻击方式。简单地说,就是占领和控制被攻击的主机。取得最高的管理权限,或者至少得到一个有权限完成DDoS攻击任务的帐号。对于一个DDoS攻击者来说,准备好一定数量的傀儡机是一个必要的条件,黑客首先做的工作一般是扫描,随机地或者针对性地利用扫描器去发现互联网上那些有漏洞的机器,像程序的溢出漏洞、cgi、Unicode、ftp、数据库漏洞,都是黑客希望看到的扫描结果。随后就是尝试入侵了,他会把DDoS攻击用的程序上载过去,一般是利用ftp。在攻击机上,会有一个DDoS的发包程序,黑客就是利用它来向受害目标发送恶意攻击包的。 三、实际攻击 经过前两个阶段的精心准备之后,黑客就开始瞄准目标准备发射了。前面的准备做得好的话,实际攻击过程反而是比较简单的。就象图示里的那样,黑客登录到做为控制台的傀儡机,向所有的攻击机发出命令。这时候埋伏在攻击机中的DDoS攻击程序就会响应控制台的命令,一起向受害主机以高速度发送大量的数据包,导致它死机或是无法响应正常的请求。黑客一般会以远远超出受害方处理能力的速度进行攻击,他们不会“怜香惜玉”。 老道的攻击者一边攻击,还会用各种手段来监视攻击的效果,在需要的时候进行一些调整。简单些就是开个窗口不断地ping目标主机,在能接到回应的时候就再加大一些流量或是再命令更多的傀儡机来加入攻击。 主要DDoS攻击 1、SYN变种攻击 发送伪造源IP的SYN数据包,但是数据包不是64字节而是上千字节;发送伪造源IP的TCP数据包,TCP头的TCP Flags部分是混乱的,可能是syn、ack、syn+ack、syn+rst等。这种攻击会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。 2、针对用UDP协议的攻击 很多聊天室,视频音频软件,都是通过UDP数据包传输的,攻击者针对分析要攻击的网络软件协议,发送和正常数据一样的数据包,这种攻击非常难防护,一般防护墙通过拦截攻击数据包的特征码防护,但是这样会造成正常的数据包也会被拦截。 3、针对WEB Server的多连接攻击 通过控制大量肉鸡同时连接访问网站,造成网站无法处理瘫痪,这种攻击和正常访问网站是一样的,只是瞬间访问量增加几十倍甚至上百倍,有些防火墙可以通过限制每个连接过来的IP连接数来防护,但是这样会造成正常用户稍微多打开几次网站也会被封。 4、针对WEB Server的变种攻击 通过控制大量肉鸡同时连接网站端口,但是不发送GET请求而是乱七八糟的字符,大部分防火墙分析攻击数据包前三个字节是GET字符然后来进行http协议的分析,这种攻击不发送GET请求就可以绕过防火墙到达服务器,一般服务器都是共享带宽的,带宽不会超过10M所以大量的肉鸡攻击数据包就会把这台服务器的共享带宽堵塞造成服务器瘫痪,这种攻击也非常难防护,因为如果只简单的拦截客户端发送过来没有GET字符的数据包,会错误的封锁很多正常的数据包造成正常用户无法访问,后面给大家介绍防火墙的解决方案。 5、针对游戏服务器的攻击 因为游戏服务器非常多,这里介绍最早也是影响最大的传奇游戏,传奇游戏分为登陆注册端口7000,人物选择端口7100,以及游戏运行端口7200,7300,7400等,因为游戏自己的协议设计的非常复杂,所以攻击的种类也花样百出,而且还在不断的发现新的攻击种类,这里介绍目前最普遍的假人攻击,假人攻击是通过肉鸡模拟游戏客户端进行自动注册、登陆、建立人物、进入游戏活动从数据协议层面模拟正常的游戏玩家,很难从游戏数据包来分析出哪些是攻击哪些是正常玩家。 图片:d_dos_04.gif SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。TCP协议建立连接的时候需要双方相互确认信息来防止连接被伪造和精确控制整个数据传输过程数据完整有效。所以TCP协议采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送包到SYN服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN同时自己也发送一个SYN包即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 SYN攻击利用TCP协议三次握手的原理,大量发送伪造源IP的SYN包也就是伪造第一次握手数据包,服务器每接收到一个SYN包就会为这个连接信息分配核心内存并放入半连接队列,如果短时间内接收到的SYN太多,半连接队列就会溢出,操作系统会把这个连接信息丢弃造成不能连接,当攻击的SYN包超过半连接队列的最大值时,正常的客户发送SYN数据包请求连接就会被服务器丢弃,每种操作系统半连接队列大小不一样所以抵御SYN攻击的能力也不一样。那么能不能把半连接队列增加到足够大来保证不会溢出呢,答案是不能,每种操作系统都有方法来调整TCP模块的半连接队列最大数,例如Win2000操作系统在注册表HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里TcpMaxHalfOpen,TcpMaxHalfOpenRetried,Linux操作系统用变量tcp_max_syn_backlog来定义半连接队列的最大数。但是每建立一个半连接资源就会耗费系统的核心内存,操作系统的核心内存是专门提供给系统内核使用的内存不能进行虚拟内存转换是非常紧缺的资源windows2000系统当物理内存是4G的时候核心内存只有不到300M,系统所有核心模块都要使用核心内存所以能给半连接队列用的核心内存非常少。Windows 2003默认安装情况下,WEB SERVER的80端口每秒钟接收5000个SYN数据包一分钟后网站就打不开了。标准SYN数据包64字节5000个等于5000*64*8(换算成bit)/1024=2500K也就是2.5M带宽,如此小的带宽就可以让服务器的端口瘫痪,由于攻击包的源IP是伪造的很难追查到攻击源,所以这种攻击非常多。 图片:d_dos_05.gif 从拒绝服务攻击诞生到现在已经有了很多的发展,从最初的简单DoS到现在的DDoS。那么什么是Dos和DDoS呢?DoS是一种利用单台计算机的攻击方式。而DDoS(Distributed Denial of Service,分布式拒绝服务)是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,主要瞄准比较大的站点,比如一些商业公司、搜索引擎和政府部门的站点。DDoS攻击是利用一批受控制的机器向一台机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。如果说以前网络管理员对抗DoS可以采取过滤IP地址方法的话,那么面对当前DDoS众多伪造出来的地址则显得没有办法。所以说防范DDoS攻击变得更加困难,如何采取措施有效的应对呢? 一、预防为主保证安全 (1)定期扫描 要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。骨干节点的计算机因为具有较高的带宽,是黑客利用的最佳位置,因此对这些主机本身加强主机安全是非常重要的。而且连接到网络主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。 (2)在骨干节点配置防火墙 防火墙本身能抵御DDoS攻击和其他一些攻击。在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范攻击优秀的系统。 (3)用足够的机器承受黑客攻击 这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源给黑客攻击,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支招了。不过此方法需要投入的资金比较多,平时大多数设备处于空闲状态,和目前中小企业网络实际运行情况不相符。 (4)充分利用网络设备保护网络资源 所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。当网络被攻击时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。特别是一个公司使用了负载均衡设备,这样当一台路由器被攻击死机时,另一台将马上工作。从而最大程度的削减了DDoS的攻击。 (5)过滤不必要的服务和端口 过滤不必要的服务和端口,即在路由器上过滤假IP,只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。 (6)检查访问者的来源 使用Unicast Reverse Path Forwarding等通过反向路由器查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。许多黑客攻击常采用假IP地址方式迷惑用户,很难查出它来自何处。因此,利用Unicast Reverse Path Forwarding可减少假IP地址的出现,有助于提高网络安全性。 (7)过滤所有RFC1918IP地址 RFC1918IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。此方法并不是过滤内部员工的访问,而是将攻击时伪造的大量虚假内部IP过滤,这样也可以减轻DDoS的攻击。 用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有黑客入侵。早期通过限制SYN/ICMP流量是最好的防范DOS的方法,虽然目前该方法对于DDoS效果不太明显了,不过仍然能够起到一定的作用。 二、寻找机会应对攻击 如果用户正在遭受攻击,他所能做的抵御工作将是非常有限的。因为在原本没有准备好的情况下有大流量的灾难性攻击冲向用户,很可能在用户还没回过神之际,网络已经瘫痪。但是,用户还是可以抓住机会寻求一线希望的。 (1)检查攻击来源,通常黑客会通过很多假IP地址发起攻击,此时,用户若能够分辨出哪些是真IP哪些是假IP地址,然后了解这些IP来自哪些网段,再找网网管理员将这些机器关闭,从而在第一时间消除攻击。如果发现这些IP地址是来自外面的而不是公司内部的IP的话,可以采取临时过滤的方法,将这些IP地址在服务器或路由器上过滤掉。 (2)找出攻击者所经过的路由,把攻击屏蔽掉。若黑客从某些端口发动攻击,用户可把这些端口屏蔽掉,以阻止入侵。不过此方法对于公司网络出口只有一个,而又遭受到来自外部的DDoS攻击时不太奏效,毕竟将出口端口封闭后所有计算机都无法访问internet了。 (3)最后还有一种比较折中的方法是在路由器上滤掉ICMP。虽然在攻击时他无法完全消除入侵,但是过滤掉ICMP后可以有效的防止攻击规模的升级,也可以在一定程度上降低攻击的级别。 不知道身为网络管理员的你是否遇到过服务器因为拒绝服务攻击(DDoS攻击)都瘫痪的情况呢?就网络安全而言目前最让人担心和害怕的入侵攻击就要算是DDoS攻击了。他和传统的攻击不同,采取的是仿真多个客户端来连接服务器,造成服务器无法完成如此多的客户端连接,从而无法提供服务。 分布式集群防御 由分布在全世界各个国家以及地区的服务器组成一个庞大的网络系统,每个服务器相当于一个节点,每个节点服务器可配置多个IP地址,用户访问也通过这些分布在不同地方的节点访问,而真实数据所在的服务器IP是不对外公布的;这样不仅起到像CDN一样有就近访问加速和带宽分流的作用,最重要的是让网络攻击者也无法检测到真实服务器IP,因此遭受攻击只是节点服务器IP; 智能DNS解析系统,不仅能分地区、分运营商线路设置访问,还能针对不通的网络应用服务设置监测端口,当遭受攻击使一个节点不能提供服务后会根据优先级设置自动切换到另一个节点,这样只要有一个节点能正常提供服务就能让用户正常访问; 为了能防御大规模的DDoS攻击,最好组建分布式集群防御网络,每个节点能承受不低于10G的DDoS攻击,且可根据需求来增加节点无限扩展防御能力。 无论遭受SYN小包攻击,还是肉鸡的UDP攻击,使用分布式集群防御在保障您服务器或者数据安全的状态下,只影响一个线路,一个地区,一个省或者一个省的一条线路的用户。宕机检测系统会在一分钟内更换已经瘫痪的节点服务器保证网站正常状态。还可以把攻击者发出的数据包全部返回到发送点,使攻击源变成瘫痪状态,从而削减攻击能力。 按上述方法和思路去防范DDoS攻击,效果是非常显著的,可将攻击带来的损失降低到最小。 特别提示:DDoS攻击只能被减弱,无法彻底消除。 |
|
沙发#
发布于:2014-03-03 08:38
好专业的一篇文章。。。
|
|
板凳#
发布于:2014-03-03 15:37
收了,还是看明白一点! 本人纯外行!
|
|
地板#
发布于:2014-06-22 10:43
哈哈 上一次我拿linux系统的webbench 开2万并发自己秒死 结果我服务器有死 开打了 别人开8000多打死 我开了2万
|
|