当前位置:文档之家› DDoS漏洞攻击测试系统的设计与实现毕业设计论文

DDoS漏洞攻击测试系统的设计与实现毕业设计论文

大连理工大学城市学院本科生毕业设计(论文)DDoS漏洞攻击测试系统的设计与实现

总计毕业设计(论文)50页

表格0个

插图27幅

摘要

拒绝服务攻击(Denial of Service,DoS)由于其易于实施,危害严重,且难以预防的特性,已经成为目前网络安全面临的最为严峻的威胁之一。随着网络技术的飞速发展,其分布形式的分布式拒绝服务攻击(Distributed Denial of Service,DDoS)所带来的危害更大,因此成为网络安全领域亟待解决的重点问题之一。

在对国内外当前的DDoS攻击的分类和DDoS攻击技术研究现状综述的基础上,本文提出了利用模拟恶意网络流量和修改包模板的方式,进行DDoS攻击测试的系列方法。本文主要针对DDoS洪泛攻击,并将其分为基于session攻击(Session-based DDoS Attack)和不基于session攻击(Sessionless DDoS Attack)。针对不基于session的攻击存在无需交互的特点,本文提出了以十六进制字符串作为包模板以对应实际发送到网络中的二进制比特流的方法,由于协议包的封装格式是固定的,因此通过设定位置和长度以及修改数据方式的参数,可以对从攻击主机发送至目标主机的数据包进行任意字段的修改或添加;由于基于session的攻击将应用层协议作为主要攻击载体的特点,因此本文提出了利用模拟网络中大量应用层协议流量的方式,以达到攻击的目的。

最后基于以上技术,搭建了进行DDoS攻击的测试系统。系统内各个模块能有效地交互以进行攻击,并且实时统计网络流量,带宽和攻击的成功率,实验证明其具有比当前最新系统更好的灵活性和攻击效果,并且能添加实现最新的漏洞攻击。

关键词:分布式拒绝服务攻击;测试床;洪泛攻击;SessionLess DDoS攻击;攻击模拟

Abstract

Denial of Service attack (DoS) has become one of the most dangerous and serious problems in the area of network security because of its easiness to implement, hardness to prevent and the destructive power. With the development of network technology, its distributive form attack, Distributed Denial of Service, is much more destructive. As a result, it is important that this be solved promptly.

Based on the present categories of attack and the researches on attack technology in China and abroad, we intend to implement the attack test by simulating the vicious network flow and modifying package templates. We mainly target at the Flood attack and we also classify the attacks into two categories: Session-Based attack and SessionLess attack. Because in the SessionLess attack, sessions and interactive are both unnecessary, we brought up with a solution that to use a string of hexadecimal characters to present the real 0/1 bit flow in the real network situation. This can work out because the format of a packet in the network is relatively settled. Thus we can modify any field in the packet by providing the offset and length easily; And the session-based attack use the application layer protocols as bases, so we could compromise the target by simulating plenty of network application layer flow.

Finally, based-on the technologies mentioned above, we build a test system of attack. The modules within the system could cooperate with each other effective when conducting an attack. At the same time, the system will also record the statistics of the network flow, the bandwidth and the success rate of the attacks. According to the experiments, the system has a much better performance than the latest network test systems because of its flexibility and expandability. Furthermore, new attacks can also be add into the system by writing attack scripts.

Keywords: Distributed Denial of Service;Test-Bed;Flood attack;SessionLess DDoS attack;attack simulation

目录

摘要.............................................. I ABSTRACT ........................................... I I 第1章绪论 . (1)

1.1研究背景 (1)

1.1.1 DDoS概述 (1)

1.1.2 DDoS国内外研究现状 (2)

1.2课题研究的意义及目的 (7)

1.3 课题研究的主要内容 (7)

1.3.1课题研究内容 (8)

1.3.2论文结构与内容安排 (8)

第2章DDOS攻击的研究 (9)

2.1 概述 (9)

2.2不基于SESSION的DD O S攻击原理 (10)

2.2.1 TCP SYN洪泛攻击 (12)

2.2.2 TCP ACK洪泛攻击 (13)

