破坏之王:DDoS攻击与防范深度剖析.pdf
http://www.100md.com
2020年1月3日
![]() |
| 第1页 |
![]() |
| 第9页 |
![]() |
| 第16页 |
![]() |
| 第27页 |
![]() |
| 第32页 |
![]() |
| 第129页 |
参见附件(13791KB,358页)。
破坏之王:DDoS攻击与防范深度剖析,这是一本关于ddos安全相关的书籍,作者讲述了ddos的发展,ddos的防范与攻击等内容,帮助爱好者更简单轻松了解DDoS。

内容介绍
网际空间的发展带来了机遇,也带来了威胁,DDoS是其中具破坏力的攻击之一。本书从不同角度对DDoS进行了介绍,目的是从被攻击者的角度解答一些基本问题:谁在攻击我?攻击我的目的是什么?攻击者怎样进行攻击?我该如何保护自己?全书共分7章。
第1章讲述了DDoS的发展历史,梳理了探索期、工具化、武器化和普及化的过程。第2章介绍了DDoS攻击的主要来源—僵尸网络,对于其发展、组建和危害进行了讨论,并专门介绍了自愿型僵尸网络。
第3章讲解了DDoS的主要攻击方法,包括攻击网络带宽资源型、攻击系统资源型以及攻击应用资源型。第4章列举了攻击者使用的主要DDoS工具,对于综合性工具、压力测试工具和专业攻击工具分别举例详细介绍。
第5章从攻击者的角度讨论了DDoS的成本和收益问题。第6章分析了DDoS的治理和缓解方法,对源头、路径和反射点的治理以及稀释和清洗技术进行了介绍。第7章展望未来,对网络战、APT攻击和大数据技术进行了一些探讨。
《破坏之王:DDoS攻击与防范深度剖析》适合各类人员阅读,信息安全专业的学生和爱好者、从事信息安全的咨询和运维人员、企业IT策略的制定者,都可以从中找到自己感兴趣的部分。
作者信息
鲍旭华,博士,绿盟科技战略研究部研究员,主要研究领域为信息安全事件分析、安全智能和态势感知。洪海,绿盟科技安全研究部研究员,长期专注于网络攻防技术的研究,主要的研究方向包括漏洞挖掘与利用的相关技术、分布式拒绝服务攻击、下一代网络的安全性问题等。
曹志华,绿盟科技安全研究员,酷爱逆向工程,是OD、IDA及wireshark的忠实粉丝,感兴趣的方向包括壳、Botnet、数据(包)分析等,现专注于DDoS网络攻防。
目录预览
第1章 DDoS攻击的历史
第2章 DDoS攻击的来源
第3章 DDoS攻击的方法
第4章 DDoS攻击的工具
第5章 DDoS攻击的成本和收益
第6章 DDoS攻击的治理和缓解
第7章 未来与展望
DDoS攻击的历史
1)探索期:新技术出现不久,人们不断摸索其使用方法,个人的兴趣和好奇心占主导地位。例如,火药出现后被用于制作爆竹。
2)工具化:技术的应用方式开始定型,成为实用性工具,对成本和收效的考虑占主导地位。例如,猎枪的出现以及火药在爆破领域的应用。
3)武器化:技术被大规模用于(或准备用于)战争中,政治势力会对该类武器的生产、拥有和使用进行控制。例如,大部分国家对现代枪械的管理方式。
4)普及化:技术的完善大幅降低了生产、使用和维护的成本,在法律允许的条件下,个人拥有也变得容易。例如,美国允许公民拥有枪支,而拥有的成本很低,3D打印的发展更是让技术门槛几乎消失。
破坏之王:DDoS攻击与防范深度剖析截图


