DDOS的主要特点
DDOS攻击作为常见的高危害性安全威胁,一直是CIO们的心头大患。和一般的安全风险不同,现阶段的DDOS攻击呈现出了下面3个特点:
攻击门槛低。简单易操作导致攻击很活跃。结合各方统计数据可以看出,现阶段的DDOS攻击活动还处在一个高发期,无论是在持续增长的大小、速度、持续时间和复杂性上,都有了比较明显的增长。一方面,网络上充斥的各种DDOS攻击工具及详细的指导教程,降低了黑客的攻击门槛,使得DDOS攻击变成了一种简单高效、极易实施的行为;另一方面,大量的缺乏安全措施的终端PC,游戏服务器,各种开放的代理服务器,也为DDOS的攻击提供了数量可观的肉鸡,使得发动攻击成为可能。
攻击目标对象清晰。企业数据中心、公有云计算服务商、互联网基础服务商如DNS服务商、新型的游戏服务商、政府行业的基础网络,正在成为DDOS攻击的热点。因为数据中心会部署大量的电子商务站点、在线游戏服务器、企业关键数据服务器等高价值服务,所以容易成为黑客攻击的目标。另外由于竞争对手之间的恶意竞争而出现的电子商务和游戏服务商之间的攻击也屡见不鲜。同时,对于类似DNS服务商而言,通过简单的小流量的DNS洪水攻击就可能导致互联网基础架构大面积的决绝服务,正是黑客追求的;归结起来,政治上的恶意动机、对手之间的恶意竞争、敲诈勒索等经济犯罪,是黑客发起DDOS的主要动机。
攻击形式多样。分析现有的DDOS攻击形式,可以发现以SYN flood为代表的大流量型攻击和以HTTP GET为代表的资源消耗型应用层攻击成为了主体。根据第三方的2013年上半年的攻击统计,SYN/UDP/ICMP FLOOD的攻击形式占据了超过56%,HTTP GET(CC)/DNS 以应用层攻击占据了超过30%;针对诸如在线游戏和电子商务等对象,使用大流量冲击可以在短时间内令其网络拥塞,业务停滞;而针对诸如网页游戏,对外网站、数据库应用服务器等,则可以通过HTTP GET之类的应用层攻击形式,在流量较小的情况下实现精确打击,造成服务器拒绝服务;对于DNS之类的特殊业务系统则可以使用频繁的DNS Query Flood进行攻击,使得DNS服务器拒绝服务从而影响互联网的正常访问。来自Prolexic的统计报告也显示出在当前阶段,以SYN Flood为代表的大流量攻击、以HTTP GET为代表的应用层资源消耗型攻击,是目前的防护重点,接下来我们将对这些攻击形式进行说明。
DDOS的主要攻击方式
1.大流量冲击型
大流量攻击一方面使得基础网络的出口拥塞、带宽被占满,正常的永远流量无法得到带宽保证,另一方面基础网络的安全设备、服务器主机等设备也因为过量的负载导致CPU繁忙甚至挂死,整个网络可能瘫痪并无法继续对外提供服务,主要的攻击形式如下所述。
1) 以SYN Flood为代表的有状态协议报文攻击
SYN Flood攻击是目前使用最为广泛的攻击方式,它充分利用了TCP协议三次握手机制的特点,伪造大量的源IP和端口的SYN报文,每个IP在向服务器端发送第一个SYN报文后,不再继续发送响应报文,导致服务器端在发送SYN+ACK的响应报文后,因为迟迟收不到响应报文而长时间的保持TCP连接,最终导致服务器因为存在大量的不正完整连接而资源耗尽而造成拒绝服务,通过对僵尸网络大量“肉鸡”主机的控制很容易形成大规模的SYN Flood攻击。
除了传统的SYN报文攻击之外,攻击者还可以在这个基础上进行变形形成新的类似攻击,例如使用ACK报文进行Flood攻击、构造超长字节数目的攻击报文、修改TCP头的TCP标志位使得协议状态机混乱的攻击、 短时间内大量建立完整TCP连接使得应用程序的TCP并发连接数达到极限值从而造成拒绝服务,统计表明这是目前使用比较多的攻击方式
2) 以UDP/ICMP Flood为代表的无状态协议报文攻击
和TCP连接不同,UDP协议是无连接状态不可靠的通道传输协议,本身不提供协调的手
消息反馈等机制,其通信的可靠性需要依靠其承载的应用程序来进行保证。基于UDP协议的DDOS比较简单易行。黑客只需要伪造大量IP地址和小字节的UDP报文,针对特定的应用服务器及其端口号,大量发包冲击诸如DNS域名解析服务器、Radius认证服务器、部分网络游戏服务器、及流媒体视频服务器等。这些攻击报文将导致目标服务器始终处在繁忙状态,从而影响正常UDP消息的处理。其他诸如ICMP Flood攻击,其原理也和UDP比较类似,在此不再详细描述。
2.应用层资源消耗型
应用层攻击并非依靠超大规模的流量取胜,其主要是通过模拟用户发送请求,对特定的应用或服务的资源进行消耗占用,利用较小的流量攻击就可以耗尽应用层资源并拒绝提供服务,这其中以HTTP GET和DNS Query 为典型代表。
1) HTTP GET攻击
作为CC攻击的一种主要表现形式,HTTP GET的攻击看上去目前比较流行,占有比较多的攻击比例。攻击者可能通过单主机构造多个IP地址,并和服务器建立正常的TCP连接,之后不断的向目标服务器特定页面发起HTTP GET请求,实现诸如数据库的注册、查询、刷新等操作以消耗服务器资源,当发送的频率足够高的时候将导致服务器侧忙于响应这些请求导致CPU资源不足,从而使得其他的正常请求得不到处理。考虑到现阶段服务器的处理性能也在不断提升,为了保证攻击效果,攻击者也可能通过代理服务器或者僵尸网络控制更多的僵尸主机参与到攻击中来,大量的僵尸主机不断的向服务器特定页面发送HTTP GET请求将导致服务器拒绝服务,而且因为这些僵尸主机都是真实存在的IP地址,因此看上去隐蔽性更强,
2) DNS查询的泛洪攻击
DNS服务作为互联网的基础性业务,对于互联网的重要性不言而喻。黑客通过利用僵尸网络(或模拟大量IP地址)基于真实DNS协议发起大量DNS Query域名查询请求,导致DNS服务器资源被大量消耗,网络带宽被占用耗尽,使得无法传送正常DNS查询请求;或者发送大量非法域名查询报文引起DNS服务器持续进行迭代查询,从而达到用小流量实现攻击的效果。
由于DNS服务器在网络中的特殊位置,小规模的DNS拒绝服务攻击很可能也演变成大流量的冲击事件。比较典型的案例是5.19安全事件,暴风影音的DNS服务器被攻击并拒绝服务,千万数量级的暴风影音用户变成了“肉鸡”,其客户端开始频繁发送DNS域名解析请求,继而形成了DNS Flood攻击冲击到运营商网络,并使得到运营商本身的DNS系统瘫痪,最终导致南方多个省市的互联网服务中断。
DDOS攻击的主要防护方式
考虑到DDOS攻击的多样性,现阶段没有办法完全杜绝这种攻击行为的发生,但是我们可以做到减少被DDOS攻击,在遭受DDOS攻击之后快速恢复业务。接下来将从四个方面进行详细说明。
1. 网络安全管理员通过合理的配置实现攻击预防
在运维管理过程中,网络安全管理员除了调整WEB服务器负载,做好业务之间的冗余备份和负载均衡外,还可以关注以下几个方面的配置调整,以减少被攻击的风险。
确保所有服务器采用最新系统,并打上安全补丁,避免服务器本身的安全漏洞被黑客控制和利用。同时关闭不需要使用的服务和端口,禁止使用网络访问程序如Telnet、FTP、Rlogin等,必要的话使用类似SSH等加密访问程序,避免这些端口被攻击者利用。
深度了解自身的网络配置和结构,加强对所辖访问内所有主机的安全检查,必要的话部署端点准入机制来保证接入的安全。针对不同的客户端和服务器进行精确的权限控制,隔绝任何可能存在的非法访问。
正确设置网络的信任边界,避免任何可能的非信任域发起的访问请求,针对类似文件共享等行为进行严格的权限控制。
建设完整的安全日志跟踪系统,在网络的边缘出口运行端口映射程序或端口扫描程序,实时监控网络中可能存在的恶意端口扫描等行为,同时对网络设备、主机/服务器系统的日志进行收集分析,及时发现可能存在异常的日志行为并进行排查。
2.利用防火墙等设备实现DDOS攻击检测
目前的状态检测防火墙等安全设备都具备一定的安全攻击检测能力,一般其情况下基于对协议报文的状态跟踪,可以准确发现一些畸形TCP协议报文的攻击。除此之外,现阶段的典型攻击检测方式还有以下几种。
使能TCP Proxy连接代理技术。诸如防火墙产品可以利用TCP Proxy代理功能,实现对攻击报文的准确识别。在接受到客户端发起的TCP请求时,防火墙产品本身将充当代理,率先和客户端保持会话建立的过程。如果完整的三次握手报文没有收到,防火墙将丢弃该会话连接请求,同时也不会和后端服务器建立会话连接,只有三次握手成功的连接请求,才会传递到后端的服务器并完成会话的建立。通过这种代理技术可以准确的识别基于TCP连接状态的攻击报文,如针对SYN Flood攻击,TCP半连接状态攻击等。
智能会话管理技术。针对上面提到的TCP连接并发的攻击,因为其本身有完整的TCP 三次握手,因此常规的TCP 代理技术并不能有效检测。为了避免这种情况,防火墙产品可以在TCP代理的基础上进一步改进,在TCP连接建立后,防火墙会主动检测该TCP连接的流量大小,如果设备存在大量的没有流量的空连接,则设备会主动将该TCP连接进行老化,避免这些空连接占用耗尽服务器的会话资源。
HTTP两次重定向技术。针对上述提到的HTTP Get攻击类型,由于其属于正常的访问请求,因此在防护过程中,一方面可以通过实时监控单位时间内同一个IP地址发起的HTTP Get请求的数目来初步判断是否存在可能的攻击,如果超出一定的阀值将终止该IP地址的访问请求以保护服务器;另一方面,也可以使用HTTP Get两次重定向技术来检测这种攻击。在接受到HTTP Get请求之前,安全设备会与客户端浏览器进行虚拟连接,待浏览器发送HTTP Get报文请求后,将所要GET的URL进行重定向发向该浏览器,等待浏览器发起对该重定向链接的访问。如果浏览器再次发起该请求,则将该客户端加入到信任的IP列表,并再次重定向到浏览器所要请求的正确URL,后续可以根据该IP地址黑白名单信誉列表转发。
除了上述方法之外,设备还有一些其他的方法来判断DDOS攻击,比如针对UDP Flood报文攻击,采取报文新建会话检查原则,将首包丢弃并等待客户重传,在这种情况下攻击报文将被过滤掉。针对其他的一些攻击方式如ICMP Flood,也可以使用智能流量检测技术,主动进行消息的发送速率,超过阀值的报文将被认为是无效报文做丢弃处理并记录日志,当速率低于设定的阈值下限后重新恢复报文的转发,这些方式配合流量自学习模型可以很好的识别攻击。
3.基于流量模型自学习的攻击检测方法
对于部分缺乏状态的协议报文攻击,此时攻击报文属于正常报文,这种情况下,很难通过通用的检测技术对单个报文判断是否是攻击报文,此时流量自学习模型可以较好的解决这个问题。
在这个流量模型学习的过程中,用户可以自定义学习周期,周期越长越能够准确反映用户的流量分布。通过一段时间的学习,系统将准确获取该用户在一段时间内的流量分布,形成包含L4-L7层信息的流量模型。其参数包括但不限于:周期内的带宽占用情况、L4层协议端口的流量分布统计、TOPN的IP地址流量统计、应用层协议的种类及带宽分布、TCP报文带宽速率、会话连接数目及每秒新建速率参数、ICMP/UDP报文的速率、ICMP/UDP的请求速率、HTTP协议的带宽大小、每秒请求数、最大连接数、客户端IP地址的分布范围等。通过获取周期内的流量模型,结合用户的流量规划参数,最终形成符合用户流量实际的比对基线,并作为后续判断网络中是否存在异常流量的标准。流量基线确立后,系统可以实时监控网络的流量并与基线进行比对,一旦超出基线标准一定的比例将被定义为异常流量,此时系统将生成动态过滤规则对网络流量进行过滤和验证,如验证源IP地址的合法性、对异常的流量进行丢弃,从而实现对DDOS攻击的防御。
4.基于云计算服务实现DDOS攻击防护
在实际的DDOS攻击防护过程中,面对万兆以上超大规模的攻击流量,攻击对象的出口带宽可能被完全拥塞,此时企业内部的DDOS检测和防护措施已经无法解决问题,租用运营商的云计算DDOS服务成为现实的选择。为了提供超大规模的云计算DDOS攻击防护能力,需要从以下3个步骤进行考虑:
首先,需要构建一个超高性能的DDOS攻击检测平台,实现对用户业务流量进行分析监控。在这个过程中,需要考虑通过流量镜像、RSPAN、NetStream等多种技术,将需要分析攻击的用户流量引导到DDOS攻击检测平台,再综合利用检测平台的各种技术最终实现对用户流量的攻击检测。其次,当攻击检测平台探测到疑似异常攻击流量后,将借助云计算DDOS服务管理中心,通过类似BGP路由发布等方式,将用户的疑似攻击流量自动牵引到服务商的流量清洗中心进行恶意流量清除。最后,攻击清除后的合法流量将通过策略路由、MPLS VPN、双链路等多种方式回注到原有网络,并上报清洗日志到业务管理中心生成各种攻击报告,以便提供给云计算DDOS服务的租户审计。综合上述过程,可以看到超高的攻击检测性能和城域网内部就地清除攻击报文的能力,是云计算服务商的优势所在。
当然,在运营商搭建高性能攻击检测平台的过程中,除了上述提到的一些攻击检测方式
外,云计算服务商还可以充分利用云安全检测机制来识别攻击。比较典型的有基于IP信誉和 恶意URL地址库的识别机制。对于恶意的IP地址和和Wwebsite URL链接访问流量直接拦截丢弃,最大限度提升防护效率。
结束语
随着企业数据中心云计算化的进一步发展以及云计算服务商IaaS/SaaS等业务模式的成熟并陆续商用,云计算数据中心的业务应用将更加丰富多样,由此导致的DDOS安全攻击仍将是热点所在;同时面对移动互联网应用的突飞猛进,移动智能终端和应用的不断丰富,黑客将会在移动互联网嗅到更多的利益引诱,并可能开始尝试发起DDOS攻击;运营商和云计算服务商需要更多的关注DDOS的攻击危害,综合多种安全防护手段,并通过云计算服务DDOS服务租用的方式进行布局,从这个角度看,在云计算IaaS建设过程中,将DDOS服务作为基础架构服务的一部分,是顺应形势的最佳选择。