2.2.3 UDP洪泛攻击 (14)

2.2.4 UDP-DNS查询洪泛攻击 (15)

2.2.5 Smurf:ICMP洪泛攻击 (16)

2.2.6 ARP Request洪泛攻击 (17)

2.2.7 IGMP洪泛攻击 (18)

2.3 基于session的DDoS攻击原理 (18)

2.3.1 HTTP洪泛攻击 (21)

2.3.2 SIP洪泛攻击 (22)

第3章网络测试系统概述 (25)

3.1 概述 (25)

3.2 网络性能基准测试 (26)

3.3 网络安全性能测试 (28)

3.4 测试系统总体架构 (29)

3.4.1 Test Manager模块 (31)

3.4.2 Session Generator模块 (33)

第4章DDOS攻击测试模块的设计与实现 (36)

4.1 DDoS攻击测试模块的相关内容 (36)

4.2 安全测试的基本架构 (37)

4.3 安全测试的分类 (38)

4.4 DDoS攻击测试模块的设计与实现 (40)

4.4.1 数据包模板概述 (40)

4.4.2 数据包数据部分 (42)

4.4.3 数据包模板的Modifier部分 (45)

4.4.4 Modifier在具体实例中的应用 (50)

结论 (56)

致谢 (57)

参考文献 (58)

第1章绪论

1.1 研究背景

1.1.1DDoS概述

拒绝服务攻击(Denial of Service, DoS)是这样一种攻击,它试图通过某些手段使得目标主机或网络不能向合法的用户提供正常可用的服务,或明显降低系统性能;或者利用攻击目标主机系统存在的软件漏洞发送恶意的数据包,使目标主机瘫痪崩溃。为了产生大量的攻击数据包,攻击主机必须具有相当处理能力的处理器以及大量可用网络带宽,而一台主机所具备的资源和计算能力是有限的,因此衍生出另外一种形式的攻击:分布式拒绝服务攻击(Distributed Denial of Service)。

分布式拒绝服务攻击(Distributed Denial of Service)是将DoS和僵尸网络技术结合之后发展起来的一种更强的攻击形式。攻击借助于客户/服务器技术,将大量计算机联合起来作为攻击平台,对一个或者多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力,在目标端形成非常高吞吐量的网络流量。因此也加大了防御分布式拒绝服务攻击的难度。

在互联网发展前期,由于网络规模有限,并没有引起广泛的关注。随着近年来互联网的飞速发展,为的发展提供了平台,使得攻击的影响逐渐扩大,成为网络安全的热点问题之一。很多大型网站或者公司都遭受过此类攻击,例如2009年9月,Cisco IOS软件出现隧道报文传输、NTPv4回复报文、IKE报文、SIP消息、特制加密报文、基于区策略防火墙SIP检查、H.323报文等一系列拒绝服务漏洞;2000年2月,Yahoo、eBay、https://www.doczj.com/doc/b218264046.html,等网站,遭受攻击,持续了近两天,使这些公司遭受了很大的损失;2009年8月,Twitter网站遭受攻击。各界学者逐渐意识到攻击的严重性,纷纷展开对DDoS各种攻击的研究。

1.1.2 DDoS 国内外研究现状

针对已有的攻击,国内外同行提出了很多不同的解决思路,从很多不同的角度思考攻击问题,同时也有学者提出新的攻击和防御措施,推动了我们对网络安全的认知。目前攻击和防御方面涌现了很多成果,已经有研究者对其做了统计和归纳[1]。下面我们尝试着对已有的攻击手段做出简要的归纳和总结,如图1-1所示。

DDoS 攻击机制

手动(DA-1)

自动(DA-3)

按自动化程度分类(DA)

半自动(DA-2)

间接(CM-2) 直接(CM-1) 按通信机制分类(CM)

随机(HSS-1)

攻击列表(HSS-2)

标记(HSS-3)

置换(HSS-4)

本地子网(HSS-5)

按主机扫描机制分类

(HSS)水平的(VSS-1) 垂直的(VSS-2) 基于坐标的(VSS-3) 秘密的(VSS-4) 集中式(PM-1)

按漏洞扫描机制分类

