商务网站如何应对DDoS攻击
由于商业竞争、打击报复和网络敲诈等多种因素,导致很多IDC托管机房、商业站点、游戏服务器、聊天网络等网络服务商长期以来一直被DDoS攻击所困扰,随之而来的是客户投诉、法律纠纷、商业损失等一系列问题,因此,解决DDoS攻击问题成为商务网站必须考虑的头等大事。DDoS攻击很狡猾,也很难阻止,但是面对攻击,只要快速地响应和采取正确的措施,就可以及时发现攻击数据流并将其挡掉,减轻这种攻击对网络的影响。
DDoS(Distributed Denial of Service,分布式拒绝服务攻击),俗称洪水攻击。是在传统的DoS攻击基础之上产生的新的破坏力更强的攻击方式。分布式拒绝服务攻击是指借助于客户/服务器技术,将多个甚至几十万个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高了攻击的威力。DDoS带来的破坏是巨大的,你无法阻止黑客对你的网站发动DDoS攻击,除非主动断开Internet连接。如果我们无法防止这种攻击,那么,怎样做才能最大限度地保护我们的企业网络呢?
1、了解DDoS攻击当前主要有三种流行的DDoS攻击:
1.1SYN/ACKFlood攻击
这种攻击方法是经典最有效的DDoS方法,可攻击各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源IP和源端口都是伪造的,故追踪起来比较困难。其缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。
1.2TCP全连接攻击
TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此容易被追踪。
1.3刷Script脚本攻击
这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断地向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击方法。常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy代理就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露攻击者的IP地址。
2、发现DDoS攻击
根据以下异常现象在网络入侵监测系统建立相应规则,能够较准确地监测出DDoS攻击。
(1)根据分析,攻击者在进行DDoS攻击前总要解析目标的主机名,BIND域名服务器能够记录这些请求。由于每台攻击服务器在进行一个攻击前会发出PTR反向查询请求,也就是说在DDoS攻击前域名服务器会接收到大量的反向解析目标IP主机名的PTR查询请求。
(2)当DDoS攻击一个站点时,会出现明显超出该网络正常工作时的极限通讯流量的现象。现在的技术能够分别对不同的源地址计算出对应的极限值。当明显超出此极限值时,就表明存在DDoS攻击的通讯。因此,可以在主干路由器端建立ACL访问控制规则以监测和过滤这些通讯。
(3)特大型的ICP和UDP数据包。正常的UDP会话一般都使用小的UDP包,通常有效数据内容不超过10字节。正常的ICMP消息也不会超过64到128字节。那些尺寸明显大得多的数据包很有可能就是控制信息通讯用的,主要含有加密后的目标地址和一些命令选项。一旦捕获到(没有经过伪造的)控制信息通讯,DDoS服务器的位置就暴露出来了,因为控制信息通讯数据包的目标地址是没有伪造的。
(4)不属于正常连接通讯的TCP和UDP数据包。最隐蔽的DDoS工具随机使用多种通讯协议(包括基于连接的协议)通过基于无连接通道发送数据。优秀的防火墙和路由规则能够发现这些数据包。另外,那些连接到高于1024而且不属于常用网络服务的目标端口的数据包也是非常值得怀疑的。
(5)数据段内容只包含文字和数字字符(例如,没有空格、标点和控制字符)的数据包。这往往是数据经过BASE64编码后而只会含有BASE64字符集字符的特征。TFN2K发送的控制信息数据包就是这种类型的数据包。TFN2K(及其变种)的特征模式是在数据段中有一串A字符(AAA),这是经过调整数据段大小和加密算法后的结果。如果没有使用BASE64编码,对于使用了加密算法数据包,这个连续的字符就是“”。
(6)数据段内容只包含二进制和high-bit字符的数据包。虽然此时可能在传输二进制文件,但如果这些数据包不属于正常有效的通讯时,可以怀疑正在传输的是没有被BASE64编码但经过加密的控制信息通讯数据包(如果实施这种规则,必须将20、21、80等端口上的传输排除在外)。
3、应对DDoS攻击
当遭受DDoS攻击的时候要如何设法存活并继续提供正常服务呢?
由前面的介绍可以知道,若黑客攻击规模远高于你的网络频宽、设备或主机所能处理的能力,其实是很难反抗攻击的,但仍然有一些方法可以减轻攻击所造成的影响。首先是调查攻击来源,由于黑客由僵尸主机进行攻击,因此,可能无法直接查出黑客是由哪里发动攻击,必须一步一步从被攻击目标往回推,先调查攻击是由管辖网络的哪些边界路由器进来,上一步是外界哪台路由器,联络这些路由器的管理者(可能是某个ISP或电信公司)并寻求他们协助阻挡或查出攻击来源。假如,被攻击的目标只是单一IP,那么试图改个IP并更改其DNSmapping或许可以避开攻击,这是最快速而有效的方式;但是,攻击的目的就是要使正常使用者无法使用服务,更改IP的方式虽然避开攻击,以另一角度来看黑客也达到了他的目的。此外,假如攻击的手法较为单纯,可以由产生的流量找出其规则,那么利用路由器的ACLs(AccessControlLists)或防火墙规则也许可以阻挡,若可以发现流量都是来自同一来源或核心路由器,可以考虑暂时将那边的流量挡起来,当然这还是有可能将正常和异常的流量都一并挡掉,但至少其他来源可以得到正常的服务,这也是不得已的牺牲。此外,还可以考虑增加机器或频宽作为被攻击的缓冲之用,但这只是治标不治本的做法。最重要的是,必须立即着手调查并与相关单位协调解决。