【防火墙技术连载10】强叔侃墙 攻击防范篇 流量型攻击之SYN Flood及防御

[复制链接]
发表于 : 2014-4-15 16:39:24 最新回复:2019-03-06 10:14:13
32365 42
强叔侃墙
强叔侃墙 官方号

大家好,强叔和你们又见面了!上一期强叔带着大家一起了解了单包攻击的基本防御知识,知道了单包攻击的几大类型,以及防火墙支持防御的攻击种类。但是,在现网中单包攻击只占了很小一部分比例,更多的攻击还是集中在流量型攻击和应用层攻击。本期强叔将继续为大家讲解一下现网上常见的流量型攻击。

过去,攻击者所面临的主要问题是网络带宽,由于较小的网络规模和较慢的网络速度的限制,攻击者无法发出过多的请求。虽然类似“Ping of Death”的攻击类型只需要较少量的包就可以摧毁一个没有打过补丁的操作系统,但大多数的DoS攻击还是需要相当大的带宽,而以个人为单位的黑客们很难消耗高带宽的资源。为了克服这个缺点,DoS攻击者开发了分布式的攻击。
木马成为黑客控制傀儡的工具,越来越多的计算机变成了肉鸡,被黑客所利用,并变成了他们的攻击工具。黑客们利用简单的工具集合许多的肉鸡来同时对同一个目标发动大量的攻击请求,这就是DDoS(Distributed Denial of Service)攻击。随着互联网的蓬勃发展,越来越多的计算机不知不觉的被利用变成肉鸡,攻击逐渐变成一种产业。

提起DDoS攻击,大家首先想到的一定是SYN Flood攻击。今天强叔就给大家详细说说SYN flood的攻击和防御。

最初的SYN Flood攻击类似于协议栈攻击,在当年的攻击类型中属于技术含量很高的“高大上”。当年由于系统的限制以及硬件资源性能的低下,称霸DDoS攻击领域很久。它与别人的不同在于,你很难通过单个报文的特征或者简单的统计限流防御住它,因为它“太真实”、“太常用”。
SYN Flood具有强大的变异能力,在攻击发展潮流中一直没有被湮没,这完全是他自身的优秀基因所决定的:

  1.  单个报文看起来很“真实”,没有畸形。
  2. 攻击成本低,很小的开销就可以发动庞大的攻击。
2014年春节期间,某IDC的OSS系统分别于大年初二、初六、初七连续遭受三轮攻击,最长的一次攻击时间持续将近三个小时,攻击流量峰值接近160Gbit/s!事后,通过对目标和攻击类型分析,基本可以判断是有一个黑客/黑客组织发起针对同一目标的攻击时间。经过对捕获的攻击数据包分析,发现黑客攻击手段主要采用SYN Flood。
2013年,某安全运营报告显示,DDoS攻击呈现逐年上升趋势,其中SYN Flood攻击的发生频率在2013全年攻击统计中占31%。

可见,时至今日,SYN Flood还是如此的猖獗。下面我们一起看一下它的攻击原理。


TCP三次握手

SYN flood是基于TCP协议栈发起的攻击,在了解SYN flood攻击和防御原理之前,还是要从TCP连接建立的过程开始说起。在TCP/IP协议中,TCP协议提供可靠的连接服务,无论是哪一个方向另一方发送数据前,都必须先在双方之间建立一条连接通道,这就是传说中的TCP三次握手。
  
  1. 第一次握手:客户端向服务器端发送一个SYN(Synchronize)报文,指明想要建立连接的服务器端口,以及序列号ISN。 
  2.  第二次握手:服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时在SYN+ACK报文中将确认号设置为客户端的ISN号加1。 ACK即表示确认(Acknowledgment)。
  3. 第三次握手:客户端收到服务器的SYN-ACK包,向服务器发送ACK报文进行确认,ACK报文发送完毕,三次握手建立成功。

