原著:Steve Gibson www.grc.com
翻译:无用君 www.isfocus.com
译者注:
前几天收到朋友寄来的这篇文章,觉得相当有意思,所以就翻译出来了.因为时间比较紧,我
只翻译了原理及防御部分,前面更有一堆关于拒绝服务攻击历史及理论的一堆废话,想看到朋
友请去http://grc.com/dos/drdos.htm 看原文.请不要来跟我们来要exploit,有心的朋友
把那些在网上早已传烂了的SYN Flood工具改一改(甚至改都不用改)就能够拿来做这个用
了.这篇文章算是给国内的网管敲个警钟吧.
正文:
2002年一月11日凌晨两点,grc.com被一些更先进的恶意洪水数据包攻击.这种新型的
DDoS攻击能够被成为分布式反射拒绝服务攻击(Distributed Reflection Denial of
Servie Attack )— DRDoS
神秘的洪水攻击
攻击在凌晨两点左右开始,那时我正好还在工作,所以我才有机会迅速的抓取到一部分的洪水
攻击的信息.这次攻击使Verio(我们的网络提供商)的集合路由器将攻击数据挤满了我们的
两条T1.我们的网站服务器因为这次攻击而无法处理其他合法的请求.我们被完全的炸下了
网.
我们以前就曾遭受过UDP和ICMP洪水攻击,这些攻击其实都能够由被攻击者入侵的主机,
zombie工具及Windows系统简单的实现,我们也被一些经典的SYN洪水攻击过.所以当我
查看了一下那些显示我们是被SYN/ACK数据攻击的攻击数据包后,眉毛跳了一下.毕竟这些
事实并不重要,就像我以前说的那样,一个SYN/ACK包只是个SYN数据包带了一个ACK
标记.任何有限权制作"raw socket"的人都能够制作出这种数据包来 —— 不管他是恶意的还
是无意的.
真正的惊讶是当我看到这些发起攻击的地址 :


此处省略了近200个攻击的网络地址


我们看起来是在被超过200 多个网络核心基础设施路由器攻击.

发生什么事了?

看到这些分别来自Verio 、Qwest 、和 Above.net 的洪水数据包,我想他们都是完全合法的SYN/ACK 连接回应包,他们显示了一个TCP 源端口:179 。换句话说,就像一个网页服务器的数据包会从HTTP 的80 号端口返回相同,这些数据包是从"BGP"的179 号端口返回的。

BGP 是中介路由器支持的"边界网关协议"(Border Gateway Protocol )。 路由器使用BGP和他们的邻居进行实时的信息交流来交换他们的" 路由表" ,这是为了通知他们彼此路由器能够在哪个IP 范围进行转交。

BGP 的细节并不重要,重要的是每个良好连接(高宽带)的中介路由器都会接受在他们179端口上的连接。换句话来说,任何一个SYN 数据包到达一个网络路由器上后都会引出一个该路由的SYN/ACK 回应包来。

我突然知道什么会一定发生…..

这些被利用来攻击的两百台主机不可能全存在安全问题,甚至可能没有任何一台有安全问题。

我认识到他们只但是全是一些普通的的TCP 服务器,他们是在认为我们想建立一个TCP 连接到他们自带的BGP 服务的情况下才向grc.com 发送SYN/ACK 数据包的。

换句话说,一个恶意的入侵者在其他的Internet 角落里利用带有连接请求的syn 数据包对网络路由器进行洪水攻击。这些数据包带有虚假的IP 地址,这些地址都是grc.com 的。这样以来,路由器认为这些Syn 数据包是从grc.com 发送来的,所以他们便对他们发送SYN/ACK数据包作为三次握手过程的第二个步。


恶意的数据包其实就被那些被利用的主机“反射”到了受害者主机上。这些被反射的数据包返回到受害者主机上后,就形成了洪水攻击。

阻拦反射攻击

我们有一些好消息,这种攻击看起来能够很简单的阻拦。因为我们自己不是网络服务提供商,以我们从来没有任何连接到远程带有BGP 服务的路由器上的需要。这样以来,我便需要Verio去阻拦任何从BGP 服务端口179 发起的入站数据。因为这个恶意攻击者的SYN 数据包的目标是网络上中介路由的179 号端口,任何反射的数据包也应该会从那个端口发出。

Verio 的工程师加了一个filter 到提供我们网络服务的集合路由上,他用来阻拦(丢弃)任何从179 端口发来的数据包。从179 号端口发送来的数据包洪水立即停止了。

但我们并没有回到Internet 上。

一个刚从网上抓到的数据包显示我们现在正被一群全新的网络服务器攻击。因为这第二群攻击是在我们阻拦了从179 端口发送来的攻击以后才出现的,所以这第二拨攻击没有办法跟第一拨的攻击力相比。

我们现在正在被从端口22 (Secure Shell), 23 (Telnet), 53 (DNS), 和80 (HTTP/Web)上发送来的SYN/ACK 数据包攻击。这其中更有一些从端口4001 (代理服务器端口)和6668(IRC 聊天)发送来的数据包。

很可惜的是,因为这第二波攻击完全出乎我的意料,所以我没有抓到这第二波攻击的完整的数据包来作为取样。但是,我先前在第一波攻击中所抓到一些日志有展现一些非BGP 所发出的SYN/ACK 包。

这是一小部分先前从HTTP(网页服务)端口80 上所发出SYN/ACK 攻击数据包的样本


这蜂拥而来的SYN/ACK 数据包和一些非路由的网络服务器告诉了我们,任何用于普通目的TCP 连接许可的网络服务器都能够用做数据包反射服务器。当我看到我们光阻拦从BGP 端口传来的数据是远远不够的,我研发了一套更全面的解决方案来对付这种攻击。这套方案我们会在下面讨论。

在装置好对付反射攻击的filter 后,我们立即就能够重新返回网上了。经过我不能够监控在装置filter 后的攻击状况,但看到下面的这些信息还是让我冒了一阵冷汗…

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!