(VSS)后链式(PM-2)

自治式(PM-3)

按木马繁殖机制分类

(PM)语义分析(EW-1) 暴力破解(EW-2) 伪造的(SAV-1) 按可利用漏洞分类(EW)

有效的(SAV-2) 可路由的(AR-1) 不可路由的(AR-2) 按源地址有效性分类(SAV)按地址可路由性分类(AR)

随机(ST-1) 子网(ST-2) 途经(ST-3) 固定(ST-4) 按地址伪造技术分类(ST)固定速率(ARD-1) 可变速率(ARD-2) 按攻击速率动态性分类(ARD)逐渐增加(RCM-1) 波动式变化(RCM-2) 按速率变化机制分类(RCM)具有特性的(PC-1) 不具有特性的(PC-2) 按是否具有特性分类(PC)可过滤的(RAVS-1) 不可过滤的(RAVS-2) 按攻击与被攻击服务之间的关系分类(RAVS)

固定集合(PAS-1) 可变集合(PAS-2) 按代理集合持续性分类(PAS)按受害者类型分类(VT)应用(VT-1) 主机(VT-2) 资源(VT-3) 网络(VT-4) 基础设施(VT-5) 按攻击对被攻击者造成的损失分类(IV)彻底崩溃(IV-1) 服务质量下降(IV-2)

自恢复的(PDR-1) 人工恢复的(PDR-2) 不可恢复的(PDR-3) 按动态恢复的特性分类(PDR)图1-1 DDoS 攻击分类图

从1999年8月的第一次攻击发生以来,对攻击及其防御措施的研究就开始深入展开。随着研究的深入,目前可以将防御技术按照响应攻击的行为进行分类,可以分为预防、检测、响应和追踪四类[2]。早在1999年11月份,CERT/CC 就问题发表了一份报告[3],对其做了全面的阐述,

详细地说明了分布式系统的攻击原理,并分别针对系统管理员、ISP、以及事件响应小组,从预防、检测、响应三方面给出了及时、短期以及长期的解决方案。典型的DDoS攻击主要有两种形式:带宽型攻击和应用型攻击[4]。带宽型攻击通过对目标设备发送大量数据包,造成设备负载过大,远远超过网络设备吞吐量,最终导致设备的资源被耗尽。通常,被攻击的路由器、服务器以及防火墙等网络设备的处理能力都是有限的,当负载过大时,它们就无法为合法用户提供服务,从而导致正常的服务请求被拒绝。带宽型攻击最通常的形式是洪泛(flooding)方式,这种攻击通常只需要向目标主机发送大量的数据包即可,如TCP、UDP、ICMP 等,以达到攻击的目的。这类攻击主要包括TCP SYN Flood, TCP ACK Flood, UDP Flood, ICMP Echo Flood等攻击。应用型攻击并不需要对目的网络或者主机产生大量的数据包,而是利用了诸如TCP或是HTTP协议的漏洞,通过持续占用有限的资源,直到系统资源被耗尽而崩溃,从而达到攻击的目的。这类攻击主要包括HTTP URL Flood, CC Attack Flood,HTTP GET Flood等攻击。

相应地,对于的防御技术也已经有了很多相关的研究,防御技术的目标主要有以下几个方面:有效性,即防御措施应该为目标主机提供有效的保护;完整性,即防御措施理论上应该可以处理所有的攻击;为合法用户提供正常的服务,这也是防御措施的核心目标;有较低的误报率,一个好的防御措施应该可以较为准确地判断攻击发生与否,以免给网络正常流量带来干扰;拥有较低的部署和操作成本,尽管会给目标主机或者其运营商带来巨大的损失,但是攻击发生的概率还是很低的,因此部署防御系统所需的成本应该低于它带来的收益。通常按照攻击的过程,我们可以将网络分为源端,中间网络和目标主机端。因此防御方案主要的部署位置也相应地分为部署于源端,部署于中间网络以及部署于目标网络三大类。就目前来说,部署于目标网络的防御方法是被研究最多的一类,同时也是发展得最成熟,使用最为广泛的一类,因为其部署和控制相对简易,成本也相对较低。

