成都理工大学毕业设计(论文)
拒绝服务攻击原理及对策研究
作者姓名:XX 专业班级:2200551XXX 指导教师:XXX
摘 要
随着网络技术和网络应用的发展,利用开放的网络环境进行全球通信已成为时代发展的趋势。但是网络在提供便利的共享资源的同时也带来了各种各样的安全风险。因此,网络安全问题越来越引起人们的广泛关注,并成为当今网络技术研究的重点。网络安全问题显得越来越重要。这些网络攻击中,拒绝服务攻击由于容易实施、难以防范、难以追踪等而成为最难解决的网络安全问题之一,给网络社会带来了极大的危害。同时,拒绝服务攻击也将是未来信息战的重要手段之一。因此,研究拒绝服务攻击及其对策是极为重要的。
本文对拒绝服务攻击及其对策作了较为深入的研究,尤其在拒绝服务攻击的原理和机制上作了重点阐述,另外在工具追踪攻击者方面也简要涉及到。
在本文中,我们首先分析了现代网络的现状,网络安全对我们生活工作的最要性,而由于拒绝服务攻击的特点和对网络安全造成的巨大威胁,所以主要研究了拒绝服务攻击的攻击机制、方法及其对策。
关键词:追踪;拒绝服务;DoS;DDoS;黑客攻击
成都理工大学毕业设计(论文)
目 录
第1章 前 言 ................................................. 1
1.1
1.2
1.3 计算机网络迅猛发展 .................................... 1 网络安全事件逐渐增多,网络安全问题益发严重 ............. 1 论文的研究内容及论文的安排 ............................ 1
第2章 问题的提出与问题的定义 ................................. 3
2.1 网络安全现状 .......................................... 3
2.1.1 漏洞产生的原因 ................................... 3
2.1.2 漏洞多的原因 ..................................... 3
2.1.3 补丁不是万能的 ................................... 4
2.2 拒绝服务攻击问题的严重性 .............................. 5
第3章 拒绝服务攻击研究 ....................................... 7
3.1
3.2
3.3 问题的定义 ............................................ 7 拒绝服务攻击原理(DoS DDoS) .......................... 7 攻击者的目的 .......................................... 9
3.3.1 作为练习攻击的手段 ............................... 9
3.3.2 作为特权提升攻击的辅助手段 ....................... 9
3.3.3 报复 ............................................ 10
3.3.4 政治原因 ........................................ 10
3.3.5 经济原因 ........................................ 10
3.3.6 炫耀 ............................................ 10
3.3.7 恶作剧或单纯为了破坏 ............................ 11
3.4 典型的拒绝服务攻击方式 ............................... 11
3.4.1 DOS主要的三种: ................................. 11
3.4.2 DDOS现在是使用得非常频繁的方式,主要有七种: ..... 12
3.5 DDOS典型攻击过程 .................................... 16
3.5.1 准备阶段,收集目标信息 ........................... 16
3.5.2 占领傀儡机和控制台 .............................. 16
3.5.3 攻击的实施 ...................................... 17
I
成都理工大学毕业设计(论文)
3.6 常用DDOS攻击工具分析 ................................ 18
3.6.1 Trinoo ........................................... 18
3.6.2 TFN .............................................. 18
3.6.3 Stacheldraht ..................................... 18
3.6.4 Trinity .......................................... 19
3.6.5 Shaft ............................................ 19
3.6.6 TFN2K ............................................ 19
3.6.7 Stream/mstream ................................... 19
3.6.8 Jolt2 ............................................ 19
3.7 拒绝服务攻击的发展趋势 ............................... 20
3.7.1 攻击程序的安装 .................................. 20
3.7.2 攻击程序的利用 .................................. 21
3.7.3 攻击的影响 ...................................... 22
3.8 本章小结 ............................................. 22
第4章 拒绝服务攻击的防范 .................................... 23
4.1
4.2 拒绝服务攻击的检测 ................................... 23 拒绝服务攻击的缓解方法 ............................... 23
4.2.1 增强容忍性 ...................................... 24
4.2.2 过滤 ............................................ 27
4.3 本章小结 ............................................. 29
第5章 对拒绝服务的简易跟踪 .................................. 30
5.1
5.2
5.3 包标记 ............................................... 30 日志记录 ............................................. 30 连接测试 ............................................. 30
结 论 .......................................................... 31
致 谢 .......................................................... 31
参考文献 ....................................................... 32 II
成都理工大学毕业设计(论文)
第1章 前 言
1.1 计算机网络迅猛发展
在信息技术的推动和牵引下,人类社会已由工业时代迈进信息时代。当前,世界范围的Internet网络已得到空前发展并正在日新月异地改变着政治、经济、军事和文化等社会生活的各个方面。由于Internet的飞速发展,它早已经成为一个覆盖全世界的“全球网”。今天,在发达国家自不待言,即使是在中国这样的发展中国家,不仅企事业单位,居民个人上网也在飞速发展中。据中国互联网络信息中心《中国互联网络发展状况统计报告》,截至20xx年4月,全国上网计算机数和上网人数平均年增幅[10]约50%左右。现在,随着电子商务、电子政务等的发展,我们不仅可以通过网络与远方的朋友即时通讯、发送电子邮件,而且,足不出户,我们就可以通过网络购物、付费、接受远程教育、远程医疗服务等等。利用由电话线与办公室网络连接的计算机在家庭办公已经不再神秘。世界各国电子商务、电子政务的推动与发展进一步促进了网络应用的发展。现在,我们对网络的依赖在逐渐增加,特别是对一些年轻的IT从业人员和广大网虫而言,一旦没有了网络(比如因为停电或者其他原因使网络暂时不可用),就会有不知所措之感。因此,网络已经深入到了我们生活的方方面面,成为生活中不可或缺的东西。
1.2 网络安全事件逐渐增多,网络安全问题益发严重
然而,任何事物都有它的两面性,网络亦然。随着人们越来越依赖于计算机网络,网络安全成为了一个摆在我们面前的亟待解决的问题。例如,20xx年2月的黑客事件中,世界著名的雅虎、亚马逊、微软等的网络遭黑客攻击而几近全面瘫痪,直接经济损失高达数十亿美元。“爱虫”病毒的肆虐、“红色代码”[5]的泛滥等也给人们平静的网络生活掀起了千层波澜。前不久的“熊猫烧香”也是让全国网民看到了安全的重要性。
1.3 论文的研究内容及论文的安排
拒绝服务攻击由于其实现容易、追踪困难、后果严重等而成为网络安全的大难题。
1
成都理工大学毕业设计(论文)
文章的安排如下,第2章引出本文将要研究的问题,第3章研究拒绝服务攻击的运行机制、攻击方法和攻击工具等等。第4章综述、总结拒绝服务攻击的对策。第5章对一些用于追踪数据包的简单工具进行分析研究,并给出一些改进措施。在文章的最后,我们将给出全文的总结。
2
成都理工大学毕业设计(论文)
第2章 问题的提出与问题的定义
2.1 网络安全现状
现在,在Internet上运行着各种各样的软件、各种各样的系统。这些软件和系统中几乎每天都有可供攻击者利用的漏洞被发现。攻击者利用这些漏洞几乎可以为所欲为。那么,这些漏洞又从何而来呢?为什么会有这么多的漏洞呢?
2.1.1 漏洞产生的原因
一般来说,在系统的设计、生产过程中如下因素会导致系统、软件漏洞:
(1)系统基础设计错误导致漏洞
比如对于WIN2000/NT的认证协议,该认证协议本身存在漏洞,可以实施中间人劫持攻击,这类漏洞不是由于编程错误造成的,而是系统设计本身就存在问题,无论编程如何严格,都无法弥补系统设计漏洞。
(2)安全策略实施错误
比如访问控制实施的错误,如最早的WEB服务器很多可以通过“..”访问上一层的目录。这类漏洞是因为在设计系统的时候没有充分设计或实现应遵循的安全策略导致的。
(3)系统设计/实施时相关人员刻意留下的后门
在系统的设计或实施的过程中,为了调试的方便,给系统留下了后门,在系统完成直至交付使用后忘记取消后门。或者,某些系统的设计者为了这样或那样的目的,而故意为系统留下后门,为自己今后的非法进入创造条件。这些后门一旦被攻击者获悉,则后患无穷。
以上谈的都是系统或软件的自身漏洞,事实上,在软件或系统的配置、应用、集成过程中,以及系统的安全管理中还会有很多其他的漏洞产生。例如,系统配置不当、错误地使用一些系统的默认口令等等都会造成安全漏洞的存在。
此外,除了系统与应用中的漏洞外,系统的使用者安全意识不强也可以看成是漏洞,例如社交工程就是利用这种漏洞的。
2.1.2 漏洞多的原因
我们了解了漏洞是存在的。事实上,漏洞不仅存在,而且层出不穷。为什么现在漏洞会如此之多呢?原因在于:
3
成都理工大学毕业设计(论文)
(1)方案的设计可能存在缺陷;
(2)要从理论上证明一个程序的正确性如果不是不可能的,至少是非常困难的;
(3)由于设计人员的经验不足,设计的成本限制,生产周期过短,以及竞争对手的压力,迫使一些产品测试不足,匆匆投入市场;
(4)由于技术发展很快,以至于厂商的精力主要集中在如何迅速地将产品推向市场上。为了缩短时间,厂商常常将安全性置于次要地位;
(5)系统中运行的应用程序越来越多,相应的漏洞也就无可避免地越来越多。
2.1.3 补丁不是万能的
前面我们讨论了漏洞产生的原因,也说明了漏洞是非常的多。软件商也常常说没有完美的软件,漏洞是不可避免的。因此,我们也只有使用含有漏洞的系统!有了漏洞,在没有新的版本出现之前,只有通过补丁来暂时解决问题。“漏洞--补丁-新的漏洞-新的补丁”的模式成了安全领域中对漏洞的通用解决方式。但是,以补丁来解决漏洞的问题是不可靠的。
就如,2001.7.19,红色代码(code red)病毒攻击了微软的MSN服务器。而该病毒所利用的漏洞的补丁在同年6月就由微软发布,时隔1个月后,微软自己都没有打上补丁,更何况其他的网管!又如,倍受期望的Windows Vista由于效果不佳,推出SP1补丁,同样又产生兼容性问题。
因此,从这些事例我们可以看出,补丁不能完全解决问题,靠补丁来维持安全性是不可靠的。为什么会这样呢?原因是:
1)由于漏洞太多,相应的补丁也太多,补不胜补。仅Outlook在20xx年就发布了十多个补丁。一个中大型的企业一般有多种操作系统、成百上千个应用,有的厂商的产品每年会发现50~70个漏洞,要对所有这些漏洞都打上相应的补丁将是件非常繁重的工作。
2)很多的补丁一经打上,就不能卸载,如果发现补丁因为这样那样的原因不合适,就只好把整个软件卸载,然后重新安装,非常的麻烦。
3)漏洞的发现到补丁的发布有一段时间差,此外漏洞也可能被某些人发现而未被公开,这样就没有相应的补丁可用。
4
成都理工大学毕业设计(论文)
4)网络、网站增长太快,没有足够的合格的网络管理员,当一个外行充当管理员以后,你又怎么能希求他/她能打上所有需要的安全补丁呢?
5)有时候打补丁需要离线操作,这就意味着关闭该机器上的服务,这对很多关键的服务来说也许是致命的。
6)有时补丁并非总是可以获得的,特别是对于那些没有广泛使用的系统而言,生产厂商可能没有足够的时间、精力和动机去开发补丁程序。
7)厂商通常可能在补丁中除解决已有问题之外添加很多的其他功能,这些额外的功能可能导致新漏洞的出现、性能下降、服务中断、或者出现集成问题和安全功能的暂时中断等。厂商们总以为知道用户需要什么,但实际上并非如此!
8)补丁的成熟也需要一个过程,仓促而就的补丁常常会有这样或那样的问题。因此,选择何时打补丁也是个难题,如果打补丁过早,会由于补丁本身的问题带来系统不稳定以及一些功能的不可用,甚至补丁会带来其他的漏洞等负面因素;如果打补丁过晚,系统受攻击的危险就增大。
因此,依靠补丁来维持安全性是不可靠的。在一个大型的网络中,有各种各样的机器,各种各样的操作系统,更有各种各样的应用程序,它们中的漏洞数成百上千甚至成千上万,如果其中一台机器上的一个补丁没有打上,对应的漏洞就可能成为整个网络安全的一个突破口。即使打上了你所知道的所有补丁,对于那些还没有补丁存在的漏洞又如何呢?攻击者不会等待有补丁出来后再行攻击!相反,他们常常会利用这些没有补丁的漏洞。当然,从一个漏洞的发现到利用该漏洞的工具的出现有一个时间间隔,正如安全专家需要时间为漏洞打补丁一样,攻击者也需要时间开发工具,只是攻击者总是处于有利的地位,因为,即使补丁已经出现,攻击者仍有希望成功,至少,他/她可以找没有打上补丁的系统作为目标。此外,对于那些还掌握在少数人的手里,没有公开的漏洞呢?如果这少数人正好是你的敌人,后果是不言而喻的。
2.2 拒绝服务攻击问题的严重性
如今,DoS攻击业已成为网络安全领域最为严重的问题之一,因为:
(1)首先,DoS攻击非常容易实现。如今,Internet上的DoS攻击工具随处可见,任何人,即使对网络安全没有多少理解,甚至对计算机,对网络也没有多少理
5
成都理工大学毕业设计(论文)
解的人,只要会上网,就可以从网上下载现成的工具,然后随心所欲地对他/她选定的受害者展开攻击。目前,有些网络攻击工具的自动化程度已经非常之高,一些攻击工具或者病毒甚至可以自动搜索一些有弱点的机器,然后攻破它,再把攻击程序安装上去。
(2)其次,一般而言,攻击性数据包特别是靠大量数据包进行攻击的风暴式攻击的数据包与正常的数据包难以区分,因此,在受害者端对拒绝服务攻击进行防范是极为困难的。这与第一点合起来,使得攻击者和受害者之间的力量极为悬殊,而攻击者总是处在极有利的地位。
(3)第三,与其他类型的攻击如特权提升攻击不同,拒绝服务攻击常常不需要攻击者与受害者交互信息。因此,攻击者可以伪造IP地址,使得攻击者能掩盖自己的攻击发出点,从而掩盖攻击者身份。当攻击者通过傀儡机进行攻击时,伪造IP地址也保护了傀儡机不被发现,这一方面可以使得傀儡机今后还可以使用,另一方面避免了受害者或法律机构等通过傀儡机进一步追踪到攻击者。并且,如果IP地址随机伪造,可以削弱受害者依据IP地址过滤攻击数据包的效果。另外,有些攻击如SYN风暴攻击等,在伪造了IP地址以后,攻击效果会更好。有些攻击如smurf攻击、fraggle攻击以及其它方式的反射式攻击则必须伪造IP地址才能使攻击有效。
拒绝服务攻击问题已经越来越严重。由于没有有效的方法防范、追踪拒绝服务攻击,拒绝服务攻击在不久的将来会变得更为严重。比如,在网络战中,拒绝服务攻击可以使得大的商业、政府、公共设施、军队网络瘫痪。防范拒绝服务攻击的问题已日渐迫切,除非我们团结起来,一致防范,我们终究都是拒绝服务攻击的受害者。本文研究的对策就主要在于在全球范围内对拒绝服务攻击进行防范,通过整个“网络社会”的共同努力,有效达到更好的防御效果。
6
成都理工大学毕业设计(论文)
第3章 拒绝服务攻击研究
3.1 问题的定义
这里,我们对本文涉及的一些概念[1]予以简单的介绍。在谈拒绝服务攻击之前,我们先从服务开始谈起。
服务——是指系统提供的,用户在对其使用中会受益的功能。
拒绝服务(DoS)——任何对服务的干涉如果使得其可用性降低或者失去可用性均称为拒绝服务。如一个计算机系统崩溃、或其带宽耗尽、或其硬盘填满,导致其不能提供正常的服务,就构成拒绝
拒绝服务攻击——是指攻击者通过某种手段,有意地造成计算机或网络不能正常运转从而不能向合法用户提供所需要的服务或者使得服务质量降低。
分布式拒绝服务(DDoS)攻击——如果处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击,由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击。一般而言,除了规模以外,DDoS攻击与DoS攻击没有本质上的区别,严格而言,DDoS攻击也是DoS攻击,只是我们把多个攻击机器(一个或者数个攻击者控制下的分处于不同网络位置的多个攻击机)发起的协同攻击特称为DDoS攻击。
DDoS网络——指DDoS攻击中牵涉的各方,它由攻击者、控制台、攻击机(傀儡机)、受害者组成。一个攻击者可以控制多个控制台,一个控制台一般控制多个攻击机,为了攻击效果的缘故,受害者通常只有一个或有紧密联系的多个。
网络追踪——通过一定的机制、手段,确定攻击的真正来源以及攻击数据包经过的完整路径。这里的数据包的来源可能是实施了追踪的网络的某个入口点、发出数据包的实际的主机或者网络,甚至可能是实施了追踪的网络中的受攻击者控制的某个路由器。
3.2 拒绝服务攻击原理(DoS DDoS)
DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项
7
成都理工大学毕业设计(论文)
性能指标不高它的效果是明显的。
随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了目标对恶意攻击包的"消化能力"加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。
这时侯分布式的拒绝服务攻击手段(DDoS)就应运而生了。你理解了DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到数G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了。