如果客户端在发送了SYN报文后出现了故障,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的,即第三次握手无法完成,这种情况下服务器端一般会重试,向客户端再次发送SYN+ACK,并等待一段时间。如果一定时间内,还是得不到客户端的回应,则放弃这个未完成的连接。这也是TCP的重传机制。


 SYN Flood攻击正是利用了TCP三次握手的这种机制。攻击者向服务器发送大量的SYN报文请求,当服务器回应SYN+ACK报文时,不再继续回应ACK报文,导致服务器上建立大量的半连接,直至老化。这样,服务器的资源会被这些半连接耗尽,导致正常的请求无法回应。


 
防火墙针对SYN Flood攻击,一般会采用TCP代理和源探测两种方式进行防御。


TCP代理
TCP代理是指我们的防火墙部署在客户端和服务器中间,当客户端向服务器发送的SYN报文经过防火墙时,防火墙代替服务器与客户端建立三次握手。一般用于报文来回路径一致的场景。
 

  1. 防火墙收到SYN报文,对SYN报文进行拦截,代替服务器回应SYN+ACK报文。
  2.  如果客户端不能正常回应ACK报文,则判定此SYN报文为非正常报文,防火墙代替服务器保持半连接一定时间后,放弃此连接。
  3.  如果客户端正常回应ACK报文,防火墙与客户端建立正常的三次握手,则判定此SYN报文为正常业务报文,非攻击报文。防火墙立即与服务器再建立三次握手,此连接的后续报文直接送到服务器。


整个TCP代理的过程对于客户端和服务器都是透明的。

TCP代理过程中,防火墙会对收到的每一个SYN报文进行代理和回应,并保持半连接,所以当SYN报文流量很大时,对防火墙的性能要求非常的高。
了解了攻击原理,再学习防御原理,是不是觉得很容易理解。讲了这么多,大家对SYN Flood的攻击以及TCP代理防御是不是有了一定的认识。其实,TCP代理的本质就是利用防火墙的高性能,代替服务器承受半连接带来的资源消耗,由于防火墙的性能一般比服务器高很多,所以可以有效防御这种消耗资源的攻击。


但是TCP代理只能应用在报文来回路径一致的场景中,如果来回路径不一致,代理就会失败。可是在现网中,报文来回路径不一致的场景也是很常见的,那这种情况下如果发生了SYN Flood攻击,防火墙要怎么防呢?
不用担心,我们还有第二个杀手锏:TCP源探测!


TCP源探测
TCP源探测是防火墙防御SYN Flood攻击的另一种方式,没有报文来回路径必须一致的限制,所以应用普遍。
 

  1.  当防火墙收到客户端发送的SYN报文时,对SYN报文进行拦截,并伪造一个带有错误序列号的的SYN+ACK报文回应给客户端。
  2.  如果客户端是虚假源,则不会对错误的SYN+ACK报文进行回应。
  3.  如果客户端是真实源发送的正常请求SYN报文,当收到错误的SYN+ACK报文时,会再发出一个RST报文,让防火墙重新发一个正确的SYN+ACK报文;防火墙收到这个RST报文后,判定客户端为真实源,则将这个源加入白名单,在白名单老化前,这个源发出的报文都认为是合法的报文,防火墙直接放行,不在做验证。


这里,我们再回头对比一下TCP源探测和TCP代理两种方式,会发现TCP源探测对客户端的源只做一次验证通过后,就加入白名单,后续就不会每次都对这个源的SYN报***验证,这样大大提高了TCP源探测的防御效率和防御性能,可以有效缓解防火墙性能压力。

讲了这么多,大家是不是就会觉得TCP源探测对于SYN Flood已经是一个完美的防御方案了呢?它会不会也有什么弱点呢?


很长一段时间里,SYN Flood在防火墙TCP代理和TCP源探测双重防御的压制下,得到了遏制。但是随着木马被广泛植入到更多的肉鸡,一个初级黑客简单操作就可以操纵动则上G流量的时候, SYN Flood变得更加嗜血。TCP代理和TCP源探测方式说到底都是使用防火墙牺牲自身的CPU不断的来解决问题。但是一旦海量低开销的SYN Flood攻击报文同时蜂拥而至时,这种伤敌一千自损八百的方式将走向另外一个极端,防火墙很有可能成为瓶颈。华为防火墙在不断提升自身性能的同时,还是可以承担一定的开销。但是传统的防御手段都是反弹,也就是说如果攻击流量是1G的话,防火墙的反弹流量也有1G,这样就相当于有2G的“攻击”流量在互联网上占据着带宽,我们在防御的过程中不自觉的放大了垃圾流量,拥塞了链路。