当前,网络研究的方法主要有六种[5][6]:数学模型分析、网络测量、

网络模拟、网络仿真、原型实验平台、实际网络测试与实验。数学模型是针对所要研究的问题建立数学分析模型,并利用数学分析的方法得出研究结果,这种方法较为灵活且成本很低,但可能会由于模型过于理想化而得到不准确的分析结果;网络测量是一种技术,通过收集数据或分组的踪迹来显示和分析在不同网络应用下网络中分组的活动情况,可以较为准确地获取网络行为的指标和参数,但是由于实际网络的复杂性,因此实施网络测量较为复杂;网络模拟通过建立简易的协议模型、流量模型和拓扑模型并在计算机系统上进行模拟,得到网络参数,网络模拟在互联网的发展中对新协议的设计起到了至关重要的作用,其优点是可以帮助研究人员更加深入了解复杂网络的操作机制,不仅具有较高的模拟规模而且可以提供更多被数学模型所忽略的细节;网络仿真是引用网络仿真软件建立所研究的网络系统的模拟模型,在计算机上运行这个模型,并分析运行输出的结果,典型的仿真工具有NS2,ModelNet和Matlab 等,其仿真模型规模有限,且速度很难达到真实网络的要求,因此仿真得到的结果准确性较低,这种方法仅适用于科学研究,却很难满足现实网络中的商业需求;原型实验平台就是设计出研究所需要的合理硬件和软件配置环境,建立测试床和实验室,在现实的网络上实现对网络行为和网络性能的研究,比较典型的是DETER/EMIST研究计划[7]与PlanetLab工程[8],这种方法成本高,不适合大规模的网络模拟;实际网络测试是在真实的Internet网络上进行实验,具有很高的真实度,但是当研究的是这种具有很大破坏新的攻击时,成本极高,显然在这种情况下这种方法就不适用了。

目前,网络模拟是研究攻击和防御的主要方式。对于众多的防御方案和系统,并没有很好的方法来评测它们的防御效果,因此建立一个攻击和防御的测试平台,对已知的各种攻击防御方案进行测试与评价是很有必要的。在此基础上,国内外有许多厂商都开始生产研制攻击测试设备,典型的有Sprient生产的Avalanche 3100B、BreakingPoint生产的BreakingPoint FireStorm和BreakingPoint Storm、Ixia厂商生产的IxChariot,也是目前唯一成为工业标准的IP网络与网络设备应用测试系

统、SmartBits 2000、HP Internet Advisor、NetTest IP interEMULATOR、NetTest interWATCH和WG Internetwork Domino等,国内相关的网络测试系统发展较为落后,目前还没有出现可以大批量生产的产品出现。这些产品的意义在于测试和评价现有的安全防御系统,如IPS、IDS、UTM 以及防火墙等。网络用户在选择这些防护系统时并不知道这些系统的性能究竟如何,也不知道应该选择哪一种系统可以真正满足自己的需求。因此只有通过合理的方法对其进行测试,把得到的结果作为选择依据,用户才能选择真正好的产品。同时,对于这些系统的开发者和研究者来说,测试也有助于及时了解技术发展现状和存在的不足,从而更好地去研究那些关键的技术难题。

国外学者对这些网络设备的测试已经做了一些相关的研究[10]。以下就是对国际上几个著名研究机构的测试框架理论的研究分析。这几个测试框架理论上基本都是由业界著名的测试机构和生产厂商研究和提出的,国内外现有的测试框架都是依据这些理论,并结合自己的实际需求发展得来的。

1.加州大学戴维斯分校

1994年美国加州大学戴维斯分校的Puketza等人开发了第一个网络测试平台。该测试软件平台使用脚本自动产生正常网络行为(例如Telnet,FTP等)和一些简单的攻击(如密码猜测和非法获取超级用户权限等),测试NIDSNSM(Network Security Monitor)识别攻击的能力[10]。模拟通过编写Expect脚本实现交互式命令执行方式。在用户行为模型层次,研究者重点关注两类攻击行为:一类是顺序攻击,另一类是并发攻击。

2.IBM Zurich