破坏之王:DDoS攻击与防范深度剖析
鲍旭华 洪海 曹志华 著
ISBN:978-7-111-46283-5
本书纸版由机械工业出版社于2014年出版,电子版由华章分社(北京华
章图文信息有限公司)全球范围内制作与发行。
版权所有,侵权必究
客服热线:+ 86-10-68995265
客服信箱:service@bbbvip.com
官方网址:www.hzmedia.com.cn
新浪微博 @研发书局
腾讯微博 @yanfabook目录
序
前言
第1章 DDoS攻击的历史
1.1 探索期:个人黑客的攻击
1.1.1 第一次拒绝服务攻击
1.1.2 分布式攻击网络:Trinoo
1.1.3 黑手党男孩
1.1.4 根域名服务器的危机
1.2 工具化:有组织攻击
1.2.1 在线市场面临的勒索
1.2.2 世界杯博彩网站敲诈案
1.2.3 操纵政党选举的攻击
1.2.4 燕子行动
1.2.5 史上最大规模的DDoS
1.3 武器化:网络战
1.3.1 网络战爆发:爱沙尼亚战争
1.3.2 硝烟再起:格鲁吉亚战争
1.3.3 美韩政府网站遭攻击
1.4 普及化:黑客行动主义1.4.1 匿名者挑战山达基教会
1.4.2 维基解密事件
1.4.3 索尼信息泄露案
1.5 小结
1.6 参考资料
第2章 DDoS攻击的来源
2.1 僵尸网络的发展
2.1.1 演化和发展趋势
2.1.2 知名僵尸网络
2.2 僵尸网络的组建
2.2.1 节点
2.2.2 控制
2.3 僵尸网络的危害
2.4 自愿型僵尸网络
2.5 小结
2.6 参考资料
第3章 DDoS攻击的方法
3.1 攻击网络带宽资源
3.1.1 直接攻击
3.1.2 反射和放大攻击
3.1.3 攻击链路3.2 攻击系统资源
3.2.1 攻击TCP连接
3.2.2 攻击SSL连接
3.3 攻击应用资源
3.3.1 攻击DNS服务
3.3.2 攻击Web服务
3.4 混合攻击
3.5 小结
3.6 参考资料
第4章 DDoS攻击的工具
4.1 综合性工具
4.1.1 Hping
4.1.2 PenTBox
4.1.3 Zarp
4.2 压力测试工具
4.2.1 LOIC
4.2.2 HOIC
4.2.3 HULK
4.3 专业攻击工具
4.3.1 Slowloris
4.3.2 R.U.D.Y.4.3.3 THC SSL DOS
4.4 小结
4.5 参考资料
第5章 DDoS攻击的成本和收益
5.1 攻击成本
5.2 获取收益
5.2.1 敲诈勒索
5.2.2 实施报复
5.2.3 获取竞争优势
5.3 小结
5.4 参考资料
第6章 DDoS攻击的治理和缓解
6.1 攻击的治理
6.1.1 僵尸网络的治理
6.1.2 地址伪造攻击的治理
6.1.3 攻击反射点的治理
6.2 攻击的缓解
6.2.1 攻击流量的稀释
6.2.2 攻击流量的清洗
6.3 小结
6.4 参考资料第7章 未来与展望
7.1 未来的网络战
7.2 DDoS的APT时代
7.3 DDoS与大数据
附录A DDoS主要攻击方法、工具和事件一览
附录B 关于DDoS的9个误区
附录C 国外知名黑客组织和个人简介
附录D NTP和DNS放大攻击详解序
随着科学技术的迅猛发展和深度应用,网络空间中的变革正在不断
改变和影响着人们的生活方式。然而,一次次惊喜的背后,却隐藏着诸
多隐患。无论是国家安全还是集体利益或个人利益,在网络空间中都会
随时面临挑战。2013年8月25日,我国顶级域名CN的解析服务器遭到攻
击,造成大量以cn为后缀的网站无法访问,经济损失和社会影响难以估
计。而导致这一严重后果的,就是分布式拒绝服务(Distributed Denial
of Service,DDoS)攻击。
DDoS是一种以破坏为目的的攻击,十几年来不断发展变化,成为
不同组织和个人的工具,用于网络中的勒索、报复,甚至战争。从荒唐
的“黑手党男孩”到神秘的“匿名人”组织,从雅虎、花旗这样的商业巨头
到美国、俄罗斯、朝鲜与他国的争端,这本书揭示了DDoS的发展历
史。
了解仅仅是开始,感兴趣的读者会有一系列疑问。谁在进行攻击?
他们为什么发起攻击?使用了什么方法?如果我受到攻击,该怎样保护
自己?这本书从多个角度对DDoS进行了解读。传统的DDoS大多来自僵
尸网络,而近年来高性能服务器、移动设备甚至志愿者都成为了可能的
来源;攻击者不是疯子,每次攻击都会有明确的目的,以及对成本和收
益的考虑;DDoS的原理看似繁杂,却可以归为三类,实用的工具则数不胜数;面对这种攻击,绝对的防御并不存在,综合五个环节的治理和
缓解才是应对之道。最后,这本书在附录中还介绍了国外知名的黑客组
织和个人,以及常见的几个误区。
本书的作者之一是我的学生。想不到在我心目中的孩子,转眼间有
了自己的想法和见解,甚至都开始写书了。这本书称不上尽善尽美,很
多观点也有可商榷处。但让我感到一丝欣慰的是,国内安全领域的一代
新人正在成长。在我们的政府部门、学术机构和安全企业,有这么多当
年熟悉的面孔,他们有了自己的思想和声音,不再盲目跟随国外的脚
步。我能够感到,中国成为一个信息安全强国的日子,也许就在不远的
将来。
冯登国
中国科学院软件研究所
2014年1月25日前言
现实与网络中的战争
1939年9月1日凌晨,第二次世界大战爆发。德军14个师兵分三路,从北、南、西同时入侵波兰,波军6个集团军80万人组成的防线瞬间瓦
解。由于兵力分散和移动迟缓,波军很快被各个击破,到9月21日“布楚
拉战役”结束,主力已全军覆没。这次战争的时间之短,出乎所有人的
意料,它将一种新的战争模式呈现在人们眼前:“闪电战”。
人们在惊叹“闪电战”速度的同时,往往忽略了另一个因素:兵力对
比。当时的德军的确强大,但波军也非弱旅,在之前的“波苏战争”中和
苏联互有胜负。此外,德军的突击部队其实只有14个师,却能够轻易突
破防线,还在之后的战斗中屡战屡胜,作用之大让当时的军事学家跌破
眼镜。
2012年7月,一部由美国制作的电影预告片被传到互联网上,由于
包含对伊斯兰教的侮辱,引起了穆斯林的强烈抗议。9月,一个自称“伊
兹丁·哈桑网络战士”的黑客组织,在网上声称对美国金融业展开报复性
战争。短短几周之中,美国银行、花旗集团、富国银行、美国合众银
行、PNC金融服务集团等金融巨头的网上服务因遭受攻击而中断,一个
名字反复出现在报纸头条:“分布式拒绝服务攻击”。一个名不见经传的黑客组织,面对这些金融巨头,为什么能一再获
得胜利?成本高昂的防护系统,精英荟萃的安全团队,为什么不堪一
击?到底什么是“分布式拒绝服务攻击”?什么是分布式拒绝服务攻击
分布式拒绝服务攻击是从多个来源,彼此协同进行的拒绝服务攻
击。这个名称包含了两层含义:首先,它是一种“拒绝服务”攻击;其
次,它是一种“分布式”攻击。
那么,什么是“拒绝服务”(Denial of Service,DoS)呢?可以这样
认为,凡是导致合法用户不能访问服务的行为,就是“拒绝服务”攻击。
最典型的例子是造成一个公开的网站无法访问。攻击者使用的方法通常
很简单,就是不断提出服务请求,使服务提供方疲于应付,直到合法用
户的请求来不及得到处理。
但是,大型企业或组织往往具有较强的服务提供能力,足以处理单
个攻击者发起的所有请求。于是,攻击者会组织很多协作的同伴(或计
算机),从不同的位置同时提出服务请求,直到服务无法被访问。这就
是“分布式”。现实中,攻击者往往没有那么多同伴,所以,他们通常利
用所谓的“僵尸网络”来控制大量计算机进行攻击。
然而,问题依然存在。为什么这种攻击具有如此威力?它和“闪电
战”又有什么关系呢?笔者认为,这两者能够取得辉煌战果的根本原理
是相同的:持续制造局部优势。
运用“闪电战”的德军,能够依靠机械化部队的速度集中兵力,每场战斗其实都是以强胜弱。波军则分散在漫长的国境上和广阔领土中,只
能被各个击破,如果个别阵地存在顽强抵抗,德军就会绕过去,在另一
个局部获得胜利。当失去友军支撑后,原本坚守的波军阵地只能不战而
溃。所以,德军可以取得远超军力对比的战果。
网络世界中的一些特性有所变化。首先,IT系统的依赖性更强,需
要大量环境条件和其他应用来支撑,也就更容易存在弱点;其次,比起
物理世界,攻击者可以提前观察受害目标,所以更容易发现弱点;再
次,攻击者更方便组织攻击力量,完全让世界各地的被控制主机同时发
起攻击。而“分布式拒绝服务”就是利用了这些特性。所以,即使拥有的
资源、技术和人力远逊于专业团队,一个小型黑客组织也依然能够不断
打垮金融巨头。原因无他,只因制造局部优势。
正如本杰明·萨瑟兰在他的《技术改变战争》中所述:“被视为‘非对
称’的武器能够给予处于技术劣势的一方某种优势,让他们有机会去袭
击装备更加先进的敌人。”本书读者对象
DDoS是一种破坏力很强的网络攻击方法,而且在可以预见的未来
中,还没有任何手段能够完全防御这种攻击。本书希望从受攻击者的角
度,来讨论以下几个问题:
1)谁在攻击我?
2)攻击我的目的是什么?
3)攻击者怎样进行攻击?
4)我该如何保护自己?
读者可能依然不了解自己是否有必要读这本书,那么可以试着回答
以下问题,如果其中一个回答“是”,本书就可能会给你带来某种帮助。
1)我是否需要为公司(组织)的网络安全负责?
2)我是否需要为他人介绍一些基本的网络安全知识?
3)我的客户是否关心网络安全?
4)了解网络安全对我未来的职业发展是否有益?
5)我管理的业务是否受安全基础设施的影响?本书内容简介
第1章讲述了DDoS的发展历史。第2章~第4章是本书的重点,从来
源、方法和工具三个角度介绍DDoS攻击本身。第5章讨论攻击者的成本
和收益问题。第6章分析在不同环节对DDoS的治理和缓解方法。第7章
是对未来的一些探讨。
此外,本书在附录中提供了一些很有价值的资料。附录A是DDoS
攻击方法、工具和相关事件的汇总;附录B解读了9个DDoS常见误区;
附录C介绍了一些国外知名黑客组织和个人;附录D对NTP和DNS放大
攻击做了更详细的解读;附录E提供了《2013年绿盟科技DDoS威胁报
告》,用真实数据说明DDoS攻击的现状。第1章 DDoS攻击的历史
“一切对存在的追问都以历史性为特征。”
——海德格尔
20世纪的最后几年中,分布式拒绝服务(Distributed Denial of
Service,DDoS)凭空出世,随后屡次在网络中掀起轩然大波,成为世
界关注的焦点,即使对信息安全并不了解的人也耳熟能详。本章从历史
的角度,为读者回顾这一过程。
关于“人类天生就具有攻击性”的命题是否正确,尚没有一个定论,也远远超出了本书的范畴。但是就历史来看,世界上的战争几乎从未停
息过。而每当一种新技术诞生,就可能会被考虑是否可以用作武器。在
物理学、化学、生物学、核物理学等领域,这样的例子不胜枚举。可被
直接或间接用于实施攻击行为的技术,其发展和应用的历程存在一定的
规律,一般而言,可以分为四个阶段。
1)探索期:新技术出现不久,人们不断摸索其使用方法,个人的
兴趣和好奇心占主导地位。例如,火药出现后被用于制作爆竹。
2)工具化:技术的应用方式开始定型,成为实用性工具,对成本
和收效的考虑占主导地位。例如,猎枪的出现以及火药在爆破领域的应用。
3)武器化:技术被大规模用于(或准备用于)战争中,政治势力
会对该类武器的生产、拥有和使用进行控制。例如,大部分国家对现代
枪械的管理方式。
4)普及化:技术的完善大幅降低了生产、使用和维护的成本,在
法律允许的条件下,个人拥有也变得容易。例如,美国允许公民拥有枪
支,而拥有的成本很低,3D打印的发展更是让技术门槛几乎消失。
不同技术的发展有各自的特点,其历程也会不同。例如核裂变技
术,在经过了探索期后直接进入武器化,作为原子弹在战争中使用。之
后才进入民用领域,出现了核电站。而随着原理的普及和成本下降,一
位美国的14岁少年甚至自行制造出了核聚变反应堆,并在TED上发表演
讲。
[1]
不同的阶段之间也会存在重叠,同一技术很可能在军事领域和民
用领域平行发展。
分布式拒绝服务攻击的发展符合这四个阶段。在探索期,发起攻击
的“黑客”大多是一些技术爱好者,单纯为了兴趣或炫耀而进行了尝试,时间和目标的选择都很随意。随着工具化的发展,这项技术被用于有组
织的行动,包括勒索、竞争或报复。为了使收益或效果最大化,他们会
精确地选择目标和时机。当国家级政治势力意识到其价值时,分布式拒
绝服务攻击很快被武器化,并用在网络战中。最后,随着使用越来越方便且易于获取,普及化也促进了黑客行动主义的发展。事件的爆发往往
和群体的情绪有关,容易被外部事件触发,打击的范围开始扩大。与枪
支和火药类似,分布式拒绝服务攻击也是平行发展的。表1-1列出了不
同阶段DDoS攻击事件的特点。
表1-1 不同阶段DDoS攻击事件的特点
图1-1列出了在分布式拒绝服务攻击的发展历史中发生的主要攻击
事件。本章的后续小节会分别详细介绍。图1-1 DDoS的历史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~100Mbits(兆比特每秒),100~200Kpps(千数据包每秒)。总流量为900Mbits(兆比特每
秒),1.8Mpps(千数据包每秒)。发送的数据包包括ICMP、TCP SYN
和UDP。攻击的源地址是随机产生的,但基本都位于当时路由表中存在的网段内。
[8]
根据网络流量报告(The Internet Traffic Report),当天全球的流量
指数和数据包丢失率如图1-4所示。
[9]
图1-4 骨干网流量指数和丢包率
由于攻击不是在短时间内便告结束,而且攻击方式相对简单,因此
易于采取相应措施,否则,全球互联网将会有相当一部分彻底中断。
之后,随着技术的发展,根服务器都采用了Anycast和负载均衡技
术进行防御。现在,影响其运行已经远比当时困难。1.2 工具化:有组织攻击
从用户增长的角度来看,互联网的早期设计就像是交通规划,诸多
未曾考虑的问题以超乎想象的速度爆发出来。于是,互联网成了一个难
以监督而易于藏匿的世界,这里的犯罪成本和风险远比现实世界来得
低。
在经过了早期无序的攻击时期后,一个问题突然闪进人们的脑海
中:是否可以用如此强有力的工具牟利?
较早利用这一工具的是勒索组织,他们有的使用已有攻击工具,有
的租用僵尸网络,有的干脆自己针对性地开发工具。猎物往往是一些通
过互联网盈利的企业,例如在线交易市场或博彩网站。这些勒索组织会
先对猎物进行短期的示威性攻击,然后发送勒索信,并对其进行威胁:
如果不支付勒索金,就在业务最繁忙时再次攻击。很多中小企业会屈
从,并秘而不宣。这是因为追查网络犯罪者非常困难,即使警方介入也
难以保证成功,而犯罪者一旦逃脱,就可能实施猛烈的报复。另一方
面,购买专业的缓解方案显得较为昂贵,甚至会超过支付的勒索金。但
是,依然有抗争成功的例子,本节介绍的在线市场ClickBank以及南非
世界杯期间经营的博彩网站最终成功抵抗了攻击者。
第二种情况是打击竞争者,包括商业和政治上的竞争对手。真正的获利者并不出面,他们会雇用犯罪组织,在重要的时间点攻击对手,造
成对方声誉损失或阻止对方的行动。这类攻击很难得到直接的证据,但
行为模式非常清晰。加拿大政党选举中就曾遇到过此类攻击。
第三种情况最为极端,它的目的是报复。2012年,一个黑客组织认
为YouTube的某段视频是对伊斯兰教的侮辱,于是宣布对美国实施报复
行动,直接对象是美国的各大银行。这次行动被称为“燕子行动”,持续
了一年以上,数十家银行遭到打击,造成的损失难以估计。另一次著名
的报复行动是Spamhaus事件,它是一个反对垃圾邮件的组织。该组织遭
到攻击的原因被认为是它指出了垃圾邮件发送者。这次事件中攻击流量
达到了300Gits,到2013年为止,是史上最大规模的分布式拒绝服务攻
击。
黑客不再是有组织攻击的主角,他们成了操纵者手中的武器。这类
攻击的特点是对目标和时间点的选择非常精确,利益最大化是行为的必
然准则。1.2.1 在线市场面临的勒索
ClickBank是一家在线的数字信息产品市场,为数字内容创作方和
营销方之间建立联系。SpamCop中是一个反垃圾邮件组织,它追踪批量
发送的垃圾邮件,发现发送者的IP地址,并建立“SpamCop Blacklist”,提供给希望免受垃圾邮件骚扰的用户。[10]
2003年6月21日,大量请求淹没了两家公司的服务器,使得正常用
户无法使用服务。ClickBank的有关负责人声称,每台服务器每秒钟会
接收到数以千计的http请求,同时日志文件以每秒1MB的速度增长。有
消息称,3周前,另外一些不愿公开名称的公司和政府机构也遭到了同
样的攻击。攻击者要求ClickBank和SpamCop支付勒索金,否则不会停
止攻击。但两家公司并未屈服,而是与FBI合作。6月25日,他们宣布,在与FBI紧密合作后,终于发现了DDoS攻击的肇事者。[11]1.2.2 世界杯博彩网站敲诈案
图1-5 2010年南非世界杯
2011年4月,德国杜塞尔多夫的法庭对一名网络罪犯进行了宣判。
该网络罪犯在2010年南非世界杯(图1-5)期间,对在线博彩网站进行
了勒索。罪犯是一名法兰克福人,他成功地勒索了三家网站,并试图勒
索另外三家,所使用的武器就是DDoS攻击。根据德国媒体报道,勒索
者用每天65美元的价格租用僵尸网络,然后威胁这些赌博网站,如果不
给他支付2500欧元,就会在7月世界杯期间使网站无法访问。当三家网
站拒绝支付时,他将勒索金降到了1000欧元。据网站经营者估计,网站
发生故障期间,他们的大型办事处损失了约25000~40000欧元,小型办
事处损失了约5000~6000欧元。
法院最终判该男子有期徒刑2年零10个月,并责令赔偿受影响的企业35万欧元。
[12]
德国对计算机阴谋破坏行为的最高惩罚是入狱10年。
大型体育赛事期间,对博彩网站进行敲诈的案件已经不是第一次发生。
2006年,一个俄罗斯黑帮就曾企图对英国博彩公司敲诈400万美元,结
果获罪入狱。1.2.3 操纵政党选举的攻击
2012年3月24日,本该是加拿大民主新党(Canada’s New
Democratic Party)的选举日,选民会进行在线投票。令人意外的是,选
举却发生了延时。Scytl公司为加拿大民主新党提供了一套先进的选举服
务,可以通过电子和邮寄方式实现投票。第一轮投票于3月23日下午5点
开始,24日上午9点正常结束。第二轮投票在24日上午11点开始后,就
开始出现投票延时现象,并快速恶化。根据Scytl的入侵检测系统和防火
墙的日志显示,这是一次外部攻击。于是,他们启动了标准的缓解流
程,包括增加系统的吞吐量和阻止恶意IP地址。这些措施使得服务较
慢,但依然可以工作,最终投票过程延长了3个小时。整个攻击过程
中,选票系统收到了来自1万余台僵尸主机(又称肉鸡)的超过1000万
次异常请求,攻击的时间也和每轮投票时间完全相符。由普华永道进行
的独立审计指出,投票结果未被篡改。调查显示,这1万台主机的IP地
址主要集中在加拿大,采用的就是分布式拒绝服务攻击。1.2.4 燕子行动
2012年7月,一个由美国人萨姆·巴西利(Sam Bacile)制作并导演
的关于伊斯兰教先知穆罕默德的影片预告片被放到YouTube上,引来了
伊斯兰国家的强烈抗议。9月18日,一个号称伊兹丁·哈桑网络战士
(Cyber fighters of Izz ad-din Al-Qassam)的黑客组织在pastebin网站上发
布公告,声称将美国银行和纽约交易所列为攻击目标,在YouTube上这
部亵渎伊斯兰教先知的影片被移除之前,攻击将一直持续。从此,代号
为“燕子行动”(Operation Ababil)的一系列针对美国金融机构的DDoS
攻击事件拉开了序幕。“燕子行动”这个代号引自《古兰经》里的安拉派
燕群去摧毁一队由也门国王派出攻击麦加的象群的故事。
到2013年6月为止,整个行动经历了三个阶段。第一阶段始于2012
年9月18日,持续了5个星期;第二阶段从2012年12月10日开始,持续了
7个星期;第三阶段从2013年3月5日开始,持续了9个星期,到5月6日停
止;第四阶段从2013年7月23日开始,计划持续两个月。
在整个行动中,大多数美国金融机构的在线银行业务都遭到了攻
击,其中包括美国银行(Bank of America)、花旗集团(Citigroup)、富国银行(Wells Fargo)、美国合众银行(US Bancorp)、PNC金融服
务集团、第一资本(Capital One)、五三银行(Fifth Third Bank)、BBT银行和汇丰银行(HSBC)。DDoS攻击对上述银行网站业务的连
续性和可获得性造成了严重的影响,同时也对银行的声誉造成了不可估
量的损失。由于事态的严重性,美国政府部门包括国土安全部
(DHS)、联邦调查局(FBI)以及金融监管机构均参与了事件的调查
和处理。
攻击者采用了非常丰富的攻击类型,既包括传统的TCP、UDP、ICMP Flood,也包括HTTP Flood、HTTPS Flood和DNS Flood。他们使
用的僵尸网络被称为Brobot,是由被植入了itsoknoproblembro的主机构
成。与众不同的是,这些主机主要由高性能的服务器组成。[13]1.2.5 史上最大规模的DDoS
Spamhaus是一家致力于反垃圾邮件的非盈利组织,总部在伦敦和日
内瓦。Spamhaus维护了一个巨大的垃圾邮件黑名单,这个黑名单被很多
大学研究机构、互联网提供商、军事机构和商业公司广泛使用。
[14]
从2013年3月18日起,Spamhaus开始遭受DDoS攻击。攻击者通过僵
尸网络,利用DNS反射技术进行攻击。根据服务提供商CloudFlare的监
控记录,3月18日初始的攻击相对比较温和,攻击流量约为10Gbits。从
标准时间21:30开始,攻击者将攻击流量猛增到75Gbits,如图1-6所示。
从3月19日到3月21日,对Spamhaus的攻击流量在30Gbits到90Gbits之间
波动。到3月22日,攻击流量达到了120Gbits。在攻击者发现无法有效
地击垮Spamhaus之后,他们改变了攻击策略,转而攻击CloudFlare的网
络带宽供应商和连接的互联网交换设施。在3月27日达到惊人的
300Gbits的攻击流量,被认为是互联网史上最大规模的DDoS攻击事
件。图1-6 3月18日Spamhaus攻击流量
事件的起因可能是Spamhaus将一家荷兰公司Cyberbunker列入了黑
名单,之后Spamhaus就开始遭受DDoS攻击。自称是攻击者发言人的斯
文·奥拉夫·坎普赫伊斯(Sven Olaf Kamphuis)在网上发表了一则讯息,称“我们很清楚,这是世界上公开进行的最大的DDoS攻击之一”,Cyberbunker是在报复Spamhaus“滥用其影响力”的行为。“从来都没有人
授权Spamhaus来决定互联网上该有哪些内容,”坎普赫伊斯说,“他们假
装抗击垃圾讯息,借此攫取了这一权力。”然而在4月,坎普赫伊斯又否
认策划和实施了这次攻击。
[15]
4月25日,西班牙警方逮捕了坎普赫伊
斯,被捕时,他在一个被改装成移动办公室的小货车里,里面满是线缆
和各种网络设备。
[16]1.3 武器化:网络战
人类历史上出现一种新技术,一出现就可能被思考是否可以用作武
器。如果可以,那么一定会被作为武器来使用。在物理、化学、生物、核能等领域,这样的例子数不胜数,分布式拒绝服务攻击也不例外。
已经发生的网络战中,攻击的目的有两种:一种是占领舆论制高
点,赢得国际社会支持;另一种是宣扬决心和能力。几次事件都爆发在
实力悬殊的国家之间,这决定了战争的方式和目标,所以这并不意味着
网络战只有两种形式。1.3.1 网络战爆发:爱沙尼亚战争
网络战的爆发并不出人意料,军事战略家早就对这种可能性做出了
预测。一个国家对基础信息网络的依赖性越强,就越容易遭受网络打
击。人们理所当然地将目光的焦点集中在美国这个世界上最大的经济
体、信息系统最发达的国家身上。然而,世事总是出人意料,直到战争
发生,大家才注意到一个宽带覆盖和互联网日常使用甚至超过美国的东
北欧小国——爱沙尼亚。
爱沙尼亚是位于波罗的海沿岸的一个小国(图1-7),二战结束后
成为苏联的一部分。为了纪念战争中牺牲的战士,苏联在众多的东欧国
家首都修建了巨大的铜像,爱沙尼亚也不例外。而当冷战结束,爱沙尼
亚宣布独立以来,这里生活的30万俄罗斯人和100万爱沙尼亚人之间的
关系越来越紧张,首都塔林的纪念像成了焦点。2007年4月,爱沙尼亚
首相安德鲁斯·安西普提出,将铜像从塔林转移到军人墓地。4月27日
(后来被称为“铜像之夜”),激进团体在这里爆发了冲突。事件不仅引
发本国骚动,也导致俄罗斯政府和民众的不满。俄罗斯外交部指责爱沙
尼亚一手促成紧张局面,并在5月1日以“铁路维修”为由,停止向爱沙尼
亚出口石油和煤。图1-7 爱沙尼亚地理位置
2007年4月底至5月,爱沙尼亚的重要网络基础设施,包括国会、总
统府、总理办公室、央行、主要媒体报社等网站都受到DDoS攻击而关
闭。攻击的第一次高峰出现在5月3日,当天莫斯科爆发最激烈的示威抗
议。另一次高峰是5月8日和9日,欧洲各国纪念战胜纳粹德国,攻击同
步升级,最少六个政府网站被迫下线,其中包括外交和司法部。最后一
次攻击高峰是15日,该国最大的几家银行被迫暂停国外连线。
爱沙尼亚国防官员追查攻击时,发现虽然攻击看似来自世界各地的电脑,但原始攻击直接来自俄罗斯,部分域名还以俄罗斯总统普京的名
义登记。面对指责,俄罗斯多次否认与事件有关,并抨击爱沙尼亚虚构
指控。俄罗斯驻爱沙尼亚大使弗拉基米尔·奇若夫向《卫报》指出:“说
攻击来自俄罗斯或俄政府是严重指控,你必须拿出证据来。网络空间无
处不在。我个人不支持这种行为,但人们应该先搞清楚袭击者来自哪
里,为什么发动攻击。”
[17]
爱沙尼亚是北约成员国,根据《北大西洋公约》有关条款规定,针
对任何一个成员国的攻击都可视为针对所有成员国的攻击。据此,北约
向爱沙尼亚派出了技术顾问,以帮助其消除网络攻击带来的损害。但除
此之外,北约并没有进一步采取任何正式的外交或军事行动。1.3.2 硝烟再起:格鲁吉亚战争
南奥塞梯位于高加索格鲁吉亚北部,曾为苏联时期格鲁吉亚苏维埃
社会主义共和国管辖下的一个自治州(图1-8)。1990年,格鲁吉亚准
备脱离苏联独立,南奥塞梯议会却宣布成立南奥塞梯共和国,脱离格鲁
吉亚成为苏联的一部分。之后的几年冲突不断,直到1994年才进入和平
状态。2008年4月,格鲁吉亚传出可能加入北大西洋公约组织的消息,双方冲突也因此一触即发。
图1-8 南奥塞梯的战争形势图(摘自维基百科)
2008年8月5日,南奥塞梯的新闻网站OSInform和OSRadio遭到黑客攻击,网站标识保持不变,内容却被替换为阿拉尼亚电视(格鲁吉亚政
府支持,面向南奥塞梯人的电视台)的内容。南奥塞梯特使Dmitry
Medoyev前往莫斯科,声称格鲁吉亚是在企图掩盖有关战争的信息。
2008年8月8日,格鲁吉亚展开全面军事行动进入南奥塞梯,很快控
制了该地区三分之二以上的领土,并包围了首府茨欣瓦利。同日,俄罗
斯军队进入南奥塞梯地区,9日展开军事行动,很快控制了茨欣瓦利,并在随后几日占领了南奥塞梯以外的格鲁吉亚领土和军事基地。
当俄军对格鲁吉亚的军事行动全面开始后,俄罗斯对格鲁吉亚的网
络攻击也全面展开,包括媒体、通信和交通运输系统在内的格鲁吉亚官
方网站都瘫痪了,对格鲁吉亚的军事行动造成了较大的影响,直接影响
到了格鲁吉亚的战争动员与支援能力。格鲁吉亚总统萨卡什维利的个人
主页被人替换(图1-9),黑客在网站上贴出了“精心”挑选的宣称“萨卡
什维利和希特勒‘有相似性’”的照片。总统萨卡什维利的网站及一家著名
电视台的网站,先是转移到一家美国公司的服务器上,但很快又受到攻
击。迫于无奈,格鲁吉亚总统萨卡什维利向波兰总统莱赫·卡钦斯基“求
救”,在征得后者同意后,格鲁吉亚政府将外交部的新闻稿张贴在卡钦
斯基的网站上。
[18]图1-9 格鲁吉亚总统萨卡什维利
格鲁吉亚驻英国大使馆发言人8月11日在接受英国媒体采访时表
示,格鲁吉亚的网站全面遭到封锁。
在国际调停下,2008年8月13日,格俄双方就停火原则达成一致。8
月18日,俄军开始从南奥塞梯撤军。8月26日,俄罗斯总统梅德韦杰夫
签署命令,宣布承认南奥塞梯和阿布哈兹独立。8月28日,格鲁吉亚宣
布与俄罗斯断交。9月10日,俄罗斯与南奥塞梯建立正式外交关系。
阿塞拜疆新闻网站day.az声称,是俄罗斯情报部门通过代理实施了
针对格鲁吉亚政府网站的DDoS攻击。但俄罗斯政府否认了这一指控,称这可能是某些个人行为。有人认为,是圣彼得堡的一个犯罪团伙——俄罗斯商业网(Russian Business Network)实施的攻击,因为正是他们
在2007年攻击了爱沙尼亚(图1-10)。以色列的计算机应急响应小组的
前首席Gadi Evron认为,这次攻击类似于网络暴乱,而不是网络战。
Greylogic的安全研究人员则声称,俄罗斯国防部军事情报局和俄罗斯安
全局(FSB)可能起到了关键作用,共同协调和组织了攻击。美国前情
报官员John Bumgarner的研究结论是:第一波网络攻击是俄罗斯军事行
动的一部分,而第二波则来源于对俄罗斯的同情者。
图1-10 俄罗斯商业网
事实上,俄罗斯也遭受到网络打击。8月8日,一家俄文网站发布消
息称,南奥塞梯政府官方网站和俄罗斯官方通讯社俄新社网站均受到DDoS攻击。俄新社记者纳塔利娅·洛谢耶娃在博客中写道,这是“非常
严重的预谋行动,是信息战的一部分”。但她并未透露黑客攻击究竟来
自哪个国家。8月11日凌晨,俄罗斯英文电视频道“今日俄罗斯”受到黑
客的集中攻击,网站资源库被锁,随后出现技术故障。据该电视频道信
息安全部专家透露,IP地址显示,黑客攻击来自格鲁吉亚首都第比利
斯。1.3.3 美韩政府网站遭攻击
图1-11 2009年7月美韩受攻击网站
2009年7月4日,美国与韩国的政府及知名机构网站遭受了DDoS攻击。如图1-11所示,受害者包括美国和韩国议会、白宫、纽约证券交易
所、华盛顿邮报等网站。
[19]
攻击分三个阶段进行,期间峰值流量高达13GBs。大部分的攻击
(93%)采用了HTTP GET FLOOD,其他主要是UDP FLOOD和ICMP
FLOOD攻击。如图1-12所示,对恶意程序的静态分析显示,构造的数据
是完全合法的HTTP GET请求。
[20]
根据一份韩国的研究报告显示,大约
115000台僵尸主机参与了攻击。
[21]
图1-12 2009年7月攻击中的恶意程序片段
第一阶段:7月4日(美国独立日),攻击针对美国和韩国网站。受
影响的网站包括白宫和五角大楼等网站。第二阶段:7月7日,攻击针对韩国网站,目标包括韩国总统府青瓦
台、国防部、公共管理和安全部、国家情报院和国民议会等。
第三阶段:7月9日,攻击针对韩国网站,目标包括该国的国家情报
服务,以及其最大的银行之一和主要的新闻机构。美国国务院声称其网
站也受到了攻击。
2009年10月30日,韩国国家情报局声称,攻击源来自朝鲜邮电部。
2011年3月4日,类似的攻击又发生了一次。韩国政府各部、国民议
会、军队总部、驻韩美军和各大银行等29个机构受到影响,韩国的网上
股票交易系统也被关闭数分钟。
[22]1.4 普及化:黑客行动主义
分布式拒绝服务攻击的普及化是一个必然的趋势。十年的发展中,相关工具越来越易用,越来越高效。而网络的便利使得获取该工具变得
异常容易。
同时,通信技术快速发展,使得信息以前所未有的高速流动,这带
来了一个意想不到的后果,那就是世界上各人种、各种族和国家中普通
人的一般价值观越来越趋向一致。违反这些价值观的行为(通常也是违
反当地法律的),一般会受到制裁。但是,总有一些组织或势力,可能
是宗教团体、跨国公司,甚至国家政权,不会受到制裁。例如本节中提
到的山达基教会、索尼公司和美国政府。
当分布式拒绝服务攻击实现了普及化,同时网络中存在对这些组织
行为不满的群体时,产生的结合物就是黑客行动主义。他们是有类似价
值观的人群,有类似于自由集会的组织形式,对某些现象不满而渴望发
出声音。于是,分布式拒绝服务攻击成了他们最好的选择。1.4.1 匿名者挑战山达基教会
2008年1月15日,博客网站Gawker发布了一段视频:著名影星汤姆·
克鲁斯声称要将自己完全奉献给山达基教会(Church of Scientology)。
随后,视频在网上快速流传,并引来大量恶搞模仿。
[23]
对此,山达基
教会警告,准备把发布或共享视频的用户诉诸法律。
图1-13 匿名者的标志
1月23日,匿名者组织(图1-13)在YouTube上发布宣言,对山达基
教会宣战。27日,匿名者成员声称,这次行动的目的是反对山达基教会
企图控制互联网信息,而不是反对教会本身。
[24]
最初他们使用Gigaloader和JMeter作为武器进行攻击。几天后,就
开始使用被称为低轨道离子炮(LOIC)的网络压力测试工具,发送大
量TCP和UDP数据包阻塞网络。之后的几年中,这几乎成了“匿名者”的标志性武器。
其间,一段视频被上传到YouTube,一个机器人的声音声称代表匿
名者告诉山达基教会领袖:“为了你的追随者好,为了全人类好,以及
为了好笑,我们会将你驱逐出互联网。”十天之内,该视频就吸引了数
以千计的观众。2月10日,成千上万的匿名者在世界各地同时抗议山达
基教会(图1-14),许多抗议者带着电影《V字仇杀队》中的面具。这
个面具很快就成了匿名者组织的代表符号。之后个人自发的抗议持续了
整整一年。
[25]图1-14 山达基教会总部外的抗议者
这次事件是“匿名者”(Anonymous)第一次参与黑客行动主义。从
此之后,它就成为了该主义最主要的奉行者。1.4.2 维基解密事件
维基解密(Wikileaks)是一个专门披露秘密信息的非营利组织,2006年12月由朱利安·阿桑奇(图1-15)创立。该组织的主要目的是揭露
政府及企业的腐败行为,运营费用主要依靠捐助者以及基金会的支持。
[26]图1-15 朱利安·阿桑奇
2010年7月26日,“维基解密”在《纽约时报》、《卫报》和《镜
报》配合下,在网上公开了多达9.2万份的驻阿美军秘密文件,引起轩
然大波。12月4日,美国网络支付处理商PayPal宣布,由于维基解密网
站违反公司的服务政策,因此决定停止其账户和服务,这意味着维基解
密将无法通过PayPal获得资金。PayPal副总裁表示,他们停止服务是
在“国务院告诉我们,这些都是非法活动,这是很明显的”之后。紧接
着,许多企业停止为维基解密提供服务,或是冻结对其的捐款,这些企
业包括亚马逊、美洲银行、瑞士邮政银行、万事达和Visa。
[27]
2010年12月5日,黑客组织Anonymous发表宣言,将正在进行的“回
报行动”(Operation Payback)扩展为“阿桑奇复仇行动”(Operation
Avenge Assange),向维基解密提供帮助并打击它的敌人。
[28]
12月6
日,瑞士邮政银行(PostFinance)首先遭到攻击。12月8日,Anonymous对PayPal的主网发动了攻击,却发现低轨道粒子炮(LOIC)
无效。他们只得依靠两名黑客控制的僵尸网络进行攻击。据有关研究人
员声称,这些僵尸主机最终贡献了90%的攻击流量。据Paypal估计,造
成了550万美元的损失。后来,Paypal向联邦调查局提供了1000个攻击
者的IP地址,导致至少14人被捕。如表1-2所示,万事达、Visa、亚马逊
等企业也接连成为攻击目标。
表1-2 本案中受到攻击的网站攻击者使用的工具主要是低轨道粒子炮(LOIC)的修改版本,主
要添加了被称为“蜂巢意识”(Hive Mind)的模式,这使得远程控制
LOIC成为可能。1.4.3 索尼信息泄露案
2011年1月11日,游戏厂商索尼公司对乔治·霍兹(George Hotz)等
人提出起诉,罪名是违反了《数字千年版权法案》(Digital Millennium
Copyright Act)和《计算机欺诈与滥用法案》(Computer Fraud Abuse
Act)。这场官司的起源,是乔治·霍兹破解了索尼著名的游戏机PS3,用户无须付费就可以运行各种破解的游戏。2011年3月6日,法院批准索
尼公司得到所有访问霍兹博客的IP地址,包括破解程序的下载者地址。
[29]图1-16 Anonymous对索尼公司的宣战2011年4月3日,黑客组织Anonymous入侵了索尼的一个网站,并在
上面留言(图1-16),声称索尼公司的行为侵犯了数以千计无辜者的隐
私,所以对其宣战,并称之为“索尼行动”(OpSony)。
[30]
4月14日,索
尼公司多台服务器遭受DDoS攻击而宕机,攻击者使用的工具主要为低
轨道粒子炮(LOIC)。4月19日,索尼雇员发现130台服务器“非计划重
启”。4月20日,索尼发现发生了用户数据失窃事件,并决定暂停
PSN(PlayStation Network)网络。对索尼公司而言,用户数据泄露可能
造成的损失远超过DDoS攻击,因为公司保存了大量用户的信用卡信
息,可能危及到用户个人的银行账户安全。
4月21日之后,索尼公司开始聘请专业安全公司进行取证调查,甚
至邀请FBI协助。5月4日,美国众议院能源和商业委员会(The House
Committee on Energy and Commerce)举行了听证会,索尼公司拒绝出
席,但送去了一封信说明事件的发生情况。索尼称,数据窃取发生在4
月16日至4月17日,1.2万个用户信用卡号码和2470万用户信息被盗。索
尼公司没有明确指出DDoS攻击与数据窃取之间存在协同,但两者基本
在同时发生。Anonymous之后否认参与了这次数据窃取,并发布了一份
新闻稿:“这一次,我们没有做。”
[31]
6月2日,另一个知名黑客组织
LulzSec声称入侵SonyPicture网站成功,并获取了100万用户的信息。
索尼公司的股价从1月11日的36.36美元,一路下降到6月20日的
24.28美元。根据该公司3月31日公布的财务状况,当时的各种损失估计为14亿日元(1.71亿美元)。而VERACODE的一份分析则认为,最终的
总损失将高达240亿美元。
[32]
事后,索尼承认,他们对信用卡号进行了加密,但对其他用户信息
并未做加密处理。
[33]
窃取用户数据的攻击者身份,至今依然未被发
现。Anonymous只承认进行了DDoS攻击,宣称并未窃取数据;而
LulzSec只对SonyPictuire的入侵负责。FBI曾猜测是两个组织的配合行
动,但并无证据支持。
通常情况下,攻击者的目的可以分为两类,一类是控制与窃取信
息,另一类是破坏。DDoS攻击通常用于后者。而这次事件的特点是,DDoS被当成了一种掩护行动。无论入侵者是谁,他都很“巧妙”地利用
了Anonymous的攻击来吸引索尼安全团队的视线,使得自己的行动更不
容易被发现。这种方式也许会在今后成为一种常用的伎俩。1.5 小结
本章按照时间顺序介绍了个人黑客的攻击、有组织犯罪、网络战以
及黑客行动主义。随着技术的发展,DDoS攻击不断出现新的形式,但
这并不意味着旧的形式会就此绝迹。时至今日,依然有一些黑客愿意独
自行动,网络战也必定会再次爆发。未来并不确定,希望我们至少能从
历史中吸取教训,避免重蹈覆辙。1.6 参考资料
[1] Taylor Wilson.Yup,I built a nuclear fusion reactor.TED.
[2] Josh Quittner.PANIX ATTACK.Time Magazine.
[3] CharalamposPatrikakis,MichalisMasikos,and Olga
Zouraraki.Distributed Denial of Service Attacks.
[4] TCP SYN Flooding and IP Spoofing Attacks.CERT
Advisory CA-1996-21.
[5] David Dittrich.The DoS Project's'trinoo'distributed denial of
service attack too.October 21,1999.
[6] Incident Note IN-99-04.CERT .
[7] Wikipedia.MafiaBoy.
[8] Vixie,Paul;Gerry Sneeringer,Mark Schleifer.Events of 21-Oct-
2002.
[9] The Internet Traffic Report.Backbone DDoS.[10] SpamCop.net.http:www.spamcop.net.
[11] HELP NET SECURITY.DDoS attack hits clickbank and
spamcop.net.
[12] SOPHOS.World Cup DDoS blackmailer sentenced to jail.
[13] John E Dunn.Iran v USA-the world's first cyber-war has started.
[14] Wikipedia.Spamhaus Project.
[15] Computer Weekly.Cyberbunker’s Sven Kamphuis denies
unleashing DDoS attackson Spamhaus.
[16] Computer World.DDoS suspect used a van as a mobile
office,Spanish police say.
[17] Wikipedia.2007cyberattacks on Estonia.
[18] Wikipedia.Cyberattacks during the Russia–Georgia war.
[19] Wikipedia.July 2009cyber attacks.
[20] RavivRaz.DDoS Attacks In Korea-Forensic Analysis.13th July
2009.
[21] Heung Youl YOUM.Korea’s experience of massive DDoSattacks from Botnet.April 12,2011.
[22] BBC.South Korea hit by cyber attacks.4March 2011.
[23] HighBeam.Cruise bio hits stores as video clip of actor praising
Scientology makes it way to Internet.
[24] Wikinews.'Anonymous'releases statements outlining'War on
Scientology'.
[25] Wikipedia.Anonymous.
[26] Wikipedia.WikiLeaks.
[27] Wikipedia.Operation Payback.
[28] PandaLabs.Operation:Payback broadens to'Operation Avenge
Assange'.
[29] Wikipedia.Sony Computer Entertainment America v.George
Hotz.
[30] NBCNEWS.Anonymous vows war on Sony,strikes first blow.
[31] Fahmida Y.Rashid.Sony Data Breach Was Camouflaged by
Anonymous DDoS Attack.[32] Pupuweb.Veracode published Sony PlayStation Network Hack
Infographic.
[33] PlayStation.Blog.QA1for PlayStation Network and Qriocity
Services.第2章 DDoS攻击的来源
“敌人知我之情,通我之谋,动而得我事,其锐士伏于深草,要隘
路,击我便处,为之奈何?”
——《六韬·临境》
分布式拒绝服务攻击不会凭空产生,而是有其特定的来源。绝大部
分的分布式拒绝服务攻击都是从僵尸网络(Botnet)产生的。
什么是僵尸网络呢?在描述它之前,需要先解释什么是僵尸程序
(Bot)。僵尸程序是组成僵尸网络的基础,它通常指可以自动地执行
预定义功能,可以被预定义的指令控制的一种计算机程序。僵尸程序不
一定都是恶意的,但在僵尸网络中的僵尸程序都是设计用来完成恶意功
能的。
实际上,僵尸网络并没有规范而确切的定义。数量庞大的僵尸程序
通过一定方式联合,就可以组建成为僵尸网络。僵尸网络一般指僵尸主
人(Botmaster)出于恶意目的,传播大量僵尸程序,并采用一对多方式
进行控制的大型网络。僵尸网络是在网络蠕虫、木马、后门等传统恶意
代码形态的基础上发展并融合而产生的一种复合攻击方式。
因为僵尸网络中的僵尸主机数量往往非常庞大而且分布广泛,所以相比于其他恶意程序,僵尸网络的危害程度和防御难度往往更大。从表
2-1的对比结果来看,虽然僵尸和其他恶意代码有一些相似的地方,但
它作为新的恶意代码类别,也有其自身的一些特点。
僵尸网络的一个特点是,控制者和僵尸程序之间存在一对多的控制
关系。这种控制具有高度可控性,在僵尸主机采取行动时,不需要控制
者登录该主机操作系统。
表2-1 常见恶意代码特性比对
僵尸网络的另一个特点是,控制者在发布指令后,就可以断开与僵
尸网络的连接。之后,控制指令会在僵尸程序之间自行传播和执行。因
此,僵尸主机能够在控制者很少或不插手的情况下协同合作,共同完成
一项任务。
为了使读者对僵尸网络有更直观的认识,图2-1给出一个僵尸网络
简化后的拓扑示意图。图2-1 简化的僵尸网络拓扑
本章将对作为分布式拒绝服务攻击主要来源的僵尸网络进行详细介
绍。2.1 僵尸网络的发展
僵尸网络是随着自动智能程序的应用而逐渐发展起来的,从良性僵
尸网络的出现到恶意僵尸网络的实现,从被动传播到利用蠕虫技术主动
传播,从使用简单的IRC协议构成控制信道到复杂多变的对等网络
(Peer-to-Peer,P2P)结构的控制模式,僵尸网络逐渐发展成规模庞
大、功能多样且不易检测的恶意模式,给当前的网络安全带来了不容忽
视的威胁。
本节首先简单回顾僵尸网络的演化历史,并根据僵尸网络发展的状
况讨论其发展趋势。之后,会对世界上一些知名的僵尸网络进行简要的
介绍。2.1.1 演化和发展趋势
僵尸网络的历史渊源可以追溯到1993年因特网初期的中继聊天
(Internet Relay Chat,IRC)网络中出现的Bot工具——Eggdrop,这是
一种良性Bot。它的实现初衷是能够自动地执行如防止频道被滥用、权
限管理、频道事件记录等一系列功能,从而帮助IRC网络管理员更方便
地管理这些聊天网络。
受到良性Bot工具的启发,黑客开始编写僵尸程序对大量的受害主
机进行控制,以利用这些主机资源达到恶意目的。1999年6月,在因特
网上出现的PrettyPark首次使用了IRC协议构建命令与控制信道,从而成
为第一个IRC僵尸网络。之后,IRC僵尸网络层出不穷,如在mIRC客户
端程序上通过脚本实现的GT-Bot、开源发布并广泛流传的Sdbot、具有
高度模块化设计的Agobot等,这使得IRC成为当时构建僵尸网络命令与
控制信道的主流协议。
随着僵尸网络防御技术的不断演进,僵尸网络的传播和组建受到了
一定遏制,黑客为了让僵尸网络更具隐蔽性和抗打击性,开始不断地尝
试对其组织形式进行创新和发展,相继出现了基于超文本传输协议
(HyperText Transfer Protocol,HTTP)及P2P协议构建命令与控制信道
的僵尸网络。例如,专注银行窃密的Zeus采用的是HTTP,而主机感染数庞大的Zeroaccess僵尸网络则采用了P2P协议。
僵尸网络的演化过程如图2-2所示。
图2-2 僵尸网络的演化
随着防御方安全方案的不断推出以及国家有关网络安全法规的不断
完善,僵尸程序和僵尸网络在发展过程中也出现了一些调整,这些调整
体现出了僵尸网络的发展趋势。
(1)基于IRC的僵尸网络逐渐减少基于IRC协议的僵尸网络最早出现,曾一度被作为僵尸网络的代名
词。安全人员对这类Botnet的研究最早、也最多,相应的有效的检测手
段也越来越多。目前,越来越多的僵尸网络不再使用IRC协议,转而使
用HTTP或P2P协议进行通信和控制。
(2)控制国内僵尸主机的命令与控制服务器被逐步移到国外
伴随着国内网络安全立法的不断完善,黑客发动攻击被逮捕的风险
不断加大,迫使越来越多的黑客将服务器放置于国外。图2-3是国内安
全厂商绿盟科技发布的《2012绿盟科技威胁态势报告》
[1]
中根据检测到
的控制端所在地绘制的分布图。
图2-3 CC服务器分布(3)僵尸网络在攻防对抗中引入了更多的先进技术,使其更加难
以检测
例如,在最新版本的僵尸程序Zeus中,引入了P2P模块进行通信,而一旦P2P网络节点无法连通,则使用域名产生算法(Domain
Generation Algorithm,DGA)产生随机域名与CC进行通信。通信数据
则采用数字签名校验,以阻止越来越流行的由安全机构实施的sinkhole
技术。通过使用这些先进技术,僵尸网络的隐蔽性和抗打击性有了显著
提高。
(4)互联网数据中心托管服务器成为热门感染目标
众所周知,服务器主机性能和配置一般较好,具有更多的资源可以
被僵尸程序和僵尸网络使用。因此,这些托管服务器正逐渐成为僵尸程
序新的感染目标。
(5)单个僵尸网络的规模减小,绝大部分僵尸主机数都少于1000
台
图2-4是2011年国家互联网应急中心
[2]
(CNCERTCC)监测统计的
僵尸网络规模分布图,可以看出小规模的僵尸网络占据主流。图2-4 僵尸网络规模分布2.1.2 知名僵尸网络
在世界范围内,存在着一些知名的僵尸网络,本节对这些僵尸网络
进行简要的介绍,使读者能够了解目前僵尸网络的现状。为了使描述更
直观,我们对每一个僵尸网络都从感染度、收益度、知名度和生命力四
个方面给出了评分,并综合给出这个僵尸网络的总体危害程度。先对上
述各项解释如下。
·感染度:僵尸程序感染的主机数量,也包括被感染主机地域上的
分布。主机感染量越大,地域分布越广泛,分值越高。
·收益度:指通过此僵尸网络获得的收益。收益值越大,分值越
高。
·知名度:在全球范围的影响,这包括其是否开源以及是否被各大
媒体广泛报道等。曝光度越高,分值越高。
·生命力:特指其存活能力,也可以理解为抗打击性。生命力越
强,存活时间越久,分值越高。
·危害度:前四项的平均值(四舍五入为整数),表示这个僵尸网
络总体的危害程度。1.ZeroAccess
ZeroAccess出现于2011年,是最为知名、目前最为活跃的僵尸网络
之一。它采用先进的rootkit来隐藏自身,使用业界流行的模块化设计,通过创建隐藏文件夹,下载存储指定的功能模块并执行。通信协议采用
P2P架构使其具有极强的抗打击性。全球主机感染量在100万~200万台
之间,其主收入来源为“点击欺诈”,曾经还通过比特币挖掘获益,预计
一天收入为10万美元左右。
2.ZeusZeus是历史上最能赚钱的僵尸网络之一,2007年首次被发现。Zeus
主要用于监控受害者机器,记录用户的击键以窃取银行账户信息。犯罪
分子可以从用户的账户中将钱转出,利用用户的银行卡购物等。控制服
务器控制僵尸网络的运行,并对僵尸网络发布命令。截止到本书发稿,其偷取的金额达数百万美元之巨。2011年Zeus源码泄露,致使其变种爆
炸式增长,更有黑客为其添加P2P模块,对互联网的危害很大,影响深
远。
3.PushdoCutwail
Pushdo本身是一个“装载器”,可以下载其他组件安装在系统中,最
初发现于2007年。Pushdo可以为客户定制安装特定恶意软件,根据每个
安装来收取费用。在Pushdo进入被感染的电脑系统后,通常会下载垃圾
邮件程序Cutwail。Pushdo使用Cutwail来完成自我复制,从而不断扩大
其僵尸网络,也可通过Cutwail租出垃圾邮件服务。PushdoCutwail僵尸
网络发送的垃圾邮件内容很杂,包括医药产品、网络赌博、网络钓鱼邮件以及链接到包含恶意代码网站的邮件。感染了大约10万台主机,在
Storm被摧毁后,它成为了最大的垃圾邮件僵尸网络。控制者从中可能
获得了170万~420万美元的收益。
4.Mariposa
Mariposa又被称为“蝴蝶”僵尸网络,主要用于窃取信用卡和其他有
价值的数据以及DDoS攻击等,目前已被西班牙当局摧毁。这个僵尸网
络从2008年出现,随后迅速蔓延到了全球190多个国家和地区,受到
Mariposa影响的电脑超过1000多万台,超过一半的全球1000家最大公司
和至少40家大金融机构的电脑被感染,目前还无法估算其造成的损失。
5.WaledacWaledac僵尸程序主要以发送垃圾邮件而著称,Waledac僵尸网络所
使用的控制服务器大多位于德国、荷兰、瑞典和俄罗斯等欧洲国家,控
制了全球数十万台计算机,预计每天能发出超过15亿封垃圾邮件。在
2010年的中、美、欧联手打击下,Waledac僵尸网络日渐衰弱。不过,2012年的监测信息显示,它有重新抬头的迹象。由其造成的损失还不得
而知。2.2 僵尸网络的组建
无论多么庞大的系统,都是由一个个具体的元素组成的,僵尸网络
也不例外。我们在讨论系统的组建时,一般会讨论两个方面——“组成
系统的元素都是什么”以及“这些元素是如何相互联系起来的”。对于僵
尸网络来说,则分别对应着僵尸网络的节点和控制方式。本节会对这两
个方面分别进行介绍。2.2.1 节点
僵尸网络由大量功能节点共同组成,这些节点可能是普通PC、服
务器或者移动设备(见图2-5)。
这三种节点分别有其各自的特性,下面依次进行介绍。
误区:DDoS攻击都来自PC组成的僵尸网络
“DDoS攻击都是由僵尸网络发起的”,这几乎是一个安全领域的“常
识”。然而,事实并非如此,至少并不完全是由PC组成的僵尸网络发起
的。
随着技术的进步,服务提供商所使用的高性能服务器在处理性能和
带宽方面快速提升,而传统的由PC组成的僵尸网络却发展缓慢。除了
处理能力方面的因素外,PC通常只有非常有限的带宽资源,而可供利
用的时间也很不确定。于是,一些“黑客”开始把目光移向高性能服务
器,在“燕子行动”中,他们就这样做了。
此外,黑客组织Anonymous更喜欢组织众多真实的参与者共同发起
攻击,我们也称其为“自愿型僵尸网络”。图2-5 僵尸网络节点构成
1.普通PC
由于普通个人计算机(Personal Computer,PC)经历了数十年的发
展,数量庞大,而且安全性参差不齐。利用普通PC作为节点组建僵尸网络依然是最主流的方法。
通常,僵尸程序将一台普通PC变成僵尸网络的节点,一般要经历
四个步骤(见图2-6),即感染传播、安装执行、接入僵尸网络以及命
令执行。
图2-6 僵尸网络组建步骤
(1)感染传播
僵尸程序所用的感染传播手段与其他恶意程序(蠕虫、木马、后门
等)类似,通常包括带有欺骗性质的电子邮件、网页挂马、自动化的漏
洞扫描、即时通信、内网的文件共享和移动存储感染,以及最新出现的
网络存储与共享等。它在传播形式上有主动出击型的,如自动化的溢出
漏洞攻击,也有被动等待型的,如网页挂马。通过上述手段,僵尸程序就极有可能感染那些没有防护措施或防护措施弱的普通PC,进而将其
发展成为僵尸网络中的一员。
(2)安装执行
僵尸程序一旦在受害主机上执行,就会进行一系列的自我复制、实
现自启动以及隐藏等行为。通常僵尸程序会将自身复制到系统特定的目
录下并设置其隐藏属性,部分程序还会修改文件生成时间,创建或修改
注册表以保证程序开机自启动,如服务创建等。为了避免侦测,多数僵
尸程序都进行了免杀处理,并采用远程代码注入的方式,以免产生新进
程。基于上述手段,僵尸程序将可以在受害者主机上做到长期安全稳定
地运行。
(3)接入僵尸网络
当僵尸程序在受害者主机上完成各种安装和隐藏后,便通过解析内
置的域名和端口进行通信,构建CC通道加入僵尸网络,而这大多是通
过发送搜集的被感染系统主机信息开始的。
(4)命令执行
接入僵尸网络的僵尸程序将执行Botmaster预先设置好的指令,如对
特定目标发动DDoS攻击等。在没有收到指令时,僵尸程序会静静等待
(这时用Wireshark捕获可见大量的保活数据包),直到Botmaster有指令下发为止。
通过上面的四个步骤,一台普通PC就变成了任人宰割的僵尸主机
(又称“肉鸡”),也成为黑客攻击或再入侵的跳板。
事实上,随着网络犯罪独有系统的完善,已经出现了“肉鸡”销售服
务,上述过程也得到了大大简化。图2-7是这种服务的一个广告截图。
图2-7 “肉鸡”销售广告
“肉鸡”的价格如下:每1000台“肉鸡”,俄罗斯200美元天,英国240
美元天,美国180美元天,法国200美元天,加拿大270美元天,国际
混合35美元天,每天限量供应2万台。这种服务的出现使得组建僵尸网络的门槛大为降低,甚至能够让新手迅速实施一个复杂、精密的网络攻
击活动。
普通PC是最基本的僵尸网络节点,对普通PC的感染和控制技术已
经非常成熟。许多攻击者能够快速地利用普通PC组建僵尸网络并展开
攻击。
2.服务器
目前,普通PC依然是组成僵尸网络的主要部分,但是将服务器作
为节点、组建僵尸网络正逐渐引起攻击者的兴趣。
与普通PC相比,服务器具有高性能、大带宽、长时间持续在线等
特点,这些特点使服务器更具有作为僵尸网络节点的优势。
首先,服务器具有比普通PC更高的性能,通常,一台服务器的性
能相当于几十台甚至上百台普通PC的性能,因此,可以利用服务器僵
尸主机的高性能和高并发性,快速地构造并发出大量复杂请求。
其次,服务器通常具有更大的网络带宽,普通PC的网络带宽通常
为几十兆至数百兆,而服务器的网络带宽通常为数吉比特每秒,利用服
务器僵尸主机进行DDoS攻击,可以发出极大的攻击流量。
最后,服务器通常需要长期在线,大部分的服务器都需要保证7×24小时的可用性,一旦攻击者将这些服务器作为僵尸主机控制,就能够随
时迅速地发动持续的DDoS攻击。
服务器的安全性通常会比普通PC高很多,一般无法通过感染、网
页挂马等方式植入僵尸程序,这使得利用服务器组建僵尸网络的成本大
大增加,但是由于服务器攻击威力大、效果明显,攻击者还是愿意花费
一些成本尝试控制服务器。由于Web服务器在互联网上广泛存在,因此
攻击者通常愿意选择Web服务器作为目标。
控制Web服务器并植入僵尸程序的方法主要是利用Web应用和服务
器组件的安全漏洞进行入侵。由于Web服务的灵活多样性,即便是及时
保持更新并且配置良好的Web应用和服务器组件,也依然可能存在安全
漏洞,攻击者可以利用如内容管理系统(Content Management System,CMS)等Web应用的漏洞上传脚本后门程序,甚至利用服务器组件的漏
洞完全控制整台服务器。
在从2012年下半年开始的针对美国银行和金融机构进行的DDoS攻
击“燕子行动”中,攻击者就使用了主要由服务器组成的僵尸网络Brobot
进行攻击。Brobot僵尸网络主要是由植入了itsoknoproblembro(哥们儿
没问题)工具的僵尸主机所组成的,itsoknoproblembro通过WordPress、Joomla等Web CMS的漏洞植入到Web服务器上,并向index.php文件注入
加密的代码,以允许攻击者随时上传新的Perl脚本代码。由于使用Web
服务器作为僵尸主机,每台僵尸主机发出的攻击流量非常大,并且能够同时进行多种不同方式的攻击,因此这次行动对美国银行和金融机构的
网络服务产生了比较大的影响。
如果将普通PC僵尸节点造成的威胁比作步枪的话,那么服务器僵
尸节点造成的威胁就更像是重机枪。虽然这些重武器成本高、数量少,但是一旦拥有,打击的效果就会显著提高。
3.移动设备
随着移动互联网的飞速发展,利用移动设备作为僵尸节点来组建僵
尸网络正逐渐成为现实威胁。
从计算能力和网络带宽来看,移动设备正逐渐接近甚至超越普通
PC。当前主流的移动设备的CPU都达到了双核1GHz以上的运算速度,RAM容量也都在1GB以上,这些计算性能对于用来发动攻击的僵尸程序
来说是绰绰有余的。同时,与2G网络相比,现有的3G网络在数据传输
速度上有了很大的提升,其下行速度可以达到2Mbits以上,上行速度可
达384Kbits以上,部分国家和地区的运营商已经部署了实用的3.5G(下
行速度14Mbits,上行速度5.8Mbits)甚至4G(下行速度1Gbits,上行
速度500Mbits)通信网络,这些高速网络已经能够用于发动攻击。
与服务器类似,移动设备的一些特性使得利用移动设备组件的僵尸
网络具有一定的优势。移动设备数量众多,并且依然在飞速增长。以Android和iOS设备为例,根据官方给出的数据,Android设备已经超过9
亿台,iOS设备的数量也已经超过了6亿台,而移动设备的增长速度远远
超过PC的增长速度,因此,移动设备的数量将很快超过PC数量,利用
移动设备可以组建十分庞大的僵尸网络。另外,与PC相比,移动设备
在线的时间更长。人们在PC上完成工作之后,通常会将PC关机或者让
其休眠,但是移动设备,尤其是智能手机则完全不同,使用者为了保持
通信通畅,会使移动设备保持待机状态并维持网络连接,甚至会持续数
天没有关机或重启操作。与服务器组成的僵尸网络类似,攻击者能够随
时控制这些移动设备,迅速地发动持续的DDoS攻击。
与普通PC相比,移动设备的安全防范较差,更容易成为僵尸主
机。现有的移动设备主要有Android和iOS两大平台。由于操作系统和生
态环境的开放性等原因,Android设备很容易被植入恶意代码成为僵尸
主机;iOS设备相对比较封闭,但进行越狱后依然能够从第三方源安装
程序,存在成为僵尸主机的可能。向移动设备植入僵尸程序主要是通过
应用捆绑和诱骗安装的方式进行。
出于免费或方便等考虑,许多用户会从第三方市场或论坛下载和安
装应用。然而,第三方市场和论坛所下载的应用的安全性无法得到保
证。第三方市场和论坛中经常会使用付费应用的破解版本或免费应用的
去广告版本吸引用户下载并安装,这些应用有可能是攻击者植入了恶意
代码的应用。攻击者将官方应用破解拆包,植入恶意代码并申请权限后重新打包,之后提交到第三方市场或论坛进行分发。当用户被这些破解
版或去广告版所吸引,下载并安装这些应用后,就成为了受控制的僵尸
设备。除了Android设备,越狱后的iOS设备也能够通过Cydia从第三方
源处安装各种软件包,修改系统设置,这为僵尸程序的入侵打开了大
门。
除了应用和应用市场方面的问题,更重要的是移动设备的用户没有
较强的安全意识。人们在使用PC时,大部分都会安装和使用杀毒软
件、防火墙等安全防护软件对PC进行安全保护。但在使用移动设备
时,却并没有意识到这些移动设备也需要进行安全防护,只有一少部分
用户会在智能设备上安装安全防护软件。此外,部分移动设备用户在安
装应用时不考虑应用的来源,也不仔细查看应用申请的权限就确认安
装,这些用户的移动设备很容易被恶意应用控制并被加入到僵尸网络之
中。
事实上,移动设备与普通PC没有本质上的区别。曾经在PC上被广
泛使用进行DDoS攻击的LOIC工具,已经被移植到了Android平台(见图
2-8)。可以预测,随着移动设备的计算能力、网络带宽和数量的不断
增长,以及移动平台本身安全性和用户安全意识薄弱等问题的逐渐显
现,由移动设备作为节点组成的僵尸网络将会在未来不断增加,甚至超
过普通PC僵尸网络的数量。图2-8 Android平台下的LOIC工具2.2.2 控制
僵尸网络最早通过IRC通信协议进行控制。随着攻防对抗的升级,通信协议由简单的IRC向HTTP甚至更复杂的P2P进化。通信协议变化的
同时,僵尸网络在网络拓扑结构上也有了很大调整,主要体现在CC控
制信道从单一中心向分散方向发展,由一个CC服务器向多个CC发
展,更进一步地发展为P2P模式。僵尸网络正变得更加复杂,更具有抗
打击性。
三种僵尸网络控制方式的规模和优缺点如表2-2所示。
表2-2 僵尸网络控制模式比对
本节会介绍IRC、HTTP和P2P这三种僵尸的控制形式。
1.IRC型僵尸网络
IRC型僵尸网络是出现最早、存在数量最庞大的僵尸群。它最大的
特点是利用IRC协议构造命令与控制信道,交互性好,容易创建。采用
一个服务器能轻易创建和控制多台僵尸主机。IRC型僵尸网络常见的拓扑结构如图2-9所示。
可以看出,无论是僵尸主机还是Botmaster都必须与CC服务器进
行通信,但两者的通信目的稍有不同。僵尸主机与CC服务器通信主要
是为了接收指令、反馈执行结果以及汇报工作状态等;Botmaster与
CC服务器通信的目的通常是发送控制指令和分类管理。
(1)僵尸主机与CC服务器之间的通信
首先,僵尸程序执行后,会解码内置的配置信息以获取CC服务器
域名及端口号,并与其建立三次握手连接;然后,僵尸程序会发送
NICK和USER命令,而NICK通常有固定的前缀,加入预定义频道(大
多数都要求提供频道密码方能进入);最后,在完成上述步骤后,僵尸
程序会进入PINGPONG状态等待接收指令。
图2-9 IRC型僵尸网络上述步骤对应的数据包如图2-10所示。
图2-10 IRC僵尸主机通信
(2)Botmaster与CC服务器之间的通信
Botmaster首先需要认证自己,即被频道内的所有僵尸主机接纳,往
往采用口令的认证机制,即Botmaster先发送认证命令给CC服务器,CC服务器将消息转发给频道内所有僵尸主机。
频道内僵尸主机收到消息后,会比较收到的密码和自身硬编码的密
码,判断Botmaster是否合法,同时判断Botmaster所用控制端软件版本
及主机域名是否可信。
如图2-11所示,Botmaster的自我认证成功了。图2-11 Botmaster认证
在认证通过后,Botmaster就可以发送控制命令了。Bot的命令通常
设置为“.”(如.synflood),IRC已有命令以“”开始,控制命令不能和
IRC已有命令冲突。除普通命令外,还可以改变频道TOPIC通知,使频
道内(不管是频道内已有的还是后来加入的僵尸主机)所有僵尸主机都
能收到此消息,做到命令的自动执行。图2-12所示为下发SYN FLOOD
攻击命令。图2-12 启动SYN FLOOD攻击
截获的攻击数据包见图2-13。
图2-13 SYN FLOOD攻击数据包
从上面的介绍可以看出,通过IRC进行僵尸网络的控制相对比较容
易,而且能高效地分发控制者命令。
但这种控制方式存在一些不足,最主要是单点失效问题,即一旦中
央服务器被关闭,僵尸程序会因失去与CC服务器的通信而灭亡。此
外,防御方可以利用逆向得出的配置信息,将自己伪装成为IRC僵尸网
络中的一员,加入特定的频道,从而达到监视整个僵尸网络的目的。这也成为IRC控制的僵尸网络越来越不被看好的主要原因。目前,通过
IRC进行控制的僵尸网络多见于国外,在国内并不多见。
2.HTTP型僵尸网络
通过HTTP进行控制的僵尸网络在国内出现得比较多,这种僵尸网
络规模往往不大,但攻击活动却异常频繁。
HTTP型僵尸网络常见的拓扑结构如图2-14所示。
图2-14 HTTP型僵尸网络
相比于IRC型僵尸网络,HTTP型僵尸网络在端口选择上以及通信的
加解密方面有更大的灵活性。IRC型僵尸网络需要考虑隐藏性与稳定
性,因此控制者多会借助于网络公有IRC服务器,这些服务器的端口往
往是固定的,也就间接地决定了整个IRC型僵尸网络的通信端口是不可
改变的。而HTTP型僵尸网络则有所不同,虽然大多数HTTP型僵尸网络的通信端口默认选择80,但由于CC服务器多由控制者搭建,端口的设
定可以由控制者自由决定。
同时,HTTP型僵尸网络也更容易隐藏攻击活动。使用HTTP构建的
信道,可以更容易地让僵尸网络的控制流量淹没在大量的Web通信中,从而使得基于HTTP的僵尸网络活动更难以被检测出来。
通过HTTP控制的僵尸程序通常由控制面板和生成器两部分组成。
图2-15所示为僵尸程序BlackEnergy的工具包组成。
图2-15 BlackEnergy工具包
BlackEnergy的生成器界面如图2-16所示。图2-16 BlackEnergy生成器图2-17 BlackEnergy控制面板
BlackEnergy的控制端指令下发界面(控制面板)如图2-17所示。HTTP型僵尸网络的僵尸程序通常具有后门性质,会搜集系统基本
信息,又有自身升级模块以及插件下载等功能。僵尸程序发送的第一个
数据包往往是搜集到的被感染主机的系统基本信息,然后从CC服务器
收取并分离要执行的指令,如图2-18所示。
图2-18 发送系统基本信息
而对于大多数僵尸网络来说,DDoS攻击仍然是其最主要的目的,而且攻击的形式多样。图2-19是Athena僵尸网络程序控制面板中显示的
多种攻击模式。图2-19 多种DDoS攻击模式
通过HTTP进行僵尸网络的组建和控制非常灵活和简单,不过,HTTP僵尸网络与IRC型僵尸网络面临着同样的问题,这种星式的拓扑结
构使其抗打击性不强,一旦CC服务器被破坏,整个僵尸网络就会受到
毁灭性的打击。
3.P2P型僵尸网络
在介绍P2P型僵尸网络之前,先说P2P的概念。P2P又称对等网络,在此网络中,各节点处于对等地位,网络节点既可作为客户端向P2P网络中的其他节点请求服务,也可以作为服务器为提出请求的网络节点服
务。P2P技术使得网络中人与人的交流、数据交换、分布计算等方面得
到直接交互,消除了过去客户端必须连接到服务器进行浏览、请求服务
的传统模式。
P2P型僵尸网络,即基于P2P协议建立命令与控制信道的僵尸网
络。由于P2P网络中节点对等性的特点,P2P型僵尸网络中的所有节点
(或大部分节点)既充当控制服务器的角色,也充当客户端的角色。
P2P型僵尸网络的典型拓扑结构如图2-20所示。图2-20 P2P型僵尸网络
相比于IRC型僵尸网络和HTTP型僵尸网络,P2P型僵尸网络中充当
控制服务器的节点不再单一,攻击者可以通过网络中任一节点控制整个
P2P型僵尸网络。解决了传统IRC型僵尸网络和HTTP型僵尸网络集中式控制服务器的单点失效问题。由于攻击者可以自己定制P2P协议,对
P2P型僵尸网络的检测很难找到通用的特征,也很难发现未知特征的僵
尸网络活动。当然,随之而来的是更为复杂的搜索节点算法和维护过
程。
这里以最为流行的半分布式P2P型僵尸网络为例,来展示其网络构
成和控制方法。根据节点在整个僵尸网络中的地位和作用不同,可以将
僵尸节点分为两类:一类是拥有静态IP地址并可以从因特网访问的僵尸
节点,我们将其称为Servent bot,这类僵尸节点承担客户端和服务端的
双重角色;另一类是IP地址动态分配、私有IP地址或防火墙过滤等原因
无法从因特网访问的僵尸节点,我们将其称为Client bot,这类僵尸节点
也是受控主机,能主动地周期性连接Servent bot。
半分布式P2P型僵尸网络中的两种节点都存有一张有限的邻接
Servent bot节点的链表(Peer List)。一旦僵尸主机重启或脱离僵尸网
络,将周期性地主动连接其链表中的服务节点,维护整个僵尸网络的连
接。
从僵尸程序植入主机到组建完成半分布式P2P僵尸网络,共经历了
程序植入、感染传播和网络维护三个阶段。在程序植入阶段,要求攻击
者具备一般黑客所具备的入侵技能,需要在植入的僵尸程序的链表结构
中硬编码入数台攻击者已攻陷主机(Servent bot)的IP地址。受控主机
上的僵尸程序依次感染其他主机,每感染一台都会首先判断感染的主机是否可成为服务节点(Servent bot),同时构建该僵尸主机的链表表。
每台主机被植入僵尸程序后,都会自启动僵尸主程序。在其重启后会根
据链表表中的服务器的IP地址,主动连接其他的僵尸节点,从而维护半
分布式P2P僵尸网络的整个网络结构。链表数量有限,当其已满而需要
存储下台被感染的、可成为服务节点的主机IP时,就会使用该台主机的
IP覆盖掉链表中的已存在的一个IP,这样可以保证链表列表中的主机时
刻处于最活跃状态。
那攻击者是如何管理已组建好的僵尸网络的呢?简单地说,就是攻
击者通过命令与控制机制来控制整个僵尸网络。首先,攻击者接入半分
布式P2P型僵尸网络,这主要依靠攻击者的攻击平台。该平台可以封装
攻击者的攻击命令,并接收命令的反馈信息。攻击者可通过该平台了解
僵尸网络的基本信息。攻击者要连接网络中的服务节点,往往需要通过
一定的认证,在通过认证后,即可从此节点中注入其控制命令。其次,指令开始在各节点自动传播。服务节点收到指令后,与自身存储的指令
链表比较。如果该指令已存在,则不处理;如果不存在,则将这条指令
转发给其他服务节点(依据链表中的IP地址)。其他收到指令的服务节
点做同样的操作,使指令得以在整个僵尸网络中扩散。最后,僵尸主机
将指令的执行结果通过层层节点再反馈给攻击者。
对于安全研究者来说,通过捕获的一个节点可以发现此僵尸网络的
许多僵尸主机,但却很难窥其全貌。而且即使有一些僵尸主机被封杀,也不会影响到整个僵尸网络的生存。
通过P2P控制的僵尸网络的典型代表是ZeroAcess,它的最新版本使
用了P2P协议。为了使文件传播和IP地址更新速度更快,ZeroAcess仅包
含了很少的命令(getL、retL和newL),并借助简单加密来躲避安全设
备侦测。每个节点在初始时都包含256个IP地址,存储于当前目录下的
@文件,当前节点使用getL命令和临近节点进行交互。临近节点通过
retL指令返回自己节点的相关信息,以便当前节点进行信息更新。
虽然每个节点有256个初始IP地址,但用于信息交换的仅有从中选
取的最多16个而不是全部。由于其复杂度,这里不对其更多细节做深入
探究。
通过P2P组建和控制的僵尸网络,其僵尸主机数量往往非常庞大,地域分布上可以跨越多个国家甚至洲,找出僵尸网络真正的控制者往往
变得非常困难。在没有各国政府有效协调的情况下,对这种僵尸网络的
打击几乎是不可能的。正是由于P2P固有的优势,近年来,这种组建和
控制僵尸网络的方式正变得越来越流行。2.3 僵尸网络的危害
僵尸网络是联合众多联网计算机所组成的一个攻击平台,攻击者利
用僵尸网络可以发起各式各样的攻击,可以导致整个基础信息网络或重
要应用系统瘫痪,或导致大量机密和个人隐私泄露,以及从事网络欺诈
等其他违法犯罪活动。
1.发动DDoS攻击
借助僵尸网络发动大规模DDoS攻击是当前最主要的威胁之一,从
前面几节的实例简析中也能看出,甚至有的僵尸网络将DDoS攻击作为
其唯一功能。攻击者可以向自己控制的所有僵尸主机发送指令,让它们
在特定的时间同时连接访问指定的网络目标,在短时间内以大流量冲
击,造成目标资源耗尽而无法响应合法请求,产生拒绝服务的效果。
僵尸网络和DDoS工具的区别
能发动DDoS攻击的不只有僵尸网络,专业的DDoS工具也可以进行
DDoS攻击。那么两者之间又有哪些区别呢?大体来看,两者之间的区
别主要表现在以下三个方面。
首先,僵尸主机大多拥有真实的IP且分布广泛,甚至可以说遍布全
球。而DDoS工具的工作原理则是在单台主机(单个IP)上开启多个线程来模拟多主机情形,一部分攻击工具也不能够进行源IP地址的伪造,因此,相比于前者海量的IP来源,后者则更容易遭到防御方黑白名单的
封堵。
其次,僵尸网络控制的是真实主机,在发起攻击尤其是HTTP GET
FLOOD时可以在后台启动浏览器访问目标资源,绕过防御方大多数的
防御措施。而一些DDoS攻击工具则由于没有实现相应的交互机制,甚
至是因为具有某些特定的字符特征而遭到过滤。
最后,僵尸网络往往具有传播功能,之间的维系依靠复杂的协议,如HTTP和P2P等,正是这种传播机制,使攻击者在较短时间内就可以组
建颇具规模的网络大军,对目标实施有效打击。而DDoS攻击工具一般
不具有自传播功能,好比单兵作战,威力较弱。
2.发送垃圾邮件
垃圾邮件给人们的日常生活造成极大的困扰,而利用僵尸网络发送
垃圾邮件更具备以下几个优点:首先,黑客可以隐藏自身的真实IP地址
以躲避法律的追究;其次,可以在短时间内发送大量的垃圾邮件;最
后,由于僵尸主机的广泛分布,造成很多的反垃圾邮件措施失效,尤其
是使用黑白名单机制。
3.窃取敏感信息由于现在的僵尸程序往往具备后门的功能,所以其一旦加载运行,则存储于受感染主机上的一切敏感信息都将暴露无遗,用户的一举一动
都在攻击者的监视之下。如果用户没有有效的阻断措施,则这种控制行
为将可能一直存在,而且黑客会以此做跳板来攻击同网络的其他主机。
4.抢占系统资源
僵尸网络一旦形成,就相当于给控制者提供了大量免费的网络和计
算机资源,控制者就可以利用这些资源非法牟取暴利,如付费点击
(Pay-Per-Click,PPC)以及曾经广泛实施的比特币挖矿行为等。
如图2-21所示,上面列出的四个方面并不是孤立存在的,一个僵尸
网络为了利益最大化,甚至四方面兼而有之。而且在僵尸网络的组建方
面,各利益体分工明确。
图2-21 利益体分工协作随着计算机网络和攻防技术的不断发展,僵尸网络还有可能被用来
发动更多新的攻击。2.4 自愿型僵尸网络
在本章的前面几节中,我们对僵尸网络的发展、组建和危害进行了
比较详细的介绍。在本节中,我们把僵尸网络的概念稍稍延伸一下,介
绍一种特殊的僵尸网络——自愿型僵尸网络。
什么是自愿型僵尸网络呢?与本章前面所介绍的由机器所组成的僵
尸网络不同,自愿型僵尸网络是由一个个现实世界的人组成的僵尸网
络,这些人通常被称为黑客行动主义者。
如果将由机器组成的僵尸网络与自愿型僵尸网络进行一些简单的类
比,我们会发现这两种僵尸网络是非常类似的。由机器组成的僵尸网络
通过系统漏洞和社会工程的方式感染一台台机器,而自愿型僵尸网络通
过黑客行动主义信仰感染了一个个黑客行动主义者;由机器组成的僵尸
网络通过IRC、HTTP和P2P等通信协议进行控制指令的发送,而自愿型
僵尸网络通过网站和IRC频道确定攻击目标和攻击计划;由机器组成的
僵尸网络能够发动大规模的拒绝服务攻击,而自愿型僵尸网络中的黑客
行动主义者们也能够利用手中的计算机和攻击工具击垮一个个站点。实
际上,如果将自愿型僵尸网络中的一个个人看做是相对更高级的机器的
话,那么这个僵尸网络与传统意义上的僵尸网络几乎没有什么差别。
提到自愿型僵尸网络,最典型的例子就是近几年不断扩大并发出声音的著名黑客组织——匿名者(Anonymous)
[3]。
匿名者黑客组织(其图标如图2-22所示),是一个松散的黑客团
体,任何人都可以宣称代表该组织或属于该组织。该组织也是近年来在
国际上影响较为广泛的黑客组织之一,在重大的攻击事件中都有他们的
身影。
图2-22 匿名者(Anonymous)组织图标
匿名者组织源于2003年成立的网络信息论坛4chan,这里聚集了一
群喜欢恶作剧的黑客和游戏玩家,他们主要做些“为他人定制垃圾邮件”的骚扰。4chan最大的特点就是所有用户都被标记为Anonymous。渐
渐地,一些用户自我组织起来形成线下力量,用Anonymous作为称号,自发形成松散的黑客组织。
匿名者组织主要由两种类型的志愿者组成:技术黑客和外行人。
技术黑客,这组人由数个技术熟练的成员组成,他们通常有专业的
编程和网络攻防技术,是有真正黑客经历的一群人,也是这个团体的领
导力量。
外行人,这个组的人数量最多,也是攻击的执行体,由来自世界各
地成千上万的志愿者组成。他们最主要的黑客活动是进行DDoS攻击,通过下载和使用傻瓜式的攻击软件或同时访问网站以阻塞目标网络通
信。这个组的成员的最大特点是所拥有的技术水平参差不齐。
匿名者组织有自己的一些特点:他们有自己的网站,借此可以发出
自己的声音;并通过IRC频道定期举行聚会,使用投票系统,选择用最
好的方式处理任何情况。他们的投票操作如图2-23所示。图2-23 为攻击目标投票
如图2-24所示,投票后,他们决定接下来的操作。
图2-24 统计投票结果这个黑客组织擅长使用DDoS来攻击政府、知名企业及宗教团体的
网站等。攻击前,则又通常使用社交媒体,如Twitter、Facebook等来推
广攻击活动。以显示和证明一个攻击的政治意义。所以在这种情况下,一个网站会得到一个“合理化”的被攻击的理由(图2-25)。
图2-25 造势宣传
匿名者组织在进行DDoS攻击时,会在社交媒体中提供下载工具,以方便更多的人加入到攻击行动当中,如图2-26所示。图2-26 攻击工具下载
匿名者已经组织了许多著名黑客活动,比如阿拉伯之春、抗议捷
运、攻击索尼用户数据库以及“占领华尔街”等。他们也通过DDoS攻击
使多个知名电子商务公司瘫痪了,如PayPal、Visa、MasterCard和Sony
等。
由匿名者官方网站公布的最新数据来看,匿名者组织的最高领导者
是Lj·Xie,是匿名者的资深战略家和最高领导者。他说:“我们将发动游
击网络战,这是一种非传统、非对称的战争。事实上,战争之火早已点
燃。”他承认匿名者组织的行为违反法律,但仍辩称他们违法是出于“道德”目的,是为了监督大公司和政府,曝光他们的错误行为。他们采取
的攻击手段将包括:入侵各种国际政府网站及企业网站、入侵渗透各国
军事或卫星系统、在网络上公布官员的私人信息,以及破坏大公司的网
络和电话通信等。2.5 小结
通过本章的介绍,我们对僵尸网络有了一个较全面的认识。僵尸网
络已成为几乎所有计算机用户的最大威胁之一,这不仅是对网络安全专
家而言,对企业和消费者用户也是如此。此外,黑客建立僵尸网络的动
机目前也已开始发生变化,除了金钱,僵尸网络已开始被利用于为政治
服务,随着网络战威胁及危害的不断加剧,未来的冲突中不排除利用僵
尸网络作为武器的可能性,或许现在已经被投入使用了。随着移动终端
的智能化发展,未来的僵尸网络将不仅仅收揽PC,日益火爆的Android
等移动设备也将可能成为僵尸网络的新成员。僵尸网络所带来的威胁真
的离我们很近!2.6 参考资料
[1] 《2012绿盟科技威胁态势报告》
http:www.nsfocus.comreportNSFOCUS_Threats_Report_2012.pdf.
[2] 国家互联网应急中心http:www.cert.org.cn.
[3] 匿名者(Anonymous)http:zh.wikipedia.orgzh-cn匿名者_(组
织).第3章 DDoS攻击的方法
“夫兵形象水,水之行避高而趋下,兵之形避实而击虚;水因地而
制流,兵因敌而制胜。”
——《孙子兵法》
在这一章里,我们会对分布式拒绝服务攻击使用的各种方法分别进
行介绍,以使读者对分布式拒绝服务攻击有比较全面和深入的理解和认
识。
在介绍分布式拒绝服务攻击方法之前,我们有必要对分布式拒绝服
务攻击的基本形式进行更加深入的理解和剖析。什么是拒绝服务攻击?
什么是分布式拒绝服务攻击?拒绝服务攻击和分布式拒绝服务攻击之间
又有着什么样的联系和区别呢?
这里我们不妨举一个贴近现实的例子来进行类比说明。
假设你对一家快餐店心存不满(也许你在用餐的时候吃到了苍蝇,也许你是它的竞争对手餐厅的负责人,总之,你感到很生气),打算去
砸这家快餐店的场子,从而使快餐店的经理害怕,并让其他客人不再去
这家快餐店吃饭。这时,你会有两种行动选择。第一种,叫上几个兄
弟,拿上铁锹、铁锤、棍棒,冲进这家快餐店,吓跑店员和店里的客人,砸碎门窗和座椅,砸烂收款台和厨房……这种方式能够快速起效,砸过场子之后也会让这家快餐店花费几周时间重新装修店面,不过,快
餐店经理报警之后,作为主犯的你将会很容易被抓获,并且将会面临几
个月到几年的牢狱之灾;第二种,请一百来个朋友同时到这家快餐店就
餐,每个人只点一小杯可乐(或者每两三个人点一包小薯条),点餐之
后就在座位上聊天,从大清早开始一直聊到快餐店当天关店,这样进到
快餐店的其他客人会发现没有座位可坐,因此会去其他店就餐,表面上
看,这种“可乐薯条大作战”的方式相对温和,实际上对这家快餐店营业
额的影响非常大,更重要的是,即使餐厅经理报警,警察也没有任何理
由逮捕你。
好了,这里这个例子并不是在教各位读者如何去快餐店砸场子,只
是想借用这个例子来说明拒绝服务攻击和分布式拒绝服务攻击。
首先,拒绝服务攻击是指通过一些手段影响服务的可用性。在这个
例子里,就是去快餐店砸场子,从而使其他客人无法(不能或不敢)在
这家快餐店就餐。
其次,早期的拒绝服务攻击主要基于系统和应用程序的漏洞,这种
攻击只需要几个请求或者数据包就能导致长时间的服务不可用,但是只
要系统和应用修补了漏洞,就完全不受影响,同时,这种攻击也非常容
易被入侵检测系统发现。在上面这个快餐店的例子里,就是第一种砸场
子的方式。如果快餐店部署了保安,就不会让带着武器装备的客人进店;当然,砸了场子以后,犯人会很快被警察抓获。
最后,分布式拒绝服务攻击是拒绝服务攻击的一种,从名字来看,其主要的特点在于分布式。实际上,分布式拒绝服务攻击与早期的拒绝
服务攻击的原理也并不完全相同。分布式拒绝服务攻击的目的主要在于
资源占用和资源消耗,它通过向服务提供者发起大量请求或者长时间占
用资源的方式来达到拒绝服务的目的。这种攻击从表面上看都是合理的
请求,因此无法通过系统升级和打补丁的方式阻止,也不能使用入侵检
测系统进行防御。在上面这个快餐店的例子里,就是第二种砸场子的方
式。即使快餐店部署了保安,经理报了警,他们对于坐在店里慢悠悠地
吃薯条喝可乐的客人也是毫无办法的。
到这里,我们已经看到了分布式拒绝服务攻击的精髓:利用分布式
的客户端,向服务提供者发起大量看似合法的请求,消耗或长期占用大
量资源,从而达到拒绝服务的目的。在本章中介绍的各种分布式拒绝服
务攻击方法,都是这个精髓的不同表现形式。
虽然都是在消耗目标资源,但是不同的分布式拒绝服务攻击方法所
产生的影响依然有所不同。在本章里,我们会为每种分布式拒绝服务攻
击方法给出流行度、简单度和影响力的评分,最后给出这种攻击手段的
综合风险率。看过《网络安全机密与解决方案——黑客大曝光》的读者
可能会对这种风险评级的方式感到非常熟悉,不过,为了那些没有读过
这本“圣经”的读者,我们还是再对这几个方面的评分进行一下说明。·流行度:利用这种手段对实际目标进行攻击的频率,1代表最少
见,10代表最常见。
·简单度:利用这种攻击手段所需的技能,10代表需要的技能最
少,1代表只有资深的安全人员才能实施。
·影响力:攻击得手时可能造成的损失大小和进行防护的难度,1代
表损失很小并且非常容易防护,10代表损失会非常大,而且难以防护。
·风险率:前三个数字的平均值(四舍五入为整数),这个数值给
出了某种攻击手段总体的危害程度。
从不同的角度看,分布式拒绝服务攻击的方法有不同的分类标准。
在本章的介绍中,依据消耗目标资源的不同,将分布式拒绝服务攻击分
为攻击网络带宽资源、攻击系统资源和攻击应用资源三类。在本章的最
后,我们还会从其他的一些角度对分布式拒绝服务攻击进行归类,并对
混合攻击进行简要的介绍。3.1 攻击网络带宽资源
我们都知道,互联网实际上是由大量的网络设备将大量终端连接起
来所组成的一个庞大的网络,如果想获取某台服务器上的服务资源,则
需要将请求数据通过特定链路传输到这台服务器上。依然用前面快餐店
的例子来说明,如果客人想要用餐,就需要知道快餐店的位置,并且到
达快餐店点餐(这里我们暂时不考虑快餐店的外卖服务)。但是,如果
快餐店的门口或者它所在的街道发生了拥堵和交通管制,客人就无法到
达快餐店,也就无法得到服务。
同样的道理,无论是服务器的网络接口带宽,还是路由器、交换机
等互联网基础设施,其数据包处理能力都是存在着事实上的上限的,当
到达或通过的网络数据包数量超过了这个上限时,就会出现网络拥堵、响应缓慢的情况。消耗网络带宽资源的分布式拒绝服务攻击就是根据这
个原理,利用受控主机发送大量的网络数据包,占满被攻击目标的全部
带宽,从而使正常的请求无法得到及时有效的响应,造成拒绝服务。3.1.1 直接攻击
直接攻击(如图3-1所示)使用大量的受控主机直接向被攻击目标
发送大量的网络数据包,以占满被攻击目标的带宽,并消耗服务器和网
络设备的网络数据处理能力,达到拒绝服务的目的。
图3-1 直接攻击
直接攻击的主要方法有ICMPIGMP洪水攻击和UDP洪水攻击两
种。
1.ICMPIGMP洪水攻击网络控制消息协议(Internet Control Message Protocol,ICMP)是
TCPIP协议族的核心协议之一。它用于在TCPIP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,管理者可
以对所发生的问题做出诊断,然后采取适当的措施解决。
因特网组管理协议(Internet Group Management Protocol,IGMP)
是用于管理因特网协议多播组成员的一种通信协议。IP主机和相邻的路
由器利用IGMP来建立多播组的组成员。
攻击者使用受控主机向被攻击目标发送大量的ICMPIGMP报文,进行洪水攻击以消耗目标的带宽资源。这种类型的攻击出现得很早,使
用hping等工具就能够简单地发起攻击。但现在使用这种方法发动的攻
击已不多见,被攻击目标可以在其网络边界直接过滤并丢弃
ICMPIGMP数据包使攻击无效化。
2.UDP洪水攻击用户数据报协议(User Datagram Protocol,UDP)是一种面向无连
接的传输层协议,主要用于不要求分组顺序到达的传输,提供面向事务
的简单的不可靠信息传送服务。
利用UDP数据报文,攻击者也可以发动洪水攻击。UDP洪水攻击和
ICMPIGMP洪水攻击的原理基本相同。通常,攻击者会使用小包和大
包两种方式进行攻击。
小包是指64字节大小的数据包,这是以太网上传输数据帧的最小
值。在相同流量下,单包体积越小,数据包的数量就越多。由于交换
机、路由器等网络设备需要对每一个数据包进行检查和校验,因此使用
UDP小包攻击能够最有效地增大网络设备处理数据包的压力,造成处理
速度的缓慢和传输延迟等拒绝服务攻击的效果。
大包是指1500字节以上的数据包,其大小超过了以太网的最大传输
单元(MTU)。使用UDP大包攻击,能够有效地占用网络接口的传输
带宽,并迫使被攻击目标在接收到UDP数据时进行分片重组,造成网络
拥堵,服务器响应速度变慢。UDP洪水攻击也是很早就出现的一种拒绝服务攻击方式,这种攻击
发动简单,有相当多的工具都能够发动UDP洪水攻击,如hping、LOIC
等。但UDP洪水攻击完全依靠受控主机本身的网络性能,因此通常对攻
击目标带宽资源的消耗并不太大。3.1.2 反射和放大攻击
攻击者可以使用ICMP洪水攻击、UDP洪水攻击等方式直接对被攻
击目标展开消耗网络带宽资源的分布式拒绝服务攻击,但这种方式不仅
低效,还很容易被查到攻击的源头。虽然攻击者可以使用伪造源IP地址
的方式进行隐藏,但更好的方式是使用反射攻击技术。
反射攻击又被称为DRDoS(Distributed Reflection Denial of
Service,分布式反射拒绝服务)攻击,是指利用路由器、服务器等设施
对请求产生应答,从而反射攻击流量并隐藏攻击来源的一种分布式拒绝
服务攻击技术。
反射攻击的基本原理如图3-2所示。图3-2 反射攻击
在进行反射攻击时,攻击者使用受控主机发送大量的数据包,这些
数据包的特别之处在于,其目的IP地址指向作为反射器的服务器、路由
器等设施,而源IP地址则被伪造成被攻击目标的IP地址。反射器在收到
数据包时,会认为该数据包是由被攻击目标所发来的请求,因此会将响
应数据发送给被攻击目标。当大量的响应数据包涌向攻击目标时,就会
耗尽目标的网络带宽资源,造成拒绝服务攻击。
发动反射攻击需要在互联网上找到大量的反射器,某些种类的反射
攻击并不难实现。例如,对于ACK反射攻击,只需要找到互联网上开放
TCP端口的服务器即可,而这种服务器在互联网上的存在是非常广泛
的。
发动反射攻击通常会使用无须认证或握手的协议。反射攻击需要将
请求数据的源IP地址伪造成被攻击目标的IP地址,如果使用的协议需要
进行认证或者握手,则该认证或握手过程没有办法完成,也就不能进行
下一步的攻击。因此,绝大多数的反射攻击都是使用基于UDP协议的网
络服务进行的。
相比于直接伪造源地址的分布式拒绝服务攻击,反射攻击由于增加
了一个反射步骤,因此更加难以追溯攻击来源。但是,这并不是反射攻
击真正的威胁,真正的威胁在于利用反射原理进行的放大攻击。放大攻击是一种特殊的反射攻击,其特殊之处在于反射器对于网络
流量具有放大作用,因此我们也可以将这种反射器称为放大器。进行放
大攻击的方式与反射攻击的方式也是基本一致的,不同之处在于反射器
(放大器)所提供的网络服务需要满足一定条件。
在反射器提供的网络服务协议中,需要存在请求和响应数据量不对
称的情况,响应数据量需要大于请求数据量。响应数据量与请求数据量
的比值越大,放大器的放大倍数也就越大,进行放大攻击所产生的消耗
带宽资源的效果也就越明显。
放大器所使用网络服务部署的广泛性决定了该放大攻击的规模和严
重程度。如果存在某些网络服务,不需要进行认证并且放大效果非常
好,但是在互联网上部署的数量很少,那么利用该网络服务进行放大也
不能达到很大的流量,达不到有效消耗带宽资源的效果,这种网络服务
也就不能作为主要的放大攻击流量,而只能作为辅助手段。
1.ACK反射攻击我们知道,在传输控制协议(Transmission Control Protocol,TCP)
建立连接时,首先会进行TCP三次握手。在这个过程中,当服务器端接
收到客户端发来的SYN连接请求时,会对该请求进行ACK应答。利用
TCP握手的ACK应答,即可进行ACK反射攻击。
ACK反射攻击是比较常见的一种反射攻击技术,其攻击原理如图3-
3所示。
如果攻击者将SYN的源IP地址伪造成被攻击目标的IP地址,服务器
的应答也就会直接发送给被攻击目标。由于使用TCP协议的服务在互联
网上广泛存在,攻击者可以通过受控主机向大量不同的服务器发送伪造
源IP地址的SYN请求,从而使服务器响应的大量ACK应答数据涌向被攻
击目标,占用目标的网络带宽资源并造成拒绝服务。图3-3 ACK反射攻击
在发动ACK反射攻击时,首先需要进行扫描,获得大量的反射器地
址,并分别向这些反射器发送伪造源地址的SYN请求数据,因此相比于
直接攻击,这种方式显得复杂了一些。ACK反射攻击的优点主要在于其
能够比较有效地隐藏攻击的来源。
2.DNS放大攻击域名系统(Domain Name System,DNS)是因特网的一项核心服
务。它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使
人更方便地访问互联网,而不用去记住那些难以记忆的IP地址。DNS使
用的TCP与UDP端口号都是53,主要使用UDP协议。
通常,DNS响应数据包会比查询数据包大,因此攻击者利用普通的
DNS查询请求就能够发动放大攻击,并将攻击流量放大2~10倍。但更
有效的方法是使用RFC 2671中定义的DNS扩展机制EDNS0。
EDNS0
在没有EDNS0以前,对DNS查询的响应数据包被限制在512字节以
内。当需要应答的数据包超过512字节时,根据DNS服务实现的不同,可能会丢弃超过512字节的部分,也可能会使用TCP协议建立连接并重
新发送。无论是哪种方式,都不利于进行DNS放大攻击。
在EDNS0中,扩展了DNS数据包的结构,增加了OPT RR字段。在
OPT RR字段中,包含了客户端能够处理的最大UDP报文大小的信息。
服务端在响应DNS请求时,解析并记录下客户端能够处理的最大UDP报文的大小,并根据该大小生成响应的报文。
攻击者能够利用dig(Domain Information Groper)和EDNS0进行高
效的DNS放大攻击。攻击者向广泛存在的开放DNS解析器发送dig查询
命令,将OPT RR字段中的UDP报文大小设置为很大的值(如4096),并将请求的源IP地址伪造成被攻击目标的IP地址。DNS解析器收到查询
请求后,会将解析的结果发送给被攻击目标。当大量的解析结果涌向目
标时,就会导致目标网络拥堵和缓慢,造成拒绝服务攻击。
DNS放大攻击的原理如图3-4所示。
攻击者发送的DNS查询请求数据包大小一般为60字节左右,而查询
返回结果的数据包大小通常为3000字节以上,因此,使用该方式进行放
大攻击能够达到50倍以上的放大效果,这种放大效应所产生的攻击效果
是非常惊人的,只要攻击的发起端能够发出2Gbits的带宽,就能够在目
标网络处产生100Gbits的带宽消耗。在2013年3月对Spamhaus的分布式
拒绝服务攻击中,主要就是用了DNS放大攻击技术,使得攻击流量达到
了史无前例的300Gbits,甚至拖慢了局部互联网的响应速度。
与ACK反射攻击类似,发动DNS放大攻击也需要先进行扫描,以获
得大量的开放DNS解析器的地址,并向这些开放DNS解析器发送伪造源
地址的查询命令来放大攻击流量。图3-4 DNS放大攻击
3.NTP放大攻击
网络时间协议(Network Time Protocol,NTP)是用来使计算机时
间同步化的一种协议,它可以使计算机与时钟源进行同步化并提供高精
准度的时间校正,NTP使用UDP 123端口进行通信。在NTP协议的服务器实现上,通常会实现一系列Mode 7的调试接
口,而接口中的monlist请求能够获取到与目标NTP服务器进行同步的最
后600个客户端的IP地址等信息。这意味着,只需要发送一个很小的请
求包,就能够触发大量连续的包含IP地址信息等数据的UDP响应数据
包。
实际上,monlist请求返回的数据量与一段时间内和NTP服务器交互
的客户端数量有关。由于NTP服务使用的是UDP单包通信,因此攻击者
可以将伪造源IP地址的UDP请求包发送给NTP放大器,伪造客户端与
NTP服务器的交互,增加“和NTP服务器交互的客户端的数量”,以此来
增加monlist请求的响应数据量并增大NTP放大器的放大倍数。只要向
NTP放大器发送600个不超过64字节的请求包(约40KB数据),就能够
快速地将NTP放大器的放大倍数提高到700倍以上,并在该服务器的
NTP服务关闭或重新启动之前一直保持这么大的放大倍数。
NTP放大攻击的原理如图3-5所示。图3-5 NTP放大攻击
攻击者发送的monlist请求数据包大小不超过64字节,而请求返回的
结果会包含100个482字节的UDP响应数据,因此,使用该方式进行放大
攻击能够达到700倍以上的放大效果。
与ACK反射攻击和DNS放大攻击类似,发动NTP放大攻击也需要先
进行网络扫描,以获得大量的NTP服务器,并向这些NTP服务器发送伪
造源地址的请求来放大攻击流量。相比于DNS放大攻击,NTP放大攻击
的放大倍数更大,因此其危害也更加严重,在针对Spamhaus的大规模分
布式拒绝服务攻击事件中,如果攻击者不使用DNS放大攻击而改用NTP放大攻击,那么攻击流量将会达到2Tbits以上。
4.SNMP放大攻击
简单网络管理协议(Simple Network Management Protocol,SNMP)是目前网络中应用最为广泛的网络管理协议,它提供了一个管
理框架来监控和维护互联网设备。SNMP协议使用UDP 161端口进行通
信。
利用SNMP协议中的默认通信字符串和GetBulk请求,攻击者能够开
展有效的SNMP放大攻击。
由于SNMP的效果很好,网络硬件厂商开始把SNMP加入到它们制
造的每一台设备,这导致各种网络设备上都可以看到默认启用的SNMP
服务,从交换机到路由器,从防火墙到网络打印机,无一例外。同时,许多厂商安装的SNMP都采用了默认的通信字符串(Community
String),这些通信字符串是程序获取设备信息和修改配置必不可少
的。最常见的默认通信字符串是public和private,除此之外还有许多厂
商私有的默认通信字符串。几乎所有运行SNMP的网络设备上,都可以找到某种形式的默认通信字符串。
在SNMPv1中定义的Get请求可以尝试一次获取多个MIB对象,但响
应消息的大小受到设备处理能力的限制。如果设备不能返回全部请求的
响应,则会返回一条错误信息。在SNMPv2中,添加了GetBulk请求,该
请求会通知设备返回尽可能多的数据,这使得管理程序能够通过发送一
次请求就获得大段的检索信息。
攻击者向广泛存在并开启了SNMP服务的网络设备发送GetBulk请
求,使用默认通信字符串作为认证凭据,并将源IP地址伪造成攻击目标
的IP地址。设备收到GetBulk请求后,会将响应结果发送给攻击目标。
当大量的响应结果涌向攻击目标时,就会导致攻击目标网络拥堵和缓
慢,造成拒绝服务攻击。
SNMP放大攻击的原理如图3-6所示。图3-6 SNMP放大攻击
攻击者发送的GetBulk请求数据包约为60字节,而请求的响应数据
能够达到1500字节以上,因此,使用该方式进行放大攻击能够达到25倍
以上的放大效果。这也是一种放大效应明显且有效的放大攻击方式。
在发动SNMP放大攻击时,同样需要先进行网络扫描以找到开放了
SNMP协议的网络设备。虽然开放SNMP协议的网络设备很多,但是在
扫描到这些设备之后还需要对它们所使用的默认字符串进行猜测。因
此,相比于DNS放大攻击,不论是简单度还是放大倍数的影响力,SNMP放大攻击都略逊一筹。不过从总体上来看,SNMP放大攻击依然是一种非常有效的消耗带宽资源的攻击方法。3.1.3 攻击链路
攻击链路与前面介绍的几种攻击方法有所不同,其攻击的目标并不
是作为互联网端点的服务器的带宽资源,而是骨干网上的链路的带宽资
源。对链路进行攻击的一种典型的方式是Coremelt攻击。
Coremelt是安全研究人员在2009年提出的一种针对链路的分布式拒
绝服务攻击方法。
[1]
攻击者需要控制一个分布足够广泛的僵尸网络来发
动Coremelt攻击,其攻击的原理如图3-7所示。图3-7 Coremelt攻击
首先,攻击者通过traceroute等手段来判断各个僵尸主机和将要攻击
的链路之间的位置关系,并根据结果将僵尸主机分为两个部分。然后,攻击者控制僵尸主机,使其与链路另一侧的每一台僵尸主机进行通信并
收发大量数据,这样,大量的网络数据包就会经过骨干网上的被攻击链
路,造成网络拥堵和延时。
从骨干网上来看,这些僵尸主机之间相互收发的数据包确实是真实
存在的通信数据,没有办法将这些通信数据与真正的合法通信数据进行
有效的区分,因此这种攻击方式更加难以防护和缓解。3.2 攻击系统资源
我们回到那家倒霉的快餐店,看看还有一些什么砸场子的方法。前
面通过堵店门的方式阻止其他客人进入快餐店,的确是一种有效的方
法,不过这种方法似乎过于简单粗暴了……在快餐店里还存在着其他的
问题可以让我们去利用。
当一位客人走进了快餐店,是不是就等同于他已经开始享受这里的
服务了呢?当然不是。在他走进这家快餐店之后,他需要首先去收款台
点餐并付费,而如果他进入店门之后看到收款台前已经排起了长龙,那
么他就很有可能直接离开,或者在排队的过程中由于等待得不耐烦而离
开,并选择另一家快餐店就餐。现在,你知道应该怎么办了吧?没错,你可以找几十个朋友到快餐店的收款台前排队,并且每一位“顾客”只是
对不同的食物进行询问但不购买,并表现出犹豫不决的样子,甚至可以
装作是只懂英语的归国海外华侨,以此来延长排队的时间。这样,新进
入快餐店的客人就会因为无法忍受如此漫长的等待时间而离开了。
互联网上的服务器面对着与快餐店相似的问题。终端设备在与服务
器进行通信时,经常需要创建会话连接,在这个过程中通常会使用TCP
和SSL等协议。在会话创建的初始阶段,服务器需要为新建立的连接分
配资源;在会话过程中,服务器需要维护并更新连接的状态,并进行数
据传输和交互;在会话结束之后,这些连接资源才会被释放。这些会话连接就像快餐店的收款台,一旦被占满,新进入的会话请求就必须等待
前面的会话完成。消耗系统资源的分布式拒绝服务攻击的主要目的就是
对系统维护的连接资源进行消耗和占用,阻止正常连接的建立,从而达
到拒绝服务的目的。
误区:DDoS攻击都是消耗网络带宽资源的攻击
很多时候,新闻报道中提到DDoS攻击时,都会以“攻击流量达到
××”的语句来描述攻击的猛烈程度。这种以攻击流量的带宽作为DDoS攻
击危害程度描述指标的说法,通常会让人们误以为DDoS攻击都是消耗
网络带宽资源的攻击。
事实上,就像本章开头部分所说的,除了网络带宽资源,DDoS攻
击还有消耗系统资源和应用资源的攻击方法,而攻击流量的大小只是决
定攻击危害程度的一个方面。对于相同种类的攻击,通常攻击流量越
大,其危害也越大;而如果在相同攻击流量的情况下,不同的攻击方法
造成的危害和影响则不尽相同。
有时候,人们会错误地将SYN洪水攻击认为是消耗网络带宽资源的
DDoS攻击,而事实上,这种攻击的主要危害在于耗尽系统连接表资
源。相同攻击流量的SYN洪水攻击会比UDP洪水攻击的危害更大。3.2.1 攻击TCP连接
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。
不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层
无法提供这样的流机制,在现实的互联网中,这种连接通常通过TCP协
议来实现。
TCP连接包括三个阶段:连接创建、数据传送和连接终止。由于在
协议的设计过程当中只专注于协议的可用性,而没有对协议的安全性进
行比较周密和详细的考虑,因此TCP协议存在很多安全缺陷和安全性问
题。
TCP连接的三个阶段都容易受到拒绝服务攻击的影响,我们会在这
里对这些攻击手段分别进行介绍。
1.TCP连接洪水攻击
TCP连接洪水攻击是在连接创建阶段对TCP资源进行攻击的。TCP三次握手
创建TCP连接需要客户端与服务器进行三次交互,其过程如图3-8所
示。
图3-8 TCP三次握手
首先,客户端主机向服务器发送带有SYN标志的TCP同步报文,并
在报文中指明客户端使用的TCP端口和TCP连接的初始序列号。
其次,服务端在接收到客户端的同步报文之后,返回一个带有
SYN+ACK标志的报文,表示接受客户端的同步请求,并将TCP序列号
加1。
最后,客户端也返回一个带有ACK标志的报文,对服务端的响应进
行确认,并将TCP序列号加1。
至此,一个TCP连接建立成功,这个建立连接的过程也被称为TCP
三次握手。在三次握手进行的过程中,服务器会创建并保存TCP连接的信息,这个信息通常被保存在连接表结构中。但是,连接表的大小是有限的,一旦服务器接收到的连接数量超过了连接表能存储的数量,服务器就无
法创建新的TCP连接了。
攻击者可以利用大量受控主机,通过快速建立大量恶意的TCP连接
占满被攻击目标的连接表,使目标无法接受新的TCP连接请求,从而达
到拒绝服务攻击的目的。
TCP连接洪水攻击的原理如图3-9所示。图3-9 TCP连接洪水攻击
TCP连接洪水攻击是攻击TCP连接的最基本方法。当有大量的受控
主机发起攻击时,其效果非常明显。
2.SYN洪水攻击
SYN洪水攻击是最经典的一种拒绝服务攻击方式。这种攻击方式在
2000年以前就出现过,直到现在依然被攻击者大规模地广泛使用。近年
来,SYN洪水攻击仍然占据全部分布式拒绝服务攻击的三分之一以上。
TCP半开连接
在建立TCP连接的过程中,如果在服务器返回SYN+ACK报文后,客户端由于某种原因没有对其进行确认,这时服务器端就需要重传
SYN+ACK报文,并等待客户端的确认报文直到TCP连接超时。这种等
待客户端确认的连接状态通常被称为半开连接,如图3-10所示。图3-10 TCP半开连接
在连接超时之前,半开连接会一直保存在服务器的连接表中。
由于连接表的大小是有限的,如果在短时间内产生大量的半开连
接,而这些连接又无法很快地结束,连接表就会迅速被占满,导致新的
TCP连接无法建立。
SYN洪水攻击就是攻击者利用受控主机发送大量的TCP SYN报文,使服务器打开大量的半开连接,占满服务器的连接表,从而影响正常用
户与服务器建立会话,造成拒绝服务。
攻击者在发送TCP SYN报文时,可以在收到服务器端返回的
SYN+ACK报文后,跳过最后的ACK报文发送,使连接处于半开状态。
但是这样会很明显地暴露出进行SYN洪水攻击的攻击者的IP地址,同时
响应报文会作为反射流量占用攻击者的带宽资源。所以更好的方式是攻
击者将SYN报文的源IP地址随机伪造成其他主机的IP地址或不存在的IP
地址,这样攻击目标会将应答发送给被伪造的IP地址,从而占用连接资源并隐藏攻击来源。
SYN洪水攻击的原理如图3-11所示。
图3-11 SYN洪水攻击
SYN洪水攻击发动简单,效果明显,有大量的攻击工具都能够发动
这种攻击,至今依然是攻击者最喜爱的攻击方法之一。
3.PSH+ACK洪水攻击在TCP数据传输的过程中,可以通过设置PSH标志位来表示当前数
据传输结束,需要服务端进行处理。
在正常的TCP传输过程当中,如果待发送的数据会清空发送缓冲
区,那么操作系统的TCPIP协议栈就会自动为该TCP数据包设置PSH标
志。同样,当服务端接收到了一个设置了PSH+ACK标志的报文时,意
味着当前数据传输已经结束,因此需要立即将这些数据递交给服务进程
并清空接收缓冲区,而无须等待判断是否还会有额外的数据到达。
由于带有PSH标志位的TCP数据包会强制要求接收端将接收缓冲区
清空并将数据提交给应用服务进行处理,因此当攻击者利用受控主机向
攻击目标发送大量的PSH+ACK数据包时,被攻击目标就会消耗大量的
系统资源不断地进行接收缓冲区的清空处理,导致无法正常处理数据,从而造成拒绝服务。
PSH+ACK洪水攻击的原理如图3-12所示。图3-12 PSH+ACK洪水攻击
单独使用PSH+ACK洪水攻击对服务器产生的影响并不十分明显,更有效的方式是SYN洪水攻击与ACK洪水攻击相结合,这样能够绕过一
部分防护设备,增强攻击的效果。
4.RST洪水攻击在TCP连接的终止阶段,通常是通过带有FIN标志报文的四次交互
(TCP四次挥手)来切断客户端与服务器的TCP连接。但是当客户端或
服务器其中之一出现异常状况,无法正常地完成TCP四次挥手以终止连
接时,就会使用RST报文将连接强制中断。
TCP RST攻击
在TCP连接中,RST表示复位,用来在异常时关闭连接。发送端在
发送RST报文关闭连接时,不需要等待缓冲区中的数据报全部发送完
毕,而会直接丢弃缓冲器的数据并发送RST报文;同样,接收端在收到
RST报文后,也会清空缓冲区并关闭连接,并且不必发送ACK报文进行
确认。
攻击者可以利用RST报文的这个特性,发送伪造的带有RST标志位
的TCP报文,强制中断客户端与服务器的TCP连接。在伪造RST报文的
过程中,服务器端的IP地址和端口号是已知的,攻击者还需要设法获得
客户端的IP地址和端口号,并且使RST报文的序列号处于服务器的接收
窗口之内。如果攻击者和被攻击客户端或服务器处于同一内网,这些信息可以通过欺骗和嗅探等方式获取到。
TCP RST攻击的原理如图3-13所示。
图3-13 TCP RST攻击
很多情况下,攻击者不会与被攻击客户端或服务器处于同一内网,导致发动TCP RST攻击时难以获取端口和序列号。在这种情况下,攻击
者可以利用大量的受控主机猜测端口和序列号,进行盲打,发动RST洪
水攻击。只要在数量巨大的RST报文中有一条与攻击目标的端口号相
同,并且序列号落在目标的接收窗口之中,就能够中断连接。
RST洪水攻击的原理如图3-14所示。图3-14 RST洪水攻击
严格来说,TCP RST攻击和RST洪水攻击是针对用户的拒绝攻击方
式。这种攻击通常被用来攻击在线游戏或比赛的用户,从而影响比赛的
结果并获得一定的经济利益。
5.Sockstress攻击Sockstress攻击是研究人员在2008年提出的一种攻击TCP连接的方
法。
[2]
与前面几种攻击方法不同的是,Sockstress攻击不需要在短时间
内发送大量的攻击流量,因此不属于洪水攻击,而是一种慢速攻击。
误区:DDoS攻击都是洪水攻击
在提到DDoS攻击时,人们通常会条件反射性地想到UDP洪水攻
击、SYN洪水攻击、RST洪水攻击等,并会由此认为DDoS攻击都是洪
水攻击。
事实上,洪水攻击确实占据了DDoS攻击方法中相当大的比例,但
并不是所有的DDoS攻击都是洪水攻击。除了洪水攻击外,还有一些被
称为慢速攻击(Low and Slow Attack)的攻击方法。在本章开头部分,我们对于DDoS攻击精髓的表述中提到:“消耗或长期占用大量资源,从
而达到拒绝服务的目的”。洪水攻击就是通过快速发送大量数据和请
求,达到迅速消耗大量资源的目的;而慢速攻击则有所不同,它会缓慢
而坚定地发送请求并长期占用,一点一滴地蚕食目标的资源。
如果把DDoS攻击某个特定目标看做是一次杀手的谋杀任务,那么洪水攻击就是杀手手持机关枪直接射击目标,而慢速攻击则是《勺子杀
人狂》中的杀手使用一把勺子完成了谋杀任务。
在TCP传输数据时,并不是将数据直接递交给应用程序处理,而是
先临时存储在接收缓冲区中,该接收缓冲区的大小是由TCP窗口表示
的。如果TCP窗口大小为0,则表示接收缓冲区已被填满,发送端应该
停止发送数据,直到接收端的窗口发生了更新。Sockstress攻击就是利
用该原理长时间地维持TCP连接,以达到拒绝服务攻击的目的。
Sockstress攻击首先会完成TCP三次握手以建立TCP连接,但是在三
次握手的最后一次ACK应答中,攻击者将其TCP窗口大小设置为0,随
后进行一次数据请求。攻击目标在传输数据时,发现接收端的TCP窗口
大小为0,就会停止传输数据,并发出TCP窗口探测包,询问攻击者其
TCP窗口是否有更新。由于攻击者没有更改TCP窗口的大小,被攻击目
标就会一直维持TCP连接等待数据发送,并不断进行窗口更新的探测。
如果攻击者利用大量的受控主机进行Sockstress攻击,被攻击目标会一
直维持大量的TCP连接并进行大量窗口更新探测,其TCP连接表会逐渐
耗尽,无法接受新的连接而导致拒绝服务。
Sockstress攻击的原理如图3-15所示。图3-15 Sockstress攻击
Sockstress攻击的另一种方式是将TCP窗口设置为一个非常小的值,例如4字节。这样攻击目标将不得不把需要发送的数据切分成大量4字节
大小的分片,这会极大地消耗目标的内存和处理器资源,造成系统响应
缓慢和拒绝服务。3.2.2 攻击SSL连接
安全套接层(Secure Sockets Layer,SSL)是为网络通信提供安全
及数据完整性的一种安全协议。SSL能够在传输层对网络连接进行加
密,以防止传输的数据明文被监听和截获。
然而,SSL协议加密、解密和密钥协商的过程中会消耗大量的系统
资源,严重降低机器的性能,因此,通常只有在传输密码等机密信息时
才使用SSL协议进行传输。
图3-16是在SSL协议密钥协商过程中,客户端与服务器端消耗的
CPU计算资源的对比图。
[3]
可以看到,如果使用RSA系列的公钥密码算
法,那么服务器端所要消耗的资源都会比客户端多。在最极端的情况
下,使用RSA 4096进行加解密,服务器端需要花费相当于客户端资源的
25倍才能完成计算。图3-16 使用不同加密算法时客户端与服务器消耗资源的对比
攻击者可以利用SSL协议消耗资源的特性进行拒绝服务攻击。1.THC SSL DoS攻击
在进行SSL数据传输之前,通信双方首先要进行SSL握手,以协商
加密算法交换加密密钥,进行身份认证。通常情况下,这样的SSL握手
过程只需要进行一次即可,但是在SSL协议中有一个Renegotiation选
项,通过它可以进行密钥的重新协商以建立新的密钥。
THC SSL DoS攻击是安全研究人员在2011年提出的一种针对SSL的
拒绝服务攻击方法。
[4]
这种方法就是利用Renegotiation选项,造成被攻
击目标资源耗尽。在进行SSL连接并握手之后,攻击者反复不断地进行
密钥重新协商过程,而密钥重协商过程需要服务器投入比客户端多15倍
的CPU计算资源。攻击者只需要一台普通的台式机就能够拖慢一台高性
能服务器,而如果有大量主机同时进行攻击,则会使服务器忙于协商密
钥而完全停止响应。
THC SSL DoS攻击的原理如图3-17所示。图3-17 THC SSL DoS攻击
另外,即使服务器不支持Renegotiation,攻击者依然可以通过另行
打开新的SSL连接的方式来制造类似的攻击效果。
2.SSL洪水攻击在SSL握手的过程中,服务器会消耗较多的CPU计算资源进行加解
密,并进行数据的有效性检验。对于客户端发过来的数据,服务器需要
先花费大量的计算资源进行解密,之后才能对数据的有效性进行检验。
重要的是,不论数据是否是有效的,服务器都必须先进行解密才能够做
检查。攻击者可以利用这个特性进行SSL洪水攻击。
在进行洪水攻击时,一个要点是需要攻击者能够在客户端大量地发
出攻击请求,这就需要客户端所进行的计算尽可能地少。对于SSL洪水
攻击,比较好的方式是在数据传输之前,进行SSL握手的过程中发动攻
击。攻击者并不需要完成SSL握手和密钥交换,而只需要在这个过程中
让服务器去解密和验证,就能够大量地消耗服务器的计算资源,因此,攻击者可以非常容易地构造密钥交换过程中的请求数据,达到减少客户
端计算量的目的。
SSL洪水攻击的原理如图3-18所示。图3-18 SSL洪水攻击
攻击者可以使用SSLSqueeze等工具来发动SSL洪水攻击。3.3 攻击应用资源
我们再一次回头来看一看那家倒霉的快餐店。前面两节中,我们分
别对堵门和占用收款台这两种砸场子的方法进行了简单的介绍(再次声
明,这里只是用来做类比举例,不是真的在教读者去快餐店砸场子),你可能会觉得这两种方式显得不够优雅。堵门自不必说,占用收款台的
方法也需要很多朋友站在收款台前排队,可能过不了多长时间,你的小
伙伴儿们就会因为疲劳来找你抱怨了。
那么,有没有办法坐着就把问题给解决了呢?答案是肯定的,还记
得我们在这一章一开始提出的“可乐薯条大作战”吗?用这个办法你就能
够坐着把问题解决了。对于快餐店来说,相当数量的客人并不是点完餐
之后就带走的,而是需要在店里将这顿饭解决。因此,能够在收款台付
款并拿到食物只是享受快餐店服务的第一步,能够找到座位坐下才是服
务真正的开始。只要你把座位全部耗尽并长时间占用,真实的客人就会
选择其他的店就餐了。
互联网上的服务器也是一样的。客户端的请求能够到达服务器,并
且正常地与服务器建立会话连接,这只是服务的第一步。如果在之后的
步骤中,客户端不能够获取到所需要的内容,就依然没有得到服务。网
络应用和服务在处理数据时,通常需要消耗一定的网络连接、计算和存
储资源,这些资源是由应用程序向系统进行申请并自行管理和维护的。消耗应用资源的分布式拒绝服务攻击就是通过向应用提交大量消耗资源
的请求,从而达到拒绝服务的目的。
近年来,消耗应用资源的分布式拒绝服务攻击正逐渐成为拒绝服务
攻击的主要手段之一。而由于DNS和Web服务的广泛性和重要性,这两
种服务也就成为了消耗应用资源的分布式拒绝服务攻击的最主要的攻击
目标。3.3.1 攻击DNS服务
DNS服务是互联网的一项核心服务。通过使用DNS,人们在访问网
站时不需要记忆其IP地址,而只须输入其域名即可。在IPv6网络环境
下,由于IP地址由原来的32位扩展到了128位,变得更加难以记忆,DNS服务也就变得更加重要。当DNS服务的可用性受到威胁时,互联网
上的大量设备都会受到影响甚至无法正常运行。历史上曾有多次针对
DNS进行的攻击事件,都造成了较大影响。
针对DNS服务的攻击方法主要有DNS QUERY洪水攻击和DNS
NXDOMAIN洪水攻击两种。
1.DNS QUERY洪水攻击
DNS QUERY洪水攻击是指向DNS服务器发送大量查询请求以达到
拒绝服务效果的一种攻击方法。
DNS查询和解析过程当客户端向DNS服务器查询某域名时,DNS服务器会首先检查其本
地缓存中是否有该域名的记录,如果缓存中有该域名的记录(即命
中),则直接将缓存中记录的IP地址作为非权威应答返回给客户端。如
果在缓存中没有找到该域名的记录,则会进行迭代查询,从根域名开
始,逐级进行域名解析,直到解析出完整的域名,之后服务器会将域名
解析结果作为应答发送给客户端,并生成一条解析记录保存到缓存中。
例如,对www.nsfocus.com这个域名进行解析,如果在缓存中没有
查到其记录,DNS服务器会首先向根域名服务器查询.com的域名解析服
务器,然后向.com域名服务器查询nsfocus.com的域名解析服务器,最后
向nsfocus.com域名解析服务器查询得到www.nsfocus.com的域名解析结
果,并将结果返回给发起查询的客户端。
DNS查询和解析的过程通常如图3-19所示。图3-19 DNS解析过程
在DNS解析的过程中,客户端发起一次查询请求,DNS服务器可能
需要进行额外的多次查询才能完成解析的过程并给出应答,在这个过程
中会消耗一定的计算和网络资源。如果攻击者利用大量受控主机不断发
送不同域名的解析请求,那么DNS服务器的缓存会被不断刷新,而大量
解析请求不能命中缓存又导致DNS服务器必须消耗额外的资源进行迭代
查询,这会极大地增加DNS服务器的资源消耗,导致DNS响应缓慢甚至
完全拒绝服务。
DNS QUERY洪水攻击的原理如图3-20所示。图3-20 DNS QUERY洪水攻击
进行DNS QUERY洪水攻击的要点在于每一个DNS解析请求所查询
的域名应是不同的,这样可以比较有效地避开DNS服务器缓存中的解析
记录,达到更好的资源消耗效果。
2.DNS NXDOMAIN洪水攻击
DNS NXDOMAIN洪水攻击是DNS QUERY洪水攻击的一个变种攻击方式,区别在于后者是向DNS服务器查询一个真实存在的域名,而前
者是向DNS服务器查询一个不存在的域名(NXDOMAIN即Non-eXistent
Domain)。
在进行DNS NXDOMAIN洪水攻击时,DNS服务器会进行多次域名
查询,同时,其缓存会被大量NXDOMAIN记录所填满,导致响应正常
用户的DNS解析请求的速度变慢。这与DNS QUERY洪水攻击所达到的
效果类似。除此以外,一部分DNS服务器在获取不到域名的解析结果
时,还会再次进行递归查询,向其上一级的DNS服务器发送解析请求并
等待应答,这进一步增加了DNS服务器的资源消耗。因此,DNS
NXDOMAIN洪水攻击通常比DNS QUERY洪水攻击的效果更好。
DNS NXDOMAIN洪水攻击的原理如图3-21所示。图3-21 DNS NXDOMAIN洪水攻击3.3.2 攻击Web服务
近年来,Web技术发展非常迅速。人们可以通过浏览器使用Web服
务,简单方便地获取需要的信息;而许多机构和企业的重要信息和关键
业务也是通过Web服务的方式对外提供。一旦Web服务受到拒绝服务攻
击,就会对其承载的业务造成致命的影响。
有多种方法能够对Web服务进行分布式拒绝服务攻击,本节将依次
进行介绍。
1.HTTP洪水攻击
Web服务通常使用超文本传输协议(HyperText Transfer Protocol,HTTP)进行请求和响应数据的传输(图3-22)。图3-22 Web访问过程
常见的HTTP请求有GET请求和POST请求两种。通常,GET请求用
于从Web服务器获取数据和资源,例如请求页面、获取图片和文档等;
POST请求用于向Web服务器提交数据和资源,例如发送用户名密码、上传文件等。在处理这些HTTP请求的过程中,Web服务器通常需要解
析请求、处理和执行服务端脚本、验证用户权限并多次访问数据库,这
会消耗大量的计算资源和IO访问资源。
如果攻击者利用大量的受控主机不断地向Web服务器恶意发送大量
HTTP请求,要求Web服务器处理,就会完全占用服务器的资源,造成
其他正常用户的Web访问请求处理缓慢甚至得不到处理,导致拒绝服
务。这就是HTTP洪水攻击。由于HTTP协议是基于TCP协议的,需要完成三次握手建立TCP连接
才能开始HTTP通信,因此进行HTTP洪水攻击时无法使用伪造源IP地址
的方式发动攻击。这时,攻击者通常会使用HTTP代理服务器。HTTP代
理服务器在互联网上广泛存在。通过使用HTTP代理服务器,不仅可以
隐藏来源以避免被追查,还能够提高攻击的效率——攻击者连接代理服
务器并发送完请求后,可以直接切断与该代理服务器的连接并开始连接
下 ......
鲍旭华 洪海 曹志华 著
ISBN:978-7-111-46283-5
本书纸版由机械工业出版社于2014年出版,电子版由华章分社(北京华
章图文信息有限公司)全球范围内制作与发行。
版权所有,侵权必究
客服热线:+ 86-10-68995265
客服信箱:service@bbbvip.com
官方网址:www.hzmedia.com.cn
新浪微博 @研发书局
腾讯微博 @yanfabook目录
序
前言
第1章 DDoS攻击的历史
1.1 探索期:个人黑客的攻击
1.1.1 第一次拒绝服务攻击
1.1.2 分布式攻击网络:Trinoo
1.1.3 黑手党男孩
1.1.4 根域名服务器的危机
1.2 工具化:有组织攻击
1.2.1 在线市场面临的勒索
1.2.2 世界杯博彩网站敲诈案
1.2.3 操纵政党选举的攻击
1.2.4 燕子行动
1.2.5 史上最大规模的DDoS
1.3 武器化:网络战
1.3.1 网络战爆发:爱沙尼亚战争
1.3.2 硝烟再起:格鲁吉亚战争
1.3.3 美韩政府网站遭攻击
1.4 普及化:黑客行动主义1.4.1 匿名者挑战山达基教会
1.4.2 维基解密事件
1.4.3 索尼信息泄露案
1.5 小结
1.6 参考资料
第2章 DDoS攻击的来源
2.1 僵尸网络的发展
2.1.1 演化和发展趋势
2.1.2 知名僵尸网络
2.2 僵尸网络的组建
2.2.1 节点
2.2.2 控制
2.3 僵尸网络的危害
2.4 自愿型僵尸网络
2.5 小结
2.6 参考资料
第3章 DDoS攻击的方法
3.1 攻击网络带宽资源
3.1.1 直接攻击
3.1.2 反射和放大攻击
3.1.3 攻击链路3.2 攻击系统资源
3.2.1 攻击TCP连接
3.2.2 攻击SSL连接
3.3 攻击应用资源
3.3.1 攻击DNS服务
3.3.2 攻击Web服务
3.4 混合攻击
3.5 小结
3.6 参考资料
第4章 DDoS攻击的工具
4.1 综合性工具
4.1.1 Hping
4.1.2 PenTBox
4.1.3 Zarp
4.2 压力测试工具
4.2.1 LOIC
4.2.2 HOIC
4.2.3 HULK
4.3 专业攻击工具
4.3.1 Slowloris
4.3.2 R.U.D.Y.4.3.3 THC SSL DOS
4.4 小结
4.5 参考资料
第5章 DDoS攻击的成本和收益
5.1 攻击成本
5.2 获取收益
5.2.1 敲诈勒索
5.2.2 实施报复
5.2.3 获取竞争优势
5.3 小结
5.4 参考资料
第6章 DDoS攻击的治理和缓解
6.1 攻击的治理
6.1.1 僵尸网络的治理
6.1.2 地址伪造攻击的治理
6.1.3 攻击反射点的治理
6.2 攻击的缓解
6.2.1 攻击流量的稀释
6.2.2 攻击流量的清洗
6.3 小结
6.4 参考资料第7章 未来与展望
7.1 未来的网络战
7.2 DDoS的APT时代
7.3 DDoS与大数据
附录A DDoS主要攻击方法、工具和事件一览
附录B 关于DDoS的9个误区
附录C 国外知名黑客组织和个人简介
附录D NTP和DNS放大攻击详解序
随着科学技术的迅猛发展和深度应用,网络空间中的变革正在不断
改变和影响着人们的生活方式。然而,一次次惊喜的背后,却隐藏着诸
多隐患。无论是国家安全还是集体利益或个人利益,在网络空间中都会
随时面临挑战。2013年8月25日,我国顶级域名CN的解析服务器遭到攻
击,造成大量以cn为后缀的网站无法访问,经济损失和社会影响难以估
计。而导致这一严重后果的,就是分布式拒绝服务(Distributed Denial
of Service,DDoS)攻击。
DDoS是一种以破坏为目的的攻击,十几年来不断发展变化,成为
不同组织和个人的工具,用于网络中的勒索、报复,甚至战争。从荒唐
的“黑手党男孩”到神秘的“匿名人”组织,从雅虎、花旗这样的商业巨头
到美国、俄罗斯、朝鲜与他国的争端,这本书揭示了DDoS的发展历
史。
了解仅仅是开始,感兴趣的读者会有一系列疑问。谁在进行攻击?
他们为什么发起攻击?使用了什么方法?如果我受到攻击,该怎样保护
自己?这本书从多个角度对DDoS进行了解读。传统的DDoS大多来自僵
尸网络,而近年来高性能服务器、移动设备甚至志愿者都成为了可能的
来源;攻击者不是疯子,每次攻击都会有明确的目的,以及对成本和收
益的考虑;DDoS的原理看似繁杂,却可以归为三类,实用的工具则数不胜数;面对这种攻击,绝对的防御并不存在,综合五个环节的治理和
缓解才是应对之道。最后,这本书在附录中还介绍了国外知名的黑客组
织和个人,以及常见的几个误区。
本书的作者之一是我的学生。想不到在我心目中的孩子,转眼间有
了自己的想法和见解,甚至都开始写书了。这本书称不上尽善尽美,很
多观点也有可商榷处。但让我感到一丝欣慰的是,国内安全领域的一代
新人正在成长。在我们的政府部门、学术机构和安全企业,有这么多当
年熟悉的面孔,他们有了自己的思想和声音,不再盲目跟随国外的脚
步。我能够感到,中国成为一个信息安全强国的日子,也许就在不远的
将来。
冯登国
中国科学院软件研究所
2014年1月25日前言
现实与网络中的战争
1939年9月1日凌晨,第二次世界大战爆发。德军14个师兵分三路,从北、南、西同时入侵波兰,波军6个集团军80万人组成的防线瞬间瓦
解。由于兵力分散和移动迟缓,波军很快被各个击破,到9月21日“布楚
拉战役”结束,主力已全军覆没。这次战争的时间之短,出乎所有人的
意料,它将一种新的战争模式呈现在人们眼前:“闪电战”。
人们在惊叹“闪电战”速度的同时,往往忽略了另一个因素:兵力对
比。当时的德军的确强大,但波军也非弱旅,在之前的“波苏战争”中和
苏联互有胜负。此外,德军的突击部队其实只有14个师,却能够轻易突
破防线,还在之后的战斗中屡战屡胜,作用之大让当时的军事学家跌破
眼镜。
2012年7月,一部由美国制作的电影预告片被传到互联网上,由于
包含对伊斯兰教的侮辱,引起了穆斯林的强烈抗议。9月,一个自称“伊
兹丁·哈桑网络战士”的黑客组织,在网上声称对美国金融业展开报复性
战争。短短几周之中,美国银行、花旗集团、富国银行、美国合众银
行、PNC金融服务集团等金融巨头的网上服务因遭受攻击而中断,一个
名字反复出现在报纸头条:“分布式拒绝服务攻击”。一个名不见经传的黑客组织,面对这些金融巨头,为什么能一再获
得胜利?成本高昂的防护系统,精英荟萃的安全团队,为什么不堪一
击?到底什么是“分布式拒绝服务攻击”?什么是分布式拒绝服务攻击
分布式拒绝服务攻击是从多个来源,彼此协同进行的拒绝服务攻
击。这个名称包含了两层含义:首先,它是一种“拒绝服务”攻击;其
次,它是一种“分布式”攻击。
那么,什么是“拒绝服务”(Denial of Service,DoS)呢?可以这样
认为,凡是导致合法用户不能访问服务的行为,就是“拒绝服务”攻击。
最典型的例子是造成一个公开的网站无法访问。攻击者使用的方法通常
很简单,就是不断提出服务请求,使服务提供方疲于应付,直到合法用
户的请求来不及得到处理。
但是,大型企业或组织往往具有较强的服务提供能力,足以处理单
个攻击者发起的所有请求。于是,攻击者会组织很多协作的同伴(或计
算机),从不同的位置同时提出服务请求,直到服务无法被访问。这就
是“分布式”。现实中,攻击者往往没有那么多同伴,所以,他们通常利
用所谓的“僵尸网络”来控制大量计算机进行攻击。
然而,问题依然存在。为什么这种攻击具有如此威力?它和“闪电
战”又有什么关系呢?笔者认为,这两者能够取得辉煌战果的根本原理
是相同的:持续制造局部优势。
运用“闪电战”的德军,能够依靠机械化部队的速度集中兵力,每场战斗其实都是以强胜弱。波军则分散在漫长的国境上和广阔领土中,只
能被各个击破,如果个别阵地存在顽强抵抗,德军就会绕过去,在另一
个局部获得胜利。当失去友军支撑后,原本坚守的波军阵地只能不战而
溃。所以,德军可以取得远超军力对比的战果。
网络世界中的一些特性有所变化。首先,IT系统的依赖性更强,需
要大量环境条件和其他应用来支撑,也就更容易存在弱点;其次,比起
物理世界,攻击者可以提前观察受害目标,所以更容易发现弱点;再
次,攻击者更方便组织攻击力量,完全让世界各地的被控制主机同时发
起攻击。而“分布式拒绝服务”就是利用了这些特性。所以,即使拥有的
资源、技术和人力远逊于专业团队,一个小型黑客组织也依然能够不断
打垮金融巨头。原因无他,只因制造局部优势。
正如本杰明·萨瑟兰在他的《技术改变战争》中所述:“被视为‘非对
称’的武器能够给予处于技术劣势的一方某种优势,让他们有机会去袭
击装备更加先进的敌人。”本书读者对象
DDoS是一种破坏力很强的网络攻击方法,而且在可以预见的未来
中,还没有任何手段能够完全防御这种攻击。本书希望从受攻击者的角
度,来讨论以下几个问题:
1)谁在攻击我?
2)攻击我的目的是什么?
3)攻击者怎样进行攻击?
4)我该如何保护自己?
读者可能依然不了解自己是否有必要读这本书,那么可以试着回答
以下问题,如果其中一个回答“是”,本书就可能会给你带来某种帮助。
1)我是否需要为公司(组织)的网络安全负责?
2)我是否需要为他人介绍一些基本的网络安全知识?
3)我的客户是否关心网络安全?
4)了解网络安全对我未来的职业发展是否有益?
5)我管理的业务是否受安全基础设施的影响?本书内容简介
第1章讲述了DDoS的发展历史。第2章~第4章是本书的重点,从来
源、方法和工具三个角度介绍DDoS攻击本身。第5章讨论攻击者的成本
和收益问题。第6章分析在不同环节对DDoS的治理和缓解方法。第7章
是对未来的一些探讨。
此外,本书在附录中提供了一些很有价值的资料。附录A是DDoS
攻击方法、工具和相关事件的汇总;附录B解读了9个DDoS常见误区;
附录C介绍了一些国外知名黑客组织和个人;附录D对NTP和DNS放大
攻击做了更详细的解读;附录E提供了《2013年绿盟科技DDoS威胁报
告》,用真实数据说明DDoS攻击的现状。第1章 DDoS攻击的历史
“一切对存在的追问都以历史性为特征。”
——海德格尔
20世纪的最后几年中,分布式拒绝服务(Distributed Denial of
Service,DDoS)凭空出世,随后屡次在网络中掀起轩然大波,成为世
界关注的焦点,即使对信息安全并不了解的人也耳熟能详。本章从历史
的角度,为读者回顾这一过程。
关于“人类天生就具有攻击性”的命题是否正确,尚没有一个定论,也远远超出了本书的范畴。但是就历史来看,世界上的战争几乎从未停
息过。而每当一种新技术诞生,就可能会被考虑是否可以用作武器。在
物理学、化学、生物学、核物理学等领域,这样的例子不胜枚举。可被
直接或间接用于实施攻击行为的技术,其发展和应用的历程存在一定的
规律,一般而言,可以分为四个阶段。
1)探索期:新技术出现不久,人们不断摸索其使用方法,个人的
兴趣和好奇心占主导地位。例如,火药出现后被用于制作爆竹。
2)工具化:技术的应用方式开始定型,成为实用性工具,对成本
和收效的考虑占主导地位。例如,猎枪的出现以及火药在爆破领域的应用。
3)武器化:技术被大规模用于(或准备用于)战争中,政治势力
会对该类武器的生产、拥有和使用进行控制。例如,大部分国家对现代
枪械的管理方式。
4)普及化:技术的完善大幅降低了生产、使用和维护的成本,在
法律允许的条件下,个人拥有也变得容易。例如,美国允许公民拥有枪
支,而拥有的成本很低,3D打印的发展更是让技术门槛几乎消失。
不同技术的发展有各自的特点,其历程也会不同。例如核裂变技
术,在经过了探索期后直接进入武器化,作为原子弹在战争中使用。之
后才进入民用领域,出现了核电站。而随着原理的普及和成本下降,一
位美国的14岁少年甚至自行制造出了核聚变反应堆,并在TED上发表演
讲。
[1]
不同的阶段之间也会存在重叠,同一技术很可能在军事领域和民
用领域平行发展。
分布式拒绝服务攻击的发展符合这四个阶段。在探索期,发起攻击
的“黑客”大多是一些技术爱好者,单纯为了兴趣或炫耀而进行了尝试,时间和目标的选择都很随意。随着工具化的发展,这项技术被用于有组
织的行动,包括勒索、竞争或报复。为了使收益或效果最大化,他们会
精确地选择目标和时机。当国家级政治势力意识到其价值时,分布式拒
绝服务攻击很快被武器化,并用在网络战中。最后,随着使用越来越方便且易于获取,普及化也促进了黑客行动主义的发展。事件的爆发往往
和群体的情绪有关,容易被外部事件触发,打击的范围开始扩大。与枪
支和火药类似,分布式拒绝服务攻击也是平行发展的。表1-1列出了不
同阶段DDoS攻击事件的特点。
表1-1 不同阶段DDoS攻击事件的特点
图1-1列出了在分布式拒绝服务攻击的发展历史中发生的主要攻击
事件。本章的后续小节会分别详细介绍。图1-1 DDoS的历史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~100Mbits(兆比特每秒),100~200Kpps(千数据包每秒)。总流量为900Mbits(兆比特每
秒),1.8Mpps(千数据包每秒)。发送的数据包包括ICMP、TCP SYN
和UDP。攻击的源地址是随机产生的,但基本都位于当时路由表中存在的网段内。
[8]
根据网络流量报告(The Internet Traffic Report),当天全球的流量
指数和数据包丢失率如图1-4所示。
[9]
图1-4 骨干网流量指数和丢包率
由于攻击不是在短时间内便告结束,而且攻击方式相对简单,因此
易于采取相应措施,否则,全球互联网将会有相当一部分彻底中断。
之后,随着技术的发展,根服务器都采用了Anycast和负载均衡技
术进行防御。现在,影响其运行已经远比当时困难。1.2 工具化:有组织攻击
从用户增长的角度来看,互联网的早期设计就像是交通规划,诸多
未曾考虑的问题以超乎想象的速度爆发出来。于是,互联网成了一个难
以监督而易于藏匿的世界,这里的犯罪成本和风险远比现实世界来得
低。
在经过了早期无序的攻击时期后,一个问题突然闪进人们的脑海
中:是否可以用如此强有力的工具牟利?
较早利用这一工具的是勒索组织,他们有的使用已有攻击工具,有
的租用僵尸网络,有的干脆自己针对性地开发工具。猎物往往是一些通
过互联网盈利的企业,例如在线交易市场或博彩网站。这些勒索组织会
先对猎物进行短期的示威性攻击,然后发送勒索信,并对其进行威胁:
如果不支付勒索金,就在业务最繁忙时再次攻击。很多中小企业会屈
从,并秘而不宣。这是因为追查网络犯罪者非常困难,即使警方介入也
难以保证成功,而犯罪者一旦逃脱,就可能实施猛烈的报复。另一方
面,购买专业的缓解方案显得较为昂贵,甚至会超过支付的勒索金。但
是,依然有抗争成功的例子,本节介绍的在线市场ClickBank以及南非
世界杯期间经营的博彩网站最终成功抵抗了攻击者。
第二种情况是打击竞争者,包括商业和政治上的竞争对手。真正的获利者并不出面,他们会雇用犯罪组织,在重要的时间点攻击对手,造
成对方声誉损失或阻止对方的行动。这类攻击很难得到直接的证据,但
行为模式非常清晰。加拿大政党选举中就曾遇到过此类攻击。
第三种情况最为极端,它的目的是报复。2012年,一个黑客组织认
为YouTube的某段视频是对伊斯兰教的侮辱,于是宣布对美国实施报复
行动,直接对象是美国的各大银行。这次行动被称为“燕子行动”,持续
了一年以上,数十家银行遭到打击,造成的损失难以估计。另一次著名
的报复行动是Spamhaus事件,它是一个反对垃圾邮件的组织。该组织遭
到攻击的原因被认为是它指出了垃圾邮件发送者。这次事件中攻击流量
达到了300Gits,到2013年为止,是史上最大规模的分布式拒绝服务攻
击。
黑客不再是有组织攻击的主角,他们成了操纵者手中的武器。这类
攻击的特点是对目标和时间点的选择非常精确,利益最大化是行为的必
然准则。1.2.1 在线市场面临的勒索
ClickBank是一家在线的数字信息产品市场,为数字内容创作方和
营销方之间建立联系。SpamCop中是一个反垃圾邮件组织,它追踪批量
发送的垃圾邮件,发现发送者的IP地址,并建立“SpamCop Blacklist”,提供给希望免受垃圾邮件骚扰的用户。[10]
2003年6月21日,大量请求淹没了两家公司的服务器,使得正常用
户无法使用服务。ClickBank的有关负责人声称,每台服务器每秒钟会
接收到数以千计的http请求,同时日志文件以每秒1MB的速度增长。有
消息称,3周前,另外一些不愿公开名称的公司和政府机构也遭到了同
样的攻击。攻击者要求ClickBank和SpamCop支付勒索金,否则不会停
止攻击。但两家公司并未屈服,而是与FBI合作。6月25日,他们宣布,在与FBI紧密合作后,终于发现了DDoS攻击的肇事者。[11]1.2.2 世界杯博彩网站敲诈案
图1-5 2010年南非世界杯
2011年4月,德国杜塞尔多夫的法庭对一名网络罪犯进行了宣判。
该网络罪犯在2010年南非世界杯(图1-5)期间,对在线博彩网站进行
了勒索。罪犯是一名法兰克福人,他成功地勒索了三家网站,并试图勒
索另外三家,所使用的武器就是DDoS攻击。根据德国媒体报道,勒索
者用每天65美元的价格租用僵尸网络,然后威胁这些赌博网站,如果不
给他支付2500欧元,就会在7月世界杯期间使网站无法访问。当三家网
站拒绝支付时,他将勒索金降到了1000欧元。据网站经营者估计,网站
发生故障期间,他们的大型办事处损失了约25000~40000欧元,小型办
事处损失了约5000~6000欧元。
法院最终判该男子有期徒刑2年零10个月,并责令赔偿受影响的企业35万欧元。
[12]
德国对计算机阴谋破坏行为的最高惩罚是入狱10年。
大型体育赛事期间,对博彩网站进行敲诈的案件已经不是第一次发生。
2006年,一个俄罗斯黑帮就曾企图对英国博彩公司敲诈400万美元,结
果获罪入狱。1.2.3 操纵政党选举的攻击
2012年3月24日,本该是加拿大民主新党(Canada’s New
Democratic Party)的选举日,选民会进行在线投票。令人意外的是,选
举却发生了延时。Scytl公司为加拿大民主新党提供了一套先进的选举服
务,可以通过电子和邮寄方式实现投票。第一轮投票于3月23日下午5点
开始,24日上午9点正常结束。第二轮投票在24日上午11点开始后,就
开始出现投票延时现象,并快速恶化。根据Scytl的入侵检测系统和防火
墙的日志显示,这是一次外部攻击。于是,他们启动了标准的缓解流
程,包括增加系统的吞吐量和阻止恶意IP地址。这些措施使得服务较
慢,但依然可以工作,最终投票过程延长了3个小时。整个攻击过程
中,选票系统收到了来自1万余台僵尸主机(又称肉鸡)的超过1000万
次异常请求,攻击的时间也和每轮投票时间完全相符。由普华永道进行
的独立审计指出,投票结果未被篡改。调查显示,这1万台主机的IP地
址主要集中在加拿大,采用的就是分布式拒绝服务攻击。1.2.4 燕子行动
2012年7月,一个由美国人萨姆·巴西利(Sam Bacile)制作并导演
的关于伊斯兰教先知穆罕默德的影片预告片被放到YouTube上,引来了
伊斯兰国家的强烈抗议。9月18日,一个号称伊兹丁·哈桑网络战士
(Cyber fighters of Izz ad-din Al-Qassam)的黑客组织在pastebin网站上发
布公告,声称将美国银行和纽约交易所列为攻击目标,在YouTube上这
部亵渎伊斯兰教先知的影片被移除之前,攻击将一直持续。从此,代号
为“燕子行动”(Operation Ababil)的一系列针对美国金融机构的DDoS
攻击事件拉开了序幕。“燕子行动”这个代号引自《古兰经》里的安拉派
燕群去摧毁一队由也门国王派出攻击麦加的象群的故事。
到2013年6月为止,整个行动经历了三个阶段。第一阶段始于2012
年9月18日,持续了5个星期;第二阶段从2012年12月10日开始,持续了
7个星期;第三阶段从2013年3月5日开始,持续了9个星期,到5月6日停
止;第四阶段从2013年7月23日开始,计划持续两个月。
在整个行动中,大多数美国金融机构的在线银行业务都遭到了攻
击,其中包括美国银行(Bank of America)、花旗集团(Citigroup)、富国银行(Wells Fargo)、美国合众银行(US Bancorp)、PNC金融服
务集团、第一资本(Capital One)、五三银行(Fifth Third Bank)、BBT银行和汇丰银行(HSBC)。DDoS攻击对上述银行网站业务的连
续性和可获得性造成了严重的影响,同时也对银行的声誉造成了不可估
量的损失。由于事态的严重性,美国政府部门包括国土安全部
(DHS)、联邦调查局(FBI)以及金融监管机构均参与了事件的调查
和处理。
攻击者采用了非常丰富的攻击类型,既包括传统的TCP、UDP、ICMP Flood,也包括HTTP Flood、HTTPS Flood和DNS Flood。他们使
用的僵尸网络被称为Brobot,是由被植入了itsoknoproblembro的主机构
成。与众不同的是,这些主机主要由高性能的服务器组成。[13]1.2.5 史上最大规模的DDoS
Spamhaus是一家致力于反垃圾邮件的非盈利组织,总部在伦敦和日
内瓦。Spamhaus维护了一个巨大的垃圾邮件黑名单,这个黑名单被很多
大学研究机构、互联网提供商、军事机构和商业公司广泛使用。
[14]
从2013年3月18日起,Spamhaus开始遭受DDoS攻击。攻击者通过僵
尸网络,利用DNS反射技术进行攻击。根据服务提供商CloudFlare的监
控记录,3月18日初始的攻击相对比较温和,攻击流量约为10Gbits。从
标准时间21:30开始,攻击者将攻击流量猛增到75Gbits,如图1-6所示。
从3月19日到3月21日,对Spamhaus的攻击流量在30Gbits到90Gbits之间
波动。到3月22日,攻击流量达到了120Gbits。在攻击者发现无法有效
地击垮Spamhaus之后,他们改变了攻击策略,转而攻击CloudFlare的网
络带宽供应商和连接的互联网交换设施。在3月27日达到惊人的
300Gbits的攻击流量,被认为是互联网史上最大规模的DDoS攻击事
件。图1-6 3月18日Spamhaus攻击流量
事件的起因可能是Spamhaus将一家荷兰公司Cyberbunker列入了黑
名单,之后Spamhaus就开始遭受DDoS攻击。自称是攻击者发言人的斯
文·奥拉夫·坎普赫伊斯(Sven Olaf Kamphuis)在网上发表了一则讯息,称“我们很清楚,这是世界上公开进行的最大的DDoS攻击之一”,Cyberbunker是在报复Spamhaus“滥用其影响力”的行为。“从来都没有人
授权Spamhaus来决定互联网上该有哪些内容,”坎普赫伊斯说,“他们假
装抗击垃圾讯息,借此攫取了这一权力。”然而在4月,坎普赫伊斯又否
认策划和实施了这次攻击。
[15]
4月25日,西班牙警方逮捕了坎普赫伊
斯,被捕时,他在一个被改装成移动办公室的小货车里,里面满是线缆
和各种网络设备。
[16]1.3 武器化:网络战
人类历史上出现一种新技术,一出现就可能被思考是否可以用作武
器。如果可以,那么一定会被作为武器来使用。在物理、化学、生物、核能等领域,这样的例子数不胜数,分布式拒绝服务攻击也不例外。
已经发生的网络战中,攻击的目的有两种:一种是占领舆论制高
点,赢得国际社会支持;另一种是宣扬决心和能力。几次事件都爆发在
实力悬殊的国家之间,这决定了战争的方式和目标,所以这并不意味着
网络战只有两种形式。1.3.1 网络战爆发:爱沙尼亚战争
网络战的爆发并不出人意料,军事战略家早就对这种可能性做出了
预测。一个国家对基础信息网络的依赖性越强,就越容易遭受网络打
击。人们理所当然地将目光的焦点集中在美国这个世界上最大的经济
体、信息系统最发达的国家身上。然而,世事总是出人意料,直到战争
发生,大家才注意到一个宽带覆盖和互联网日常使用甚至超过美国的东
北欧小国——爱沙尼亚。
爱沙尼亚是位于波罗的海沿岸的一个小国(图1-7),二战结束后
成为苏联的一部分。为了纪念战争中牺牲的战士,苏联在众多的东欧国
家首都修建了巨大的铜像,爱沙尼亚也不例外。而当冷战结束,爱沙尼
亚宣布独立以来,这里生活的30万俄罗斯人和100万爱沙尼亚人之间的
关系越来越紧张,首都塔林的纪念像成了焦点。2007年4月,爱沙尼亚
首相安德鲁斯·安西普提出,将铜像从塔林转移到军人墓地。4月27日
(后来被称为“铜像之夜”),激进团体在这里爆发了冲突。事件不仅引
发本国骚动,也导致俄罗斯政府和民众的不满。俄罗斯外交部指责爱沙
尼亚一手促成紧张局面,并在5月1日以“铁路维修”为由,停止向爱沙尼
亚出口石油和煤。图1-7 爱沙尼亚地理位置
2007年4月底至5月,爱沙尼亚的重要网络基础设施,包括国会、总
统府、总理办公室、央行、主要媒体报社等网站都受到DDoS攻击而关
闭。攻击的第一次高峰出现在5月3日,当天莫斯科爆发最激烈的示威抗
议。另一次高峰是5月8日和9日,欧洲各国纪念战胜纳粹德国,攻击同
步升级,最少六个政府网站被迫下线,其中包括外交和司法部。最后一
次攻击高峰是15日,该国最大的几家银行被迫暂停国外连线。
爱沙尼亚国防官员追查攻击时,发现虽然攻击看似来自世界各地的电脑,但原始攻击直接来自俄罗斯,部分域名还以俄罗斯总统普京的名
义登记。面对指责,俄罗斯多次否认与事件有关,并抨击爱沙尼亚虚构
指控。俄罗斯驻爱沙尼亚大使弗拉基米尔·奇若夫向《卫报》指出:“说
攻击来自俄罗斯或俄政府是严重指控,你必须拿出证据来。网络空间无
处不在。我个人不支持这种行为,但人们应该先搞清楚袭击者来自哪
里,为什么发动攻击。”
[17]
爱沙尼亚是北约成员国,根据《北大西洋公约》有关条款规定,针
对任何一个成员国的攻击都可视为针对所有成员国的攻击。据此,北约
向爱沙尼亚派出了技术顾问,以帮助其消除网络攻击带来的损害。但除
此之外,北约并没有进一步采取任何正式的外交或军事行动。1.3.2 硝烟再起:格鲁吉亚战争
南奥塞梯位于高加索格鲁吉亚北部,曾为苏联时期格鲁吉亚苏维埃
社会主义共和国管辖下的一个自治州(图1-8)。1990年,格鲁吉亚准
备脱离苏联独立,南奥塞梯议会却宣布成立南奥塞梯共和国,脱离格鲁
吉亚成为苏联的一部分。之后的几年冲突不断,直到1994年才进入和平
状态。2008年4月,格鲁吉亚传出可能加入北大西洋公约组织的消息,双方冲突也因此一触即发。
图1-8 南奥塞梯的战争形势图(摘自维基百科)
2008年8月5日,南奥塞梯的新闻网站OSInform和OSRadio遭到黑客攻击,网站标识保持不变,内容却被替换为阿拉尼亚电视(格鲁吉亚政
府支持,面向南奥塞梯人的电视台)的内容。南奥塞梯特使Dmitry
Medoyev前往莫斯科,声称格鲁吉亚是在企图掩盖有关战争的信息。
2008年8月8日,格鲁吉亚展开全面军事行动进入南奥塞梯,很快控
制了该地区三分之二以上的领土,并包围了首府茨欣瓦利。同日,俄罗
斯军队进入南奥塞梯地区,9日展开军事行动,很快控制了茨欣瓦利,并在随后几日占领了南奥塞梯以外的格鲁吉亚领土和军事基地。
当俄军对格鲁吉亚的军事行动全面开始后,俄罗斯对格鲁吉亚的网
络攻击也全面展开,包括媒体、通信和交通运输系统在内的格鲁吉亚官
方网站都瘫痪了,对格鲁吉亚的军事行动造成了较大的影响,直接影响
到了格鲁吉亚的战争动员与支援能力。格鲁吉亚总统萨卡什维利的个人
主页被人替换(图1-9),黑客在网站上贴出了“精心”挑选的宣称“萨卡
什维利和希特勒‘有相似性’”的照片。总统萨卡什维利的网站及一家著名
电视台的网站,先是转移到一家美国公司的服务器上,但很快又受到攻
击。迫于无奈,格鲁吉亚总统萨卡什维利向波兰总统莱赫·卡钦斯基“求
救”,在征得后者同意后,格鲁吉亚政府将外交部的新闻稿张贴在卡钦
斯基的网站上。
[18]图1-9 格鲁吉亚总统萨卡什维利
格鲁吉亚驻英国大使馆发言人8月11日在接受英国媒体采访时表
示,格鲁吉亚的网站全面遭到封锁。
在国际调停下,2008年8月13日,格俄双方就停火原则达成一致。8
月18日,俄军开始从南奥塞梯撤军。8月26日,俄罗斯总统梅德韦杰夫
签署命令,宣布承认南奥塞梯和阿布哈兹独立。8月28日,格鲁吉亚宣
布与俄罗斯断交。9月10日,俄罗斯与南奥塞梯建立正式外交关系。
阿塞拜疆新闻网站day.az声称,是俄罗斯情报部门通过代理实施了
针对格鲁吉亚政府网站的DDoS攻击。但俄罗斯政府否认了这一指控,称这可能是某些个人行为。有人认为,是圣彼得堡的一个犯罪团伙——俄罗斯商业网(Russian Business Network)实施的攻击,因为正是他们
在2007年攻击了爱沙尼亚(图1-10)。以色列的计算机应急响应小组的
前首席Gadi Evron认为,这次攻击类似于网络暴乱,而不是网络战。
Greylogic的安全研究人员则声称,俄罗斯国防部军事情报局和俄罗斯安
全局(FSB)可能起到了关键作用,共同协调和组织了攻击。美国前情
报官员John Bumgarner的研究结论是:第一波网络攻击是俄罗斯军事行
动的一部分,而第二波则来源于对俄罗斯的同情者。
图1-10 俄罗斯商业网
事实上,俄罗斯也遭受到网络打击。8月8日,一家俄文网站发布消
息称,南奥塞梯政府官方网站和俄罗斯官方通讯社俄新社网站均受到DDoS攻击。俄新社记者纳塔利娅·洛谢耶娃在博客中写道,这是“非常
严重的预谋行动,是信息战的一部分”。但她并未透露黑客攻击究竟来
自哪个国家。8月11日凌晨,俄罗斯英文电视频道“今日俄罗斯”受到黑
客的集中攻击,网站资源库被锁,随后出现技术故障。据该电视频道信
息安全部专家透露,IP地址显示,黑客攻击来自格鲁吉亚首都第比利
斯。1.3.3 美韩政府网站遭攻击
图1-11 2009年7月美韩受攻击网站
2009年7月4日,美国与韩国的政府及知名机构网站遭受了DDoS攻击。如图1-11所示,受害者包括美国和韩国议会、白宫、纽约证券交易
所、华盛顿邮报等网站。
[19]
攻击分三个阶段进行,期间峰值流量高达13GBs。大部分的攻击
(93%)采用了HTTP GET FLOOD,其他主要是UDP FLOOD和ICMP
FLOOD攻击。如图1-12所示,对恶意程序的静态分析显示,构造的数据
是完全合法的HTTP GET请求。
[20]
根据一份韩国的研究报告显示,大约
115000台僵尸主机参与了攻击。
[21]
图1-12 2009年7月攻击中的恶意程序片段
第一阶段:7月4日(美国独立日),攻击针对美国和韩国网站。受
影响的网站包括白宫和五角大楼等网站。第二阶段:7月7日,攻击针对韩国网站,目标包括韩国总统府青瓦
台、国防部、公共管理和安全部、国家情报院和国民议会等。
第三阶段:7月9日,攻击针对韩国网站,目标包括该国的国家情报
服务,以及其最大的银行之一和主要的新闻机构。美国国务院声称其网
站也受到了攻击。
2009年10月30日,韩国国家情报局声称,攻击源来自朝鲜邮电部。
2011年3月4日,类似的攻击又发生了一次。韩国政府各部、国民议
会、军队总部、驻韩美军和各大银行等29个机构受到影响,韩国的网上
股票交易系统也被关闭数分钟。
[22]1.4 普及化:黑客行动主义
分布式拒绝服务攻击的普及化是一个必然的趋势。十年的发展中,相关工具越来越易用,越来越高效。而网络的便利使得获取该工具变得
异常容易。
同时,通信技术快速发展,使得信息以前所未有的高速流动,这带
来了一个意想不到的后果,那就是世界上各人种、各种族和国家中普通
人的一般价值观越来越趋向一致。违反这些价值观的行为(通常也是违
反当地法律的),一般会受到制裁。但是,总有一些组织或势力,可能
是宗教团体、跨国公司,甚至国家政权,不会受到制裁。例如本节中提
到的山达基教会、索尼公司和美国政府。
当分布式拒绝服务攻击实现了普及化,同时网络中存在对这些组织
行为不满的群体时,产生的结合物就是黑客行动主义。他们是有类似价
值观的人群,有类似于自由集会的组织形式,对某些现象不满而渴望发
出声音。于是,分布式拒绝服务攻击成了他们最好的选择。1.4.1 匿名者挑战山达基教会
2008年1月15日,博客网站Gawker发布了一段视频:著名影星汤姆·
克鲁斯声称要将自己完全奉献给山达基教会(Church of Scientology)。
随后,视频在网上快速流传,并引来大量恶搞模仿。
[23]
对此,山达基
教会警告,准备把发布或共享视频的用户诉诸法律。
图1-13 匿名者的标志
1月23日,匿名者组织(图1-13)在YouTube上发布宣言,对山达基
教会宣战。27日,匿名者成员声称,这次行动的目的是反对山达基教会
企图控制互联网信息,而不是反对教会本身。
[24]
最初他们使用Gigaloader和JMeter作为武器进行攻击。几天后,就
开始使用被称为低轨道离子炮(LOIC)的网络压力测试工具,发送大
量TCP和UDP数据包阻塞网络。之后的几年中,这几乎成了“匿名者”的标志性武器。
其间,一段视频被上传到YouTube,一个机器人的声音声称代表匿
名者告诉山达基教会领袖:“为了你的追随者好,为了全人类好,以及
为了好笑,我们会将你驱逐出互联网。”十天之内,该视频就吸引了数
以千计的观众。2月10日,成千上万的匿名者在世界各地同时抗议山达
基教会(图1-14),许多抗议者带着电影《V字仇杀队》中的面具。这
个面具很快就成了匿名者组织的代表符号。之后个人自发的抗议持续了
整整一年。
[25]图1-14 山达基教会总部外的抗议者
这次事件是“匿名者”(Anonymous)第一次参与黑客行动主义。从
此之后,它就成为了该主义最主要的奉行者。1.4.2 维基解密事件
维基解密(Wikileaks)是一个专门披露秘密信息的非营利组织,2006年12月由朱利安·阿桑奇(图1-15)创立。该组织的主要目的是揭露
政府及企业的腐败行为,运营费用主要依靠捐助者以及基金会的支持。
[26]图1-15 朱利安·阿桑奇
2010年7月26日,“维基解密”在《纽约时报》、《卫报》和《镜
报》配合下,在网上公开了多达9.2万份的驻阿美军秘密文件,引起轩
然大波。12月4日,美国网络支付处理商PayPal宣布,由于维基解密网
站违反公司的服务政策,因此决定停止其账户和服务,这意味着维基解
密将无法通过PayPal获得资金。PayPal副总裁表示,他们停止服务是
在“国务院告诉我们,这些都是非法活动,这是很明显的”之后。紧接
着,许多企业停止为维基解密提供服务,或是冻结对其的捐款,这些企
业包括亚马逊、美洲银行、瑞士邮政银行、万事达和Visa。
[27]
2010年12月5日,黑客组织Anonymous发表宣言,将正在进行的“回
报行动”(Operation Payback)扩展为“阿桑奇复仇行动”(Operation
Avenge Assange),向维基解密提供帮助并打击它的敌人。
[28]
12月6
日,瑞士邮政银行(PostFinance)首先遭到攻击。12月8日,Anonymous对PayPal的主网发动了攻击,却发现低轨道粒子炮(LOIC)
无效。他们只得依靠两名黑客控制的僵尸网络进行攻击。据有关研究人
员声称,这些僵尸主机最终贡献了90%的攻击流量。据Paypal估计,造
成了550万美元的损失。后来,Paypal向联邦调查局提供了1000个攻击
者的IP地址,导致至少14人被捕。如表1-2所示,万事达、Visa、亚马逊
等企业也接连成为攻击目标。
表1-2 本案中受到攻击的网站攻击者使用的工具主要是低轨道粒子炮(LOIC)的修改版本,主
要添加了被称为“蜂巢意识”(Hive Mind)的模式,这使得远程控制
LOIC成为可能。1.4.3 索尼信息泄露案
2011年1月11日,游戏厂商索尼公司对乔治·霍兹(George Hotz)等
人提出起诉,罪名是违反了《数字千年版权法案》(Digital Millennium
Copyright Act)和《计算机欺诈与滥用法案》(Computer Fraud Abuse
Act)。这场官司的起源,是乔治·霍兹破解了索尼著名的游戏机PS3,用户无须付费就可以运行各种破解的游戏。2011年3月6日,法院批准索
尼公司得到所有访问霍兹博客的IP地址,包括破解程序的下载者地址。
[29]图1-16 Anonymous对索尼公司的宣战2011年4月3日,黑客组织Anonymous入侵了索尼的一个网站,并在
上面留言(图1-16),声称索尼公司的行为侵犯了数以千计无辜者的隐
私,所以对其宣战,并称之为“索尼行动”(OpSony)。
[30]
4月14日,索
尼公司多台服务器遭受DDoS攻击而宕机,攻击者使用的工具主要为低
轨道粒子炮(LOIC)。4月19日,索尼雇员发现130台服务器“非计划重
启”。4月20日,索尼发现发生了用户数据失窃事件,并决定暂停
PSN(PlayStation Network)网络。对索尼公司而言,用户数据泄露可能
造成的损失远超过DDoS攻击,因为公司保存了大量用户的信用卡信
息,可能危及到用户个人的银行账户安全。
4月21日之后,索尼公司开始聘请专业安全公司进行取证调查,甚
至邀请FBI协助。5月4日,美国众议院能源和商业委员会(The House
Committee on Energy and Commerce)举行了听证会,索尼公司拒绝出
席,但送去了一封信说明事件的发生情况。索尼称,数据窃取发生在4
月16日至4月17日,1.2万个用户信用卡号码和2470万用户信息被盗。索
尼公司没有明确指出DDoS攻击与数据窃取之间存在协同,但两者基本
在同时发生。Anonymous之后否认参与了这次数据窃取,并发布了一份
新闻稿:“这一次,我们没有做。”
[31]
6月2日,另一个知名黑客组织
LulzSec声称入侵SonyPicture网站成功,并获取了100万用户的信息。
索尼公司的股价从1月11日的36.36美元,一路下降到6月20日的
24.28美元。根据该公司3月31日公布的财务状况,当时的各种损失估计为14亿日元(1.71亿美元)。而VERACODE的一份分析则认为,最终的
总损失将高达240亿美元。
[32]
事后,索尼承认,他们对信用卡号进行了加密,但对其他用户信息
并未做加密处理。
[33]
窃取用户数据的攻击者身份,至今依然未被发
现。Anonymous只承认进行了DDoS攻击,宣称并未窃取数据;而
LulzSec只对SonyPictuire的入侵负责。FBI曾猜测是两个组织的配合行
动,但并无证据支持。
通常情况下,攻击者的目的可以分为两类,一类是控制与窃取信
息,另一类是破坏。DDoS攻击通常用于后者。而这次事件的特点是,DDoS被当成了一种掩护行动。无论入侵者是谁,他都很“巧妙”地利用
了Anonymous的攻击来吸引索尼安全团队的视线,使得自己的行动更不
容易被发现。这种方式也许会在今后成为一种常用的伎俩。1.5 小结
本章按照时间顺序介绍了个人黑客的攻击、有组织犯罪、网络战以
及黑客行动主义。随着技术的发展,DDoS攻击不断出现新的形式,但
这并不意味着旧的形式会就此绝迹。时至今日,依然有一些黑客愿意独
自行动,网络战也必定会再次爆发。未来并不确定,希望我们至少能从
历史中吸取教训,避免重蹈覆辙。1.6 参考资料
[1] Taylor Wilson.Yup,I built a nuclear fusion reactor.TED.
[2] Josh Quittner.PANIX ATTACK.Time Magazine.
[3] CharalamposPatrikakis,MichalisMasikos,and Olga
Zouraraki.Distributed Denial of Service Attacks.
[4] TCP SYN Flooding and IP Spoofing Attacks.CERT
Advisory CA-1996-21.
[5] David Dittrich.The DoS Project's'trinoo'distributed denial of
service attack too.October 21,1999.
[6] Incident Note IN-99-04.CERT .
[7] Wikipedia.MafiaBoy.
[8] Vixie,Paul;Gerry Sneeringer,Mark Schleifer.Events of 21-Oct-
2002.
[9] The Internet Traffic Report.Backbone DDoS.[10] SpamCop.net.http:www.spamcop.net.
[11] HELP NET SECURITY.DDoS attack hits clickbank and
spamcop.net.
[12] SOPHOS.World Cup DDoS blackmailer sentenced to jail.
[13] John E Dunn.Iran v USA-the world's first cyber-war has started.
[14] Wikipedia.Spamhaus Project.
[15] Computer Weekly.Cyberbunker’s Sven Kamphuis denies
unleashing DDoS attackson Spamhaus.
[16] Computer World.DDoS suspect used a van as a mobile
office,Spanish police say.
[17] Wikipedia.2007cyberattacks on Estonia.
[18] Wikipedia.Cyberattacks during the Russia–Georgia war.
[19] Wikipedia.July 2009cyber attacks.
[20] RavivRaz.DDoS Attacks In Korea-Forensic Analysis.13th July
2009.
[21] Heung Youl YOUM.Korea’s experience of massive DDoSattacks from Botnet.April 12,2011.
[22] BBC.South Korea hit by cyber attacks.4March 2011.
[23] HighBeam.Cruise bio hits stores as video clip of actor praising
Scientology makes it way to Internet.
[24] Wikinews.'Anonymous'releases statements outlining'War on
Scientology'.
[25] Wikipedia.Anonymous.
[26] Wikipedia.WikiLeaks.
[27] Wikipedia.Operation Payback.
[28] PandaLabs.Operation:Payback broadens to'Operation Avenge
Assange'.
[29] Wikipedia.Sony Computer Entertainment America v.George
Hotz.
[30] NBCNEWS.Anonymous vows war on Sony,strikes first blow.
[31] Fahmida Y.Rashid.Sony Data Breach Was Camouflaged by
Anonymous DDoS Attack.[32] Pupuweb.Veracode published Sony PlayStation Network Hack
Infographic.
[33] PlayStation.Blog.QA1for PlayStation Network and Qriocity
Services.第2章 DDoS攻击的来源
“敌人知我之情,通我之谋,动而得我事,其锐士伏于深草,要隘
路,击我便处,为之奈何?”
——《六韬·临境》
分布式拒绝服务攻击不会凭空产生,而是有其特定的来源。绝大部
分的分布式拒绝服务攻击都是从僵尸网络(Botnet)产生的。
什么是僵尸网络呢?在描述它之前,需要先解释什么是僵尸程序
(Bot)。僵尸程序是组成僵尸网络的基础,它通常指可以自动地执行
预定义功能,可以被预定义的指令控制的一种计算机程序。僵尸程序不
一定都是恶意的,但在僵尸网络中的僵尸程序都是设计用来完成恶意功
能的。
实际上,僵尸网络并没有规范而确切的定义。数量庞大的僵尸程序
通过一定方式联合,就可以组建成为僵尸网络。僵尸网络一般指僵尸主
人(Botmaster)出于恶意目的,传播大量僵尸程序,并采用一对多方式
进行控制的大型网络。僵尸网络是在网络蠕虫、木马、后门等传统恶意
代码形态的基础上发展并融合而产生的一种复合攻击方式。
因为僵尸网络中的僵尸主机数量往往非常庞大而且分布广泛,所以相比于其他恶意程序,僵尸网络的危害程度和防御难度往往更大。从表
2-1的对比结果来看,虽然僵尸和其他恶意代码有一些相似的地方,但
它作为新的恶意代码类别,也有其自身的一些特点。
僵尸网络的一个特点是,控制者和僵尸程序之间存在一对多的控制
关系。这种控制具有高度可控性,在僵尸主机采取行动时,不需要控制
者登录该主机操作系统。
表2-1 常见恶意代码特性比对
僵尸网络的另一个特点是,控制者在发布指令后,就可以断开与僵
尸网络的连接。之后,控制指令会在僵尸程序之间自行传播和执行。因
此,僵尸主机能够在控制者很少或不插手的情况下协同合作,共同完成
一项任务。
为了使读者对僵尸网络有更直观的认识,图2-1给出一个僵尸网络
简化后的拓扑示意图。图2-1 简化的僵尸网络拓扑
本章将对作为分布式拒绝服务攻击主要来源的僵尸网络进行详细介
绍。2.1 僵尸网络的发展
僵尸网络是随着自动智能程序的应用而逐渐发展起来的,从良性僵
尸网络的出现到恶意僵尸网络的实现,从被动传播到利用蠕虫技术主动
传播,从使用简单的IRC协议构成控制信道到复杂多变的对等网络
(Peer-to-Peer,P2P)结构的控制模式,僵尸网络逐渐发展成规模庞
大、功能多样且不易检测的恶意模式,给当前的网络安全带来了不容忽
视的威胁。
本节首先简单回顾僵尸网络的演化历史,并根据僵尸网络发展的状
况讨论其发展趋势。之后,会对世界上一些知名的僵尸网络进行简要的
介绍。2.1.1 演化和发展趋势
僵尸网络的历史渊源可以追溯到1993年因特网初期的中继聊天
(Internet Relay Chat,IRC)网络中出现的Bot工具——Eggdrop,这是
一种良性Bot。它的实现初衷是能够自动地执行如防止频道被滥用、权
限管理、频道事件记录等一系列功能,从而帮助IRC网络管理员更方便
地管理这些聊天网络。
受到良性Bot工具的启发,黑客开始编写僵尸程序对大量的受害主
机进行控制,以利用这些主机资源达到恶意目的。1999年6月,在因特
网上出现的PrettyPark首次使用了IRC协议构建命令与控制信道,从而成
为第一个IRC僵尸网络。之后,IRC僵尸网络层出不穷,如在mIRC客户
端程序上通过脚本实现的GT-Bot、开源发布并广泛流传的Sdbot、具有
高度模块化设计的Agobot等,这使得IRC成为当时构建僵尸网络命令与
控制信道的主流协议。
随着僵尸网络防御技术的不断演进,僵尸网络的传播和组建受到了
一定遏制,黑客为了让僵尸网络更具隐蔽性和抗打击性,开始不断地尝
试对其组织形式进行创新和发展,相继出现了基于超文本传输协议
(HyperText Transfer Protocol,HTTP)及P2P协议构建命令与控制信道
的僵尸网络。例如,专注银行窃密的Zeus采用的是HTTP,而主机感染数庞大的Zeroaccess僵尸网络则采用了P2P协议。
僵尸网络的演化过程如图2-2所示。
图2-2 僵尸网络的演化
随着防御方安全方案的不断推出以及国家有关网络安全法规的不断
完善,僵尸程序和僵尸网络在发展过程中也出现了一些调整,这些调整
体现出了僵尸网络的发展趋势。
(1)基于IRC的僵尸网络逐渐减少基于IRC协议的僵尸网络最早出现,曾一度被作为僵尸网络的代名
词。安全人员对这类Botnet的研究最早、也最多,相应的有效的检测手
段也越来越多。目前,越来越多的僵尸网络不再使用IRC协议,转而使
用HTTP或P2P协议进行通信和控制。
(2)控制国内僵尸主机的命令与控制服务器被逐步移到国外
伴随着国内网络安全立法的不断完善,黑客发动攻击被逮捕的风险
不断加大,迫使越来越多的黑客将服务器放置于国外。图2-3是国内安
全厂商绿盟科技发布的《2012绿盟科技威胁态势报告》
[1]
中根据检测到
的控制端所在地绘制的分布图。
图2-3 CC服务器分布(3)僵尸网络在攻防对抗中引入了更多的先进技术,使其更加难
以检测
例如,在最新版本的僵尸程序Zeus中,引入了P2P模块进行通信,而一旦P2P网络节点无法连通,则使用域名产生算法(Domain
Generation Algorithm,DGA)产生随机域名与CC进行通信。通信数据
则采用数字签名校验,以阻止越来越流行的由安全机构实施的sinkhole
技术。通过使用这些先进技术,僵尸网络的隐蔽性和抗打击性有了显著
提高。
(4)互联网数据中心托管服务器成为热门感染目标
众所周知,服务器主机性能和配置一般较好,具有更多的资源可以
被僵尸程序和僵尸网络使用。因此,这些托管服务器正逐渐成为僵尸程
序新的感染目标。
(5)单个僵尸网络的规模减小,绝大部分僵尸主机数都少于1000
台
图2-4是2011年国家互联网应急中心
[2]
(CNCERTCC)监测统计的
僵尸网络规模分布图,可以看出小规模的僵尸网络占据主流。图2-4 僵尸网络规模分布2.1.2 知名僵尸网络
在世界范围内,存在着一些知名的僵尸网络,本节对这些僵尸网络
进行简要的介绍,使读者能够了解目前僵尸网络的现状。为了使描述更
直观,我们对每一个僵尸网络都从感染度、收益度、知名度和生命力四
个方面给出了评分,并综合给出这个僵尸网络的总体危害程度。先对上
述各项解释如下。
·感染度:僵尸程序感染的主机数量,也包括被感染主机地域上的
分布。主机感染量越大,地域分布越广泛,分值越高。
·收益度:指通过此僵尸网络获得的收益。收益值越大,分值越
高。
·知名度:在全球范围的影响,这包括其是否开源以及是否被各大
媒体广泛报道等。曝光度越高,分值越高。
·生命力:特指其存活能力,也可以理解为抗打击性。生命力越
强,存活时间越久,分值越高。
·危害度:前四项的平均值(四舍五入为整数),表示这个僵尸网
络总体的危害程度。1.ZeroAccess
ZeroAccess出现于2011年,是最为知名、目前最为活跃的僵尸网络
之一。它采用先进的rootkit来隐藏自身,使用业界流行的模块化设计,通过创建隐藏文件夹,下载存储指定的功能模块并执行。通信协议采用
P2P架构使其具有极强的抗打击性。全球主机感染量在100万~200万台
之间,其主收入来源为“点击欺诈”,曾经还通过比特币挖掘获益,预计
一天收入为10万美元左右。
2.ZeusZeus是历史上最能赚钱的僵尸网络之一,2007年首次被发现。Zeus
主要用于监控受害者机器,记录用户的击键以窃取银行账户信息。犯罪
分子可以从用户的账户中将钱转出,利用用户的银行卡购物等。控制服
务器控制僵尸网络的运行,并对僵尸网络发布命令。截止到本书发稿,其偷取的金额达数百万美元之巨。2011年Zeus源码泄露,致使其变种爆
炸式增长,更有黑客为其添加P2P模块,对互联网的危害很大,影响深
远。
3.PushdoCutwail
Pushdo本身是一个“装载器”,可以下载其他组件安装在系统中,最
初发现于2007年。Pushdo可以为客户定制安装特定恶意软件,根据每个
安装来收取费用。在Pushdo进入被感染的电脑系统后,通常会下载垃圾
邮件程序Cutwail。Pushdo使用Cutwail来完成自我复制,从而不断扩大
其僵尸网络,也可通过Cutwail租出垃圾邮件服务。PushdoCutwail僵尸
网络发送的垃圾邮件内容很杂,包括医药产品、网络赌博、网络钓鱼邮件以及链接到包含恶意代码网站的邮件。感染了大约10万台主机,在
Storm被摧毁后,它成为了最大的垃圾邮件僵尸网络。控制者从中可能
获得了170万~420万美元的收益。
4.Mariposa
Mariposa又被称为“蝴蝶”僵尸网络,主要用于窃取信用卡和其他有
价值的数据以及DDoS攻击等,目前已被西班牙当局摧毁。这个僵尸网
络从2008年出现,随后迅速蔓延到了全球190多个国家和地区,受到
Mariposa影响的电脑超过1000多万台,超过一半的全球1000家最大公司
和至少40家大金融机构的电脑被感染,目前还无法估算其造成的损失。
5.WaledacWaledac僵尸程序主要以发送垃圾邮件而著称,Waledac僵尸网络所
使用的控制服务器大多位于德国、荷兰、瑞典和俄罗斯等欧洲国家,控
制了全球数十万台计算机,预计每天能发出超过15亿封垃圾邮件。在
2010年的中、美、欧联手打击下,Waledac僵尸网络日渐衰弱。不过,2012年的监测信息显示,它有重新抬头的迹象。由其造成的损失还不得
而知。2.2 僵尸网络的组建
无论多么庞大的系统,都是由一个个具体的元素组成的,僵尸网络
也不例外。我们在讨论系统的组建时,一般会讨论两个方面——“组成
系统的元素都是什么”以及“这些元素是如何相互联系起来的”。对于僵
尸网络来说,则分别对应着僵尸网络的节点和控制方式。本节会对这两
个方面分别进行介绍。2.2.1 节点
僵尸网络由大量功能节点共同组成,这些节点可能是普通PC、服
务器或者移动设备(见图2-5)。
这三种节点分别有其各自的特性,下面依次进行介绍。
误区:DDoS攻击都来自PC组成的僵尸网络
“DDoS攻击都是由僵尸网络发起的”,这几乎是一个安全领域的“常
识”。然而,事实并非如此,至少并不完全是由PC组成的僵尸网络发起
的。
随着技术的进步,服务提供商所使用的高性能服务器在处理性能和
带宽方面快速提升,而传统的由PC组成的僵尸网络却发展缓慢。除了
处理能力方面的因素外,PC通常只有非常有限的带宽资源,而可供利
用的时间也很不确定。于是,一些“黑客”开始把目光移向高性能服务
器,在“燕子行动”中,他们就这样做了。
此外,黑客组织Anonymous更喜欢组织众多真实的参与者共同发起
攻击,我们也称其为“自愿型僵尸网络”。图2-5 僵尸网络节点构成
1.普通PC
由于普通个人计算机(Personal Computer,PC)经历了数十年的发
展,数量庞大,而且安全性参差不齐。利用普通PC作为节点组建僵尸网络依然是最主流的方法。
通常,僵尸程序将一台普通PC变成僵尸网络的节点,一般要经历
四个步骤(见图2-6),即感染传播、安装执行、接入僵尸网络以及命
令执行。
图2-6 僵尸网络组建步骤
(1)感染传播
僵尸程序所用的感染传播手段与其他恶意程序(蠕虫、木马、后门
等)类似,通常包括带有欺骗性质的电子邮件、网页挂马、自动化的漏
洞扫描、即时通信、内网的文件共享和移动存储感染,以及最新出现的
网络存储与共享等。它在传播形式上有主动出击型的,如自动化的溢出
漏洞攻击,也有被动等待型的,如网页挂马。通过上述手段,僵尸程序就极有可能感染那些没有防护措施或防护措施弱的普通PC,进而将其
发展成为僵尸网络中的一员。
(2)安装执行
僵尸程序一旦在受害主机上执行,就会进行一系列的自我复制、实
现自启动以及隐藏等行为。通常僵尸程序会将自身复制到系统特定的目
录下并设置其隐藏属性,部分程序还会修改文件生成时间,创建或修改
注册表以保证程序开机自启动,如服务创建等。为了避免侦测,多数僵
尸程序都进行了免杀处理,并采用远程代码注入的方式,以免产生新进
程。基于上述手段,僵尸程序将可以在受害者主机上做到长期安全稳定
地运行。
(3)接入僵尸网络
当僵尸程序在受害者主机上完成各种安装和隐藏后,便通过解析内
置的域名和端口进行通信,构建CC通道加入僵尸网络,而这大多是通
过发送搜集的被感染系统主机信息开始的。
(4)命令执行
接入僵尸网络的僵尸程序将执行Botmaster预先设置好的指令,如对
特定目标发动DDoS攻击等。在没有收到指令时,僵尸程序会静静等待
(这时用Wireshark捕获可见大量的保活数据包),直到Botmaster有指令下发为止。
通过上面的四个步骤,一台普通PC就变成了任人宰割的僵尸主机
(又称“肉鸡”),也成为黑客攻击或再入侵的跳板。
事实上,随着网络犯罪独有系统的完善,已经出现了“肉鸡”销售服
务,上述过程也得到了大大简化。图2-7是这种服务的一个广告截图。
图2-7 “肉鸡”销售广告
“肉鸡”的价格如下:每1000台“肉鸡”,俄罗斯200美元天,英国240
美元天,美国180美元天,法国200美元天,加拿大270美元天,国际
混合35美元天,每天限量供应2万台。这种服务的出现使得组建僵尸网络的门槛大为降低,甚至能够让新手迅速实施一个复杂、精密的网络攻
击活动。
普通PC是最基本的僵尸网络节点,对普通PC的感染和控制技术已
经非常成熟。许多攻击者能够快速地利用普通PC组建僵尸网络并展开
攻击。
2.服务器
目前,普通PC依然是组成僵尸网络的主要部分,但是将服务器作
为节点、组建僵尸网络正逐渐引起攻击者的兴趣。
与普通PC相比,服务器具有高性能、大带宽、长时间持续在线等
特点,这些特点使服务器更具有作为僵尸网络节点的优势。
首先,服务器具有比普通PC更高的性能,通常,一台服务器的性
能相当于几十台甚至上百台普通PC的性能,因此,可以利用服务器僵
尸主机的高性能和高并发性,快速地构造并发出大量复杂请求。
其次,服务器通常具有更大的网络带宽,普通PC的网络带宽通常
为几十兆至数百兆,而服务器的网络带宽通常为数吉比特每秒,利用服
务器僵尸主机进行DDoS攻击,可以发出极大的攻击流量。
最后,服务器通常需要长期在线,大部分的服务器都需要保证7×24小时的可用性,一旦攻击者将这些服务器作为僵尸主机控制,就能够随
时迅速地发动持续的DDoS攻击。
服务器的安全性通常会比普通PC高很多,一般无法通过感染、网
页挂马等方式植入僵尸程序,这使得利用服务器组建僵尸网络的成本大
大增加,但是由于服务器攻击威力大、效果明显,攻击者还是愿意花费
一些成本尝试控制服务器。由于Web服务器在互联网上广泛存在,因此
攻击者通常愿意选择Web服务器作为目标。
控制Web服务器并植入僵尸程序的方法主要是利用Web应用和服务
器组件的安全漏洞进行入侵。由于Web服务的灵活多样性,即便是及时
保持更新并且配置良好的Web应用和服务器组件,也依然可能存在安全
漏洞,攻击者可以利用如内容管理系统(Content Management System,CMS)等Web应用的漏洞上传脚本后门程序,甚至利用服务器组件的漏
洞完全控制整台服务器。
在从2012年下半年开始的针对美国银行和金融机构进行的DDoS攻
击“燕子行动”中,攻击者就使用了主要由服务器组成的僵尸网络Brobot
进行攻击。Brobot僵尸网络主要是由植入了itsoknoproblembro(哥们儿
没问题)工具的僵尸主机所组成的,itsoknoproblembro通过WordPress、Joomla等Web CMS的漏洞植入到Web服务器上,并向index.php文件注入
加密的代码,以允许攻击者随时上传新的Perl脚本代码。由于使用Web
服务器作为僵尸主机,每台僵尸主机发出的攻击流量非常大,并且能够同时进行多种不同方式的攻击,因此这次行动对美国银行和金融机构的
网络服务产生了比较大的影响。
如果将普通PC僵尸节点造成的威胁比作步枪的话,那么服务器僵
尸节点造成的威胁就更像是重机枪。虽然这些重武器成本高、数量少,但是一旦拥有,打击的效果就会显著提高。
3.移动设备
随着移动互联网的飞速发展,利用移动设备作为僵尸节点来组建僵
尸网络正逐渐成为现实威胁。
从计算能力和网络带宽来看,移动设备正逐渐接近甚至超越普通
PC。当前主流的移动设备的CPU都达到了双核1GHz以上的运算速度,RAM容量也都在1GB以上,这些计算性能对于用来发动攻击的僵尸程序
来说是绰绰有余的。同时,与2G网络相比,现有的3G网络在数据传输
速度上有了很大的提升,其下行速度可以达到2Mbits以上,上行速度可
达384Kbits以上,部分国家和地区的运营商已经部署了实用的3.5G(下
行速度14Mbits,上行速度5.8Mbits)甚至4G(下行速度1Gbits,上行
速度500Mbits)通信网络,这些高速网络已经能够用于发动攻击。
与服务器类似,移动设备的一些特性使得利用移动设备组件的僵尸
网络具有一定的优势。移动设备数量众多,并且依然在飞速增长。以Android和iOS设备为例,根据官方给出的数据,Android设备已经超过9
亿台,iOS设备的数量也已经超过了6亿台,而移动设备的增长速度远远
超过PC的增长速度,因此,移动设备的数量将很快超过PC数量,利用
移动设备可以组建十分庞大的僵尸网络。另外,与PC相比,移动设备
在线的时间更长。人们在PC上完成工作之后,通常会将PC关机或者让
其休眠,但是移动设备,尤其是智能手机则完全不同,使用者为了保持
通信通畅,会使移动设备保持待机状态并维持网络连接,甚至会持续数
天没有关机或重启操作。与服务器组成的僵尸网络类似,攻击者能够随
时控制这些移动设备,迅速地发动持续的DDoS攻击。
与普通PC相比,移动设备的安全防范较差,更容易成为僵尸主
机。现有的移动设备主要有Android和iOS两大平台。由于操作系统和生
态环境的开放性等原因,Android设备很容易被植入恶意代码成为僵尸
主机;iOS设备相对比较封闭,但进行越狱后依然能够从第三方源安装
程序,存在成为僵尸主机的可能。向移动设备植入僵尸程序主要是通过
应用捆绑和诱骗安装的方式进行。
出于免费或方便等考虑,许多用户会从第三方市场或论坛下载和安
装应用。然而,第三方市场和论坛所下载的应用的安全性无法得到保
证。第三方市场和论坛中经常会使用付费应用的破解版本或免费应用的
去广告版本吸引用户下载并安装,这些应用有可能是攻击者植入了恶意
代码的应用。攻击者将官方应用破解拆包,植入恶意代码并申请权限后重新打包,之后提交到第三方市场或论坛进行分发。当用户被这些破解
版或去广告版所吸引,下载并安装这些应用后,就成为了受控制的僵尸
设备。除了Android设备,越狱后的iOS设备也能够通过Cydia从第三方
源处安装各种软件包,修改系统设置,这为僵尸程序的入侵打开了大
门。
除了应用和应用市场方面的问题,更重要的是移动设备的用户没有
较强的安全意识。人们在使用PC时,大部分都会安装和使用杀毒软
件、防火墙等安全防护软件对PC进行安全保护。但在使用移动设备
时,却并没有意识到这些移动设备也需要进行安全防护,只有一少部分
用户会在智能设备上安装安全防护软件。此外,部分移动设备用户在安
装应用时不考虑应用的来源,也不仔细查看应用申请的权限就确认安
装,这些用户的移动设备很容易被恶意应用控制并被加入到僵尸网络之
中。
事实上,移动设备与普通PC没有本质上的区别。曾经在PC上被广
泛使用进行DDoS攻击的LOIC工具,已经被移植到了Android平台(见图
2-8)。可以预测,随着移动设备的计算能力、网络带宽和数量的不断
增长,以及移动平台本身安全性和用户安全意识薄弱等问题的逐渐显
现,由移动设备作为节点组成的僵尸网络将会在未来不断增加,甚至超
过普通PC僵尸网络的数量。图2-8 Android平台下的LOIC工具2.2.2 控制
僵尸网络最早通过IRC通信协议进行控制。随着攻防对抗的升级,通信协议由简单的IRC向HTTP甚至更复杂的P2P进化。通信协议变化的
同时,僵尸网络在网络拓扑结构上也有了很大调整,主要体现在CC控
制信道从单一中心向分散方向发展,由一个CC服务器向多个CC发
展,更进一步地发展为P2P模式。僵尸网络正变得更加复杂,更具有抗
打击性。
三种僵尸网络控制方式的规模和优缺点如表2-2所示。
表2-2 僵尸网络控制模式比对
本节会介绍IRC、HTTP和P2P这三种僵尸的控制形式。
1.IRC型僵尸网络
IRC型僵尸网络是出现最早、存在数量最庞大的僵尸群。它最大的
特点是利用IRC协议构造命令与控制信道,交互性好,容易创建。采用
一个服务器能轻易创建和控制多台僵尸主机。IRC型僵尸网络常见的拓扑结构如图2-9所示。
可以看出,无论是僵尸主机还是Botmaster都必须与CC服务器进
行通信,但两者的通信目的稍有不同。僵尸主机与CC服务器通信主要
是为了接收指令、反馈执行结果以及汇报工作状态等;Botmaster与
CC服务器通信的目的通常是发送控制指令和分类管理。
(1)僵尸主机与CC服务器之间的通信
首先,僵尸程序执行后,会解码内置的配置信息以获取CC服务器
域名及端口号,并与其建立三次握手连接;然后,僵尸程序会发送
NICK和USER命令,而NICK通常有固定的前缀,加入预定义频道(大
多数都要求提供频道密码方能进入);最后,在完成上述步骤后,僵尸
程序会进入PINGPONG状态等待接收指令。
图2-9 IRC型僵尸网络上述步骤对应的数据包如图2-10所示。
图2-10 IRC僵尸主机通信
(2)Botmaster与CC服务器之间的通信
Botmaster首先需要认证自己,即被频道内的所有僵尸主机接纳,往
往采用口令的认证机制,即Botmaster先发送认证命令给CC服务器,CC服务器将消息转发给频道内所有僵尸主机。
频道内僵尸主机收到消息后,会比较收到的密码和自身硬编码的密
码,判断Botmaster是否合法,同时判断Botmaster所用控制端软件版本
及主机域名是否可信。
如图2-11所示,Botmaster的自我认证成功了。图2-11 Botmaster认证
在认证通过后,Botmaster就可以发送控制命令了。Bot的命令通常
设置为“.”(如.synflood),IRC已有命令以“”开始,控制命令不能和
IRC已有命令冲突。除普通命令外,还可以改变频道TOPIC通知,使频
道内(不管是频道内已有的还是后来加入的僵尸主机)所有僵尸主机都
能收到此消息,做到命令的自动执行。图2-12所示为下发SYN FLOOD
攻击命令。图2-12 启动SYN FLOOD攻击
截获的攻击数据包见图2-13。
图2-13 SYN FLOOD攻击数据包
从上面的介绍可以看出,通过IRC进行僵尸网络的控制相对比较容
易,而且能高效地分发控制者命令。
但这种控制方式存在一些不足,最主要是单点失效问题,即一旦中
央服务器被关闭,僵尸程序会因失去与CC服务器的通信而灭亡。此
外,防御方可以利用逆向得出的配置信息,将自己伪装成为IRC僵尸网
络中的一员,加入特定的频道,从而达到监视整个僵尸网络的目的。这也成为IRC控制的僵尸网络越来越不被看好的主要原因。目前,通过
IRC进行控制的僵尸网络多见于国外,在国内并不多见。
2.HTTP型僵尸网络
通过HTTP进行控制的僵尸网络在国内出现得比较多,这种僵尸网
络规模往往不大,但攻击活动却异常频繁。
HTTP型僵尸网络常见的拓扑结构如图2-14所示。
图2-14 HTTP型僵尸网络
相比于IRC型僵尸网络,HTTP型僵尸网络在端口选择上以及通信的
加解密方面有更大的灵活性。IRC型僵尸网络需要考虑隐藏性与稳定
性,因此控制者多会借助于网络公有IRC服务器,这些服务器的端口往
往是固定的,也就间接地决定了整个IRC型僵尸网络的通信端口是不可
改变的。而HTTP型僵尸网络则有所不同,虽然大多数HTTP型僵尸网络的通信端口默认选择80,但由于CC服务器多由控制者搭建,端口的设
定可以由控制者自由决定。
同时,HTTP型僵尸网络也更容易隐藏攻击活动。使用HTTP构建的
信道,可以更容易地让僵尸网络的控制流量淹没在大量的Web通信中,从而使得基于HTTP的僵尸网络活动更难以被检测出来。
通过HTTP控制的僵尸程序通常由控制面板和生成器两部分组成。
图2-15所示为僵尸程序BlackEnergy的工具包组成。
图2-15 BlackEnergy工具包
BlackEnergy的生成器界面如图2-16所示。图2-16 BlackEnergy生成器图2-17 BlackEnergy控制面板
BlackEnergy的控制端指令下发界面(控制面板)如图2-17所示。HTTP型僵尸网络的僵尸程序通常具有后门性质,会搜集系统基本
信息,又有自身升级模块以及插件下载等功能。僵尸程序发送的第一个
数据包往往是搜集到的被感染主机的系统基本信息,然后从CC服务器
收取并分离要执行的指令,如图2-18所示。
图2-18 发送系统基本信息
而对于大多数僵尸网络来说,DDoS攻击仍然是其最主要的目的,而且攻击的形式多样。图2-19是Athena僵尸网络程序控制面板中显示的
多种攻击模式。图2-19 多种DDoS攻击模式
通过HTTP进行僵尸网络的组建和控制非常灵活和简单,不过,HTTP僵尸网络与IRC型僵尸网络面临着同样的问题,这种星式的拓扑结
构使其抗打击性不强,一旦CC服务器被破坏,整个僵尸网络就会受到
毁灭性的打击。
3.P2P型僵尸网络
在介绍P2P型僵尸网络之前,先说P2P的概念。P2P又称对等网络,在此网络中,各节点处于对等地位,网络节点既可作为客户端向P2P网络中的其他节点请求服务,也可以作为服务器为提出请求的网络节点服
务。P2P技术使得网络中人与人的交流、数据交换、分布计算等方面得
到直接交互,消除了过去客户端必须连接到服务器进行浏览、请求服务
的传统模式。
P2P型僵尸网络,即基于P2P协议建立命令与控制信道的僵尸网
络。由于P2P网络中节点对等性的特点,P2P型僵尸网络中的所有节点
(或大部分节点)既充当控制服务器的角色,也充当客户端的角色。
P2P型僵尸网络的典型拓扑结构如图2-20所示。图2-20 P2P型僵尸网络
相比于IRC型僵尸网络和HTTP型僵尸网络,P2P型僵尸网络中充当
控制服务器的节点不再单一,攻击者可以通过网络中任一节点控制整个
P2P型僵尸网络。解决了传统IRC型僵尸网络和HTTP型僵尸网络集中式控制服务器的单点失效问题。由于攻击者可以自己定制P2P协议,对
P2P型僵尸网络的检测很难找到通用的特征,也很难发现未知特征的僵
尸网络活动。当然,随之而来的是更为复杂的搜索节点算法和维护过
程。
这里以最为流行的半分布式P2P型僵尸网络为例,来展示其网络构
成和控制方法。根据节点在整个僵尸网络中的地位和作用不同,可以将
僵尸节点分为两类:一类是拥有静态IP地址并可以从因特网访问的僵尸
节点,我们将其称为Servent bot,这类僵尸节点承担客户端和服务端的
双重角色;另一类是IP地址动态分配、私有IP地址或防火墙过滤等原因
无法从因特网访问的僵尸节点,我们将其称为Client bot,这类僵尸节点
也是受控主机,能主动地周期性连接Servent bot。
半分布式P2P型僵尸网络中的两种节点都存有一张有限的邻接
Servent bot节点的链表(Peer List)。一旦僵尸主机重启或脱离僵尸网
络,将周期性地主动连接其链表中的服务节点,维护整个僵尸网络的连
接。
从僵尸程序植入主机到组建完成半分布式P2P僵尸网络,共经历了
程序植入、感染传播和网络维护三个阶段。在程序植入阶段,要求攻击
者具备一般黑客所具备的入侵技能,需要在植入的僵尸程序的链表结构
中硬编码入数台攻击者已攻陷主机(Servent bot)的IP地址。受控主机
上的僵尸程序依次感染其他主机,每感染一台都会首先判断感染的主机是否可成为服务节点(Servent bot),同时构建该僵尸主机的链表表。
每台主机被植入僵尸程序后,都会自启动僵尸主程序。在其重启后会根
据链表表中的服务器的IP地址,主动连接其他的僵尸节点,从而维护半
分布式P2P僵尸网络的整个网络结构。链表数量有限,当其已满而需要
存储下台被感染的、可成为服务节点的主机IP时,就会使用该台主机的
IP覆盖掉链表中的已存在的一个IP,这样可以保证链表列表中的主机时
刻处于最活跃状态。
那攻击者是如何管理已组建好的僵尸网络的呢?简单地说,就是攻
击者通过命令与控制机制来控制整个僵尸网络。首先,攻击者接入半分
布式P2P型僵尸网络,这主要依靠攻击者的攻击平台。该平台可以封装
攻击者的攻击命令,并接收命令的反馈信息。攻击者可通过该平台了解
僵尸网络的基本信息。攻击者要连接网络中的服务节点,往往需要通过
一定的认证,在通过认证后,即可从此节点中注入其控制命令。其次,指令开始在各节点自动传播。服务节点收到指令后,与自身存储的指令
链表比较。如果该指令已存在,则不处理;如果不存在,则将这条指令
转发给其他服务节点(依据链表中的IP地址)。其他收到指令的服务节
点做同样的操作,使指令得以在整个僵尸网络中扩散。最后,僵尸主机
将指令的执行结果通过层层节点再反馈给攻击者。
对于安全研究者来说,通过捕获的一个节点可以发现此僵尸网络的
许多僵尸主机,但却很难窥其全貌。而且即使有一些僵尸主机被封杀,也不会影响到整个僵尸网络的生存。
通过P2P控制的僵尸网络的典型代表是ZeroAcess,它的最新版本使
用了P2P协议。为了使文件传播和IP地址更新速度更快,ZeroAcess仅包
含了很少的命令(getL、retL和newL),并借助简单加密来躲避安全设
备侦测。每个节点在初始时都包含256个IP地址,存储于当前目录下的
@文件,当前节点使用getL命令和临近节点进行交互。临近节点通过
retL指令返回自己节点的相关信息,以便当前节点进行信息更新。
虽然每个节点有256个初始IP地址,但用于信息交换的仅有从中选
取的最多16个而不是全部。由于其复杂度,这里不对其更多细节做深入
探究。
通过P2P组建和控制的僵尸网络,其僵尸主机数量往往非常庞大,地域分布上可以跨越多个国家甚至洲,找出僵尸网络真正的控制者往往
变得非常困难。在没有各国政府有效协调的情况下,对这种僵尸网络的
打击几乎是不可能的。正是由于P2P固有的优势,近年来,这种组建和
控制僵尸网络的方式正变得越来越流行。2.3 僵尸网络的危害
僵尸网络是联合众多联网计算机所组成的一个攻击平台,攻击者利
用僵尸网络可以发起各式各样的攻击,可以导致整个基础信息网络或重
要应用系统瘫痪,或导致大量机密和个人隐私泄露,以及从事网络欺诈
等其他违法犯罪活动。
1.发动DDoS攻击
借助僵尸网络发动大规模DDoS攻击是当前最主要的威胁之一,从
前面几节的实例简析中也能看出,甚至有的僵尸网络将DDoS攻击作为
其唯一功能。攻击者可以向自己控制的所有僵尸主机发送指令,让它们
在特定的时间同时连接访问指定的网络目标,在短时间内以大流量冲
击,造成目标资源耗尽而无法响应合法请求,产生拒绝服务的效果。
僵尸网络和DDoS工具的区别
能发动DDoS攻击的不只有僵尸网络,专业的DDoS工具也可以进行
DDoS攻击。那么两者之间又有哪些区别呢?大体来看,两者之间的区
别主要表现在以下三个方面。
首先,僵尸主机大多拥有真实的IP且分布广泛,甚至可以说遍布全
球。而DDoS工具的工作原理则是在单台主机(单个IP)上开启多个线程来模拟多主机情形,一部分攻击工具也不能够进行源IP地址的伪造,因此,相比于前者海量的IP来源,后者则更容易遭到防御方黑白名单的
封堵。
其次,僵尸网络控制的是真实主机,在发起攻击尤其是HTTP GET
FLOOD时可以在后台启动浏览器访问目标资源,绕过防御方大多数的
防御措施。而一些DDoS攻击工具则由于没有实现相应的交互机制,甚
至是因为具有某些特定的字符特征而遭到过滤。
最后,僵尸网络往往具有传播功能,之间的维系依靠复杂的协议,如HTTP和P2P等,正是这种传播机制,使攻击者在较短时间内就可以组
建颇具规模的网络大军,对目标实施有效打击。而DDoS攻击工具一般
不具有自传播功能,好比单兵作战,威力较弱。
2.发送垃圾邮件
垃圾邮件给人们的日常生活造成极大的困扰,而利用僵尸网络发送
垃圾邮件更具备以下几个优点:首先,黑客可以隐藏自身的真实IP地址
以躲避法律的追究;其次,可以在短时间内发送大量的垃圾邮件;最
后,由于僵尸主机的广泛分布,造成很多的反垃圾邮件措施失效,尤其
是使用黑白名单机制。
3.窃取敏感信息由于现在的僵尸程序往往具备后门的功能,所以其一旦加载运行,则存储于受感染主机上的一切敏感信息都将暴露无遗,用户的一举一动
都在攻击者的监视之下。如果用户没有有效的阻断措施,则这种控制行
为将可能一直存在,而且黑客会以此做跳板来攻击同网络的其他主机。
4.抢占系统资源
僵尸网络一旦形成,就相当于给控制者提供了大量免费的网络和计
算机资源,控制者就可以利用这些资源非法牟取暴利,如付费点击
(Pay-Per-Click,PPC)以及曾经广泛实施的比特币挖矿行为等。
如图2-21所示,上面列出的四个方面并不是孤立存在的,一个僵尸
网络为了利益最大化,甚至四方面兼而有之。而且在僵尸网络的组建方
面,各利益体分工明确。
图2-21 利益体分工协作随着计算机网络和攻防技术的不断发展,僵尸网络还有可能被用来
发动更多新的攻击。2.4 自愿型僵尸网络
在本章的前面几节中,我们对僵尸网络的发展、组建和危害进行了
比较详细的介绍。在本节中,我们把僵尸网络的概念稍稍延伸一下,介
绍一种特殊的僵尸网络——自愿型僵尸网络。
什么是自愿型僵尸网络呢?与本章前面所介绍的由机器所组成的僵
尸网络不同,自愿型僵尸网络是由一个个现实世界的人组成的僵尸网
络,这些人通常被称为黑客行动主义者。
如果将由机器组成的僵尸网络与自愿型僵尸网络进行一些简单的类
比,我们会发现这两种僵尸网络是非常类似的。由机器组成的僵尸网络
通过系统漏洞和社会工程的方式感染一台台机器,而自愿型僵尸网络通
过黑客行动主义信仰感染了一个个黑客行动主义者;由机器组成的僵尸
网络通过IRC、HTTP和P2P等通信协议进行控制指令的发送,而自愿型
僵尸网络通过网站和IRC频道确定攻击目标和攻击计划;由机器组成的
僵尸网络能够发动大规模的拒绝服务攻击,而自愿型僵尸网络中的黑客
行动主义者们也能够利用手中的计算机和攻击工具击垮一个个站点。实
际上,如果将自愿型僵尸网络中的一个个人看做是相对更高级的机器的
话,那么这个僵尸网络与传统意义上的僵尸网络几乎没有什么差别。
提到自愿型僵尸网络,最典型的例子就是近几年不断扩大并发出声音的著名黑客组织——匿名者(Anonymous)
[3]。
匿名者黑客组织(其图标如图2-22所示),是一个松散的黑客团
体,任何人都可以宣称代表该组织或属于该组织。该组织也是近年来在
国际上影响较为广泛的黑客组织之一,在重大的攻击事件中都有他们的
身影。
图2-22 匿名者(Anonymous)组织图标
匿名者组织源于2003年成立的网络信息论坛4chan,这里聚集了一
群喜欢恶作剧的黑客和游戏玩家,他们主要做些“为他人定制垃圾邮件”的骚扰。4chan最大的特点就是所有用户都被标记为Anonymous。渐
渐地,一些用户自我组织起来形成线下力量,用Anonymous作为称号,自发形成松散的黑客组织。
匿名者组织主要由两种类型的志愿者组成:技术黑客和外行人。
技术黑客,这组人由数个技术熟练的成员组成,他们通常有专业的
编程和网络攻防技术,是有真正黑客经历的一群人,也是这个团体的领
导力量。
外行人,这个组的人数量最多,也是攻击的执行体,由来自世界各
地成千上万的志愿者组成。他们最主要的黑客活动是进行DDoS攻击,通过下载和使用傻瓜式的攻击软件或同时访问网站以阻塞目标网络通
信。这个组的成员的最大特点是所拥有的技术水平参差不齐。
匿名者组织有自己的一些特点:他们有自己的网站,借此可以发出
自己的声音;并通过IRC频道定期举行聚会,使用投票系统,选择用最
好的方式处理任何情况。他们的投票操作如图2-23所示。图2-23 为攻击目标投票
如图2-24所示,投票后,他们决定接下来的操作。
图2-24 统计投票结果这个黑客组织擅长使用DDoS来攻击政府、知名企业及宗教团体的
网站等。攻击前,则又通常使用社交媒体,如Twitter、Facebook等来推
广攻击活动。以显示和证明一个攻击的政治意义。所以在这种情况下,一个网站会得到一个“合理化”的被攻击的理由(图2-25)。
图2-25 造势宣传
匿名者组织在进行DDoS攻击时,会在社交媒体中提供下载工具,以方便更多的人加入到攻击行动当中,如图2-26所示。图2-26 攻击工具下载
匿名者已经组织了许多著名黑客活动,比如阿拉伯之春、抗议捷
运、攻击索尼用户数据库以及“占领华尔街”等。他们也通过DDoS攻击
使多个知名电子商务公司瘫痪了,如PayPal、Visa、MasterCard和Sony
等。
由匿名者官方网站公布的最新数据来看,匿名者组织的最高领导者
是Lj·Xie,是匿名者的资深战略家和最高领导者。他说:“我们将发动游
击网络战,这是一种非传统、非对称的战争。事实上,战争之火早已点
燃。”他承认匿名者组织的行为违反法律,但仍辩称他们违法是出于“道德”目的,是为了监督大公司和政府,曝光他们的错误行为。他们采取
的攻击手段将包括:入侵各种国际政府网站及企业网站、入侵渗透各国
军事或卫星系统、在网络上公布官员的私人信息,以及破坏大公司的网
络和电话通信等。2.5 小结
通过本章的介绍,我们对僵尸网络有了一个较全面的认识。僵尸网
络已成为几乎所有计算机用户的最大威胁之一,这不仅是对网络安全专
家而言,对企业和消费者用户也是如此。此外,黑客建立僵尸网络的动
机目前也已开始发生变化,除了金钱,僵尸网络已开始被利用于为政治
服务,随着网络战威胁及危害的不断加剧,未来的冲突中不排除利用僵
尸网络作为武器的可能性,或许现在已经被投入使用了。随着移动终端
的智能化发展,未来的僵尸网络将不仅仅收揽PC,日益火爆的Android
等移动设备也将可能成为僵尸网络的新成员。僵尸网络所带来的威胁真
的离我们很近!2.6 参考资料
[1] 《2012绿盟科技威胁态势报告》
http:www.nsfocus.comreportNSFOCUS_Threats_Report_2012.pdf.
[2] 国家互联网应急中心http:www.cert.org.cn.
[3] 匿名者(Anonymous)http:zh.wikipedia.orgzh-cn匿名者_(组
织).第3章 DDoS攻击的方法
“夫兵形象水,水之行避高而趋下,兵之形避实而击虚;水因地而
制流,兵因敌而制胜。”
——《孙子兵法》
在这一章里,我们会对分布式拒绝服务攻击使用的各种方法分别进
行介绍,以使读者对分布式拒绝服务攻击有比较全面和深入的理解和认
识。
在介绍分布式拒绝服务攻击方法之前,我们有必要对分布式拒绝服
务攻击的基本形式进行更加深入的理解和剖析。什么是拒绝服务攻击?
什么是分布式拒绝服务攻击?拒绝服务攻击和分布式拒绝服务攻击之间
又有着什么样的联系和区别呢?
这里我们不妨举一个贴近现实的例子来进行类比说明。
假设你对一家快餐店心存不满(也许你在用餐的时候吃到了苍蝇,也许你是它的竞争对手餐厅的负责人,总之,你感到很生气),打算去
砸这家快餐店的场子,从而使快餐店的经理害怕,并让其他客人不再去
这家快餐店吃饭。这时,你会有两种行动选择。第一种,叫上几个兄
弟,拿上铁锹、铁锤、棍棒,冲进这家快餐店,吓跑店员和店里的客人,砸碎门窗和座椅,砸烂收款台和厨房……这种方式能够快速起效,砸过场子之后也会让这家快餐店花费几周时间重新装修店面,不过,快
餐店经理报警之后,作为主犯的你将会很容易被抓获,并且将会面临几
个月到几年的牢狱之灾;第二种,请一百来个朋友同时到这家快餐店就
餐,每个人只点一小杯可乐(或者每两三个人点一包小薯条),点餐之
后就在座位上聊天,从大清早开始一直聊到快餐店当天关店,这样进到
快餐店的其他客人会发现没有座位可坐,因此会去其他店就餐,表面上
看,这种“可乐薯条大作战”的方式相对温和,实际上对这家快餐店营业
额的影响非常大,更重要的是,即使餐厅经理报警,警察也没有任何理
由逮捕你。
好了,这里这个例子并不是在教各位读者如何去快餐店砸场子,只
是想借用这个例子来说明拒绝服务攻击和分布式拒绝服务攻击。
首先,拒绝服务攻击是指通过一些手段影响服务的可用性。在这个
例子里,就是去快餐店砸场子,从而使其他客人无法(不能或不敢)在
这家快餐店就餐。
其次,早期的拒绝服务攻击主要基于系统和应用程序的漏洞,这种
攻击只需要几个请求或者数据包就能导致长时间的服务不可用,但是只
要系统和应用修补了漏洞,就完全不受影响,同时,这种攻击也非常容
易被入侵检测系统发现。在上面这个快餐店的例子里,就是第一种砸场
子的方式。如果快餐店部署了保安,就不会让带着武器装备的客人进店;当然,砸了场子以后,犯人会很快被警察抓获。
最后,分布式拒绝服务攻击是拒绝服务攻击的一种,从名字来看,其主要的特点在于分布式。实际上,分布式拒绝服务攻击与早期的拒绝
服务攻击的原理也并不完全相同。分布式拒绝服务攻击的目的主要在于
资源占用和资源消耗,它通过向服务提供者发起大量请求或者长时间占
用资源的方式来达到拒绝服务的目的。这种攻击从表面上看都是合理的
请求,因此无法通过系统升级和打补丁的方式阻止,也不能使用入侵检
测系统进行防御。在上面这个快餐店的例子里,就是第二种砸场子的方
式。即使快餐店部署了保安,经理报了警,他们对于坐在店里慢悠悠地
吃薯条喝可乐的客人也是毫无办法的。
到这里,我们已经看到了分布式拒绝服务攻击的精髓:利用分布式
的客户端,向服务提供者发起大量看似合法的请求,消耗或长期占用大
量资源,从而达到拒绝服务的目的。在本章中介绍的各种分布式拒绝服
务攻击方法,都是这个精髓的不同表现形式。
虽然都是在消耗目标资源,但是不同的分布式拒绝服务攻击方法所
产生的影响依然有所不同。在本章里,我们会为每种分布式拒绝服务攻
击方法给出流行度、简单度和影响力的评分,最后给出这种攻击手段的
综合风险率。看过《网络安全机密与解决方案——黑客大曝光》的读者
可能会对这种风险评级的方式感到非常熟悉,不过,为了那些没有读过
这本“圣经”的读者,我们还是再对这几个方面的评分进行一下说明。·流行度:利用这种手段对实际目标进行攻击的频率,1代表最少
见,10代表最常见。
·简单度:利用这种攻击手段所需的技能,10代表需要的技能最
少,1代表只有资深的安全人员才能实施。
·影响力:攻击得手时可能造成的损失大小和进行防护的难度,1代
表损失很小并且非常容易防护,10代表损失会非常大,而且难以防护。
·风险率:前三个数字的平均值(四舍五入为整数),这个数值给
出了某种攻击手段总体的危害程度。
从不同的角度看,分布式拒绝服务攻击的方法有不同的分类标准。
在本章的介绍中,依据消耗目标资源的不同,将分布式拒绝服务攻击分
为攻击网络带宽资源、攻击系统资源和攻击应用资源三类。在本章的最
后,我们还会从其他的一些角度对分布式拒绝服务攻击进行归类,并对
混合攻击进行简要的介绍。3.1 攻击网络带宽资源
我们都知道,互联网实际上是由大量的网络设备将大量终端连接起
来所组成的一个庞大的网络,如果想获取某台服务器上的服务资源,则
需要将请求数据通过特定链路传输到这台服务器上。依然用前面快餐店
的例子来说明,如果客人想要用餐,就需要知道快餐店的位置,并且到
达快餐店点餐(这里我们暂时不考虑快餐店的外卖服务)。但是,如果
快餐店的门口或者它所在的街道发生了拥堵和交通管制,客人就无法到
达快餐店,也就无法得到服务。
同样的道理,无论是服务器的网络接口带宽,还是路由器、交换机
等互联网基础设施,其数据包处理能力都是存在着事实上的上限的,当
到达或通过的网络数据包数量超过了这个上限时,就会出现网络拥堵、响应缓慢的情况。消耗网络带宽资源的分布式拒绝服务攻击就是根据这
个原理,利用受控主机发送大量的网络数据包,占满被攻击目标的全部
带宽,从而使正常的请求无法得到及时有效的响应,造成拒绝服务。3.1.1 直接攻击
直接攻击(如图3-1所示)使用大量的受控主机直接向被攻击目标
发送大量的网络数据包,以占满被攻击目标的带宽,并消耗服务器和网
络设备的网络数据处理能力,达到拒绝服务的目的。
图3-1 直接攻击
直接攻击的主要方法有ICMPIGMP洪水攻击和UDP洪水攻击两
种。
1.ICMPIGMP洪水攻击网络控制消息协议(Internet Control Message Protocol,ICMP)是
TCPIP协议族的核心协议之一。它用于在TCPIP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,管理者可
以对所发生的问题做出诊断,然后采取适当的措施解决。
因特网组管理协议(Internet Group Management Protocol,IGMP)
是用于管理因特网协议多播组成员的一种通信协议。IP主机和相邻的路
由器利用IGMP来建立多播组的组成员。
攻击者使用受控主机向被攻击目标发送大量的ICMPIGMP报文,进行洪水攻击以消耗目标的带宽资源。这种类型的攻击出现得很早,使
用hping等工具就能够简单地发起攻击。但现在使用这种方法发动的攻
击已不多见,被攻击目标可以在其网络边界直接过滤并丢弃
ICMPIGMP数据包使攻击无效化。
2.UDP洪水攻击用户数据报协议(User Datagram Protocol,UDP)是一种面向无连
接的传输层协议,主要用于不要求分组顺序到达的传输,提供面向事务
的简单的不可靠信息传送服务。
利用UDP数据报文,攻击者也可以发动洪水攻击。UDP洪水攻击和
ICMPIGMP洪水攻击的原理基本相同。通常,攻击者会使用小包和大
包两种方式进行攻击。
小包是指64字节大小的数据包,这是以太网上传输数据帧的最小
值。在相同流量下,单包体积越小,数据包的数量就越多。由于交换
机、路由器等网络设备需要对每一个数据包进行检查和校验,因此使用
UDP小包攻击能够最有效地增大网络设备处理数据包的压力,造成处理
速度的缓慢和传输延迟等拒绝服务攻击的效果。
大包是指1500字节以上的数据包,其大小超过了以太网的最大传输
单元(MTU)。使用UDP大包攻击,能够有效地占用网络接口的传输
带宽,并迫使被攻击目标在接收到UDP数据时进行分片重组,造成网络
拥堵,服务器响应速度变慢。UDP洪水攻击也是很早就出现的一种拒绝服务攻击方式,这种攻击
发动简单,有相当多的工具都能够发动UDP洪水攻击,如hping、LOIC
等。但UDP洪水攻击完全依靠受控主机本身的网络性能,因此通常对攻
击目标带宽资源的消耗并不太大。3.1.2 反射和放大攻击
攻击者可以使用ICMP洪水攻击、UDP洪水攻击等方式直接对被攻
击目标展开消耗网络带宽资源的分布式拒绝服务攻击,但这种方式不仅
低效,还很容易被查到攻击的源头。虽然攻击者可以使用伪造源IP地址
的方式进行隐藏,但更好的方式是使用反射攻击技术。
反射攻击又被称为DRDoS(Distributed Reflection Denial of
Service,分布式反射拒绝服务)攻击,是指利用路由器、服务器等设施
对请求产生应答,从而反射攻击流量并隐藏攻击来源的一种分布式拒绝
服务攻击技术。
反射攻击的基本原理如图3-2所示。图3-2 反射攻击
在进行反射攻击时,攻击者使用受控主机发送大量的数据包,这些
数据包的特别之处在于,其目的IP地址指向作为反射器的服务器、路由
器等设施,而源IP地址则被伪造成被攻击目标的IP地址。反射器在收到
数据包时,会认为该数据包是由被攻击目标所发来的请求,因此会将响
应数据发送给被攻击目标。当大量的响应数据包涌向攻击目标时,就会
耗尽目标的网络带宽资源,造成拒绝服务攻击。
发动反射攻击需要在互联网上找到大量的反射器,某些种类的反射
攻击并不难实现。例如,对于ACK反射攻击,只需要找到互联网上开放
TCP端口的服务器即可,而这种服务器在互联网上的存在是非常广泛
的。
发动反射攻击通常会使用无须认证或握手的协议。反射攻击需要将
请求数据的源IP地址伪造成被攻击目标的IP地址,如果使用的协议需要
进行认证或者握手,则该认证或握手过程没有办法完成,也就不能进行
下一步的攻击。因此,绝大多数的反射攻击都是使用基于UDP协议的网
络服务进行的。
相比于直接伪造源地址的分布式拒绝服务攻击,反射攻击由于增加
了一个反射步骤,因此更加难以追溯攻击来源。但是,这并不是反射攻
击真正的威胁,真正的威胁在于利用反射原理进行的放大攻击。放大攻击是一种特殊的反射攻击,其特殊之处在于反射器对于网络
流量具有放大作用,因此我们也可以将这种反射器称为放大器。进行放
大攻击的方式与反射攻击的方式也是基本一致的,不同之处在于反射器
(放大器)所提供的网络服务需要满足一定条件。
在反射器提供的网络服务协议中,需要存在请求和响应数据量不对
称的情况,响应数据量需要大于请求数据量。响应数据量与请求数据量
的比值越大,放大器的放大倍数也就越大,进行放大攻击所产生的消耗
带宽资源的效果也就越明显。
放大器所使用网络服务部署的广泛性决定了该放大攻击的规模和严
重程度。如果存在某些网络服务,不需要进行认证并且放大效果非常
好,但是在互联网上部署的数量很少,那么利用该网络服务进行放大也
不能达到很大的流量,达不到有效消耗带宽资源的效果,这种网络服务
也就不能作为主要的放大攻击流量,而只能作为辅助手段。
1.ACK反射攻击我们知道,在传输控制协议(Transmission Control Protocol,TCP)
建立连接时,首先会进行TCP三次握手。在这个过程中,当服务器端接
收到客户端发来的SYN连接请求时,会对该请求进行ACK应答。利用
TCP握手的ACK应答,即可进行ACK反射攻击。
ACK反射攻击是比较常见的一种反射攻击技术,其攻击原理如图3-
3所示。
如果攻击者将SYN的源IP地址伪造成被攻击目标的IP地址,服务器
的应答也就会直接发送给被攻击目标。由于使用TCP协议的服务在互联
网上广泛存在,攻击者可以通过受控主机向大量不同的服务器发送伪造
源IP地址的SYN请求,从而使服务器响应的大量ACK应答数据涌向被攻
击目标,占用目标的网络带宽资源并造成拒绝服务。图3-3 ACK反射攻击
在发动ACK反射攻击时,首先需要进行扫描,获得大量的反射器地
址,并分别向这些反射器发送伪造源地址的SYN请求数据,因此相比于
直接攻击,这种方式显得复杂了一些。ACK反射攻击的优点主要在于其
能够比较有效地隐藏攻击的来源。
2.DNS放大攻击域名系统(Domain Name System,DNS)是因特网的一项核心服
务。它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使
人更方便地访问互联网,而不用去记住那些难以记忆的IP地址。DNS使
用的TCP与UDP端口号都是53,主要使用UDP协议。
通常,DNS响应数据包会比查询数据包大,因此攻击者利用普通的
DNS查询请求就能够发动放大攻击,并将攻击流量放大2~10倍。但更
有效的方法是使用RFC 2671中定义的DNS扩展机制EDNS0。
EDNS0
在没有EDNS0以前,对DNS查询的响应数据包被限制在512字节以
内。当需要应答的数据包超过512字节时,根据DNS服务实现的不同,可能会丢弃超过512字节的部分,也可能会使用TCP协议建立连接并重
新发送。无论是哪种方式,都不利于进行DNS放大攻击。
在EDNS0中,扩展了DNS数据包的结构,增加了OPT RR字段。在
OPT RR字段中,包含了客户端能够处理的最大UDP报文大小的信息。
服务端在响应DNS请求时,解析并记录下客户端能够处理的最大UDP报文的大小,并根据该大小生成响应的报文。
攻击者能够利用dig(Domain Information Groper)和EDNS0进行高
效的DNS放大攻击。攻击者向广泛存在的开放DNS解析器发送dig查询
命令,将OPT RR字段中的UDP报文大小设置为很大的值(如4096),并将请求的源IP地址伪造成被攻击目标的IP地址。DNS解析器收到查询
请求后,会将解析的结果发送给被攻击目标。当大量的解析结果涌向目
标时,就会导致目标网络拥堵和缓慢,造成拒绝服务攻击。
DNS放大攻击的原理如图3-4所示。
攻击者发送的DNS查询请求数据包大小一般为60字节左右,而查询
返回结果的数据包大小通常为3000字节以上,因此,使用该方式进行放
大攻击能够达到50倍以上的放大效果,这种放大效应所产生的攻击效果
是非常惊人的,只要攻击的发起端能够发出2Gbits的带宽,就能够在目
标网络处产生100Gbits的带宽消耗。在2013年3月对Spamhaus的分布式
拒绝服务攻击中,主要就是用了DNS放大攻击技术,使得攻击流量达到
了史无前例的300Gbits,甚至拖慢了局部互联网的响应速度。
与ACK反射攻击类似,发动DNS放大攻击也需要先进行扫描,以获
得大量的开放DNS解析器的地址,并向这些开放DNS解析器发送伪造源
地址的查询命令来放大攻击流量。图3-4 DNS放大攻击
3.NTP放大攻击
网络时间协议(Network Time Protocol,NTP)是用来使计算机时
间同步化的一种协议,它可以使计算机与时钟源进行同步化并提供高精
准度的时间校正,NTP使用UDP 123端口进行通信。在NTP协议的服务器实现上,通常会实现一系列Mode 7的调试接
口,而接口中的monlist请求能够获取到与目标NTP服务器进行同步的最
后600个客户端的IP地址等信息。这意味着,只需要发送一个很小的请
求包,就能够触发大量连续的包含IP地址信息等数据的UDP响应数据
包。
实际上,monlist请求返回的数据量与一段时间内和NTP服务器交互
的客户端数量有关。由于NTP服务使用的是UDP单包通信,因此攻击者
可以将伪造源IP地址的UDP请求包发送给NTP放大器,伪造客户端与
NTP服务器的交互,增加“和NTP服务器交互的客户端的数量”,以此来
增加monlist请求的响应数据量并增大NTP放大器的放大倍数。只要向
NTP放大器发送600个不超过64字节的请求包(约40KB数据),就能够
快速地将NTP放大器的放大倍数提高到700倍以上,并在该服务器的
NTP服务关闭或重新启动之前一直保持这么大的放大倍数。
NTP放大攻击的原理如图3-5所示。图3-5 NTP放大攻击
攻击者发送的monlist请求数据包大小不超过64字节,而请求返回的
结果会包含100个482字节的UDP响应数据,因此,使用该方式进行放大
攻击能够达到700倍以上的放大效果。
与ACK反射攻击和DNS放大攻击类似,发动NTP放大攻击也需要先
进行网络扫描,以获得大量的NTP服务器,并向这些NTP服务器发送伪
造源地址的请求来放大攻击流量。相比于DNS放大攻击,NTP放大攻击
的放大倍数更大,因此其危害也更加严重,在针对Spamhaus的大规模分
布式拒绝服务攻击事件中,如果攻击者不使用DNS放大攻击而改用NTP放大攻击,那么攻击流量将会达到2Tbits以上。
4.SNMP放大攻击
简单网络管理协议(Simple Network Management Protocol,SNMP)是目前网络中应用最为广泛的网络管理协议,它提供了一个管
理框架来监控和维护互联网设备。SNMP协议使用UDP 161端口进行通
信。
利用SNMP协议中的默认通信字符串和GetBulk请求,攻击者能够开
展有效的SNMP放大攻击。
由于SNMP的效果很好,网络硬件厂商开始把SNMP加入到它们制
造的每一台设备,这导致各种网络设备上都可以看到默认启用的SNMP
服务,从交换机到路由器,从防火墙到网络打印机,无一例外。同时,许多厂商安装的SNMP都采用了默认的通信字符串(Community
String),这些通信字符串是程序获取设备信息和修改配置必不可少
的。最常见的默认通信字符串是public和private,除此之外还有许多厂
商私有的默认通信字符串。几乎所有运行SNMP的网络设备上,都可以找到某种形式的默认通信字符串。
在SNMPv1中定义的Get请求可以尝试一次获取多个MIB对象,但响
应消息的大小受到设备处理能力的限制。如果设备不能返回全部请求的
响应,则会返回一条错误信息。在SNMPv2中,添加了GetBulk请求,该
请求会通知设备返回尽可能多的数据,这使得管理程序能够通过发送一
次请求就获得大段的检索信息。
攻击者向广泛存在并开启了SNMP服务的网络设备发送GetBulk请
求,使用默认通信字符串作为认证凭据,并将源IP地址伪造成攻击目标
的IP地址。设备收到GetBulk请求后,会将响应结果发送给攻击目标。
当大量的响应结果涌向攻击目标时,就会导致攻击目标网络拥堵和缓
慢,造成拒绝服务攻击。
SNMP放大攻击的原理如图3-6所示。图3-6 SNMP放大攻击
攻击者发送的GetBulk请求数据包约为60字节,而请求的响应数据
能够达到1500字节以上,因此,使用该方式进行放大攻击能够达到25倍
以上的放大效果。这也是一种放大效应明显且有效的放大攻击方式。
在发动SNMP放大攻击时,同样需要先进行网络扫描以找到开放了
SNMP协议的网络设备。虽然开放SNMP协议的网络设备很多,但是在
扫描到这些设备之后还需要对它们所使用的默认字符串进行猜测。因
此,相比于DNS放大攻击,不论是简单度还是放大倍数的影响力,SNMP放大攻击都略逊一筹。不过从总体上来看,SNMP放大攻击依然是一种非常有效的消耗带宽资源的攻击方法。3.1.3 攻击链路
攻击链路与前面介绍的几种攻击方法有所不同,其攻击的目标并不
是作为互联网端点的服务器的带宽资源,而是骨干网上的链路的带宽资
源。对链路进行攻击的一种典型的方式是Coremelt攻击。
Coremelt是安全研究人员在2009年提出的一种针对链路的分布式拒
绝服务攻击方法。
[1]
攻击者需要控制一个分布足够广泛的僵尸网络来发
动Coremelt攻击,其攻击的原理如图3-7所示。图3-7 Coremelt攻击
首先,攻击者通过traceroute等手段来判断各个僵尸主机和将要攻击
的链路之间的位置关系,并根据结果将僵尸主机分为两个部分。然后,攻击者控制僵尸主机,使其与链路另一侧的每一台僵尸主机进行通信并
收发大量数据,这样,大量的网络数据包就会经过骨干网上的被攻击链
路,造成网络拥堵和延时。
从骨干网上来看,这些僵尸主机之间相互收发的数据包确实是真实
存在的通信数据,没有办法将这些通信数据与真正的合法通信数据进行
有效的区分,因此这种攻击方式更加难以防护和缓解。3.2 攻击系统资源
我们回到那家倒霉的快餐店,看看还有一些什么砸场子的方法。前
面通过堵店门的方式阻止其他客人进入快餐店,的确是一种有效的方
法,不过这种方法似乎过于简单粗暴了……在快餐店里还存在着其他的
问题可以让我们去利用。
当一位客人走进了快餐店,是不是就等同于他已经开始享受这里的
服务了呢?当然不是。在他走进这家快餐店之后,他需要首先去收款台
点餐并付费,而如果他进入店门之后看到收款台前已经排起了长龙,那
么他就很有可能直接离开,或者在排队的过程中由于等待得不耐烦而离
开,并选择另一家快餐店就餐。现在,你知道应该怎么办了吧?没错,你可以找几十个朋友到快餐店的收款台前排队,并且每一位“顾客”只是
对不同的食物进行询问但不购买,并表现出犹豫不决的样子,甚至可以
装作是只懂英语的归国海外华侨,以此来延长排队的时间。这样,新进
入快餐店的客人就会因为无法忍受如此漫长的等待时间而离开了。
互联网上的服务器面对着与快餐店相似的问题。终端设备在与服务
器进行通信时,经常需要创建会话连接,在这个过程中通常会使用TCP
和SSL等协议。在会话创建的初始阶段,服务器需要为新建立的连接分
配资源;在会话过程中,服务器需要维护并更新连接的状态,并进行数
据传输和交互;在会话结束之后,这些连接资源才会被释放。这些会话连接就像快餐店的收款台,一旦被占满,新进入的会话请求就必须等待
前面的会话完成。消耗系统资源的分布式拒绝服务攻击的主要目的就是
对系统维护的连接资源进行消耗和占用,阻止正常连接的建立,从而达
到拒绝服务的目的。
误区:DDoS攻击都是消耗网络带宽资源的攻击
很多时候,新闻报道中提到DDoS攻击时,都会以“攻击流量达到
××”的语句来描述攻击的猛烈程度。这种以攻击流量的带宽作为DDoS攻
击危害程度描述指标的说法,通常会让人们误以为DDoS攻击都是消耗
网络带宽资源的攻击。
事实上,就像本章开头部分所说的,除了网络带宽资源,DDoS攻
击还有消耗系统资源和应用资源的攻击方法,而攻击流量的大小只是决
定攻击危害程度的一个方面。对于相同种类的攻击,通常攻击流量越
大,其危害也越大;而如果在相同攻击流量的情况下,不同的攻击方法
造成的危害和影响则不尽相同。
有时候,人们会错误地将SYN洪水攻击认为是消耗网络带宽资源的
DDoS攻击,而事实上,这种攻击的主要危害在于耗尽系统连接表资
源。相同攻击流量的SYN洪水攻击会比UDP洪水攻击的危害更大。3.2.1 攻击TCP连接
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。
不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层
无法提供这样的流机制,在现实的互联网中,这种连接通常通过TCP协
议来实现。
TCP连接包括三个阶段:连接创建、数据传送和连接终止。由于在
协议的设计过程当中只专注于协议的可用性,而没有对协议的安全性进
行比较周密和详细的考虑,因此TCP协议存在很多安全缺陷和安全性问
题。
TCP连接的三个阶段都容易受到拒绝服务攻击的影响,我们会在这
里对这些攻击手段分别进行介绍。
1.TCP连接洪水攻击
TCP连接洪水攻击是在连接创建阶段对TCP资源进行攻击的。TCP三次握手
创建TCP连接需要客户端与服务器进行三次交互,其过程如图3-8所
示。
图3-8 TCP三次握手
首先,客户端主机向服务器发送带有SYN标志的TCP同步报文,并
在报文中指明客户端使用的TCP端口和TCP连接的初始序列号。
其次,服务端在接收到客户端的同步报文之后,返回一个带有
SYN+ACK标志的报文,表示接受客户端的同步请求,并将TCP序列号
加1。
最后,客户端也返回一个带有ACK标志的报文,对服务端的响应进
行确认,并将TCP序列号加1。
至此,一个TCP连接建立成功,这个建立连接的过程也被称为TCP
三次握手。在三次握手进行的过程中,服务器会创建并保存TCP连接的信息,这个信息通常被保存在连接表结构中。但是,连接表的大小是有限的,一旦服务器接收到的连接数量超过了连接表能存储的数量,服务器就无
法创建新的TCP连接了。
攻击者可以利用大量受控主机,通过快速建立大量恶意的TCP连接
占满被攻击目标的连接表,使目标无法接受新的TCP连接请求,从而达
到拒绝服务攻击的目的。
TCP连接洪水攻击的原理如图3-9所示。图3-9 TCP连接洪水攻击
TCP连接洪水攻击是攻击TCP连接的最基本方法。当有大量的受控
主机发起攻击时,其效果非常明显。
2.SYN洪水攻击
SYN洪水攻击是最经典的一种拒绝服务攻击方式。这种攻击方式在
2000年以前就出现过,直到现在依然被攻击者大规模地广泛使用。近年
来,SYN洪水攻击仍然占据全部分布式拒绝服务攻击的三分之一以上。
TCP半开连接
在建立TCP连接的过程中,如果在服务器返回SYN+ACK报文后,客户端由于某种原因没有对其进行确认,这时服务器端就需要重传
SYN+ACK报文,并等待客户端的确认报文直到TCP连接超时。这种等
待客户端确认的连接状态通常被称为半开连接,如图3-10所示。图3-10 TCP半开连接
在连接超时之前,半开连接会一直保存在服务器的连接表中。
由于连接表的大小是有限的,如果在短时间内产生大量的半开连
接,而这些连接又无法很快地结束,连接表就会迅速被占满,导致新的
TCP连接无法建立。
SYN洪水攻击就是攻击者利用受控主机发送大量的TCP SYN报文,使服务器打开大量的半开连接,占满服务器的连接表,从而影响正常用
户与服务器建立会话,造成拒绝服务。
攻击者在发送TCP SYN报文时,可以在收到服务器端返回的
SYN+ACK报文后,跳过最后的ACK报文发送,使连接处于半开状态。
但是这样会很明显地暴露出进行SYN洪水攻击的攻击者的IP地址,同时
响应报文会作为反射流量占用攻击者的带宽资源。所以更好的方式是攻
击者将SYN报文的源IP地址随机伪造成其他主机的IP地址或不存在的IP
地址,这样攻击目标会将应答发送给被伪造的IP地址,从而占用连接资源并隐藏攻击来源。
SYN洪水攻击的原理如图3-11所示。
图3-11 SYN洪水攻击
SYN洪水攻击发动简单,效果明显,有大量的攻击工具都能够发动
这种攻击,至今依然是攻击者最喜爱的攻击方法之一。
3.PSH+ACK洪水攻击在TCP数据传输的过程中,可以通过设置PSH标志位来表示当前数
据传输结束,需要服务端进行处理。
在正常的TCP传输过程当中,如果待发送的数据会清空发送缓冲
区,那么操作系统的TCPIP协议栈就会自动为该TCP数据包设置PSH标
志。同样,当服务端接收到了一个设置了PSH+ACK标志的报文时,意
味着当前数据传输已经结束,因此需要立即将这些数据递交给服务进程
并清空接收缓冲区,而无须等待判断是否还会有额外的数据到达。
由于带有PSH标志位的TCP数据包会强制要求接收端将接收缓冲区
清空并将数据提交给应用服务进行处理,因此当攻击者利用受控主机向
攻击目标发送大量的PSH+ACK数据包时,被攻击目标就会消耗大量的
系统资源不断地进行接收缓冲区的清空处理,导致无法正常处理数据,从而造成拒绝服务。
PSH+ACK洪水攻击的原理如图3-12所示。图3-12 PSH+ACK洪水攻击
单独使用PSH+ACK洪水攻击对服务器产生的影响并不十分明显,更有效的方式是SYN洪水攻击与ACK洪水攻击相结合,这样能够绕过一
部分防护设备,增强攻击的效果。
4.RST洪水攻击在TCP连接的终止阶段,通常是通过带有FIN标志报文的四次交互
(TCP四次挥手)来切断客户端与服务器的TCP连接。但是当客户端或
服务器其中之一出现异常状况,无法正常地完成TCP四次挥手以终止连
接时,就会使用RST报文将连接强制中断。
TCP RST攻击
在TCP连接中,RST表示复位,用来在异常时关闭连接。发送端在
发送RST报文关闭连接时,不需要等待缓冲区中的数据报全部发送完
毕,而会直接丢弃缓冲器的数据并发送RST报文;同样,接收端在收到
RST报文后,也会清空缓冲区并关闭连接,并且不必发送ACK报文进行
确认。
攻击者可以利用RST报文的这个特性,发送伪造的带有RST标志位
的TCP报文,强制中断客户端与服务器的TCP连接。在伪造RST报文的
过程中,服务器端的IP地址和端口号是已知的,攻击者还需要设法获得
客户端的IP地址和端口号,并且使RST报文的序列号处于服务器的接收
窗口之内。如果攻击者和被攻击客户端或服务器处于同一内网,这些信息可以通过欺骗和嗅探等方式获取到。
TCP RST攻击的原理如图3-13所示。
图3-13 TCP RST攻击
很多情况下,攻击者不会与被攻击客户端或服务器处于同一内网,导致发动TCP RST攻击时难以获取端口和序列号。在这种情况下,攻击
者可以利用大量的受控主机猜测端口和序列号,进行盲打,发动RST洪
水攻击。只要在数量巨大的RST报文中有一条与攻击目标的端口号相
同,并且序列号落在目标的接收窗口之中,就能够中断连接。
RST洪水攻击的原理如图3-14所示。图3-14 RST洪水攻击
严格来说,TCP RST攻击和RST洪水攻击是针对用户的拒绝攻击方
式。这种攻击通常被用来攻击在线游戏或比赛的用户,从而影响比赛的
结果并获得一定的经济利益。
5.Sockstress攻击Sockstress攻击是研究人员在2008年提出的一种攻击TCP连接的方
法。
[2]
与前面几种攻击方法不同的是,Sockstress攻击不需要在短时间
内发送大量的攻击流量,因此不属于洪水攻击,而是一种慢速攻击。
误区:DDoS攻击都是洪水攻击
在提到DDoS攻击时,人们通常会条件反射性地想到UDP洪水攻
击、SYN洪水攻击、RST洪水攻击等,并会由此认为DDoS攻击都是洪
水攻击。
事实上,洪水攻击确实占据了DDoS攻击方法中相当大的比例,但
并不是所有的DDoS攻击都是洪水攻击。除了洪水攻击外,还有一些被
称为慢速攻击(Low and Slow Attack)的攻击方法。在本章开头部分,我们对于DDoS攻击精髓的表述中提到:“消耗或长期占用大量资源,从
而达到拒绝服务的目的”。洪水攻击就是通过快速发送大量数据和请
求,达到迅速消耗大量资源的目的;而慢速攻击则有所不同,它会缓慢
而坚定地发送请求并长期占用,一点一滴地蚕食目标的资源。
如果把DDoS攻击某个特定目标看做是一次杀手的谋杀任务,那么洪水攻击就是杀手手持机关枪直接射击目标,而慢速攻击则是《勺子杀
人狂》中的杀手使用一把勺子完成了谋杀任务。
在TCP传输数据时,并不是将数据直接递交给应用程序处理,而是
先临时存储在接收缓冲区中,该接收缓冲区的大小是由TCP窗口表示
的。如果TCP窗口大小为0,则表示接收缓冲区已被填满,发送端应该
停止发送数据,直到接收端的窗口发生了更新。Sockstress攻击就是利
用该原理长时间地维持TCP连接,以达到拒绝服务攻击的目的。
Sockstress攻击首先会完成TCP三次握手以建立TCP连接,但是在三
次握手的最后一次ACK应答中,攻击者将其TCP窗口大小设置为0,随
后进行一次数据请求。攻击目标在传输数据时,发现接收端的TCP窗口
大小为0,就会停止传输数据,并发出TCP窗口探测包,询问攻击者其
TCP窗口是否有更新。由于攻击者没有更改TCP窗口的大小,被攻击目
标就会一直维持TCP连接等待数据发送,并不断进行窗口更新的探测。
如果攻击者利用大量的受控主机进行Sockstress攻击,被攻击目标会一
直维持大量的TCP连接并进行大量窗口更新探测,其TCP连接表会逐渐
耗尽,无法接受新的连接而导致拒绝服务。
Sockstress攻击的原理如图3-15所示。图3-15 Sockstress攻击
Sockstress攻击的另一种方式是将TCP窗口设置为一个非常小的值,例如4字节。这样攻击目标将不得不把需要发送的数据切分成大量4字节
大小的分片,这会极大地消耗目标的内存和处理器资源,造成系统响应
缓慢和拒绝服务。3.2.2 攻击SSL连接
安全套接层(Secure Sockets Layer,SSL)是为网络通信提供安全
及数据完整性的一种安全协议。SSL能够在传输层对网络连接进行加
密,以防止传输的数据明文被监听和截获。
然而,SSL协议加密、解密和密钥协商的过程中会消耗大量的系统
资源,严重降低机器的性能,因此,通常只有在传输密码等机密信息时
才使用SSL协议进行传输。
图3-16是在SSL协议密钥协商过程中,客户端与服务器端消耗的
CPU计算资源的对比图。
[3]
可以看到,如果使用RSA系列的公钥密码算
法,那么服务器端所要消耗的资源都会比客户端多。在最极端的情况
下,使用RSA 4096进行加解密,服务器端需要花费相当于客户端资源的
25倍才能完成计算。图3-16 使用不同加密算法时客户端与服务器消耗资源的对比
攻击者可以利用SSL协议消耗资源的特性进行拒绝服务攻击。1.THC SSL DoS攻击
在进行SSL数据传输之前,通信双方首先要进行SSL握手,以协商
加密算法交换加密密钥,进行身份认证。通常情况下,这样的SSL握手
过程只需要进行一次即可,但是在SSL协议中有一个Renegotiation选
项,通过它可以进行密钥的重新协商以建立新的密钥。
THC SSL DoS攻击是安全研究人员在2011年提出的一种针对SSL的
拒绝服务攻击方法。
[4]
这种方法就是利用Renegotiation选项,造成被攻
击目标资源耗尽。在进行SSL连接并握手之后,攻击者反复不断地进行
密钥重新协商过程,而密钥重协商过程需要服务器投入比客户端多15倍
的CPU计算资源。攻击者只需要一台普通的台式机就能够拖慢一台高性
能服务器,而如果有大量主机同时进行攻击,则会使服务器忙于协商密
钥而完全停止响应。
THC SSL DoS攻击的原理如图3-17所示。图3-17 THC SSL DoS攻击
另外,即使服务器不支持Renegotiation,攻击者依然可以通过另行
打开新的SSL连接的方式来制造类似的攻击效果。
2.SSL洪水攻击在SSL握手的过程中,服务器会消耗较多的CPU计算资源进行加解
密,并进行数据的有效性检验。对于客户端发过来的数据,服务器需要
先花费大量的计算资源进行解密,之后才能对数据的有效性进行检验。
重要的是,不论数据是否是有效的,服务器都必须先进行解密才能够做
检查。攻击者可以利用这个特性进行SSL洪水攻击。
在进行洪水攻击时,一个要点是需要攻击者能够在客户端大量地发
出攻击请求,这就需要客户端所进行的计算尽可能地少。对于SSL洪水
攻击,比较好的方式是在数据传输之前,进行SSL握手的过程中发动攻
击。攻击者并不需要完成SSL握手和密钥交换,而只需要在这个过程中
让服务器去解密和验证,就能够大量地消耗服务器的计算资源,因此,攻击者可以非常容易地构造密钥交换过程中的请求数据,达到减少客户
端计算量的目的。
SSL洪水攻击的原理如图3-18所示。图3-18 SSL洪水攻击
攻击者可以使用SSLSqueeze等工具来发动SSL洪水攻击。3.3 攻击应用资源
我们再一次回头来看一看那家倒霉的快餐店。前面两节中,我们分
别对堵门和占用收款台这两种砸场子的方法进行了简单的介绍(再次声
明,这里只是用来做类比举例,不是真的在教读者去快餐店砸场子),你可能会觉得这两种方式显得不够优雅。堵门自不必说,占用收款台的
方法也需要很多朋友站在收款台前排队,可能过不了多长时间,你的小
伙伴儿们就会因为疲劳来找你抱怨了。
那么,有没有办法坐着就把问题给解决了呢?答案是肯定的,还记
得我们在这一章一开始提出的“可乐薯条大作战”吗?用这个办法你就能
够坐着把问题解决了。对于快餐店来说,相当数量的客人并不是点完餐
之后就带走的,而是需要在店里将这顿饭解决。因此,能够在收款台付
款并拿到食物只是享受快餐店服务的第一步,能够找到座位坐下才是服
务真正的开始。只要你把座位全部耗尽并长时间占用,真实的客人就会
选择其他的店就餐了。
互联网上的服务器也是一样的。客户端的请求能够到达服务器,并
且正常地与服务器建立会话连接,这只是服务的第一步。如果在之后的
步骤中,客户端不能够获取到所需要的内容,就依然没有得到服务。网
络应用和服务在处理数据时,通常需要消耗一定的网络连接、计算和存
储资源,这些资源是由应用程序向系统进行申请并自行管理和维护的。消耗应用资源的分布式拒绝服务攻击就是通过向应用提交大量消耗资源
的请求,从而达到拒绝服务的目的。
近年来,消耗应用资源的分布式拒绝服务攻击正逐渐成为拒绝服务
攻击的主要手段之一。而由于DNS和Web服务的广泛性和重要性,这两
种服务也就成为了消耗应用资源的分布式拒绝服务攻击的最主要的攻击
目标。3.3.1 攻击DNS服务
DNS服务是互联网的一项核心服务。通过使用DNS,人们在访问网
站时不需要记忆其IP地址,而只须输入其域名即可。在IPv6网络环境
下,由于IP地址由原来的32位扩展到了128位,变得更加难以记忆,DNS服务也就变得更加重要。当DNS服务的可用性受到威胁时,互联网
上的大量设备都会受到影响甚至无法正常运行。历史上曾有多次针对
DNS进行的攻击事件,都造成了较大影响。
针对DNS服务的攻击方法主要有DNS QUERY洪水攻击和DNS
NXDOMAIN洪水攻击两种。
1.DNS QUERY洪水攻击
DNS QUERY洪水攻击是指向DNS服务器发送大量查询请求以达到
拒绝服务效果的一种攻击方法。
DNS查询和解析过程当客户端向DNS服务器查询某域名时,DNS服务器会首先检查其本
地缓存中是否有该域名的记录,如果缓存中有该域名的记录(即命
中),则直接将缓存中记录的IP地址作为非权威应答返回给客户端。如
果在缓存中没有找到该域名的记录,则会进行迭代查询,从根域名开
始,逐级进行域名解析,直到解析出完整的域名,之后服务器会将域名
解析结果作为应答发送给客户端,并生成一条解析记录保存到缓存中。
例如,对www.nsfocus.com这个域名进行解析,如果在缓存中没有
查到其记录,DNS服务器会首先向根域名服务器查询.com的域名解析服
务器,然后向.com域名服务器查询nsfocus.com的域名解析服务器,最后
向nsfocus.com域名解析服务器查询得到www.nsfocus.com的域名解析结
果,并将结果返回给发起查询的客户端。
DNS查询和解析的过程通常如图3-19所示。图3-19 DNS解析过程
在DNS解析的过程中,客户端发起一次查询请求,DNS服务器可能
需要进行额外的多次查询才能完成解析的过程并给出应答,在这个过程
中会消耗一定的计算和网络资源。如果攻击者利用大量受控主机不断发
送不同域名的解析请求,那么DNS服务器的缓存会被不断刷新,而大量
解析请求不能命中缓存又导致DNS服务器必须消耗额外的资源进行迭代
查询,这会极大地增加DNS服务器的资源消耗,导致DNS响应缓慢甚至
完全拒绝服务。
DNS QUERY洪水攻击的原理如图3-20所示。图3-20 DNS QUERY洪水攻击
进行DNS QUERY洪水攻击的要点在于每一个DNS解析请求所查询
的域名应是不同的,这样可以比较有效地避开DNS服务器缓存中的解析
记录,达到更好的资源消耗效果。
2.DNS NXDOMAIN洪水攻击
DNS NXDOMAIN洪水攻击是DNS QUERY洪水攻击的一个变种攻击方式,区别在于后者是向DNS服务器查询一个真实存在的域名,而前
者是向DNS服务器查询一个不存在的域名(NXDOMAIN即Non-eXistent
Domain)。
在进行DNS NXDOMAIN洪水攻击时,DNS服务器会进行多次域名
查询,同时,其缓存会被大量NXDOMAIN记录所填满,导致响应正常
用户的DNS解析请求的速度变慢。这与DNS QUERY洪水攻击所达到的
效果类似。除此以外,一部分DNS服务器在获取不到域名的解析结果
时,还会再次进行递归查询,向其上一级的DNS服务器发送解析请求并
等待应答,这进一步增加了DNS服务器的资源消耗。因此,DNS
NXDOMAIN洪水攻击通常比DNS QUERY洪水攻击的效果更好。
DNS NXDOMAIN洪水攻击的原理如图3-21所示。图3-21 DNS NXDOMAIN洪水攻击3.3.2 攻击Web服务
近年来,Web技术发展非常迅速。人们可以通过浏览器使用Web服
务,简单方便地获取需要的信息;而许多机构和企业的重要信息和关键
业务也是通过Web服务的方式对外提供。一旦Web服务受到拒绝服务攻
击,就会对其承载的业务造成致命的影响。
有多种方法能够对Web服务进行分布式拒绝服务攻击,本节将依次
进行介绍。
1.HTTP洪水攻击
Web服务通常使用超文本传输协议(HyperText Transfer Protocol,HTTP)进行请求和响应数据的传输(图3-22)。图3-22 Web访问过程
常见的HTTP请求有GET请求和POST请求两种。通常,GET请求用
于从Web服务器获取数据和资源,例如请求页面、获取图片和文档等;
POST请求用于向Web服务器提交数据和资源,例如发送用户名密码、上传文件等。在处理这些HTTP请求的过程中,Web服务器通常需要解
析请求、处理和执行服务端脚本、验证用户权限并多次访问数据库,这
会消耗大量的计算资源和IO访问资源。
如果攻击者利用大量的受控主机不断地向Web服务器恶意发送大量
HTTP请求,要求Web服务器处理,就会完全占用服务器的资源,造成
其他正常用户的Web访问请求处理缓慢甚至得不到处理,导致拒绝服
务。这就是HTTP洪水攻击。由于HTTP协议是基于TCP协议的,需要完成三次握手建立TCP连接
才能开始HTTP通信,因此进行HTTP洪水攻击时无法使用伪造源IP地址
的方式发动攻击。这时,攻击者通常会使用HTTP代理服务器。HTTP代
理服务器在互联网上广泛存在。通过使用HTTP代理服务器,不仅可以
隐藏来源以避免被追查,还能够提高攻击的效率——攻击者连接代理服
务器并发送完请求后,可以直接切断与该代理服务器的连接并开始连接
下 ......
您现在查看是摘要介绍页, 详见PDF附件(13791KB,358页)。