图3-1 攻击示意图
如图3-1,一个比较完善的DDoS攻击体系分成四大部分,先来看一下最重要的第2和第3部分:它们分别用做控制和实际发起攻击。请注意控制机与攻击机的区别,对第4部分的受害者来说,DDoS的实际攻击包是从第3部分攻击傀儡
8
成都理工大学毕业设计(论文)
机上发出的,第2部分的控制机只发布命令而不参与实际的攻击。对第2和第3部分计算机,黑客有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自黑客的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦黑客连接到它们进行控制,并发出指令的时候,攻击傀儡机就成为害人者去发起攻击了。
3.3 攻击者的目的
拒绝服务攻击的目的[7]是多种多样的,不同的时间和场合发生的、由不同的攻击者发起的、针对不同的受害者的攻击可能有着不同的目的。下面我们把主要的一些目的列举如下。需要说明的是,这里列出的没有,也不可能包含所有的攻击目的;此外这些目的不是排它性的,一次攻击事件可以有多重的目的。
3.3.1 作为练习攻击的手段
由于DoS攻击非常简单,还可以从网上直接下载工具进行自动攻击。因此,这种攻击也被一些所谓的黑客用作练习攻击技术的基础。
3.3.2 作为特权提升攻击的辅助手段
有的时候,拒绝服务攻击可以作为特权提升攻击、获得非法访问的一种手段。通常,攻击者不能单纯通过拒绝服务攻击获得对某些系统、信息的非法访问,但其可作为间接手段。
(1)SYN风暴攻击可以用于IP劫持、IP欺骗等。当攻击者想要向B冒充C时,其通常需要C不能响应B的消息,为此,攻击者可以先攻击C(如果它是在线的)使其无法对B的消息进行响应。然后攻击者就可以通过窃听发向C的数据包,或者通过猜测发向C的数据包中的序列号,然后冒充C与第三方通信。
(2)一些系统在启动时会有漏洞,可以通过拒绝服务攻击使之重启,然后在该系统重启时针对漏洞进行攻击。如rarp-boots,如果能令其重启,就可以将其攻破。只需知道rarp-boots在引导时监听的端口号(常常为69),通过向其发送伪造的数据包几乎可以完全控制其引导(boot)过程。
(3)有些网络配置成当防火墙关闭时所有数据包都能通过(特别是对于那些提供服务比安全更加重要的场合,如普通的ISP),则可通过对防火墙的拒绝服务攻击使其失去作用达到非法访问受防火墙保护的网络的目的。
9
成都理工大学毕业设计(论文)
(4)对Windows系统的大多数配置变动在生效前都需要重启系统。这么一来,攻击者如果已经获得了对系统的管理性特权的变动之后,可能需要采取拒绝服务攻击的手段使系统重启或者迫使系统的真正管理员重启系统,以便其改动的配置生效。
(5)对DNS的拒绝服务攻击可以达到地址冒充的目的。DNS服务器起到的是把域名解析为IP地址的作用。攻击者可以通过把DNS致瘫,然后冒充DNS的域名解析,把错误的域名-IP地址的对应关系提供给用户,达到把用户(受害者)的数据包指向错误的网站(如攻击者的网站),或者把受害者的邮件指向错误的(如攻击者的)邮件服务器,这样,攻击者就达到了冒充其他的域名的目的。
攻击者的最终目的大致有两种,一是窃取受害者的信息,但客观上导致用户不能应用相应的服务,也构成拒绝服务攻击;二是拒绝服务攻击,如蓄意使用户不能访问需要的网站,不能发送邮件到需要的服务器等。
3.3.3 报复
如某个被解雇的前职员可以利用拒绝服务攻击来报复其以前的上司或以前供职的公司。
3.3.4 政治原因
这类攻击的目的是对某种政治思想的表达或者压制他人的表达。如20xx年5月间,由美国间谍飞机撞毁我巡逻机引发的,中美黑客之间的一场网络大战,以及20xx年伊拉克战争期间美国与伊拉克黑客之间的发生的相互攻击对方国内网络的事件就属政治原因引起的(当然,拒绝服务攻击只是当时双方采取的攻击手段之一)。
3.3.5 经济原因
比如A、B是两家相互竞争的依赖Internet做生意的公司,如果其中一个公司的服务质量降低,或者顾客不能访问该公司的网络,顾客会转向另一家公司,则就可能参与或雇用他人对B公司提供的网上服务实施拒绝服务攻击。
3.3.6 炫耀
黑客们常常以能攻破某系统作为向同伴炫耀的资本,拒绝服务攻击虽然技术要求不是很高,有时也被一些人特别是一些“所谓的”黑客用来炫耀。
10
成都理工大学毕业设计(论文)
3.3.7 恶作剧或单纯为了破坏
有些系统的使用需要帐户(用户名)和口令进行身份认证,而当以某个用户名登陆时,如果口令连续错误的次数超过一定值,系统会锁定该帐户,攻击者可以采用此方法实施对帐户的拒绝服务攻击。此外,我们在现实生活中常常见到一些公共设施如通信电缆被恶意毁坏;在网络社会中,类似的情况也时有发生,这些攻击常常是为了恶作剧。
3.4 典型的拒绝服务攻击方式
拒绝服务攻击的分类方法有多种,不同的应用场合采用不同的分类。
拒绝服务攻击可以是物理的(硬件的),也可以是逻辑的(logic attack,也称为软件的software attack)。物理形式的攻击如偷窃、破坏物理设备,破坏电源等。物理攻击属于物理安全的范围,不在本文的讨论之列。本文中只讨论后一种形式的攻击。
1)按攻击地点可以分为本地攻击和远程(网络)攻击,本地攻击是指不通过网络,对本地主机的攻击,远程攻击则必须通过网络连接。按攻击的目标又可分为节点型和网络连接型,前者旨在消耗节点(主机host)资源,后者旨在消耗网络连接和带宽。
2)按照攻击方式来分可以分为:资源消耗、服务中止和物理破坏。资源消耗指攻击者试图消耗目标的合法资源,例如网络带宽、内存和磁盘空间、CPU使用率等等。服务中止则是指攻击者利用服务中的某些缺陷导致服务崩溃或中止。物理破坏则是指雷击、电流、水火等物理接触的方式导致的拒绝服务攻击。
3)按攻击是否直接针对受害者,可以分为直接拒绝服务攻击和间接拒绝服务攻击,如要对某个Email帐号实施拒绝服务攻击,直接对该帐号用邮件炸弹攻击就属于直接攻击。为了使某个邮件帐号不可用,攻击邮件服务器而使整个邮件服务器不可用就是间接攻击。
3.4.1 DOS主要的三种:
1)TCP-SYN flood
2)UDP flood
3)ICMP flood
当用户进行一次标准的TCP连接时,会有一个3次握手过程。首先是请求服 11
成都理工大学毕业设计(论文)
务方发送一个SYN消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个ACK消息,这样,一次TCP连接建立成功。但是TCP-SYN flood在实现过程中只进行前2个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是,服务方会在一定时间处于等待接收请求方ACK消息的状态。对于某台服务器来说,可用的TCP连接是有限的,如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,网络将无法向用户提供正常的服务。