1998年IBM公司苏黎世研究实验室的Debar等人也开发了一个与UCD类似的测试系统[11]。该测试系统平台自动产生攻击流量和背景流量,其中背景流量只包含FTP服务的网络流量。主要用于测试网络防护设备对于针对FTP服务器的攻击的防御能力。

3.美国麻省理工学院林肯实验室

1998和1999年美国麻省理工学院林肯实验室(MIT Lincoln

Laboratory,MIT/LL)的Lippmann等人提出了一个目前应用最为广泛的定量化测试方法和测试平台,并且测试了范围广泛的研究性网络防御系统[12]。根据美国空军基地(Air Force Base)的实际网络流量统计模型,1999年MIT/LL提出了一个测试平台,该平台模拟出成千上百台主机上几百个用户的行为和针对不同平台的几十种攻击类型以及上百个攻击实例。

4.空军研究实验室

空军研究实验室(Air Force Research Laboratory,ARFL)也在DARPA 的资助下参与了MIT/LL1998和1999年对研究型网络防御系统的测试[13]。他们的系统和MIT/LL相似,使用MIT/LL的部分流量和攻击产生软件,但是集中在一个更加复杂的网络环境中进行测试。

5.MITRE

MITRE公司主办了入侵检测Fly-Off,是最早的商业和政府开发的测试系统之一[14]。该系统主要研究基于网络的防御系统的性能,使用两阶段方法进行测试。在第一个阶段中有一些相对简单的攻击,使用SATAN 等工具。第二个阶段设计模拟确定的攻击,包含更加复杂的、逃避的攻击。根据以下的类别:实时报警能力,报告能力,离线分析能力,响应能力以及远程管理系统产生定性的结果。

6.Neohapsis/Network-Computing

Neohapsis是一个提供网络安全咨询服务的公司。开放安全测评标准(Open Security Evaluation Criteria,OSEC)即是它发起的以建立安全系统测评标准为目标的项目。从1999年起,Network Computing杂志发起了由Neohasis实验室进行的入侵检测系统shiTREgongearch Laboratory,AFRL的测试。

7.NSS

NSS工作组(NSS Group)是全球最知名的独立安全研究和评测机构。NSS为全球的企业和最终用户提供网络及安全有关的服务,并帮助用户选择更适合自己的安全产品。1999年,NSS Labs公开发布全球首创的入侵/防护系统评测标准,随着互联网威胁的不断变化经历多次更新,该标准已经成为业界公认的IPS“试金石”,其real-world测试方案,提供了

业界唯一能够真正评估IPS抵御“真实世界”安全威胁能力的方法。

从以每一种测试架构都具有不同的侧重点,目前缺乏的是一种将所有这些特点结合起来进行灵活测试的系统架构。本文在测试框架的设计中力求加强系统的可用性和可扩展性。

1.2课题研究的意义及目的

DDoS攻击在互联网上的出现和泛滥,极大地影响了网络的正常秩序,给很多网站和企业造成了严重的经济损失。DDoS攻击的类型多样,攻击目标也很广泛。目前,网络模拟是研究DDoS攻击和防御的主要方式。对于众多的DDoS防御方案和系统,并没有很好的方法来评测它们的防御效果,因此建立一个DDoS攻击和防御的测试平台,对已知的各种DDoS攻击防御方案进行测试与评价是很有必要的。

在对国内外当前的DDoS攻击的分类和DDoS攻击技术研究现状综述的基础上,提出了利用模拟恶意网络流量和修改包模板的方式,进行DDoS攻击测试的系列方法。主要针对DDoS洪泛攻击,并将其分为基于session攻击(Session-based DDoS Attack)和不基于session攻击(Sessionless DDoS Attack)。针对不基于session的攻击存在无需交互的特点,以十六进制字符串作为包模板以对应实际发送到网络中的二进制比特流的方法,由于协议包的封装格式是固定的,因此通过设定位置和长度以及修改数据方式的参数,可以对从攻击主机发送至目标主机的数据包进行任意字段的修改或添加;由于基于session的攻击将应用层协议作为主要攻击载体的特点,因此可以利用模拟网络中大量应用层协议流量的方式,从而达到攻击的目的,最后基于以上技术,搭建了进行DDoS 攻击的测试系统。

