近日,内容分发网络(CDN)运营商Akamai表示,一种使网站快速瘫痪的DDoS放大攻击新方法正在被不法分子所利用。这种方法是通过控制数量巨大的中间设备(middlebox,主要是指配置不当的服务器),可以将大量垃圾数据快速放大到之前无法想象的规模。
这些中间设备大多未遵循传输控制协议规范——在建立连接之前,这种规范需要三方握手,这个握手过程包括客户端发送SYN数据包、服务器发送SYN+ACK响应以及客户端发送用于确认的ACK数据包。
由于ACK确认数据包必须来自合法用户,而不是欺骗目标IP地址的攻击者,这种握手机制会阻止基于TCP的应用程序被用作放大器。但是考虑到需要处理非对称路由,这类中间设备有意放弃了这一要求。这就使得攻击者可以通过放大手法提高攻击力,实施更具破坏力的DDoS攻击活动。
隐藏的武器库
去年8月,马里兰大学和科罗拉多大学博尔德分校的研究人员发表的研究结果表明,攻击者有能力利用这数十万个中间设备发动最严重的分布式拒绝服务(DDoS)攻击。攻击者使用DDoS向网站发送流量或超出服务器处理能力的垃圾数据,从而使其拒绝向合法用户提供服务。DDoS类似以前的这种恶作剧——将更多电话转到电话线不够处理的比萨店。
为了尽量加大损害并节省资源,DDoS攻击者常常通过放大手法提高攻击力。放大攻击的原理是,欺骗目标的IP地址,并向用于解析域名、同步计算机时钟或加快数据库缓存的配置不当的服务器发送数量较少的数据。由于服务器自动发送的响应比请求大几十倍、几百倍甚至几千倍,所以这种自动响应让受骗的目标不堪重负。
研究人员表示,他们发现的至少10万个中间设备超过了DNS服务器的放大倍数(约54倍)和网络时间协议服务器的放大倍数(约556倍)。他们发现使用memcached来放大流量的数百台服务器,会产生比上述配置不当的服务器更高的倍数放大流量。memcached用于加速网站的数据库缓存系统,可以将流量增加惊人的51000倍。
研究人员当时表示,他们没有证据表明中间设备DDoS放大攻击在外面被大肆使用,但预计这一天早晚会到来。近日,Akamai研究人员表示,他们已检测到多起DDoS攻击就采用这种方式来使用中间设备,其攻击峰值流量达到11Gbps,每秒150万个数据包。虽然与最大规模的DDoS相比是小巫见大巫,但两个研究团队都预测:随着DDoS攻击者开始优化攻击,并找到更多可以被滥用的中间设备,攻击规模会变得更大。
去年8月发表研究论文的首席研究员Kevin Bock表示,DDoS攻击者有强烈的动机来重现其团队理论上推测的攻击。在Akamai的检测中发现,一个中间设备收到了带33字节有效载荷的SYN数据包,返回了2156字节的回复。也就是说,放大倍数是65,但这种放大攻击手法大有潜力可挖。
Akamai研究人员表示:
TCP容量耗尽攻击以前需要攻击者访问大量机器和大量带宽,通常需要功能非常强大的机器,拥有高带宽连接和源头欺骗功能或僵尸网络。这是由于在此之前,TCP协议方面没有受到严重的放大攻击;少量放大是有可能,但被认为几乎忽略不计,至少与针对UDP的放大攻击相比不值一提。
如果想把SYN洪水攻击与容量耗尽攻击结合起来,就需要1:1的攻击带宽量,通常向受害者发送填充的SYN数据包这种流量。中间设备攻击放大的出现颠覆了长期以来对TCP攻击的这番认识。现在,从容量耗尽攻击的角度来看,攻击者在一些情况下只需要1/75的带宽量,攻击者就能免费获得SYN、ACK或PSH+ACK洪水流量。
攻击从未停歇
Akamai遇到的另一个中间设备由于未知原因使用自己的多个SYN数据包来响应SYN数据包。遵循TCP规范的服务器不应该以这种方式响应。更糟糕的是,该中间设备完全忽略了受害者发送的RST数据包,这些数据包本该终止连接。
另外令人担忧的是,Bock的研究团队发现,一些中间设备在收到含有RST的任何其他数据包时做出响应。这会造成无休止的数据包风暴。Akamai还附上一段演示,展示了攻击者攻击基于TCP服务的特定端口时出现的破坏。
Akamai解释,这些发送到TCP应用程序/服务的SYN数据包会导致该应用程序试图用多个SYN+ACK数据包进行响应,并保持TCP会话开放,等待三方握手的其余过程。由于每个TCP会话都处于这种半开放状态,系统会消耗套接字,反过来会消耗资源,最终资源完全耗尽。
遗憾的是,普通的最终用户无法阻止DDoS放大手法被利用。同时,在许多情况下,中间设备运营方重新配置其设备是不可能的。网络防御者必须改变其过滤和响应数据包的方式。