图3-2 TCP连接图

图3-3 SYN攻击示意图
3.4.2 DDOS现在是使用得非常频繁的方式,主要有七种:
1)Synflood:该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量
12
成都理工大学毕业设计(论文)
消耗而不能向正常请求提供服务。
2)Smurf:该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。
3)Land-based:攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
4)Ping of Death:根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death攻击,该攻击会造成主机的宕机。
5)Teardrop:IP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。
6)PingSweep:使用ICMP Echo轮询多个主机。
7)Pingflood:该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽
8)分布式反射:新一代的DDoS攻击
攻击者可以通过反弹技术使我们对DDOS攻击更难以防御——利用反弹服务器反弹DDOS的洪水包,也就是说,通过发送大量的欺骗请求数据包(来源地址为victim,受害服务器,或目标服务器)给Internet上大量的服务器群,而这些服务器群收到请求后将发送大量的应答包给victim。结果是原来用于攻击的洪水数据流被大量的服务器所稀释,并最终在受害者处汇集为洪水,使受害者更难以隔离攻击洪水流,并且更难以用Traceback 跟踪技术去找到洪水流的来源。
在分布式DOS攻击(DDOS)中,攻击者事先入侵了大量服务器,并在这些服务器上植入了DDOS攻击程序,然后结合这些被入侵的服务器的网络传输力量发动攻击。利用大量的服务器发动攻击不仅增加了攻击的力度,而且更难于防范。
13
成都理工大学毕业设计(论文)
图3-4 DDOS结构图
显示了以往DDOS攻击的结构:一个主机,主服务器(Master),作用是发送控制消息给事先入侵并已植入DDOS程序的从服务器群(Slave),控制从服务器群发起对目标服务器的攻击。从服务器群将产生高容量的源地址为伪造的或随机的网络数据流,并把这些数据流发送给目标服务器。因为数据流的源地址是伪造的,增加了追查的难度。
利用成百上千的从服务器不仅可以另追查的难度加大(因为难以识别大量不同的来源,需要查询大量的路由器),而且极大的阻碍了当成功追查后所需采取的行动(因为这要与大量的网络管理员联系,安装大量的网络过滤器)。