1.3课题研究的主要内容

1.3.1课题研究内容

为了构建一个功能强大,使用灵活的可编程漏洞攻击测试系统,本文研究了攻击测试实验平台的设计,并在此基础上实现了一个功能比较完善的测试床。测试床的系统架构主要分为三个部分:GUI,TestManager 以及Session Generator, GUI是为了方便用户配置测试所需的参数信息;TestManager用于处理用户配置请求,产生测试字节码;Session Generator 用于执行字节码,产生高速测试数据流并将测试数据流发送给被测设备。

本课题中,GUI和Session Generator部分是在师兄的帮助下完成的,而有关测试模块部分的实现,均由本文作者独立完成。

1.3.2论文结构与内容安排

本文的主要内容包括以下五章,各章节的内容安排如下:

第一章:引言部分。介绍了课题背景和课题的主要内容,提出了建立测试床的必要性。

第二章:攻击的研究。本章对基于网络层、传输层和应用层的攻击原理和检测方法进行了分析。

第三章:本文系统的设计部分。借鉴国内外相关研究结论,对网络安全防御设备关键项目的功能/性能测试原理和前提条件进行研究和分析,并在此基础上进行系统设计。

第四章:攻击测试模块的设计与实现部分。主要在第三章设计的基础上,详细地对攻击测试模块的原理和设计与实现进行进一步地阐述。

结论:对本文的研究工作进行总结,并对工作中未能解决的问题和进一步的工作提出设想和展望。

第2章DDoS攻击的研究

2.1概述

本章主要针对传输层、网络层以及应用层的一些典型的攻击进行了简要的原理分析,本课题主要使用其中的Sessionless Attack,即不基于Session的攻击进行研究。

根据攻击方式的不同将攻击分为两类:一种是不基于session的攻击,即Sessionless Attack;另外一种是基于Session的攻击,即Session-based Attack。不基于sesssion的攻击由于不需要与目标主机的交互,目标主机也不需要保留session信息,因此大多数这类攻击都是基于网络层或者传输层的。主要利用底层网络协议的漏洞,例如通过向目标主机发送大量的分组或建立半开放的TCP连接,来消耗目标网络服务器的网络带宽或CPU、内存等资源的目的,从而达到使目标服务器无法响应正常用户的服务请求的目的[15]。而基于Session的攻击需要与被攻击的主机进行交互,目标主机需要保留session信息,因此大多数这类的攻击都是基于应用层的。往往攻击说设计的协议层次越高,则目标主机对攻击包进行分析所需消耗的计算资源就越大。

首先,攻击的网络结构分为三个部分:攻击者,主控端和代理端。其具体位置如图2-1所示。

攻击者主控端

主控端

主控端

代理端

代理端

代理端

代理端

代理端

代理端

目标主机

图2-1 DDoS攻击的网络结构图

攻击者:攻击者所使用的计算机,可以是网络上的任意一台计算机,甚至是一个活动的便携机。攻击者控制整个攻击过程,它向主控端发送攻击命令。

主控端:它们是攻击者非法入侵并且安装特定程序的一些主机。它们接受攻击者发来的各种命令,同时它们也控制了大量的攻击傀儡机,即代理端,并向它们转发攻击者的指令。

代理端:又被称为攻击傀儡机,它们也是攻击者非法入侵并安装特定程序的一些主机。它们上面运行的程序是攻击程序,用于对目标主机发起攻击。它们受控于主控端,从主控端接受命令,是攻击的执行者。

攻击过程大致如下:

1.搜集信息。搜集相关信息以了解目标主机的情况,如目标主机的数目、地址、配置和性能等参数。

2.入侵。攻击者侵入有安全漏洞并且链路状态和性能好的主机,并在其上安装攻击程序,以便以后进一步的控制。

3.通信。代理端会通过主控端告知攻击者它们已经准备就绪,随时等待攻击命令。

4.攻击。攻击者发送攻击命令,开始对目标主机进行攻击。

2.2 不基于session的DDoS攻击原理