魔高一尺,道高一丈,随着SYN Flood攻击的不断变异,防火墙也一直不断地提升着自身的防御能力。
 TCP提供可靠的传输层,其中可靠性的保障之一就是确认从另一端收到的数据。但是数据和确认在传输过程中都有丢弃的可能,所以TCP通过在发送时设置一个定时器来解决这个问题。如果定时器到达设置的时间了,还是没有收到某个数据的确认报文,则TCP就会重传这个数据。华为专业AntiDDoS设备正是利用了TCP这种重传的机制,推出“首包丢弃”功能与“TCP源探测”结合的防御方式,以应对超大流量的SYN Flood攻击。当SYN报文蜂拥而至时,专业AntiDDoS设备会将收到的第一个报文记录并直接丢弃,然后等待第二个重传报文。收到重传报文后,再对重传报文进行源探测。
这里提到了专业AntiDDoS设备,强叔也顺便给大家介绍一下,虽然防火墙具备DDoS防御能力,但是他毕竟不是专业的防攻击设备,术业有专攻,华为公司推出的AntiDDoS1000和AntiDDoS8000系列是专业的AntiDDoS设备,先进的防御技术在业界也是遥遥领先、大名鼎鼎,在腾讯、阿里巴巴都获得一致好评,是华为公司的尖刀产品哦!更多内容可以登录华为公司主页下载相关相产品文档。


强叔提问

回顾一下,在这一篇中,我们一起学习了TCP代理和TCP源探测,以及两种方式的利与避,还提到了防火墙只能在来回路径一致的场景中使用TCP代理,那么大家有没有想过,为什么防火墙在来回路径不一致的场景中,TCP代理会失败呢?


 

上一篇 攻击防范篇 单包攻击及防御

下一篇 攻击防范篇 流量型攻击之UDP Flood及防御

汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
HUAWEI_Rjzr
HUAWEI_Rjzr   发表于 2014-5-2 21:58:54 已赞(0) 赞(0)

"但是传统的防御手段都是反弹,也就是说如果攻击流量是1G的话,防火墙的反弹流量也有1G,……"

这里反弹流量是指?

  • x
  • 常规:

点评 回复

HUAWEI_Rjzr
HUAWEI_Rjzr   发表于 2014-5-2 22:02:15 已赞(0) 赞(0)

回复 6 楼

为什么呢?
  • x
  • 常规:

点评 回复

HUAWEI_Rjzr
HUAWEI_Rjzr   发表于 2014-5-2 22:08:57 已赞(0) 赞(0)

 阿里云官方团队:

春节期间,阿里云开放存储系统遭受到三轮峰值近160Gbit/s的DDoS攻击。阿里云云盾系统实现完全自动化的防御,有效地阻断了大流量的攻击,保证了存储业务的正常运行。攻击者挑战的不仅仅是防护设备的性能,更是防护系统的完备性和响应效率,以及防护团队的专业能力和协作精神。
160Gbit/s的攻防博弈
第一轮攻击波
2月1日,正月初二,春节。中午12点,阿里云云盾防护系统检测到访问OSS系统(开放存储服务)的流量出现异常波动,在很短的时间内流量快速提升。
在无人干预的情况下,云盾的抗DDoS系统自动进入防护状态,将流量牵引到清洗设备上进行清洗。
攻击者加大攻击力度,流量上升迅速,攻击总带宽在半个小时内即接近160Gbit/s。下图显示双链路各自的攻击峰值。

http://aliyunbbs.oss.aliyuncs.com/attachment/thumb/Mon_1402/85_1793125223011711_722187d1cda574c.jpg?24

图片:160g-1.jpg