图3-5 反射式

14
成都理工大学毕业设计(论文)
图3-6 反弹式拒绝服务攻击网络
在这同时,由于欺骗所返回的数据经过反射不断增大

图3-7 反射放大
9)循环式攻击
循环攻击,有的也称之为死锁或振荡攻击(oscillate attack)。这类攻击中最常见的是Echo-chargen攻击,当运行着chargen服务的UDP端口(通常为端口号19)收到一个数据包以后,其会产生一个字符串作为回应。当运行着echo服务的UDP端口(通常为端口号7)收到一个数据包以后,其会简单地返回该包的数据内容作为回应。这两种服务可被攻击者利用来进行循环攻击。比如,攻击者只需向甲系统的UDP echo端口发送一个好像来自于乙系统的UDP chargen端口的UDP包(即冒充乙系统的IP地址和chargen端口),则在甲系统的UDP chargen端口和乙系统的之间会产生大量的UDP包,从而当甲乙是不同的两个系统时使两系统因处理彼此收发的数据包而效率降低并阻塞甲乙两系统之间的带宽,当甲乙为同一个系统时因其两个UDP端口间不停地发送数据包而降低系统性能(循环攻击既可以看作是剧毒包型攻击,也可以看作是风暴型攻击,一方面,

15
成都理工大学毕业设计(论文)
它只要求攻击者发送一个或数个数据包,另一方面,在受害者处却有大量的数据包出现)。这种攻击可以针对单个系统,也可以针对两个或多个系统。