不基于session的攻击通常是基于网络层和传输层的攻击,它们通过向目标主机发送大量数据包以阻塞网络,从而合法的用户由于没有足够的带宽而无法得到服务请求,这些大量的数据包是经过精心伪造足以达到以假乱真的效果,因此在目标主机端很难将其与网络中的正常流量区分开,所以这种攻击虽然简单,但是仍然会造成很大的损害。

总的来说,在这类攻击中又可以分为两类攻击:直接攻击和反射攻击,如图2-2所示。在直接攻击中,攻击者直接向目标主机发送大量数据包,攻击包的类型可以为TCP,UDP,ICMP或者是它们的混合包。

在反射攻击中,网络的中间结点(路由器和各种服务器)会无辜地被攻击者所利用作为攻击的发起者。在反射攻击中,攻击者将需要相应的请求数据包发送给大量的中间结点,其中这些数据包的源地址被设置为目标主机的地址。由于中间结点无法判断数据包的源地址是否是真实的,因此中间结点就会根据数据包中的源地址向目标主机发送大量的响应数据包。结果就如图2-2(b)所示,攻击用到的数据包实际是中间结点生成的有效的请求响应包,如果数据包的数量足够多,就可以淹没目标主机的网络带宽。 A R V TCP SYN-ACK

TCP RST,ICMP,

UDP,...TCP SYN,ICMP,UDP,…(以R 的地址作为源IP 地

址)

(a)A

R V

TCP SYN-ACK

TCP RST,ICMP,

UDP,...

TCP SYN,ICMP,UDP,…(以V 的地址作为源IP 地址)(b)

(a)为直接攻击 (b)为反射攻击

图2-2 两种不基于session 的DDoS 攻击

在直接攻击中通常选用的三种攻击机制为:TCP SYN 洪泛,ICMP echo 洪泛攻击以及UDP 数据洪泛攻击[16]。TCP SYN 洪泛机制不同于其他两种机制。它可以通过发送大量TCP SYN 数据包的方式使得所有受TCP 连接控制的资源全部不可用。如果没有新的控制资源,目标主机就无法接受任何一个合法用户的连接请求。在ICMP echo 洪泛攻击中,但目标主机收到大量的ICMP_ECHO_REPL Y 数据包时,其所有可用的带宽就会被耗尽。UDP 数据洪泛攻击通过向目标主机的任意端口或者特定端口发送大量UDP 数据包可以达到与ICMP echo 洪泛攻击同样的效果。

反射攻击中通常依赖于目标主机中的网络协议的特征。任何一种会发送响应数据包的协议都可以被利用来进行反射攻击。为了使反射攻击

的威力更大,攻击者可以利用数据包放大技术。数据包放大器被放置在攻击代理和真正的反射器主机之间,它向IP 地址在其广播域范围内的反射器主机发送从代理端收到的请求数据包。由于在当前的网络中,大多数路由器都支持IP 广播的特性,因此,网络中存在着大量的潜在的数据包放大器。这样,攻击者只要更小的代价来寻找数据包放大器就可以增加DDoS 攻击的流量。

2.2.1 TCP SYN 洪泛攻击

在建立一次正常的TCP 连接中,客户端要完成与服务器端的一系列协商过程。首先,客户端向服务器发送一个SYN 位置位的TCP 数据包来请求建立连接,其中包含客户端的相关信息;接着,服务器端为该连接分配一部分内存并且响应一个SYN 位和ACK 位都置位的TCP 数据包,其中包含着一个序号以及其他与服务器相关的信息;最后客户端对从服务器端收到的数据包进行确认,它向服务器端发送一个ACK 位置位的TCP 数据包,这个机制被称作三次握手机制,如图2-3所示。连接建立完成之后,真正的TCP 数据传输就可以开始进行了。

客户端服务器

S Y N =1,s e q =x

S Y N =1,A C K =1,s e q =y ,a c

k =x +1A C K =1,s e q =x +1,a c k =y +1

图2-3 建立TCP 连接三次握手过程

