由于商业竞争、打击报复和网络敲诈等多种因素,导致很多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地址。#p#
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)或防火墙规则也许可以阻挡,若可以发现流量都是来自同一来源或核心路由器,可以考虑暂时将那边的流量挡起来,当然这还是有可能将正常和异常的流量都一并挡掉,但至少其他来源可以得到正常的服务,这也是不得已的牺牲。此外,还可以考虑增加机器或频宽作为被攻击的缓冲之用,但这只是治标不治本的做法。最重要的是,必须立即着手调查并与相关单位协调解决。#p#
4、预防DDoS攻击
预防DDoS攻击必须透过网络上各个团体和使用者的共同合作,制定更严格的网络标准来解决。每台网络设备或主机都需要随时更新其系统漏洞、关闭不需要的服务、安装必要的防毒和防火墙软件、随时注重系统安全,避免被黑客和自动化的DDoS程序植入攻击程序,以免成为黑客攻击的帮凶。网络管理人员可采取以下方法做好预防工作。
4.1节点
扫描网络管理员要定期扫描网络节点,分析并发现可能存在的安全漏洞,对新出现的漏洞及时进行修补。特别是骨干点的计算机,由于需要占用较高的带宽,因此,对这些主机本身加强主机安全是非常重要的。而且,连接到网络主节点的都是服务器级别的计算机,所以,定期扫描漏洞就变得更加重要了。
4.2配置防火墙
防火墙本身具备了抵御部分DDoS攻击的能力。在发现攻击行为存在时,可以牺牲备用设备引导攻击数据流,这样可以减轻或避免正常业务的顺利进行。当然如果企业或用户对网络的要求很高,笔者建议设立专用的服务器来防止DDoS攻击。
4.3充分利用网络设备
保护网络资源合理配置使用路由器、防火墙等网络设备,它们可将网络有效地保护起来。相对服务器的重启,网络路由器等网络设备的重启要容易得多,而且服务器数据不会有太多的损失。负载均衡技术的使用,可以在攻击发生时自动均衡设备的使用情况,最大限度地降低DDoS的攻击。
4.4过滤服务及端口
在默认情况下,服务器的很多端口是开放的,用户可以使用防火墙或一些管理软件来过滤不必要的服务和端口。只开放服务端口成为保障网络安全的流行做法,例如,用户可能会经常看到一个服务器只开放80端口等。
4.5检查访问者的来源
通过反向路由器查询的方法检查访问者的IP地址是否是真,如果发现虚假IP,应立即将其屏蔽。黑客在攻击时常采用假IP隐藏自己,因此,网络管理员有必要了解自己网络的用户访问情况。
4.6过滤所有被保留的IP地址
我们知道类似10.0.0.0、192.168.0.0和172.16.0.0这样的IP,并不是某个网段的固定IP地址,而是Internet内部保留的区域性IP地址,网络管理员应把被保留的IP过滤掉。
4.7限制SYN/ICMP流量
用户应在防火墙上配置SYN/ICMP的最大流量来限制SYN/ICMP所能占用的最大带宽。当出现大量的超过限定的SYN/ICMP流量时,管理员需要立即排查区分是否存在非法攻击行为。限制SYN/ICMP也是过去对付DDoS攻击最常使用的。据有关报道,电信级运营商已经开始积极运做,准备推出一系列的安全增值服务,IDC服务器托管商也已经积极行动起来,避免用户免受DDoS攻击的侵害,安全厂商更是在积极研究DDoS攻击的原理及防御措施,力求最大限度地扼杀DDoS攻击。笔者认为,任何个体是很难防御住巨大的数据流攻击,只有运营商、企业以及安全厂商共同联合起来,才能更好地克服DDoS给用户带来的伤害。