图3-8 循环攻击
3.5 DDOS典型攻击过程
一般来说,DDoS攻击具有如下的典型过程:
3.5.1 准备阶段,收集目标信息
通常,攻击者的攻击并非盲目地胡乱进行的,他不会用一台通过Modem连接的PC机去轰炸(flooding)一个大型网站(当然,如果该网站有一些漏洞使得剧毒包型攻击也能奏效的话,用一台PC机通过剧毒包攻击大型网站奏效的情况也是存在的,然而,这里我们感兴趣的是风暴型攻击)!为了使得攻击奏效,攻击者需要了解受害者许多的信息如被攻击目标主机数目、配置、性能、操作系统、地址情况以及目标网络的带宽等。因此,在攻击发生前,攻击者需要先对目标进行侦察,如利用扫描工具对目标进行扫描。
3.5.2 占领傀儡机和控制台
在DDoS中,攻击者可以通过自己的机器直接对目标发起攻击,这样攻击者可能会冒着被发现的风险。通常,为了掩蔽自己不被发现,攻击者需要占领一些傀儡机,用来实施攻击。另外,为了达到需要的攻击力度,单靠一台或数台机器对一个大型系统的攻击是不够的,因此攻击者也需要大量的傀儡机器用于增强攻击的“火力”。这些傀儡机器最好具有良好的性能和充足的资源,如强的计算能力、大的带宽等等,这样攻击者会获得较大的攻击力。当然,如果这些机器的管理水平、安全程度低,则更是攻击者的最佳选择,因为这样的机器更容易被攻击
16
成都理工大学毕业设计(论文)
者攻破。比如一些宽带家庭用户的系统就具有高带宽、低安全的特性,而且,由于这些用户一般都是按月或按年度固定地付费的,因此,他们的计算机一般会长时间连在网上,这些都是最受攻击者青睐的。并且,攻击者还需要向傀儡机发送命令的控制台,因此攻击者还需利用某些被其攻破的机器或者其拥有访问权限的机器作为控制台。
攻击者占领这些傀儡机的一般方法是先通过扫描,得到一些容易攻破的机器,然后采用一些较为简单的方法予以攻破。此外,由于新的软件越来越多,必然的,整个系统的漏洞也越来越多;软件的漏洞使得恶意程序可以自动地攻破大量的主机,然后提供给攻击者作为傀儡机(攻击机)使用。
攻击者占领傀儡机以后,需要在傀儡机上安装后门,以保持对傀儡机的“占有”。此外,对于那些攻击者选作攻击机的傀儡机,攻击者还需在上面安装攻击软件。
3.5.3 攻击的实施
在前面的准备工作完成之后,实际的攻击过程却相对比较简单,攻击者只需通过控制台[4]向傀儡机发出指令,令其立即或在某个时间向指定的受害者大量发送特定的攻击数据包即可。或者,攻击者可以在傀儡机上作一定时设置,时间一到,这些傀儡机就自行对既定目标发起攻击。
我们这里描述的是分布式拒绝服务攻击的一个典型过程。实际上,并非每一次攻击都要遵循这样一个过程的。例如攻击者在攻击了受害者甲以后的某天打算攻击受害者乙,这时,由于攻击者已经掌握了控制台机器和大量的攻击机,第二个过程就可以省略。或者,攻击者也许通过一些其他的渠道对某个受害者早已有了足够的了解,当他想要对其实施攻击时,第一个过程也就不再需要了。