在三次握手过程中,一个很重要的特点就是服务器端收到的TCP SYN数据包的数量决定了在服务器端分配多大的内存用于TCP连接控制。因此,如果服务器在短时间内收到了大量的TCP SYN数据包,很可能造成内存被迅速耗尽。最终,这种情况就会导致服务器无法再为其他客户端提供服务。这就是TCP SYN洪泛攻击的基本原理。在一次真实的TCP SYN 洪泛攻击中,攻击者通常会利用IP地址伪造技术。这样,目标主机就会收到大量源IP地址并不存在的TCP SYN数据包,因此目标主机就不可能从这些不存在的主机得到TCP ACK确认包。这样,攻击就会造成在服务器的内存中出现大量半开的TCP连接。服务器会由于内存不足而无法为新的连接请求提供服务,有时甚至会导致服务器崩溃。

TCP SYN洪泛攻击是最早出现也是最有效、最常见的攻击方式。TCP SYN洪泛攻击即使到今天仍然是DoS/DDoS攻击的主角,并且越来越多地与其他攻击方式混合在一起使用,使得抗拒绝服务攻击的任务更加复杂。

2.2.2 TCP ACK洪泛攻击

在TCP连接建立之后,所有的数据传输TCP报文都是带有ACK标志位的。系统通过一个四元组来唯一标志一条TCP连接,这个四元组的结构是{本地IP地址,本地端口号,远程IP地址,远程端口号}。主机在收到一个带有ACK标志位的数据包的时候,需要检查该数据包所表示的连接四元组是否存在,如果存在则检查该数据包所表示的状态是否合法,然后再向应用层传递该数据包。如果在检查中发现该数据包不合法,例如该数据包所指向的目的端口在本机并未开放,则主机操作系统协议栈会回应RST包告诉对方此端口不存在。

但是对比系统在接收到TCP SYN报文和TCP ACK报文时所做操作的复杂度就可以知道显然ACK报文带来的负载要小得多。所以在实际环境中,只有当攻击程序每秒发送ACK报文的速率达到一定的程度,才能

使服务器的负载有大的变化。当发包速率很大的时候,服务器操作系统将耗费大量的精力接收报文、判断状态,同时要主动回应RST报文,正常的数据包就可能无法得到及时的处理。这时候客户端的丢包率就会比较高。如果是在千兆线路上攻击的流量可以达到几百兆bps,由于需要维护很大的连接状态表同时要检查数量巨大的ACK报文的状态,防火墙也会不堪重负而导致全网瘫痪。

目前TCP ACK洪泛攻击并没有成为攻击的主流,而通常是与其他攻击方式组合在一起使用。目前大多数实现中校验ACK报文的合法性都涉及到较为复杂的算法。当TCP SYN洪泛攻击和TCP ACK洪泛攻击一起发生的时候,主机和防火墙将耗费大量的精力来计算ACK报文时候合法以致不堪重负。

2.2.3 UDP洪泛攻击

在UDP洪泛攻击中,攻击者利用UDP这种无连接状态的协议对目标主机进行攻击。当目标主机遭受UDP洪泛攻击时,它会收到大量随机目的端口号的数据包。因此,目标主机将会试图去寻找监听该端口的应用程序。如果没有找到,那么目标主机应该回复一个ICMP目标端口不可达报文。通常在UDP洪泛攻击中,攻击者会用大量的数据包淹没目标主机的带宽,这样目标主机就无法再为合法的用户提供服务。

最基本的UDP洪泛攻击都是直接攻击。然而在一些情况下,它也可以是反射攻击,只要攻击者将UDP数据包的源地址设置为另外一个目标主机的IP地址即可,就如图2-2(b)所示,只不过图中的反射主机和目标主机都是UDP洪泛攻击的受害者。

与TCP协议不同的是,基于UDP协议的通信没有记录连接状态的机制。也没有任何流量控制机制来处理UDP包阻塞的情况。在建立TCP 连接的过程中,有三次握手的协商机制可以使目标主机在协商过程中检测到伪造的连接数据包,然而,由于UDP是无连接的协议,UDP不存在任何协商机制。因此,对于攻击者来说伪造UDP数据包是十分容易的。

相关主题
文本预览
相关文档 最新文档