破坏之王:DDoS攻击与防范深度剖析
上QQ阅读APP看书,第一时间看更新

1.1 探索期:个人黑客的攻击

早期的“黑客”都是一些技术爱好者。他们年轻、有激情、勇于探索,而且熟悉技术的最新进展,具有敏锐的洞察力。所以,他们能够找到当时系统中存在的漏洞和缺陷,并利用这些漏洞实现自己的目的。

“黑客”、“骇客”和“极客”的区别

“黑客”源自英文单词hacker,原本在美国的电脑界是带有褒义的,特指那些擅长计算机技术,具有强烈的好奇心和动手能力,并且崇尚自由的人。早期的“黑客”都是高级程序员,他们发现系统中的漏洞,编写入侵工具,并实践它们。后来,一些虽不编写程序但擅长使用工具进行“实战”的人,也被纳入了“黑客”的范畴。他们善于通过蛛丝马迹寻找系统的弱点,选择合适的工具,来实现入侵的过程。

“骇客”是Cracker的音译,就是“破解者”的意思,本意是指那些专门破解商业软件,绕过付费机制,从而免费使用的人。很多“骇客”会将破解后的软件发布到互联网上供大众下载使用。后来,这一概念和“黑客”的概念被混淆了,两者的区别越来越模糊。

“极客”来自于美国俚语Geek的音译,最初指性格古怪的人。很长时间,Geek在西方文化里一直偏向褒义。随着网络社交的普及,人们对“极客”的定义也逐渐发生了变化。现在,人们一般认为,花费大量业余时间在网络中,并且偏爱新技术产品的人群,就是“极客”。他们不一定是电脑高手,但对电脑和网络有很强的依赖性,喜欢尝试高科技产品。

但同时,这些“黑客”在技术之外的领域并非天才。他们想到什么就做什么,随心所欲地发起攻击,而不是效力于特定组织。早期的分布式拒绝服务攻击往往缺乏明确的目的性,起因可能五花八门。也许是某人发现了一种有趣的攻击手法,只是想验证一下该攻击手法;也许是把攻击行为作为一种挑战,用以验证自己的天才能力;也许纯粹是为了向朋友炫耀。迈克尔·迪蒙·卡尔斯(“黑手党男孩”)甚至声称自己的目的是在网络世界中建立所谓“统治”。

所以,这些行为从攻击者的角度来看,基本不会带来经济上的收益。而从受害者的角度来看,往往波及的范围很大,具有轰动效果,但对具体的个人或组织,损失并非难以承受。

最早的拒绝服务攻击发生在1996年,受害者是当时纽约最大的互联网服务提供商Panix。3年后,发生了针对明尼苏达大学的攻击,攻击者使用Trinoo构建了真正的分布式控制网络。在早期的“黑客”行动中,最具轰动效应的就是“黑手党男孩”对雅虎、亚马逊等著名网站发动的攻击,这是早期“黑客”中暴露真实身份的一个。最著名可能也是最具威胁的一次,是2002年针对13台根域名服务器的攻击。虽然持续时间很短,也没有导致所有服务器完全瘫痪,但是只要设想一下行动成功的后果,就会让人不寒而栗。本节下面的内容就是对这几次事件的详细介绍。

1.1.1 第一次拒绝服务攻击

第一次拒绝服务攻击发生在1996年9月6日下午5:30。Panix,这个纽约市历史最悠久、规模最大的互联网服务提供商成为了攻击的受害者。公司的邮件、新闻、Web和域名服务器等同时遭受攻击。如图1-2所示,据《时代杂志》[2](Time Magazine)报道,至少6000名用户因此而无法收取邮件。

图1-2 Panix攻击

攻击者采用的方法非常简单:不断向服务器发送连接请求(TCP SYN请求),速度高达每秒150次。服务器忙于应对这些请求,从而无法回应正常的用户。这种攻击方式后来被称为“SYN FLOOD攻击”,是拒绝服务攻击的一种。即使到现在,SYN FLOOD攻击也经常被使用。此外,攻击者还采用了随机伪造源地址的方式。一方面,这使得攻击来源难以追踪;另一方面,随机的源地址也使得过滤和阻断攻击变得非常困难。[3]

完全消除DDoS攻击是极为困难的一件事。尤其当用户正常的访问量较大时,很难立刻将其与恶意伪造的访问区分开来。幸运的是,削弱这种攻击造成的危害是可能实现的。我们一般称其为“缓解技术”。Panix被攻击后,计算机紧急响应小组(CERT)做出了快速响应。9月19日发布了TCP SYN Flooding and IP Spoofing Attacks,提出了缓解SYN FLOOD攻击和IP欺骗攻击的建议。[4]

1.1.2 分布式攻击网络:Trinoo

1999年8月17日,美国明尼苏达大学的一台服务器遭到攻击,造成了连续两天的服务中止。接下来的几天中,又有至少16台主机遭到同样的攻击,其中有一些并不在美国境内。