图3-9 攻击示意图
17
成都理工大学毕业设计(论文)
3.6 常用DDOS攻击工具分析
3.6.1 Trinoo
也称作Trin00[4],是发现最早的DDoS工具之一,在19xx年6、7月就出现了。Trinoo的攻击采用的是UDP风暴,其攻击者(attacker、client)到控制台(handler、master)的通信通过TCP端口27665,控制台到攻击主体(agents、deamon)的通信通过UDP端口27444进行通信,而攻击机到控制台的通信则通过UDP端口31335。
3.6.2 TFN
TFN是The Tribe Flood Network的缩写,它的出现是在trinoo之后,TFN的控制台和攻击主体构成的攻击网络能够实施多种攻击,如ICMP风暴、SYN风暴、UDP风暴和SMURF等。TFN与trinoo有较大的区别,其攻击者、控制台、攻击主体之间的通讯采用ICMP ECHO和ECHO REPLY消息。在TFN中,攻击者到控制台的通讯采用的是明文方式,即没有加密处理,容易受到标准的TCP攻击如会话劫持(session hijacking)、RST截断(RST sniping)等。TFN的控制台到攻击机的通讯通过ICMP ECHO REPLY包。由于有些协议监视工具不截取ICMP包,因此TFN不依赖于TCP和UDP进行通讯的特征使得在某些情况下其更不易被发现。
3.6.3 Stacheldraht
Stacheldraht[8]在德语中意指带刺的网线"barbed wire"。出现于19xx年夏天晚些时候,其集合了trinoo和TFN的某些特征并有一些更高级的特征,如控制台对攻击者的认证需要攻击者提供口令,这个口令在向控制台发送的过程中是通过Blowfish加密的,控制台和攻击机之间的所有通讯都采用Blowfish加密。攻击机可以自动升级等。
Stacheldraht的攻击者向控制台的联系通过TCP端口16660,控制台到攻击机的联系通过TCP端口,反方向的联系则通过ICMP ECHO_REPLY,与TFN一样,Stacheldraht可以实施的攻击有ICMP风暴,SYN风暴,UDP风暴,SMURF等攻击。19xx年9月底10月初左右,Stacheldraht在欧洲和美国正式登场,CERT为它的出现发布了事件通报IN-99-04。Stacheldraht的攻击程序最早发现于一些Solaris 2.x系统上,这些系统是因为RPC服务如statd、cmsd和ttdbserverd
18
成都理工大学毕业设计(论文)
的缓存溢出漏洞而被攻破的。
3.6.4 Trinity
Trinity出现于?年?月。其可实施多种风暴型攻击,包括UDP、SYN、RST、ACK等。从攻击者或控制台到攻击主体的通讯则是通过即时通讯(Internet Relay Chat,IRC)或美国在线(AOL)的ICQ,Trinity也是最早利用IRC进行控制的DDoS工具之一。Trinity最早似乎用的是端口号6667,并且有一个后门程序监听TCP端口33270。
3.6.5 Shaft
Shaft最早出现于19xx年11月。一个Shaft网络看起来与 trinoo的类似,在控制台和攻击机之间的通讯采用的是UDP协议(控制台到攻击机的通讯用端口18753,相反方向用端口20433)。攻击者可以控制攻击类型、攻击包的大小和攻击时间的长短。Shaft的一个典型的特征是其TCP包的序列号都是0x28374839。
3.6.6 TFN2K
TFN2K(Tribe Flood Network 2K)于19xx年12月发布。TFN2K是在TFN上发展起来的变种,有很多新的特征使得其通讯更难以识别和过滤、命令可以远程执行、通过地址伪造掩盖攻击源,并能通过多种协议如UDP、TCP和ICMP进行通讯。TFN2K除了可以实施TFN已有的攻击外,还可以通过发送如Teardrop攻击和Land攻击那样的异常数据包使得受害者系统不稳定或崩溃。
3.6.7 Stream/mstream
与其他的工具相比,mstream比较初级,其程序中有不少的错误,其控制功能也相对单一。然而,其也象其他的工具一样,会给受害者带来很大的灾难。
3.6.8 Jolt2
jolt2.c是在一个死循环中不停的发送ICMP/UDP的IP碎片,可以使Windows系统的机器死锁。经测试,没打补丁的Windows2000遭到其攻击时,CPU利用率会立即上升到100%,鼠标无法移动。jolt2的危害较大,其通过不停的发送IP碎片数据包,不仅死锁未打补丁的Windows系统,同时也大大增加了网络流量。曾经有人利用jolt2模拟网络流量,测试IDS在高负载流量下的攻击检测效率,就是利用这个特性。
19
成都理工大学毕业设计(论文)
3.7 拒绝服务攻击的发展趋势
本节,我们分几个方面讨论拒绝服务攻击的发展趋势。
3.7.1 攻击程序的安装
通常,攻击程序是安装在被攻破的机器上的。这种安装方式依赖于受害者(这个受害者不是拒绝服务攻击的最终受害者,其是DDoS攻击过程第2阶段的受害者,其在拒绝服务攻击中被当作傀儡机)系统上的漏洞和攻击者的技巧。如今,攻击方法渐趋复杂,渐趋自动化,目标也有目的地或随意地选取基windows的系统或者路由器。从一个漏洞的首次发现到该漏洞被攻击者成功地利用之间的时间间隔越来越短。
(1)自动化程度越来越高
过去,就象大多数的攻击工具一样,DoS工具也常常经攻击者手工安装到被其攻破的系统中。随着时间的推移,攻击者在DoS攻击技术的多个方面都提高了自动化的程度。攻击者采用的自动化过程的第一个阶段是大范围地自动扫描以确定受害者。第二阶段则是扫描可能比较弱的系统并自动攻击这些系统,然后记录下被攻破的那些系统以备今后使用,这一步自动攻击脆弱的系统又提高了攻击全过程的自动化程度。第三阶段则是自动或手动地往这些系统中安装DDoS攻击的工具。
有时候,攻击者也利用一些网络对广播包的响应(可以通过扫描测出其是否响应)“放大”攻击流,如前面的smurf攻击、fraggle攻击以及其他的放大型攻击。攻击者也常常利用微软的IIS服务器系统的脆弱性,从这些系统发出包风暴。
后来,攻击者开发出了能够使用脚本自动扫描、自动挖掘、自动安装的攻击工具。T0rnkit就是这样一个例子。这一类的工具在没有攻击者手工参与的情况下不会传播到其它的系统。
自从ramen蠕虫开始,一些能够自动扫描、自动攻击、自动安装,并且自动传播的工具也相继出现。其中自动传播的方式主要有三种,集中式传播、先后连接式传播、自动传播等。
(2)基于windows的系统越来越多地成为目标
早期,自动攻击一般都针对UNIX系统,而针对Windows系统的攻击通常都会 20
成都理工大学毕业设计(论文)
在某种程度上利用社交工程以获得成功。如今,针对Windows系统的攻击逐渐增多。有一种看法是,与其他的网络用户如专用系统或网络的管理员相比,windows的终端用户通常在技术上不是很高,安全意识更淡薄,很少保护他们的系统或者预防他们的系统被攻击。
(3)路由器和其他的网络基础设施也逐渐成为受攻击的目标。现在,攻击和利用路由器的事例越来越多。攻击者常常利用销售商提供的默认口令获得对一些配置和管理比较差的路由器的非法访问。攻击者有时将这些路由器用于扫描活动的平台、代理服务器以及风暴型拒绝服务的攻击点。路由器对攻击者很有吸引力,因为,路由器与计算机系统相比,更多地起到网络基础设施的作用,因此在其他的攻击者面前显得更为“安全”,并且,一般认为路由器不容易攻破,所以路由器常常更少受到监控,如果攻击者“占领”了路由器,通常很难被发现。
(4)漏洞的首次发现到该漏洞被攻击者成功地利用之间的时间间隔越来越短。当漏洞发布以后,攻击者能够很快研究出实际的攻击方法,编写利用该漏洞的攻击代码。
3.7.2 攻击程序的利用
在早期的DDoS攻击中,攻击者通过其控制下的控制台向攻击机器发送命令,攻击机器然后向受害者发起攻击。攻击者与控制台之间的通信信道通常是控制台能够监听攻击者发出的连接,然后控制台机器从这些连接中接收命令。在控制台和攻击机器之间则有两条信道,控制台要能够监听攻击机器发出的数据包以允许攻击机器注册其IP地址,而攻击机器则监听控制台的命令。通常,通信信道都是利用固定的没有标准服务的端口。有些DDoS工具如Stacheldraht还在通信中采用加密技术以掩盖DDoS攻击网络。
早期的DDoS网络工具使得其DDoS网络比较容易识别并予以破坏。因为攻击机器会保存列有一个或多个控制台的列表,这个列表通常是通过在攻击程序中固化的IP地址表,然后其向这些地址发送数据包注册到控制台。因此,一旦发现一个攻击机器就可以找到控制台。同样,控制台也要维持一个攻击机器的列表以便发送攻击命令,因此,发现一个控制台就可以识别出并破坏掉整个DDoS网络。由于攻击机器和控制台都在特定的端口进行监听,使用网络扫描器或者入侵检测系统就可以找出控制台和攻击机。
21
成都理工大学毕业设计(论文)
3.7.3 攻击的影响
在攻击带来的影响方面,拒绝服务攻击表现出两个方面的发展趋势,一是波及范围增大,二是一经安装即可发动攻击,扫描和传播的过程缩短或者融入攻击的过程中。
(1)波及范围更大
一般而言,DoS的影响与其可利用资源的规模有关。现在的攻击方法及攻击工具使得攻击者有大量的资源可以利用。攻击带来的附加破坏性也在逐渐增大,这里的附加破坏是指与资源消耗没有直接联系的破坏。例如,采用安全监控技术,或者提供简单的行为审计都会因为攻击而导致在某些特定网络上产生大量的数据。象Code Red和Nimda就通过频繁的活动而导致大量的审计数据,这使得很多备份系统因数据的激增而出现问题。很多的Internet站点都是和其他的网络(如其上一级网络)相连的,有时其带宽费用是与实际的带宽使用挂钩的,DoS攻击及由此带来的大量的数据流量也使得受害者的损失增加。另外,服务的合并与外购主机服务也使得针对一个设施或服务的攻击导致了其他设施或服务受损,仅仅因为它们与被攻击目标“相邻”而已。
(2)一经安装即行攻击
Code Red(红色代码)、Code Red II和Nimda都表明,高度自动化的攻击工具从一开始安装上就能立即对Internet范围内的多个目标展开攻击。扫描和传播已经不构成多大的危害了。在Code Red事件中,主要的攻击目标反而没有受到多大的损害,其带来的间接损失却成了主要问题。除了已经提到的间接损失,那些有较多机器被感染的网络很快就被地址解析ARP风暴所淹没,原因在于Code Red蠕虫极快的扫描行为。这导致了局部的、小范围的拒绝服务攻击
3.8 本章小结
本章从拒绝服务攻击的目的开始,研究了拒绝服务攻击的运行机制、拒绝服务攻击的过程以及拒绝服务攻击的种类、工具等等。最后,我们还讨论了拒绝服务攻击的发展趋势。在充分了解拒绝服务攻击以后,下章开始,我们将讨论拒绝服务攻击的对策
22
成都理工大学毕业设计(论文)
第4章 拒绝服务攻击的防范
对于拒绝服务攻击而言,目前还没有比较完善的解决方案。拒绝服务攻击(尤其是分布式风暴型拒绝服务攻击)是与目前使用的网络协议密切相关的,它的彻底解决即使不是不可能的,至少也是极为困难的。此外安全具有整体、全面、协同的特性,这一特性在拒绝服务攻击方面体现得尤为突出,没有整个网络社会的齐心协力,共同对付,拒绝服务攻击始终是摆在我们面前的难题。虽然如此,我们也不是对拒绝服务攻击一点办法没有,研究人员也在不断地寻求新的解决方案。拒绝服务攻击的对策主要可以分为三个方面:检测、增强容忍性和追踪。本章我们就先从前两个方面开展研究。
4.1 拒绝服务攻击的检测
通常在进行拒绝服务攻击时都会出现一些异常现象,我们可以通过网络抓包软件Sniffer来抓包分析[2]。
异常现象1:当DDoS攻击一个站点时,会出现明显超出该网络正常工作时的极限通讯流量的现象。现在的技术能够分别对不同的源地址计算出对应的极限值。当明显超出此极限值时就表明存在DDoS攻击的通讯。因此可以在主干路由器端建立访问控制规则以监测和过滤这些通讯。
异常现象2:特大型的ICMP和UDP数据包。正常的UDP会话一般都使用小的UDP包,通常有效数据内容不超过10字节。正常的ICMP消息也不会超过64到128字节。那些明显大得多的数据包很有可能就是传输DDoS控制信息的,主要含有加密后的目标地址和一些命令选项。一旦捕获到没有经过伪造的也没有加密的控制信息,DDoS网络也就无所遁形了。
异常现象3:不属于正常连接通讯的TCP和UDP数据包。最隐蔽的DDoS工具随机使用多种通讯协议(包括基于连接的协议)通过基于无连接通道发送数据。好的防火墙和合理配置路由规则能够发现这些数据包。另外,那些连接到高于1024而且不属于常用网络服务的目标端口的数据包也是非常值得怀疑的。
4.2 拒绝服务攻击的缓解方法
这类对策的目的主要在于缓解拒绝服务攻击对受害者的影响。我们可以采取两种大方法向达到此目的,一是增强受害者的容忍性,二是在攻击性数据流到
23
成都理工大学毕业设计(论文)
达受害者之前将其丢弃(过滤)掉。
4.2.1 增强容忍性
其目的是增强受害者在受到攻击时的承受能力。这种方法是终端系统最广泛使用的方法。
1)增强防御力[9]
对抗DDoS攻击一个很重要的要素就是增强自身的防御能力。使用更大的带宽及提升相关设备的性能是面对DDoS攻击最直接的处理方法。虽然这必定需要耗用一定的资源,但是对于那些将生存寄托于这些在线系统的企业来说,进行这种投入是具备足够理由的。只是在执行这类“硬性增幅”的时候,我们需要把握适度的原则。
因为我们的资源是有限的,如果增加100%的投入仅能在相关性能及DDoS防御力上获得10%的提升,明显是一种得不偿失的处理方式,毕竟这并不是我们仅有的选择。而且攻击者的资源同样是有限的,在我们增加防御强度的同时,就意味着攻击者必须集合比原来多得多的攻击傀儡机来实施攻击,并且会提高攻击者暴露的风险。不过应该记住的是,真正有效的DDoS防御并不是陷入与攻击者“角力”的恶性循环当中,而是应该综合各种方法,为攻击者设置足够的障碍。
2)目标系统处理
攻击者的最终目标可能是一台主机,也可能是一台网络设备。除了对其目标的硬件能力进行增强之外,我们同样应该充分发挥系统自身的潜能,通过对目标系统的针对性处理,可以有效地放大现有资源的能量。最基本的任务是做好更新补丁的工作。特别是一些操作系统的通讯协议堆栈存在着问题,很容易成为拒绝服务攻击的利用对象。因为利用漏洞实施拒绝服务攻击相对于纯粹的设施能力比拼要容易的多。如果不能保证消除明显可被拒绝服务攻击利用的漏洞,其它的防御工作将只能成为摆设。
好在现在各类系统的补丁更新速度还是比较令人满意的,只要根据自身环境的情况注意对相关系统的补丁发布情况进行跟踪就可以了。一些经常被使用的方法还包括限制连接队列的长度以及减少处理延时等。前者可以缓解系统资源的耗尽,虽然不能完全避免“拒绝服务”的发生,但是至少在一定程度上降低了系统崩溃的可能性。而后者能够加强系统的处理能力,通过减少延时,我们可
24
成都理工大学毕业设计(论文)
以以更快的速度抛弃队列里等待的连接,而不是任其堆满队列;不过这种方法也不是在所有情况下都有效,因为很多DDoS的攻击机制并不是建立在类似SYN Flood这样以畸形连接淹没队列的方式之上。
3)纵深防御
攻击者和目标通常并非直接相连,两者之间要经过很多网络节点才能进行通信。所以我们可以在受保护系统之前尽可能部署有效的屏障,以缓解系统的压力。设置屏障最主要的工具就是防火墙,先进的防火墙产品能够有效识别和处理数据包的深层内容,这样有助于我们设置更加细致的过滤。
现在有很多防火墙产品集成了反DDoS功能,进一步提高了对常见DDoS攻击包的识别能力(比如常见的专业级抗DDOS攻击的冰盾防火墙)。这样的产品可以在很大程度上增强DDoS防御能力,并且可以做到不对数据包进行完全检查就可以发现“恶意行为”。这是非常有帮助的能力,因为如果判断DDoS攻击所耗费的处理越少,就越不容易被耗尽处理能力,从而极大的增加攻击者的成本。包括很多路由器产品在内的网络设备都具备一些<_blank">防火墙功能,我们应该尽可能充分的利用。
特别是路由器本身负责对数据流进行导向,应尽可能将其置于“前哨”位置。这样既可以起到御敌于千里之外的作用,又可以灵活地将攻击包导向到其它无害的位置甚至化攻击于虚无。当然,攻击者对这些防御层也会有或浅或深的体认,不会一味地以目标系统作为惟一的打击点,他们很可能会在受到这些设施的阻挠之后转而组织针对这些设施的攻击,这就需要我们动态的对防御设施进行调整,随机应变。
除了以上这些基础的方法和工具之外,还有一些更高级的技巧可以利用,例如我们可以进行冗余设计,以在系统瘫痪于攻击发生时有可以随时启用的应急机制;也可以部署一些陷阱部件,既可以用于吸引攻击流量,也可以对攻击者起到一定的迷惑作用。
1)随机释放
当遭受到SYN风暴攻击时,如果半开连接堆栈已用完,来自于合法用户的连接请求将会被拒绝(SYN包被丢弃),除非此时有半开连接因为超时或者连接完成而释放。由于攻击者通常采用的是伪造的源IP地址,连接一般不会完成,这样
25
成都理工大学毕业设计(论文)
一来,攻击者发送的数据包会最大限度的发挥其预定的作用。为了使得在半开连接堆栈用完时,服务器还能提供连接。这时,可以随机释放一些未完成的半开连接,然后服务器就可以接受新的连接请求。
2)SYN cookie
在通常的TCP连接建立过程(握手协议)中,服务器每收到一个TCP SYN消息就要向客户端发送一个SYN-ACK消息,进入SYN-RECVD(“收到SYN消息”)状态,等待客户端的ACK消息。这相当于为客户端建立了一个半开连接。当收到客户端的ACK消息从而连接完成时,半开连接释放。否则,服务器将保持此半开连接直到超时才撤销。
对于具有SYN cookie功能的TCP服务器,当其收到一个TCP的SYN消息后,其不会按照普通的TCP一样直接建立一个TCP半开连接,而仅仅是向对方发送一个类似的SYN-ACK消息,在这个消息中,序列号是服务器根据客户端的IP地址、端口号,服务器的IP地址、端口号以及时间等通过一个秘密的函数生成的。当接收到从客户端发来的,针对这个SYN-ACK的ACK消息后(这时该消息中必然有SYN-ACK的序列号的相关信息),服务器直接建立连接。采用这种方式,一个盲攻击者仅仅发送TCP SYN就不能占用服务器太多的资源(只是少量的计算能力而已,而服务器上宝贵的半开连接栈却得到了保护)。若要攻击成功,攻击者必需发送含有服务器设定的序列号的ACK消息,但是,由于这些序列号是服务器通过一个秘密函数(比如带有秘密参数的函数如消息摘要函数)产生的,是随时间变化的(如果不随时间变化,攻击者可以通过没有伪造IP地址的SYN包测得序列号),因此,攻击者只能靠猜测,而猜中的可能性又是非常小的,这样,攻击者就难以攻击成功。
3)充分利用网络设备保护网络资源
所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。当网络时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很被攻击快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。特别是一个公司使用了负载均衡设备,这样当一台路由器被攻击死机时,另一台将马上工作。从而最大程度的削减了DdoS的攻击。
26
成都理工大学毕业设计(论文)
4)经常进行端口扫描
经常定期或不定期地对自己的系统进行端口扫描。检查你的计算机(网络)上打开的服务是否是你自己要打开的必须的服务。不要仅仅按照手册或一些配置文件检查,要通过工具进行扫描。这种方法还可以用于检查有否被攻击者植入木马。需要指出的是,进行端口扫描需要与其他的安全工具相配合,如要对防火墙、入侵检测等进行适当的配置,否则防火墙可能会阻隔你的扫描,入侵检测可能会对你的扫描产生报警。
5)冗余、备份
对于一些服务如网络带宽等,要提供冗余,使得系统运行需求远低于可用的极限。如果系统在接近极限状态下运行,则很小的拒绝服务攻击就可能耗尽剩余资源,使得系统不能提供足够的服务。
对于一些关键的服务,也要有冗余备份,比如采用多个ISP,这样,即使某个ISP受攻击不可用或者攻击来自于某ISP的方向,我们可以从另外的ISP获得服务。另外,对于关键的防火墙、服务器等,也要有热备份,使得在一个不能提供服务或不能提供足够的服务时,另一个可以切换或加入提供服务。
4.2.2 过滤
1)入口过滤
DDoS 攻击通常都牵涉到地址伪造。因此,如果我们能降低攻击者伪造地址的能力,DDoS的发生就会大为减少。一种称为入口过滤[3](Ingress filtering)的方法就是解决地址伪造的一个途径。在入口过滤中,路由器被配置成能够阻塞(过滤)那些源IP地址明显是非法(指不属于该网段)的数据包,以免其进入外网如Internet,这里的“入口”指的是路由器接收数据包的端口,是从路由器的角度而言的。例如,如果一个边界路由器从其连接内网的网卡上收到一个数据包,而该数据包中的源IP地址却不属于该段网络,则这个数据包就应该阻塞掉。如果拿邮政系统作比方,这类似于本地邮局只接收回信地址为本辖区地址(如以本地邮政编码来判断)的投递信件,对于那些在本地投递而回信地址不属于本辖区的信件则不予转发。
2)基于路由的过滤
基于路由的分布式包过滤(DPF)是指路由器(如自治网络的边界路由器)在 27
成都理工大学毕业设计(论文)
已知网络的连接特征和网络拓扑结构的条件下,利用路由信息,根据接收到的数据包中的源IP地址和目的IP地址判断其是否合法(即数据包的源IP地址是否是伪造的),如果判断为不合法,则过滤掉该包。一个自治网段只能判别和丢弃一小部分伪造的数据包,如果所有的自治网段和其路由器都实行了基于路由的包过滤,则不会有伪造IP的数据包会进入网络(除非攻击者将源IP地址伪造为属于他所在自治网段的IP地址),此法的效果不超过全部实行入口过滤所得到的效果。这个方法的最大的优点在于部分覆盖或实施—只需占大约18%的AS拓扑结构—就可以防止伪造IP地址的数据包到达其他的自治网段。
3)在骨干节点配置防火墙
防火墙本身能抵御DdoS攻击和其他一些攻击。在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范攻击优秀的系统。合理编写、排列防火墙的规则和路由器的访问控制列表,合理过滤数据流。例如,假设第一条规则允许查询公共的DNS服务器,并允许DNS服务器使用UDP端口53回答查询,而第二条规则禁止使用UDP端口7的回声(echo)请求。则狡猾的攻击者就可以通过伪造源端口为53,目的端口为7的UDP包,从而将DNS服务器作为反射器。这是因为规则是逐条检查的,所以,这样的数据包会因为符合第一条规则而得以通过
4)过滤不必要的服务和端口
可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以针对封包Source IP和Routing Table做比较,并加以过滤。只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
5)过滤所有RFC1918 IP地址
RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。此方法并不是过滤内部员工的访问,而是将攻击时伪造的大量虚假内部IP过滤,这样也可以减轻DdoS的攻击。
28
成都理工大学毕业设计(论文)
6)限制SYN/ICMP流量
用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有黑客入侵。早期通过限制SYN/ICMP流量是最好的防范DOS的方法,虽然目前该方法对于DdoS效果不太明显了,不过仍然能够起到一定的作用
4.3 本章小结
本章主要阐述了防范拒绝服务攻击的一般方法,通过这些手段,我们可以最大限度地降低受到拒绝服务攻击的概率,同时也尽可能地减少因此而受到的损失。
29
成都理工大学毕业设计(论文)
第5章 对拒绝服务的简易跟踪
很多入侵者常常会因为责任追究的危险而受到威慑,他们非常害怕失去匿名性。如果我们能追踪到攻击者,则攻击事件的发生会减少很多。追踪的理想目标是找到真正的攻击者,以便追究其责任,这同时也达到了威慑的效果。然而,就目前而言,由于攻击者通常都是利用傀儡机发起攻击的,要找到真正的攻击者并不是总能做到的。因此,在拒绝服务攻击的追踪方面,我们主要关心的是追踪到攻击的发出点,即攻击性数据包的源头。但是如今黑客技术日新月异,由于我在这方面还没有更深入的研究,所以在此我仅简略谈谈。
通常用于追踪的方法有:
5.1 包标记
5.2 日志记录
日志记录(Logging)的基本思想是在数据包的传输路途中,路由器将数据包的信息记录下来。这种方法最大的问题是要求很大的存储空间。
5.3 连接测试
连接测试是从离受害者最近的路由器开始,依次检查该路由器的所有直接上游路由器,看看攻击数据流是由哪个路由器转发过来的,然后以新的路由器为基础继续检查,直到不能继续下去(如找到了攻击数据流的源或者到了一个管理域的边界)为止。
30
成都理工大学毕业设计(论文)
结 论
本文比较系统地研究和探讨了现如今的网络安全状况和拒绝服务攻击给网络带来巨大不安全因素,同时,重点研究了拒绝服务攻击的网络特点,攻击原理和机制,所谓“知己知彼”,在了解拒绝服务攻击的基本原理之后,我们才能对其进行防范,本文中,对拒绝服务攻击的防范也做了较为具体的研究,以便我们把带来的危害降到最低。
致 谢
论文完成的前提是老师给我提供了舒适的工作、学习环境,并给予我悉心的关怀与指导。在些表示衷心地感谢。老师认真负责的工作态度、严谨的治学风格,使我深受启发;开发的同时,和同学们之间的相互探讨也使我获益匪浅。所以我再次感谢老师和我的同学们!!
31
成都理工大学毕业设计(论文)
参考文献
[1]李德全 编著.拒绝服务攻击[M].北京:电子工业出版社.2007.
[2]曹元大 主编.入侵检测[M].北京:人民邮电出版社.2007.
[3]王文寿,王珂 编著.网管必备宝典-网络安全[M].北京:人民邮电出版社.2007.
[4]李匀 编著.网络渗透[M].北京:电子工业出版社.2007.
[5]麦克卢尔等著,王吉军译.黑客大曝光-网络安全机密与解决方案[M].北京:清华大学出版社.2006.
[6]斯托林斯(Stallings,W.)著,白国强等译.网络安全基础应用与标准[M].北京:清华大学出版社.2007.
[7]李向丽 等编著.黑客实战从入门到实践[M].北京:机械工业出版社.2006.
[8]韩最蛟,主编.网络安全与维护[M].北京:北京大学出版社.2008.
[9]周亚建等编著.网络安全加固技术[M].北京:电子工业出版社.2007.
[10]姚奇富著.网络安全技术[M].浙江:浙江大学出版社.2006.
[11]张基温 编著?信息安全实验与实践[M]?北京:清华大学出版社,2005.
[12]Anonymous等著 汪辉等译.Linux安全最大化[M].北京:电子工业出版社.2002.
32