电子商务网站安全中的DDoS攻防博弈摘要:文章对现今电子商务网站所面临的最具威胁性的攻击――分布式拒绝服务(DDoS)攻击的攻击机理作了较为详细的分析,并分析了针对DDoS攻击的不同攻击子类的特点及采取的应对防范措施,从而降低被攻击方受攻击后的损害程度。最后揭示了想要将DDoS攻击发生的可能性降到最低的一切防范措施的根本特性――社会性。关键词:电子商务;DDoS攻击;网络安全;入侵检测;入侵防御中图分类号:TP391文献标识码:A文章编号:1002-3100(2009)01-0034-06Abstract:Thisarticleanalysesthemechanismandarchitecturesofthemostthreateningattacktotheelectronicwebsitesnowadays,whichisDDoS(DistributedDenyofService)attack.Thearticlefurtherdescribesthedifferentfeaturesofitssubcategoriesandthedifferentmeasurestokeepwebsitesfrombeingseriouslydamagedafterhavingbeenattacked.Moreover,besidesthetechnicalissues,thesocialandmanagementissuesarealsoreferred,andtheseissuesmaybethevitalmeasurestoentirelyeliminatepossibilitiesfrombeingdamagedbytheDDoSattack.Keywords:E-commerce;DDoSattack;networksecurity;intrusiondetection;intrusiondefensive0引言社会信息化进程的发展,电子商务、电子政务等信息化工程的日益完善一直跟随着网络技术的发展而发展,然而从安全的角度来看,随着网络的逐步完善,电子商务网络所面临的网络安全问题却始终如挥之不去的梦魇。日益突出的安全问题面前,魔道双方的攻守角逐未曾也永远不会停止。本文阐述了一种很难被彻底解决的电子商务网站安全问题――可造成网络延时甚至瘫痪的攻击DDoS(DistributedDenyofService――分布式拒绝服务攻击)产生的机理以及防御的主要方法,并探讨更有效的网络安全维护策略和机制。1来自DDoS攻击的威胁DDoS攻击手段是在传统的DoS攻击基础之上发展而来的一种攻击方式。DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应,DoS(DenyofService――拒绝服务)因此得名。单一的DoS攻击一般采用一对一的方式,当被攻击目标各项性能指标较低,如:低CPU速度、小内存或者网络带宽有限时,攻击效果是明显的。但随着硬件与网络技术的发展,硬件价格暴跌的情况下,计算机的内存增加,处理器能力大大提高,千兆级别的网络的出现,使得DoS攻击的难度增加不少,因为性能的增强使得目标机对恶意攻击包的化解能力也随之增强。此时分布式的拒绝服务攻击(DDoS)也随之应运而生。DDoS原理很简单,就是利用网络掌控并集结尽量多的傀儡机来攻击目标机以期达到比单机大得多杀伤力。但其危害却极大且难以防御。2008年4月7日18点左右到4月8日21点15分,一家国内网民自发建立的揭露西方媒体不客观报道的非政府网站、揭示不实报道事件真相的交流平台,反CNN网站(),遭DDoS攻击,导致攻击期间超过27个小时网民无法登录反CNN网站页面的情况。自从1999年第一次有报道的大规模DDoS攻击在美国明尼苏达大学出现以来,相当多的电子商务网站已经遭受到其暗算并且损失惨重。2000年,雅虎、CNN等一批大型商业网站被DDoS攻陷并停止正常运营。有研究表明,在2001年2月中的3周时间内,DDoS有效攻击达12000次并侵害了5000多台主机。DDoS造成的数据流堵塞迫使路由器丢弃所有用户的请求。更严重的基于DNS的DDoS攻击发生在2006年,但是这是一种新型的攻击方式,攻击者并不直接攻击DNS服务器而是利用其作为跳板进而发动更大规模的攻击,由于DNS协议的复杂性和各DNS服务器之间的联系,这种攻击更难以化解。两个月之内,曾有1500多个IP地址被这种方式攻击过。在自第一次的DDoS攻击出现之后,各种侦测和应对的技术没有一种能够给受害者以真正的保护。原因之一是很难将DDoS攻击的数据流量和正常的数据流量区分开;原因之二是在分布式的网络结构中,DDoS攻击利用IP欺骗等手段很容易隐藏且不易被追溯,因此不能被有效的阻止。1.1DDoS攻击原理和其分类分布式拒绝服务(DDoS)类攻击通过聚集分布在网络上的力量,形成毁灭性的流量攻击。道高一尺,魔高一丈。随着用户系统的安全性能的不断增强,黑客不得不从普通的DoS攻击转向分布式攻击形式。图1显示了“魔”“道”之间的争斗历史发展。1.2DDoS攻击的分布合作架构图2描述了一个典型的DDoS攻击结构,分为4个部分:黑客机、受控傀儡机、攻击傀儡机和受害目标机。整个结构中最主要的是第2、第3部分。攻击者先黑入几台受控傀儡机的系统取得控制权。接着,受控傀儡机再次通过一些自动入侵软件接管更多的攻击傀儡机。对第4部分的受害目标机来说,DDoS的攻击包是从第3部分攻击傀儡机上发出的,第2部分的受控傀儡机只控制攻击傀儡机而不参与实际的攻击。对第2和第3部分计算机,黑客有全部或部分控制权,黑客会修改此类机器上的日志和预留后门等方法隐藏自己的踪迹。通过上传到这些受控和攻击傀儡机上的DDoS程序,一旦黑客进行控制并向所有的攻击傀儡机发出攻击指令的时候,攻击傀儡机就对目标受害者发送大量垃圾流量,有效拥堵住入口并阻断合法用户访问。因为傀儡机发出的数据包的包头中所含有的源地址是伪造的(IP欺骗――IPSpoofing),所以这种结构非常难以追溯。目标受害机往往是一些知名的电子商务网站服务器等。实际上,为了增加攻击的有效性,黑客会做好如下功课:(1)了解被攻击目标主机数目、IP地址、配置、性能情况、目标的网络带宽;(2)在受控傀儡机上预留后门和清理日志;(3)尽量多地使用攻击傀儡机;(4)使用尽量有效地DDoS攻击工具。DDoS攻击工具的源代码在互联网上都是公开的并且新的版本不断地在更新。新的“增强”版本在隐藏攻击流量以及加密手段方面更加复杂,使得防御来得更加困难。在有线网络中,三种隐患可导致DDoS攻击,分别为:不安全的互联网络,缺乏垃圾流量管理手段和IP欺骗。1.3DDoS攻击种类为了增强攻击力度提高攻击效果并且很好地隐藏攻击者使其不被暴露,DDoS通常具有两种主要攻击方式:数据包洪流(Flood)攻击和反弹(reflector)DDoS攻击。为了达到最佳的攻击效果,这两种攻击频繁地被同时利用。1.3.1数据包洪流攻击第一种攻击称为请求数据包攻击或者直接攻击,图2所示的DDoS攻击结构即为直接攻击(DirectAttack),攻击者通过黑入几台受控傀儡机的系统取得控制权然后通过它们向受害目标机发送巨量数据包,通过使用随机产生的IP地址替换掉自身或傀儡机中数据包头部的真实源地址隐藏自身位置。现今很多各种类型的DDoS工具都属于此类,最具有代表性的攻击称为基于数据洪流式的(SYNFloodingBased)攻击结构的攻击,即利用TCP/IP协议自身固有的弱点――三次握手,通过巨量貌似正常的链接数据来堵塞受害目标的网络带宽,从而造成合法的用户数据包因带宽资源枯竭而无法正常到达受害主机服务器。SYNFlood攻击原理。经过长期筛选,在攻击的有效性方面较高的SYNFlood攻击是当前黑客使用得最多的一种攻击方式,SynFlood利用了TCP/IP协议的固有特点(漏洞)即:面向连接的TCP三次握手。TCP与UDP不同,它是基于连接的,即为了实现TCP数据在服务端和客户端之间传送,必须先建立一个虚拟电路,也就是TCP连接,建立TCP连接的标准过程如图3所示。第一步,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号。第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此为止建立完整的TCP连接,开始全双工模式的数据传输过程,一个TCP连接完成。如图3中所示的连接过程在TCP协议中被称为三次握手(Three-wayHandshake)。被利用的漏洞出现在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然掉线或死机,那么服务器在发出SYN+ACK应答报文(第二次握手)后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时长称为SYNTimeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一般情况下个别用户出现异常导致服务器的一个线程等待1分钟并不是什么大问题,但如果有恶意的攻击者大量模拟这种情况,服务器端将为了维护数以万计的半连接列表而会消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。如果服务器的TCP/IP堆栈不够强大,最后往往是堆栈溢出崩溃。即便服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇响应客户的正常请求,此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了SYNFlood攻击(SYN数据包洪流攻击)。1.3.2反弹DDoS攻击第二种方式因使用到称为反弹服务器的主机使得追踪攻击方的行踪变得更加困难。所谓反弹服务器即收到请求数据包后将会返回数据包的主机。比如一台Web服务器可以被当作反弹服务器,因它在接收到HTTP请求后会返回HTTP响应数据包。攻击者通过向反弹服务器主机发送请求数据包并将源地址的IP伪装替换成受害机的IP,这样反弹服务器返回数据包将指向受害机,如果反弹服务器的数量众多,受害机的网络将遭到巨量数据流的攻击而堵塞。此类攻击区别于数据包攻击或者直接攻击的主要特点在于受控傀儡机将源地址数据包里IP头部的地址信息修改成为受害机的IP地址,也就是说用受害目标机的IP地址替换掉受控傀儡机或者攻击者的源地址。实际上,这种攻击方式下,受害目标机将收到的洪流数据包来自不只是几百个攻击傀儡机而是上百万个!太多的来自不同方向的基于反弹的DDoS攻击降低了追溯到真正攻击者的可能性,数量众多的反弹服务器掩盖了攻击者的身影,并且反弹服务器在攻击其它机器的时候还是可以正常响应合法登录者的请求。攻击者不用像侵入傀儡机内部一样去侵入反弹服务器,只需黑入一小部分的受控傀儡机并且搜索出大批的反弹服务器即可达到效果,这样大大便利了入侵者的攻击。由于反弹服务器利用大量ACK报文攻击,受害机不必向反弹服务器返回任何数据包。在一次反弹DDoS攻击中,任何可以向受害机发送响应数据包的协议均可被利用。为了制造出更强的攻击效果,攻击者甚至利用了数据包流量放大技术,在傀儡机和反弹服务器之间设置流量放大器。流量放大器向所有在网络广播地址范围内的每一个反弹服务器广播请求数据包。当前网络几乎所有的路由器都支持网络IP广播,因此存在大量潜在的流量放大器。这帮助了攻击者可以不用太多的精力去寻找数量众多的反弹服务器而只需用流量放大器加大攻击流量。图4是DDoS反弹式攻击体系结构。基于ICMP流量的Smurf攻击。Smurf攻击是典型使用流量放大器的D