这应该是第一次真正意义上的DDoS攻击,之前针对Panix的攻击并没有表现出“分布式”特性,很可能是从单一主机发起的。而这一次,攻击来自至少227台主机,它们的所有者并不知道,这些设备居然成为了黑客手中的工具。攻击数据包都是UDP格式的,并未隐藏源地址[3]。所以,明尼苏达大学追踪这些IP地址,并联系了这些攻击主机的真正所有者,以停止攻击进程。但这一方法并未奏效,因为攻击者采用了一个简单的对策:加入更多的被控制主机进行攻击。相关调查人员在一台主机中发现了Trinoo的源代码,同时发现了一个包含888个IP地址的文件,这很可能就是当时Trinoo网络的规模。在另一个名为“216”的目录中,还发现了包含10549个地址的文件,据估计是存在漏洞的潜在控制目标。[5]

Trinoo是第一个使用控制网络进行攻击的DDoS工具。攻击者首先入侵并控制一些主机,在其上安装扫描工具、攻击工具以及Trinoo控制程序,我们一般称其为控制主机(Master)。接着,攻击者会通过控制主机入侵并控制更多电脑,安装受控和攻击软件,我们称其为攻击主机(Slave)。发动攻击时,只需对控制主机发送指令,由它们自动管理攻击主机发送攻击数据包。在本次攻击中,被控制主机大多数是Solaris 2.x系统的。由于在远程调用服务(RPC)中存在一个缓冲区溢出漏洞而被恶意代码控制。[6]

1.1.3 黑手党男孩

2000年2月7日,门户和搜索网站雅虎(Yahoo)遭到攻击,被迫中断服务一个小时。紧接着,Buy.com也遭到类似的攻击。之后的一周内,eBay、CNN、Amazon和Dell.com接连被攻陷。

4月18日,美国广播公司(ABC)新闻报告,一名15岁的加拿大男孩被警方逮捕,怀疑与之前的黑客攻击事件有关。这名男孩名叫迈克尔·迪蒙·卡尔斯(Michael Demon Calce),是加拿大魁北克省的一名普通高中生,在互联网上,其化名是“黑手党男孩”(Mafiaboy)。正是他开展了针对Yahoo的攻击行动,并将这次行动命名为“RIVOLTA”(意大利语,意为“暴动”)。按照Calce本人当时的说法,这是为了让自己在网络世界中建立所谓“统治”。接着,他在一周内接连攻击了Buy.com、eBay、CNN、Amazon和Dell.com。不过几年后,在2011年的一次采访中,他又声称,当时只是下载了网上的安全工具,在不经意间输入了一些知名网站。后来,当他从新闻中得知消息时,才开始明白到底发生了什么。[7]

攻击发生后,卡尔斯就开始在IRC聊天室中宣称对攻击负责,这让美国联邦调查局和加拿大皇家骑警产生了怀疑。不久,他又声称Dell.com被攻陷,而此时这一消息尚未被任何媒体报道。于是,卡尔斯成了警察眼中的头号嫌疑人。审问过程中,卡尔斯最终不得不承认了大部分指控。他的律师声称,孩子只是在进行一次未经监督的测试,目的是设计一种防火墙的改进方法。最终,蒙特利尔青年法院在2001年9月12日判处他18个月的“开放式监禁”(Open Custody),缓期一年执行,限制使用互联网,以及一笔较小的罚金。根据Yankee Group的一位高级分析师估计,这次攻击造成了共计12亿美元的损失。

2012年5月,卡尔斯的故事被写成了一本书,名叫《黑手党男孩:一个年轻人的黑客肖像》(如图1-3所示)。

图1-3 《黑手党男孩:一个年轻人的黑客肖像》

1.1.4 根域名服务器的危机

域名服务(Domain Name Service,DNS)是一种互联网地址解析服务。它将我们熟悉的域名(例如www.google.com)映射成为IP地址(例如74.125.128.99)。域名服务采用类似目录树的层次结构,当一台域名服务器遇到未知的域名时,就会向上级服务器询问。而这棵树的顶端,就是13台根域名服务器。根域名服务器是互联网的关键基础部件,在理论上,针对它们的攻击可以影响全球的域名系统。1997年3月,因为技术问题7台根服务器就曾停止运行,但这并未引起人们足够的重视。

2002年10月21日,美国东部时间下午4:45开始,这13台根域名服务器遭受到有史以来最为严重、规模最为庞大的一次网络袭击,攻击持续到6:00。此次事件正是一次分布式拒绝服务攻击,超过常规数量30~40倍的数据猛烈地向这些服务器袭来,目标是全部的13台服务器,持续大约1个小时。造成的后果是9台服务器不能正常运行,其中7台丧失了对网络通信的处理能力,另外2台也紧随其后陷于瘫痪。

对每个根服务器的攻击流量大约为50~100Mbit/s(兆比特每秒),100~200Kpps(千数据包每秒)。总流量为900Mbit/s(兆比特每秒),1.8Mpps(千数据包每秒)。发送的数据包包括ICMP、TCP SYN和UDP。攻击的源地址是随机产生的,但基本都位于当时路由表中存在的网段内。[8]

根据网络流量报告(The Internet Traffic Report),当天全球的流量指数和数据包丢失率如图1-4所示。[9]

图1-4 骨干网流量指数和丢包率

由于攻击不是在短时间内便告结束,而且攻击方式相对简单,因此易于采取相应措施,否则,全球互联网将会有相当一部分彻底中断。

之后,随着技术的发展,根服务器都采用了Anycast和负载均衡技术进行防御。现在,影响其运行已经远比当时困难。