随着计算机硬件的不断提升,运营商网络不断的扩容,我们的防火墙逐渐在线上增加,依靠抢占带宽制造的流量型攻击效果越来越差。黑客们开始寻求新的突破,转而向上进行应用层的攻击,应用层攻击逐渐变为黑客的焦点。应用层攻击比传输层攻击对于目标服务器造成更大的伤害。比如大型网站动态数据库链接的不断调用会比SYN Flood更加消耗系统的资源。今天强叔就给大家讲讲防火墙支持的DNS Flood和HTTP Flood攻击以及防御对策。
2009年5月19日晚,江苏、安徽、广西、海南、甘肃、浙江等6省,分别报告省内域名递归解析服务因大量DNS请求陆续出现故障,其他多个省市则报告互联网域名解析服务出现异常,互联网运行受到严重影响,网络长时间处于断网状态。
让我们来回顾一下这次攻击事件的过程。5月19日事发当晚,攻击者受利益驱使,对其他游戏“私服”网站的域名解析服务器DNSPod实施攻击,攻击流量超过10G,导致DNSPod域名解析服务瘫痪。而DNSPod同时为暴风影音公司网站提供域名解析服务。
由于暴风影音软件中,有一项强制随机启动的名为stormliv.exe的进程,只要用户安装了暴风影音,该进程就会自动运行,并不断连接暴风影音网站,下载广告或升级。因此,当DNSPod服务器被攻击瘫痪时,数以千万计的暴风影音用户就充当了“肉鸡”,向运营商DNS递归服务器发送大量请求,DNS访问流量瞬间就超过30G,导致了本次重大网络安全事件。
随后,公安机关介入侦查,攻击者于5月29日被抓获。调查发现,他们长期在互联网上经营游戏“私服”,并租用服务器专门协助他人攻击其他游戏“私服”和“私服”网站以谋取利益。
由此可见,应用层攻击造成的伤害是巨大的,直接会影响到我们的正常生活,加强应用层攻击防御刻不容缓。下面强叔就从DNS Flood讲起。
DNS Flood
通常情况下,我们在上网访问网页的时候,输入的网址都是域名,比如
www.huawei.com,这个请求的域名会发送到DNS缓存服务器,以请求其对应的IP地址。如果DNS缓存服务器上有此域名和IP地址的映射关系,DNS缓存服务器就会将查询到得IP地址返回给客户端。
当DNS缓存服务器查找不到该域名与IP地址对应关系时,它会向授权DNS服务器发出域名查询请求。为了减少Internet上DNS的通信量,DNS缓存服务器会将查询到的域名和IP地址对应关系存储在自己的本地缓存中。后续再有主机请求该域名时,DNS缓存服务器会直接用缓存区中的记录信息回应,直到该记录老化,被删除。
常见的DNS Flood攻击一般都是攻击者向DNS服务器发送大量的不存在的域名解析请求,导致DNS缓存服务器不停向授权服务器发送解析请求,最终导致DNS缓存服务器或者DNS授权服务器瘫痪,影响对正常请求的回应。
我们先从DNS协议本身讲起。DNS服务器支持TCP和UDP两种协议的查询方式,但是大多数的查询都是使用UDP查询的,我们都知道,UDP提供无连接服务,传输速度快,可以降低服务器的负载。
也有特殊情况需要通过TCP方式查询,其中之一,就是DNS服务器可以设定使用TCP连接。当客户端向DNS服务器发起查询请求时,DNS回应报文里有一个TC标志位,如果TC标志位置1,就表示需要通过TCP方式查询。我们的防火墙就是利用这一机制对DNS Flood攻击进行防御。
上图中,当发生DNS Flood攻击时,防火墙收到DNS请求,会代替DNS服务器响应DNS请求,并将TC标志位置1,要求DNS客户端以TCP方式发送DNS请求。
l 如果客户端是真实源,会继续以TCP方式发送DNS请求。
l 如果客户端是虚假源,则不会再以TCP方式发送DNS请求。
我们再来看一组真实客户端正常响应防火墙源探测的抓包信息:
1、 客户端向DNS服务器以UDP方式发送查询请求。
2、 防火墙将TC标志位置1,让客户端以TCP方式发送请求。
3、 客户端以TCP方式发送DNS请求。
这种方式可以很好的防御针对缓存服务器的DNS请求攻击,但是在现网使用过程中,并不是所有场景都适用。因为在源探测过程中,防火墙会要求客户端通过TCP方式发送DNS请求,但是并不是所有的客户端都支持以TCP方式发送DNS请求,所以这种方式在使用过程中也有限制。如果有正常客户端不支持以TCP方式发送DNS请求,使用此功能时,就会影响正常业务。
HTTP Flood
说完了DNS Flood攻击,强叔再给大家讲讲另一种常见的应用层攻击:HTTP Flood。近几年,HTTP Flood攻击所占比例呈逐年上升趋势,不可小觑。
常见的HTTP Flood攻击,一般指黑客通过代理或僵尸主机向目标服务器发起大量的HTTP报文,这些请求涉及数据库操作的URI或其它消耗系统资源的URI,目的是为了造成服务器资源耗尽,无法响应正常请求。
防火墙对于HTTP Flood的防御,主要依靠HTTP协议所支持的重定向方式,譬如说客户端向服务器请求
www.sina.com,服务器可以返回一个命令,让客户端改为访问
www.sohu.com。这种重定向的命令在HTTP协议栈中是合法的。我们防火墙的防御机制就是利用这个技术点,来探测HTTP客户端是否为真实存在的主机。
HTTP报文的正常重定向过程是这样的:
防火墙正是利用了HTTP报文的这种重定向机制,在防御HTTP Flood攻击过程中,向客户端重定向一个其他的URI。
上图可以看出,当客户端访问search1.huawei.com的时候,防火墙重定向了一个search2.huawei.com地址给客户端让它访问:
- 如果客户端是虚假源,在收到防火墙发送的重定向地址后,不会重新发送HTTP请求。
- 如果客户端是真实源,则会对防火墙的重定向报文进行响应,并重新向search2.huawei.com地址发送请求。这样,防火墙收到search2.huawei.com请求后,即可判定这个客户端是真实源,并将这个客户端加入白名单。
虽然在整个过程中,客户端需要自动重定向两次,但是时间是很短的,不会影响客户体验。
我们再看一组真实客户端正常响应防火墙重定向请求的抓包信息:
1、客户端请求包含URI为“/index.html”的页面。
2、防火墙对请求报文进行确认,并重定向一个新的URI“/index.html?sksbjsbmfbclwjcc”给客户端。
3、客户端重新请求包含URI为“/index.html?sksbjsbmfbclwjcc”的页面。
4、防火墙对包含新URI的请求进行确认,并将地址重新定向成包含URI为“/index.html”的页面。认证通过,后续客户端可以直接和服务器进行通信。整个过程对于用户来说是透明的,重定向操作由客户端浏览器自动完成。
该模式可有效阻止来自非浏览器客户端的访问,如果僵尸工具没有实现完整的HTTP协议栈,不支持自动重定向,无法通过认证。而浏览器支持自动重定向,可以通过认证。这种防御方式在使用过程中,要确认客户端是否支持重定向。比如,常见的机顶盒就不支持自动重定向。所以在使用这种防御方式时,一定要确认所在的网络是否有机顶盒等客户端的正常业务,如果有,就不能使用此功能,否则会影响正常业务。
关于阈值怎么配置?
在这几期介绍的攻击防范中,大家对于Flood类攻击的阈值配置一直存在着疑惑,这里强叔给大家统一说明一下配置原则。
告警阈值配置要合理,如果配置过大,来攻击的时候就会防不住;如果配置过小,可能会把正常业务误判为攻击报文进行处理。
但是每个网络的流量模型都不同,所以配置阈值之前,需要有个前提准备,就是要大概了解这个网络正常情况下的每种类型报文的基本流量模型。这个值可能是管理员的一个经验值,也可以通过监测一段时间后通过工具学习得知。比如,我们想配置SYN Flood防御功能,配置告警阈值前,要先了解没有发生攻击的情况下网络中SYN报文的最大速率是多少,然后再配置SYN Flood防御的告警阈值,一般可以配置为正常流量时的1.2 ~2倍。配置完告警阈值后,还要连续多观察几天,看这个阈值对正常业务是否有影响,如果有影响,要及时调整成更大的值。
现网中,攻击五花八门,黑客们也一直在不停的变换着攻击的花样,要想有效防御各种层出不穷的攻击,防御手段也要不断的更新跟进。
术业有专攻,防火墙毕竟不是专业的Anti-DDoS设备,对现网复杂攻击的防御能力有限。如果想要更有效的防御DDoS攻击强烈推荐选择华为Anti-DDoS解决方案。
华为Anti-DDoS解决方案是一个专业的防DDoS攻击解决方案,对每一种攻击都具备精细化的防御功能。比如我们今天提到的DNS Flood,Anti-DDoS解决方案是区分DNS缓存服务器和DNS授权服务器分别进行防御,除了可以防御DNS Request Flood和DNS Replay Flood攻击以外,还可以有效防御DNS投毒攻击、DNS反射等多种类型的攻击,防御功能非常强大。
华为Anti-DDoS解决方案提供业界领先的体系结构,包含检测中心、清洗中心和管理中心三个部分,具备很好的可扩展性,具有目前业界最高性能的Anti-DDoS设备。整个Anti-DDoS解决方案具备强大的攻击防御能力,七层防御技术层层过滤,可以专业防御HTTP Flood、HTTPS Flood、DNS Flood、SIP Flood等近百种的攻击,多样化的产品型号,满足高、中、低不同网络规模需求,在腾讯、阿里巴巴以及国内外知名运营商均获得一致好评!
想了解华为Anti-DDoS解决方案吗?拿起鼠标点击以下链接吧:
强叔提问
在大家多年的网络生涯中,有没有遭遇过因为网络攻击而无法正常上网的情况吗?后来都了解了是什么攻击吗?