1、概述
1.1 背景
从上世纪90年代到现在,DoS/DDoS 技术主要经历大约阶段:
1) 技术发展时期。
90年代,Internet 开始普及,很多新的DoS 技术涌现。90年代末发明和研究过许多新的技术,其中大多数技术至今仍然有效,且应用频度相当高,如 Ping of death, Smurf, SYN flooding, 等等。
2) 从实验室向产业化转换
2000年前后,DDoS 出现,Yahoo, Amazon等多个著名网站受到攻击并瘫痪,还有 Codered, SQL slammer 等蠕虫造成的事件。
3) “商业时代”
最近一两年,宽带的发展使得接入带宽增加,个人电脑性能大幅提高,使DDoS 攻击越来越频繁,可以说随处可见,而且也出现了更专业的、用于出租的‘DDoS 攻击经济’。可以说DDoS 攻击的威胁已经无处不在。
DDoS(分布式拒绝服务攻击)是产生大规模破坏的武器。不像访问攻击穿透安全周边来窃取信息,DDoS攻击通过伪造的流量淹没服务器、网络链路和网络设备(路由器,防火墙等)瘫痪来使得网络系统瘫痪。
1.2 DDoS攻击原理
由于DDoS攻击往往采取合法的数据请求技术,再加上傀儡机器,造成DDoS攻击成为目前最难防御的网络攻击之一。据美国最新的安全损失调查报告,DDoS攻击所造成的经济损失已经跃居第一。
DDoS攻击的一个致命趋势是使用复杂的欺骗技术和基本协议,如HTTP,Email等协议,而不是采用可被阻断的非基本协议或高端口协议,非常难识别和防御,通常采用的包过滤或限制速率的措施只是通过停止服务来简单停止攻击任务,但同时合法用户的请求也被拒绝,造成业务的中断或服务质量的下降;DDoS事件的突发性,往往在很短的时间内,大量的DDoS攻击数据就可使网络资源和服务资源消耗殆尽。
DDoS攻击主要是利用了Internet协议和Internet基本优点——无偏差地从任何的源头传送数据包到任意目的地。DDoS攻击分为两种:要么大数据,大流量来压垮网络设备和服务器,要么有意制造大量无法完成的不完全请求来快速耗尽服务器资源。
1.3 DoS/DDoS攻击分类
·逻辑攻击
逻辑攻击采取的方法是利用攻击对象上已有的软件漏洞,向其发送少量的畸形数据包,导致攻击对象的服务性能大幅降低和整个系统发生崩溃。
· 泛洪攻击
泛洪攻击则是利用大量的无效或恶意数据数据包导致攻击对象的资源(例如CPU、内存、缓存、磁盘空间和带宽)不堪重负,从而降低服务性能或者导致服务中断。
1.4 DoS与DDoS攻击的区别
顾名思义,DoS与DDoS最直接的区别就是单对一攻击还是多对一攻击。而随着现在服务器性能的发展,想要单对一发起泛洪攻击已经不太可能了,所以现在有效的DoS攻击主要采用逻辑攻击的方式,而DDoS攻击则由攻击者驱动僵尸网络,以多攻少,耗尽服务器资源。
1.5 傀儡机和僵尸网络
傀儡机是被黑客通过木马或其他恶意程序获取控制权的终端用户PC、服务器或者其他网络设备。而由攻击者操纵的一系列傀儡机组成的网络形象地称为僵尸网络。示意图如下所示:
1.6 常见的DoS/DDoS攻击
·ping of death
许多操作系统的TCP/IP协议栈规定ICMP报文大小为64KB,并为此分配缓冲区。Ping of death故意产生崎形报文,声称自己的大小超过64KB,使得协议栈出现内存分配错误,导致荡机。
·teardrop
某些TCP/IP协议栈(NT在SP4以前)在收到含有重叠的IP分片报文时会崩溃。Teardrop利用该特性发送伪造的重叠IP分片报文,导致某些系统荡机。
·UDP flood
提供WWW和Mail等服务的Unix的服务器默认打开一些被黑客恶意利用的UDP服务。如echo服务会显示接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符。Udp flood假冒攻击伪造与某一主机的chargen服务之间的一次udp连接,回复地址指向开着echo服务的一台主机,使得两台主机来回传送毫无用处且占满带宽的垃圾数据,导致带宽耗尽。
·SYN flood
SYN Flood针对TCP协议栈在两台主机间初始化连接的过程进行DoS攻击。攻击者发送带伪造源地址的SYN报文,服务方发送SYN-ACK确认消息后收不到ACK回应,于是服务方会在一定时间处于等待请求方ACK消息的状态。对于某台服务器来说,可用的TCP连接是有限的。如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,除了少数幸运用户的请求可以插在大量虚假请求间得到应答外,服务器将无法向用户提供正常的合法服务。
·smurf
攻击者以被害者的地址作为源地址发送ICMP回显请求广播报文。网络中的一些系统会向被害者发送ICMP回显应答报文,导致被害者被大量响应信息淹没。这种使用网络发送一个包而引发大量回应的方式也被叫做smurf“放大”。
·stacheldrahtl
Stacheldraht基于客户机/服务器模式,其中Master程序与潜在的成千个代理程序进行通讯。在发动攻击时,攻击者与master程序进行连接。增加了新的功能:攻击者与master程序之间的通讯是加密的,对命令来源做假。以此逃避一些路由器用URPF(RFC2267)进行过滤,若检查出有过滤现象,它将只做假IP地址最后8位,从而让用户无法了解到底是哪几个网段的哪台机器被攻击;同时使用rcp 技术对代理程序进行自动更新。同TFN一样, Stacheldraht可以并行发动数不胜数的DoS攻击,类型多种多样,而且还可建立带有伪装源IP地址的信息包。Stacheldraht所发动的攻击包括UDP flood、TCP SYN flood、ICMP 回音应答flood等。
2、DPtech IPS对DoS/DDoS的防御技术
2.1传统防御方案的缺点
传统的DDoS防御方案主要有以下不足:
1) 配置复杂,自动化不强。传统DDoS防御往往要求用户针对某种流量配置相应的阈值,如果对网络中的流量不清楚的话,用户很难做出正确的配置。
2) 防御能力比较单一。传统DDoS防御主要针对SYN Flood等单一攻击类型进行防御,能力比较单一。现在DDoS攻击的趋势是多层次和全方位的,在一次攻击攻击过程中,会产生针对网络层的SYN、UDP和ICMP Flood,针对连接的TCP connectioin Flood,和针对应用层协议的HTTP GET、PUT Flood。
3) 无法区分异常流量。传统DDoS防御对于检测到的流量异常后,无法做进一步的区分,而只是简单的将所有异常流量全部丢弃,导致合法用户的请求也得不到响应。
4) 无法应对未知的攻击。传统DDoS防御主要针对已知DDoS攻击,而随着DDoS攻击工具源代码在网上散播,攻击者可以很容易改变DDoS攻击的报文类型,形成DDoS攻击的变体。
2.2DPtech IPS防御DDoS的方法
·http-redirection
根据四元组(源IP、目的IP、目的端口和协议)查询http重定向表,如果匹配并且表项状态为完成重定向(该状态的重定向表项老化则客户端为zombie),增加可信IP,将报文传送给服务端,是针对HTTP请求的anti-spoof动作。
http-redirection的处理主要包括两个部分:cookie和redirect。cookie验证客户端IP地址的合法性(防spoof),redirect验证客户端是否能够正确理解应用层协议(防zombie)
·dns-proxy
是针对TCP DNS请求的anti-spoof动作。dns-proxy的处理主要包括两个部分:cookie和proxy。cookie验证客户端IP地址的合法性(防spoof)。
·server-reset
server-reset是IPS以server身份主动发起reset,server-reset防护动作在系统中暂不使用,此功能点是为了保证防护动作的完整性。
server-reset包含TCP cookie处理,用来验证客户端IP地址的合法性(防spoof)。
·client-resetl
client-reset是针对基于TCP并且除HTTP、DNS外的其他应用协议的anti-spoof动作(SMPT、POP3、IMAP、HTTPS、TELNET、FTP协议使用client- reset处理,其他协议未通过验证),由服务端在回应SYN/ACK报文时设置错误的序列号,客户端将主动复位当前连接并且进行连接重试。
client-reset包含两个部分:cookie和redirect。cookie验证客户端IP地址的合法性(防spoof),redirect验证客户端是否能够正确理解应用层协议(防zombie)。
· tcp-strong
需要调用本功能进行服务端SYN/ACK报文处理。防护动作tcp-strong对每一个TCP请求进行代理,需要完成设备和客户端、设备和服务端的三次握手。在处理服务端三次握手时需要处理SYN/ACK报文。
·ttl-check
ttl-check是针对除TCP、DNS UDP协议外的其他协议的anti-spoof动作。防护基于的原理是攻击者可以篡改报文的任何内容,但无法篡改报文传输的TTL跳数。
根据TTL跳数对IP源地址进行认证基于如下前提:
·大多数系统的报文初始TTL值为30、32、60、64、128和255;?
·大多数报文在网上传输的距离不会超过30跳;?
在学习阶段,或者从后续通过其他防护动作认证的报文中,我们可以获取一张IP和TTL跳数的对应关系表,作为我们检测的依据。如果当前报文不符合对应关系表,则认为当前报文为伪造报文;否则认为当前报文合法。
由于ttl-check防护基于的事实具有一定的不可靠性:用户可以修改报文的起始TTL值,报文在网络中传输的距离可能超过30,所以ttl-check防护具有一定的误差。
·特征检查
查杀有特征的DoS攻击和有特征的DDoS攻击工具发出的报文。目前可以检测的工具有:tfn、tfn2k、shaft、trinoo、trinity、agobot、mstream、stacheldraht、fraggle、ip-sweep。
3、典型组网应用
DPtech IPS采用透明部署,不用改变用户网络部署。如下图所示,灰色部分为原有网络,IPS如同网线一样,透明部署,不影响原有网络。保护内网服务器和终端用户的安全。
DPtech IPS典型组网图