在此期间,云盾系统进行了完全自动化流量清洗。
攻击者的攻击维持了2小时45分钟后放弃。下午3点左右,流量回归正常状态。
在这个三小时攻防大战中,云盾系统对攻击的检测及防护均自动化完成。OSS系统用户正常业务没有受到影响,没有接到用户投诉。
第二轮攻击波
2月5日,正月初六,春节。19:00,攻击卷土重来。云盾再次检测到大流量攻击。峰值超过70Gbit/s。http://aliyunbbs.oss.aliyuncs.com/attachment/thumb/Mon_1402/85_1793125223011711_db08cd8fdc476cf.jpg?15

图片:160g-2.jpg

                                                                                                      
云盾自动清洗,化解黑客攻击。OSS的正常业务没有受到影响,无用户投诉。
第三轮攻击波
2月6日,正月初七,春节。22:00,大流量攻击再次发生,峰值42Gbit/s。云盾成功防护,客户业务无影响。
魔高一尺,道高一丈
事后对源、目标和攻击类型的分析过程中,我们发现了很多比较明显的共同点,因此基本可以判断是由一个黑客/黑客组织发起的对于同一目标的攻击事件。
经过对捕获的攻击数据包分析,黑客的攻击手段主要采用SYN Flood。SYN Flood是一种非常典型和常见的系统资源消耗型DDoS攻击,是在TCP连接创建的握手阶段,利用客户端与服务器三次交互对服务器侧的TCP资源进行攻击。攻击者通过向被攻击目标服务器发出大量TCP SYN报文,使服务器打开并维持大量的半开连接,进而占满服务器的连接表,影响正常用户与服务器建立会话,造成拒绝服务。http://aliyunbbs.oss.aliyuncs.com/attachment/Mon_1402/85_1793125223011711_7fb9e15d7560da8.jpg?56

图片:160-3.png.jpg

                                                                                                                                                                
从攻击者实际的攻击行为上来说,存在比较明显的特征。攻击者为了提高攻击带宽,增加了相对固定的负载。从另一方面来说,也为云盾的检测和阻断提供了依据。
不仅是云盾系统的胜利
虽然SYN Flood攻击非常普遍,但是单纯依靠SYN Flood就打出如此高的攻击带宽却是非常罕见的。去年5月份,国外黑客组织攻击美国金融系统时,也曾打出了167Gbit/s的高带宽,采用的是DNS反射放大攻击,利用了DNS查询包和响应包之间的杠杆作用。
事件的另一个亮点是云盾系统在整个事件中实现了全自动化的检测、分析和清洗工作。虽然是自动化防护,即便是在春节期间,云盾系统7X24的安全应急和专家团队坚守岗位,对攻击进行了全程监控,保证对攻防大战的完全可控。
最后,更让我们感到欣慰的是,此番160Gbit/s DDoS的攻防博弈中,用户的正常业务没有受到影响。显然,这不仅仅是云盾系统的胜利。

 

似乎用的是华为的设备?

  • x
  • 常规:

点评 回复

她的猫
她的猫   发表于 2014-5-5 17:34:07 已赞(0) 赞(0)

真想被攻击啊。。。。好换华为的anti设备 哈哈。
  • x
  • 常规:

点评 回复

eagle2013
eagle2013   发表于 2014-6-2 14:16:34 已赞(0) 赞(0)

最后一个留给网友的问题,对"防火墙TCP代理"模式理解明白的么?求解释?
  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-7 11:25:32 已赞(0) 赞(0)

回复 9 楼

阿里云有在用华为专业的AntiDDoS设备~~
  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-7 11:27:50 已赞(0) 赞(0)

回复 7 楼

反弹流量是指防火墙反弹的syn-ack报文~~
  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-7 11:29:15 已赞(0) 赞(0)

回复 5 楼

DNS在后面的应用层攻击中有详细介绍哈:http://forum.huawei.com/enterprise/thread-223517.html
  • x
  • 常规:

点评 回复

Andy
Andy   发表于 2014-7-23 09:43:03 已赞(0) 赞(0)

TCP代理  阻止了来回路径不一致的报文,这岂不是说明,防火墙的TCP代理机制会阻止一些 正常业务?
  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录