从5月11号网易被攻击谈起:新型DDoS攻击LFA

2018-02-06 10:51:09 浏览数 (1)

5月11日晚上9时许,网易的大量用户发现访问网易新闻出现问题,相应的,有很多游戏用户报告说游戏掉线严重。一时间,有关“网易大楼着火”的谣传甚嚣。晚上9点42分的时候,“网易新闻客户端”新浪微博发推:

图1 网易新闻客户端微博内容

这次攻击,相较于以往的DDoS攻击,官方描述比较特别:“骨干网络遭受攻击”。笔者敏锐地意识到这是最近学术界才提出的LFA攻击,攻击范例比较少。本文接下来将详细介绍LFA攻击的概念、现状和防治方法。不过,悲观地讲,现在还没有关于LFA特别好的解决方案。在此声明一下,笔者对网易的网络拓扑和本次攻击的具体细节一无所知,所有解释只源于自己的推测。

新型的DDoS攻击:Link Flooding Attack(链路洪泛攻击)

LFA,可以认为是一种新型的DDoS攻击,全称Link Flooding Attack(链路洪泛攻击)。顾名思义,就是以链路为攻击目标,不同于传统DDoS以服务器为目标,LFA是通过攻击服务器群的主要出口入口链路,造成链路拥塞,导致服务器无法满足正常用户的请求。以瘫痪链路为目标,而不是以瘫痪服务器为目标,这是LFA和传统DDoS最重要的区别,这也是LFA比DDoS难以检测和防治的重要原因。

传统的DDoS可以通过加服务器、负载均衡,或者流量监测来防治,但是这些方法在LFA里就起不到良好的效果。为了解释这些问题,我们先详细地介绍下LFA的原理。

学术界最早提出链路攻击DDoS的是CMU的Ahren Studer和Adrian Perrig。两位作者在09年的论文《The Coremelt Attack》提出了这种攻击的雏形。

图2 LFA攻击雏形

如图2,图中有两种节点,灰色的是被攻击者控制的节点如S1,S2,S3,白色的节点是正常的服务器节点如A,B,C。在攻击中,攻击者让S1,S2,S3大流量通信,来导致target link过载,从而导致正常的节点间无法通信。为了增加攻击的效果,可能会顺带着用流量洪泛白色节点。

但是,在白色的节点里,有很多攻击流量是看不到的。尝试在正常服务器进行流量检测是很难检测这样的攻击的。读者现在可能认为网易的服务器不会和攻击者控制的灰色节点混在一块,这样的攻击可能不太现实,至少对于这次网易被黑不太现实。没关系,我们继续看一个加强版的LFA攻击——CrossFire Attack。注意,不是穿越火线。

加强版的LFA攻击:CrossFire Attack

CrossFire攻击是也是CMU的研究人员提出的,成果发表在2013 IEEE S&P上。

图3 Crossfire攻击

Crossfire攻击的思路和上面的Coremelt大同小异。如图3,攻击者想让中间target area红色方形的的服务器(Public Server in Target area)down掉,服务器周围的蓝色方形是Decoy Server,不是攻击目标但是和攻击目标网络位置比较近的服务器,Decoy Server和Public Server共享一些重要的骨干出入链路,所以对Decoy Server的洪范也会影响Public Sever。

攻击的方法就是通过低密度、看似正常的流量有计划地访问Decoy Server和Public Server,导致Target Link负载过重,最终导致Public Sever无法服务。在Decoy Sever和Public Server看来,流量都是正常的,但是结果仍然导致DDoS的发生。而且,攻击一条Targe Link的成本比攻击所有服务器低很多。

读者会问,网易的机房里只有自己的服务器啊,那Decoy Sever哪来的?根据LFA的一次攻击实例,笔者推测,攻击者可能攻击了网易机房的上层交换节点或其他类似机构(甚至可能是IXP,ISP之间的交换节点)。比如网易的机房和阿里的机房同时连在一个交换机构上,那么攻击者很可能通过正常访问阿里的服务器导致交换节点down掉,网易的服务器也无法访问。在攻击中,阿里的服务器是Decoy Server,网易不小心躺枪了。

现实生活中的Target Link

那么,现实生活中存在这样的Target Link么?实际上,在传统的TCP/IP网络中,流量的分布很不均衡,如上面假设的网易新闻的流量可能主要通过几个主干道。也许有其余多个备份链路的存在,但是这些链路承担的流量比例很小。最重要的问题是传统的TCP/IP网络是分布式的,路由算法如BGP、OSPF分散在各个路由器上,不便于集中控制,通常切换主干道非常麻烦,而且耗时非常长。

像网易的这次修复,笔者感觉可能是更改了相干拓扑的路由,如启用了备份链路,这个时间通过要持续几个小时。果然,直到12日凌晨2点31,网易才宣布已经修复。但据媒体报道,完全恢复是在12日早上6点。

但是这样的修复方法下次一定有效么?不见得,如果攻击者熟知网易网络相关拓扑,假如网易切换到另外一条主干道(New Target Link),攻击者立即攻击这条新的Target Link,如此反复。网易切换主干道的时间是小时级的,但是攻击者可以达到分钟级切换。网易应该庆幸的是攻击者没有搞清楚全部的拓扑,否则,这次的事件持续时间将更长。

在云计算时代,各种公司的服务器托管在同一云服务商上,对于这种攻击,只能云服务商来解决,单个个体是没办法解决的。但是如果云服务商仍然采用传统TCP/IP的路由策略,不能快速切换,仍然会出现类似的问题。云服务商可以考虑采用SDN和NFV的相关方案,增强对路由的管理。如果是对于IXP的攻击,只能各个ISP之间相互合作了。

总结起来,LFA的攻击具有如下特点:

1.低密度流量攻击,难以检测 2.攻击成本低 3.持续久,攻击者可以不停切换攻击link

短期内解决这个问题的关键是负载均衡、加大带宽、增加链路,深层次地看,我们应该重新考虑改进我们网络的基础架构了。

我们期待网易后续能分享更多的攻击细节,虽然不太可能。期待学术界和工业界对这个问题的后续研究和探讨,希望我们早日能找到好的解决方案。

作者微博: @pengfeituan

* 作者/purehat,属FreeBuf原创奖励计划文章,未经许可禁止转载

0 人点赞