测品娱乐
您的当前位置:首页DDOS拒绝服务攻击的原理

DDOS拒绝服务攻击的原理

来源:测品娱乐
本章将研究拒绝服务攻击的原理,这里的拒绝服务特指基于网络连接而进行的一种攻击方式。广义而言,一些其他类型的攻击如口令的破解、非法访问等,如果因为网络的安全性不够高,导致其原有用户不能或不敢继续使用相应的服务,也可以称其为拒绝服务攻击,但这不是本书探讨的内容。像通过本地物理地毁坏而使系统不能使用这种拒绝服务攻击,由于没有通过网络,也不是本书讨论的内容。此外,蠕虫也能实施拒绝服务攻击,鉴于蠕虫攻击的特殊性,我们将在第6章专门对其进行探讨,本章就不做详细的讨论。

3.1 什么是拒绝服务攻击

1.关于拒绝服务攻击的一些概念

这里,对本书涉及的一些概念予以简单地介绍。先从服务开始谈起。 (1)服务——是指系统提供的,用户在对其使用中会受益的功能。 (2)拒绝服务(DoS)——任何对服务的干涉如果使得其可用性降低或者失去可用性均称为拒绝服务。如果一个计算机系统崩溃或其带宽耗尽或其硬盘被填满,导致其不能提供正常的服务,就构成拒绝服务。

(3)拒绝服务(DoS)攻击——是指攻击者通过某种手段,有意地造成计算机或网络不能正常运转从而不能向合法用户提供所需要的服务或者使得服务质量降低。

传统的计算机安全包括三个属性:保密性、完整性和可用性。对于保密性和完整性的攻击可以通过攻击一个东西即密码而获得成功。而对可用性的攻击,则有很多种途径。例如,攻击者可以通过发送大量的数据到受害者,达到拒绝服务攻击的目的,这种攻击在2000年2月针对Yahoo、Amazon、eBay等以后受到广泛的关注。而如果攻击者可以介入到受害者及相应的服务之间,攻击者无须发送数据风暴即可实施DoS攻击。

(4)分布式拒绝服务(DDoS)攻击——如果处于不同位置的多个攻击者同时向一个或数个目标发起攻击,或者一个或多个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击,由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击。图3.1所示为典型的DDoS的示意图,其中的攻击者可以有多个。一般而言,除了规模以外,DDoS攻击与DoS攻击没有本质上的区别,严格而言,DDoS攻击也是DoS攻击,只是把多个攻击主机(一个或者数个攻击者控制下的分处于不同网络位置的多个攻击主机)发起的协同攻击特称为DDoS攻击。

(5)DDoS网络——指DDoS攻击中牵涉的各方,它由攻击者(Attacker、Client)、控制台(Master、Handler)、攻击主机(傀儡机、Bot、Zombie)和受害者组成,如图3.1所示。一个攻击者可以控制多个控制台,一个控制台一般控制多个攻击主机。

图3.1 典型的DDoS攻击示意图

为了攻击效果的缘故,受害者通常只有一个或是有紧密联系的多个(如同一个组织机构的数个网络或数台服务器)。比如,美国商务部拥有的全球根域名服

务器(Root Server)共有13个,从美国东部时间2002年10月21日下午5点左右起,攻击者就同时对这13个域名服务器进行了持续1小时的DDoS攻击,结果只有4到5个服务器经受住了攻击并能继续提供服务,其余的服务器都瘫痪了。在这次攻击中,普通的网络用户的服务却没有受到影响[McGuire02]。在此次事件中,攻击者很清楚,他们只有同时使得这13个服务器均不能使用,才能造成最严重的危害,单纯地瘫痪其中少数几个,意义不大,因为这些服务器相互间是冗余的。在此次攻击中,如果单独来看,每个根域名服务器都是一个受害者,从而就有13个受害者;如果因为这13个服务器提供的是同样的服务而把它们看做一个整体,则只有一个受害者。

2.DoS攻击与DDoS攻击的比较

广义而言,DDoS攻击属于DoS攻击,狭义而言,DoS指的是单一攻击者针对单一受害者的攻击,如图3.2所示,这是传统的拒绝服务攻击。而DDoS攻击则是多个攻击者向同一个受害者发起攻击,其具有攻击来源的分散性和攻击力度的汇聚性,而攻击力度比单一的DoS攻击大很多,这是相对较新型的拒绝服务攻击。DDoS攻击力度的汇聚性如图3.3所示。DDoS攻击一般都是用于一些需要靠规模才能奏效的攻击种类,如SYN风暴、UDP风暴等,对于只需少数几个数据包即可奏效的攻击(即后面将要讨论的剧毒包攻击),虽然也可以采用分布式,这时候的“分布式”却没有什么实质的意义,因为这是一个主机就可以轻松完成的工作,自然无须多个主机协同进行。

注:分布式攻击不一定是拒绝服务攻击,其他类型的分布式攻击也是存

在的。分布式攻击通常有两类,即资源消耗型和隐蔽型,当然,对于其他的非资源消耗型或者无意隐蔽攻击者的一些攻击,也可以以分布式的方式进行,不过,这时候是否采用分布式,没有多大的区别。资源消耗型分布式攻击会消耗攻击者大量的资源,这样分布式就有了充分的意义,当一个攻击点的力量不足时,由多个点同时发起攻击,分布式起到将多方资源集中利用的作用。有的分布式攻击还会消耗受害者资源,如DDoS攻击。隐蔽型分布式攻击中,分布式起到掩盖攻击行为和隐藏攻击来源的作用,如结合慢速扫描的分布式扫描攻击以及以分布式进行的对认证(口令)的攻击,这时候,分布式的目的有:逃避入侵检测,加快速度,隐藏攻击来源等。但是,使用分布式的方式对一个口令文件的破解则不完全是分布式攻击,严格地说,这是一种分布式计算,分布式攻击的一个重要特征是

协同,而在把口令文件分为几个的部分分别在几个平台上计算的过程中,各平台间没有充分体现协同的意义。

慢速扫描有时能够逃避入侵检测,但是单个的慢速扫描效率很低,结合分布式以后,既可逃避检测,又能达到需要的扫描速度。

在分布式的口令攻击中,由于口令认证系统通常会设置失败口令的输入次数,当从一个客户端的口令输入的出错次数在一定时间内达到预定阈值以后,认证系统会暂停该客户端的服务并报警①,这样,攻击者必须使得一定时间内从一个攻击点进行的口令猜测次数小于既定阈值,以分布式的方式,从多个攻击点协同地进行口令攻击可以达到攻击者需要的单位时间内口令猜测的次数。 2005年2月15日,在美国San Francisco举行的RSA2005会议上,美国在线(America on Line,AOL)公司的Daniel Russell以“Defend Your Applications Against Distributed Attacks: Success Stories from AOL”为题讲述了一个采用分布式方式攻击AOL的认证系统的例子。通常,为了抵抗口令猜测等攻击,认证服务器在收到来自于同一个主机(IP)的数次认证失败以后,会暂时停止对该主机(IP)的服务,这样通过一台主机对认证系统攻击的有效性是有限的。Russell的例子中,在认证系统的审计记录中发现短时间内出现了来自于数百个IP的登录失败记录,而对于每一个IP的登录失败次数又都很少。这显然是攻击者通过分布式的方式攻击认证系统,以期能够登录,获得应用系统提供的服务。这样,由于每个IP的登录失败次数较少,攻击者既绕过了失败次数的,提高了攻击的成功率,同时,其攻击行为也可能不会被一些监控系统如入侵检测系统所注意,因为这些系统通常是对同一个IP设置门限值作为判断标准的。

小结

本章从拒绝服务攻击的目的开始,介绍了拒绝服务攻击的一些基本知识,包括一些定义等,然后研究了拒绝服务攻击的运行机制以及拒绝服务攻击的分类,分布式拒绝服务攻击的典型过程等。

图3.2 一对一的DoS攻击

图3.3 DsDoS攻击力度的汇聚性

3.3 拒绝服务攻击的分类

近些年来,随着人们不断加强对DoS的防御,设计出应对DoS攻击的各种技术手段,同时,DoS攻击的手段也在不断地变化、增多,即使是同一种攻击方式,攻击者改变某些攻击特征,就可以躲过某些防御措施,从而衍生出了各种各样的DoS攻击模式。这些问题,一方面阻碍了研究者对攻击现象与特征的深入理解,另一方面,也对人们根据攻击特征的异同来实施不同的防御手段、并对防御措施的有效性进行评估带来了困难。

如果了解了攻击者可以采取的攻击类型,就可以有针对性地应对这些攻击。而对拒绝服务攻击的分类研究则是深入了解拒绝服务攻击的有效途径。因此,本节讨论对拒绝服务攻击的分类。

拒绝服务攻击的分类方法有很多种,从不同的角度可以进行不同的分类,而不同的应用场合需要采用不同的分类。

拒绝服务攻击可以是物理的(硬件的),也可以是逻辑的(Logic Attack),也称为软件的(Software Attack)。物理形式的攻击如偷窃、破坏物理设备,破坏电源等。物理攻击属于物理安全的范围,不在本书的讨论之列。本书中只讨论后一种形式的攻击。

按攻击的目标又可分为节点型和网络连接型,前者旨在消耗节点(主机Host)资源,后者旨在消耗网络连接和带宽。而节点型又可以进一步细分为主机型和应用型,主机型攻击的目标主要是主机中的公共资源如CPU、磁盘等,使得主机对所有的服务都不能响应;而应用型则是攻击特定的应用,如邮件服务、DNS服务、Web服务等。受攻击时,受害者上的其他服务可能不受影响或者受影响的程度较小(与受攻击的服务相比而言)。

按照攻击方式来分可以分为:资源消耗、服务中止和物理破坏。资源消耗指攻击者试图消耗目标的合法资源,例如网络带宽、内存和磁盘空间、CPU使用率等。服务中止则是指攻击者利用服务中的某些缺陷导致服务崩溃或中止。物理破坏则是指雷击、电流、水火等物理接触的方式导致的拒绝服务攻击。

按受害者类型可以分为服务器端拒绝服务攻击和客户端拒绝服务攻击。前者是指攻击的目标是特定的服务器,使之不能提供服务(或者不能向某些客户端提供某种服务),例如攻击一个Web服务器使之不能访问;后者是针对特定的客户端即用户,使之不能使用某种服务,例如游戏、聊天室中的“踢人”,即不让某个特定的用户登录游戏系统或聊天室中,使之不能使用系统的服务。大多数的拒绝服务攻击(无论从种类还是发生的频率角度)是针对服务器的,针对客户端的攻击一般发生得少些,同时因为涉及面小,其危害也会小很多。

按攻击是否直接针对受害者,可以分为直接拒绝服务攻击和间接拒绝服务攻击,如要对某个E-mail账号实施拒绝服务攻击,直接对该账号用邮件攻击就属于直接攻击。为了使某个邮件账号不可用,攻击邮件服务器而使整个邮件服务器不可用就是间接攻击。

按攻击地点可以分为本地攻击和远程(网络)攻击,本地攻击是指不通过网络,直接对本地主机的攻击,远程攻击则必须通过网络连接。由于本地攻击要求攻击者与受害者处于同一地,这对攻击者的要求太高,通常只有内部人员能够做到。同时,由于本地攻击通常可以通过物理安全措施以及对内部人员的严格控制予以解决,因此本书中主要研究基于网络的拒绝服务攻击。

以上简要介绍了对拒绝服务攻击的常用分类,下面介绍研究人员提出的两种分类方法。

3.3.1 拒绝服务攻击的属性分类法

J.Mirkovic和P. Reiher [Mirkovic04]提出了拒绝服务攻击的属性分类法,即将攻击属性分为攻击静态属性、攻击动态属性和攻击交互属性三类,根据DoS攻击的这些属性的不同,就可以对攻击进行详细的分类。凡是在攻击开始前就已经确定,在一次连续的攻击中通常不会再发生改变的属性,称为攻击静态属性。攻击静态属性是由攻击者和攻击本身所确定的,是攻击基本的属性。那些在攻击过程中可以进行动态改变的属性,如攻击的目标选取、时间选择、使用源地址的方式,称为攻击动态属性。而那些不仅与攻击者相关而且与具体受害者的配置、检测与服务能力也有关系的属性,称为攻击交互属性。

1.攻击静态属性(Static)

攻击静态属性主要包括攻击控制模式、攻击通信模式、攻击技术原理、攻击协议和攻击协议层等。

(1)攻击控制方式(ControlMode)

攻击控制方式直接关系到攻击源的隐蔽程度。根据攻击者控制攻击机的方式可以分为以下三个等级:直接控制方式(Direct)、间接控制方式(Indirect)和自动控制方式(Auto)。

最早的拒绝服务攻击通常是手工直接进行的,即对目标的确定、攻击的发起和中止都是由用户直接在攻击主机上进行手工操作的。这种攻击追踪起来相对容易,如果能对攻击包进行准确的追踪,通常就能找到攻击者所在的位置。由于直接控制方式存在的缺点和攻击者想要控制大量攻击机发起更大规模攻击的需求,攻击者开始构建多层结构的攻击网络。多层结构的攻击网络给针对这种攻击的追踪带来很大困难,受害者在追踪到攻击机之后,还需要从攻击机出发继续追踪控制器,如果攻击者到最后一层控制器之间存在多重跳板时,还需要进行多次追踪才能最终找到攻击者,这种追踪不仅需要人工进行操作,耗费时间长,而且对技术也有很高的要求。这种攻击模式,是目前最常用的一种攻击模式。自动攻击方式,是在释放的蠕虫或攻击程序中预先设定了攻击模式,使其在特定时刻对指定目标发起攻击。这种方式的攻击,从攻击机往往难以对攻击者进行追踪,但是这种控制方式的攻击对技术要求也很高。Mydoom蠕虫对SCO网站和Microsoft网站的攻击就属于第三种类型[TA04-028A]。

(2)攻击通信方式(CommMode)

在间接控制的攻击中,控制者和攻击机之间可以使用多种通信方式,它们之间使用的通信方式也是影响追踪难度的重要因素之一。攻击通信方式可以分为三种方式,分别是:双向通信方式(bi)、单向通信方式(mono)和间接通信方式(indirection)。

双向通信方式是指根据攻击端接收到的控制数据包中包含了控制者的真实IP地址,例如当控制器使用TCP与攻击机连接时,该通信方式就是双向通信。这种通信方式,可以很容易地从攻击机查找到其上一级的控制器。

单向通信方式指的是攻击者向攻击机发送指令时的数据包并不包含发送者的真实地址信息,例如用伪造IP地址的UDP包向攻击机发送指令。这一类的攻

击很难从攻击机查找到控制器,只有通过包标记等IP追踪手段(参见第9,10,11章),才有可能查找到给攻击机发送指令的机器的真实地址。但是,这种通信方式在控制上存在若干局限性,例如控制者难以得到攻击机的信息反馈和状态。

间接通信方式是一种通过第三者进行交换的双向通信方式,这种通信方式具有隐蔽性强、难以追踪、难以监控和过滤等特点,对攻击机的审计和追踪往往只能追溯到某个被用于通信中介的公用服务器上就再难以继续进行。这种通信方式目前已发现的主要是通过IRC(Internet Relay Chat)进行通信[Jose Nazario],从2000年8月出现的名为Trinity的DDoS攻击工具开始,已经有多种DDoS攻击工具及蠕虫采纳了这种通信方式。在基于IRC的傀儡网络中,若干攻击者连接到Internet上的某个IRC服务器上,并通过服务器的聊天程序向傀儡主机发送指令。

(3)攻击原理(Principle)

DoS攻击原理主要分为两种,分别是:语义攻击(Semantic)和暴力攻击(Brute)。

语义攻击指的是利用目标系统实现时的缺陷和漏洞,对目标主机进行的拒绝服务攻击,这种攻击往往不需要攻击者具有很高的攻击带宽,有时只需要发送1个数据包就可以达到攻击目的,对这种攻击的防范只需要修补系统中存在的缺陷即可。暴力攻击指的是不需要目标系统存在漏洞或缺陷,而是仅仅靠发送超过目标系统服务能力的服务请求数量来达到攻击的目的,也就是通常所说的风暴攻击。所以防御这类攻击必须借助于受害者上游路由器等的帮助,对攻击数据进行过滤或分流。某些攻击方式,兼具语义和暴力两种攻击的特征,比如SYN风暴攻击,虽然利用了TCP协议本身的缺陷,但仍然需要攻击者发送大量的攻击请求,用户要防御这种攻击,不仅需要对系统本身进行增强,而且也需要增大资源的服务能力。还有一些攻击方式,是利用系统设计缺陷,产生比攻击者带宽更高的通信数据来进行暴力攻击的,如DNS请求攻击和Smurf攻击,参见4.2.3节以及文

献[IN-2000-04]和[CA-1998-01]。这些攻击方式在对协议和系统进行改进后可以消除或减轻危害,所以可把它们归于语义攻击的范畴。

(4)攻击协议层(ProLayer)

攻击所在的TCP/IP协议层可以分为以下四类:数据链路层、网络层、传输层和应用层。

数据链路层的拒绝服务攻击[Convery] [Fischbach01][Fischbach02]受协议本身,只能发生在局域网内部,这种类型的攻击比较少见。针对IP层的攻击主要是针对目标系统处理IP包时所出现的漏洞进行的,如IP碎片攻击[Anderson01],针对传输层的攻击在实际中出现较多,SYN风暴、ACK风暴等都是这类攻击,面向应用层的攻击也较多,剧毒包攻击中很多利用应用程序漏洞的(例如缓冲区溢出的攻击)都属于此类型。

(5)攻击协议(ProName)

攻击所涉及的最高层的具体协议,如SMTP、ICMP、UDP、HTTP等。攻击所涉及的协议层越高,则受害者对攻击包进行分析所需消耗的计算资源就越大。

2.攻击动态属性(Dynamic)

攻击动态属性主要包括攻击源地址类型、攻击包数据生成模式和攻击目标类型。

(1)攻击源地址类型(SourceIP)

攻击者在攻击包中使用的源地址类型可以分为三种:真实地址(True)、伪造合法地址(Forge Legal)和伪造非法地址(Forge Illegal)。

攻击时攻击者可以使用合法的IP地址,也可以使用伪造的IP地址。伪造的IP地址可以使攻击者更容易逃避追踪,同时增大受害者对攻击包进行鉴别、过滤的难度,但某些类型的攻击必须使用真实的IP地址,例如连接耗尽攻击。使用真实IP地址的攻击方式由于易被追踪和防御等原因,近些年来使用比例逐渐

下降。使用伪造IP地址的攻击又分为两种情况:一种是使用网络中已存在的IP地址,这种伪造方式也是反射攻击所必需的源地址类型;另外一种是使用网络中尚未分配或者是保留的IP地址(例如192.168.0.0/16、172.16.0.0/12等内部网络保留地址[RFC1918])。

(2)攻击包数据生成模式(DataMode)

攻击包中包含的数据信息模式主要有5种:不需要生成数据(None)、统一生成模式(Unique)、随机生成模式(Random)、字典模式(Dictionary)和生成函数模式(Function)。

在攻击者实施风暴式拒绝服务攻击时,攻击者需要发送大量的数据包到目标主机,这些数据包所包含的数据信息载荷可以有多种生成模式,不同的生成模式对受害者在攻击包的检测和过滤能力方面有很大的影响。某些攻击包不需要包含载荷或者只需包含适当的固定的载荷,例如SYN风暴攻击和ACK风暴攻击,这两种攻击发送的数据包中的载荷都是空的,所以这种攻击是无法通过载荷进行分析的。但是对于另外一些类型的攻击包,就需要携带相应的载荷。

攻击包载荷的生成方式可以分为4种:第一种是发送带有相同载荷的包,这样的包由于带有明显的特征,很容易被检测出来。第二种是发送带有随机生成的载荷的包,这种随机生成的载荷虽然难以用模式识别的方式来检测,然而随机生成的载荷在某些应用中可能生成大量没有实际意义的包,这些没有意义的包也很容易被过滤掉,但是攻击者仍然可以精心设计载荷的随机生成方式,使得受害者只有解析到应用层协议才能识别出攻击数据包,从而增加了过滤的困难性。第三种方式是攻击者从若干有意义载荷的集合中按照某种规则每次取出一个填充到攻击包中,这种方式当集合的规模较小时,也比较容易被检测出来。最后一种方式是按照某种规则每次生成不同的载荷,这种方式依生成函数的不同,其检测的难度也是不同的。

(3)攻击目标类型(Target)

攻击目标类型可以分为以下6类:应用程序(Application)、系统(System)、网络关键资源(Critical)、网络(Network)、网络基础设施(Infrastructure)和因特网(Internet)。

针对特定应用程序的攻击是较为常见的攻击方式,其中以剧毒包攻击较多,它包括针对特定程序的,利用应用程序漏洞进行的拒绝服务攻击,以及针对一类应用的,使用连接耗尽方式进行的拒绝服务攻击。针对系统的攻击也很常见,像SYN风暴、UDP风暴[CA-1996-01]以及可以导致系统崩溃、重启的剧毒包攻击都可以导致整个系统难以提供服务。针对网络关键资源的攻击包括对特定DNS、路由器的攻击。而面向网络的攻击指的是将整个局域网的所有主机作为目标进行的攻击。针对网络基础设施的攻击需要攻击者拥有相当的资源和技术,攻击目标是根域名服务器、主干网核心路由器、大型证书服务器等网络基础设施,这种攻击发生次数虽然不多,但一旦攻击成功,造成的损失是难以估量的[Naraine02]。针对Internet的攻击是指通过蠕虫、病毒发起的,在整个Internet上蔓延并导致大量主机、网络拒绝服务的攻击,这种攻击的损失尤为严重。

3.交互属性(Mutual)

攻击的动态属性不仅与攻击者的攻击方式、能力有关,也与受害者的能力有关。主要包括攻击的可检测程度和攻击影响。

(1)可检测程度(Detective)

根据能否对攻击数据包进行检测和过滤,受害者对攻击数据的检测能力从低到高分为以下三个等级:可过滤(Filterable)、有特征但无法过滤(Unfilterable)和无法识别(Noncharacterizable)。

第一种情况是,对于受害者来说,攻击包具有较为明显的可识别特征,而且通过过滤具有这些特征的数据包,可以有效地防御攻击,保证服务的持续进行。第二种情况是,对于受害者来说,攻击包虽然具有较为明显的可识别特征,但是如果过滤具有这些特征的数据包,虽然可以阻断攻击包,但同时也会影响到服务

的持续进行,从而无法从根本上防止拒绝服务。第三种情况是,对于受害者来说,攻击包与其他正常的数据包之间,没有明显的特征可以区分,也就是说,所有的包,在受害者看来,都是正常的。

(2)攻击影响(Impact)

根据攻击对目标造成的破坏程度,攻击影响自低向高可以分为:无效(None)、服务降低(Degrade)、可自恢复的服务破坏(Self-recoverable)、可人工恢复的服务破坏(Manu-recoverable)以及不可恢复的服务破坏(Non-recoverable)。

如果目标系统在拒绝服务攻击发生时,仍然可以提供正常服务,则该攻击是无效的攻击。如果攻击能力不足以导致目标完全拒绝服务,但造成了目标的服务能力降低,这种效果称之为服务降低。而当攻击能力达到一定程度时,攻击就可以使目标完全丧失服务能力,称之为服务破坏。服务破坏又可以分为可恢复的服务破坏和不可恢复的服务破坏,目前网络拒绝服务攻击所造成的服务破坏通常都是可恢复的。一般来说,风暴型的DDoS攻击所导致的服务破坏都是可以自恢复的,当攻击数据流消失时,目标就可以恢复正常工作状态。而某些利用系统漏洞的攻击可以导致目标主机崩溃、重启,这时就需要对系统进行人工恢复;还有一些攻击利用目标系统的漏洞对目标的文件系统进行破坏,导致系统的关键数据丢失,往往会导致不可恢复的服务破坏,即使系统重新提供服务,仍然无法恢复到破坏之前的服务状态。

3.3.2 拒绝服务攻击的舞厅分类法

Philip L.Campbell提出了一个拒绝服务攻击的舞厅分类法[Campbel05]。本节将对此进行介绍。

人们到舞厅去跳舞,在这个特定的舞厅中,没有人独自跳舞,每个人在跳舞的时候都有一个舞伴。在整个舞会期间,参与者可以自由选择是跳舞还是坐着。每一支舞都是由一次跳舞的邀请开始的。从攻击者的角度,除攻击者自身外,舞

厅中只有两种人,一种是受害者,另一种是既非受害者也非攻击者的其他人。如果攻击者成功地阻止了受害者与任何其他人跳舞,则攻击就是成功的。攻击者可以通过下述4种途径达到目的:

Ø 舞伴(Partner):与受害者跳舞。

Ø 风暴(Flood):用大量的噪音来干扰受害者,使之无法听到他人的跳舞邀请。 Ø 陷阱(Trip):只要受害者跳舞的时候就通过设置陷阱阻止其跳舞。 Ø 介入(Intervene):阻止邀请传到受害者,包括阻止舞会的进行。

于是,我们可以将拒绝服务攻击分为这4大类,然后细分。这样,拒绝服务攻击可以用一棵倒置的树的形式进行划分,树根即为拒绝服务,4个主支分别是舞伴类、风暴类、陷阱类和介入类。

为了讨论的方便,这里对分类树的各节点进行编号,编号方法是深度优先,然后从左至右的。树中的叶节点即指攻击类型,树中的内部节点则是分类判断的问题。对攻击的分类采用递归的过程,由根开始,如果对当前问题的回答为“是”,则往左面的节点继续,否则转向右面的节点。以下“节点i”指的是第i个节点。

1.主干

图3.4中处于节点3、8、18、23之上的部分为树的主干部分,共包含3个节点。主干部分起着把4棵子树连接起来的作用。节点1:是否淹没受害者?例如通过大量的输入或者请求。节点2:受害者是否参与?即攻击是否需要受害者参与其中,当然,受害者有可能是在不知情的情况下参与。节点17:是否直接攻击?即攻击者直接针对受害者还是需要利用网络基础设施?

2.舞伴类

舞伴类攻击在攻击者与受害者一起“跳舞”时获得成功,这时候其他的人就无法与受害者“跳舞”了。图3.4中的节点3~7构成此类。

图3.4 拒绝服务攻击的舞厅分类法

为了应对此类攻击,必须设法不与攻击者共舞。生物系统应对此类攻击的方法也许可以借鉴。病毒攻击生物系统的方法就是通过“共舞”,而生物系统则通过包围病毒,即类似于隔离的方式,然后将病毒“冲刷”离生物体。这是一种“介入”式对策。

节点3:是否复制?攻击是否依靠复制获得成功?

节点4:蠕虫。蠕虫通过复制自身并向其他主机发送导致拒绝服务。邮件病毒通过拥塞邮件信道构成拒绝服务。这类攻击包括红色代码、尼姆达等。

节点5:是否协议?攻击是否利用协议的握手过程而不是与特定的应用进行交互?

节点6:协议请求。攻击者伪造对协议的请求,导致协议的响应或者对请求的跟踪记录,从而占用受害者的注意(计算能力)或者记忆(内存),使得他人

无法使用。很多这类攻击中都冠以“风暴(Flood)”一词,如SYN风暴,但是,“共舞”也许更适合它们,因为这些攻击需要受害者的“参与”。例如SYN风暴攻击(CVE-1999-0116)建立TCP半开连接;Ping风暴发送大量的Ping消息,要求受害者产生回应消息;HTTP代理(CVE-2002-0069)要求HTTP连接;一种UDP风暴攻击(CVE-2000-0522)通过向受害者的不同端口发送UDP包,期望这些端口是关闭的从而受害者发送“目标不可达”消息。

节点7:应用请求。攻击者发送应用请求,导致应用的响应或者对请求的跟踪记录,从而独占受害者的计算能力和内存。例如CVE数据库中有“远程攻击者可以通过多个PASV模式请求,使得FTP服务器的可用端口被占满,从而构成对FTP的拒绝服务攻击(CVE-1999-0079)”。另一个例子如CVE中“WindowsNT客户端/服务器运行时间子系统(Client Server Runtime Subsystem,CSRSS)在所有工作线程等待输入时构成拒绝服务(CVE-1999-0723)”。前一例子是CVE中的“过多”型攻击,后一例子是“无输入”型攻击。

Jianxin(Jeff)Yan及其同事所谓的三种方法应对拒绝服务攻击(即安全的主机、出口过滤和打好相应的补丁)是不够的[Yan00]。这些方法对蠕虫攻击(节点4)有效,也许还对工具型攻击 (风暴类中的节点11)有效,但是它们对陷阱类和介入类攻击无效。

3.风暴类

风暴类攻击包括节点8~16。

节点8:单个攻击者?仅由一个攻击者是否可以发起成功的攻击? 节点9:需要不知情的协助者吗?攻击需要其他不知情的机器参与吗? 节点10:有伪造吗?攻击是否需要伪造地址?

这类攻击是无法避免的,至少目前如此。也许采用服务质量的方式会有所帮助。靠提高网络中主机的安全性是不可靠的,在局部网络与Internet之间的边界处进行过滤也不能完全解决此问题。

节点11:(Subversion)工具。这类工具如Trin00命令被控制的机器发起风暴攻击,因此是此类攻击与协议请求(节点6)的联系纽带。其他的攻击工具有:TFN、Shaft、Blitznet和Trinity等。由于这些工具还可发起Smurf攻击(CVE-1999-0513),因此它们也与回音攻击(节点12)、单数据包攻击(节点18)有一定的联系。

节点12:回音。这类攻击也称为反射攻击,其利用的是Echo机制。Smurf、Fraggle (CVE-1999-0514)、Papasmurf、Echo-Chargen 攻击都可归为此类。

节点13:单纯风暴。攻击者发送大量的输入给受害者以至于其他的输入都不可能传送到受害者。例如,邮件攻击即为此类。

节点14:合法?行为是否合法?例如发送一份电子邮件?

节点15:Web占用(Web sit-in)。在这种攻击中,一些攻击者协同地进行某些“合法”的行为,即合法的请求不合法的数量,并且不打算完成请求。在无连接的环境中,这需要较多的行动。例如,一群攻击者通过在受害者的站点为某项购买不停地输入错误的银行卡号,使得其他人等待从而构成拒绝服务攻击。在这种攻击中,攻击者并不需要受害者响应或者记录请求。

节点16:Web暴力(Web Riot)。一群人非法地协同地进行攻击。例如,一群人同时毁损多个相关Web站点。这种行为是非法的,并且导致受害者的业务中断直至站点恢复。

4.陷阱类

陷阱类攻击包括从节点18~22。

节点18:是否单个数据包?攻击可否由单个数据包完成?

节点19:长度?攻击的成功是否依赖于数据包的长度而不是数据包中的内容?

节点20:长包,这种攻击发送单个的长数据包(通常是很长的),例如Ping of Death (CVE-1999-0128)攻击即是如此,其他的一些协议如ICMP Echo、TCP和UDP也可能受此攻击。

节点21:畸形输入。这种攻击发送容易导致受害者混乱的数据包,就像缓冲区溢出那样。防止这类攻击也许需要修改所有接收数据的网络程序。

节点22:分片。这类攻击发送多个数据包到受害者,这些数据包都是某数据报的分片。Jolt2就属于这种(CVE-2000-0305)。

5.介入类

介入类攻击包括节点23~37。

节点23:全局(Global)?攻击目的是否旨在影响整个Internet?即其是否没有明确其攻击范围?

节点24:路由器?攻击目标是否指向路由器?

节点25:畸形的控制数据包?攻击是否产生畸形的“控制”包(即消息属于控制信息)而不是“数据”包(即消息用于数据流)?

节点26:崩溃(Collapse)。在此种攻击中,网络由于攻击者的恶意行为而彻底不可用。

节点27:丢包?攻击是否改变一些路由器转发数据包的行为,使路由器行为失常。

节点28:黑洞。例如,行为失常的路由器可以先向其他的路由器通告较短的路径,导致其他路由器向其转发本不应该转发给它的数据包,然后该路由器把这些数据包丢弃。

节点29:失常的路由器。行为失常的路由器也可以错误地转发数据包。如果形成回路,数据包最终因生存期到期而被其他的某个路由器丢弃。

节点30:域名。这种攻击的目标是域名(DNS)系统和地址解析协议(ARP)系统。它们不同于阻断(节点36)攻击,后者的目标是到特定的服务器或受害者的连接。

节点31:阻塞?攻击是否阻塞对一组受害者或服务器的访问? 节点32:黑名单①?攻击是否阻塞受害者或者将受害者列入黑名单? 此类攻击包括节点33和节点34。虽然此类攻击中一些受害者可以合作从而绕过从事黑名单运作的主机,但是似乎总是可以进行此类攻击的。通过一些自愿的中继服务器或者虚拟代理服务器可以绕过此攻击,但是这也必须本地服务器不阻塞到远程服务器的请求才行。

节点33:明显的阻塞。此类攻击中,由于服务器被阻塞,受害者不会收到任何的回应消息,攻击者也无意替换服务器的服务。

节点34:替换。在此攻击中,受害者收到的回应消息并非来自于预定的服务器,而是来自于由攻击者控制的其他的假冒服务器。

节点35:攻击网络连接?攻击者的目标是受害者到服务器的连接而不是服务器本身?

节点36:阻断。此攻击阻断连接或者破坏用于连接的缓存条目导致连接不可用。利用主动的回应 ② 消息的ARP和DNS缓存污染就是最常见的阻断攻击。另一个例子是TCP重置(RST)攻击:当受害者接受一个TCP连接时,攻击者发送一个TCP重置数据包,关闭连接。

节点37:谣言。攻击者广播或者引诱他人广播不利于受害者的一些虚假消息,例如称受害者在某站点安插木马或者受害者抛售可以连接到地下黑客的网址,以此影响受害者的客户。

3.4 DDoS攻击的典型过程

一般来说,DDoS攻击的典型过程可以分为3个阶段,即信息收集、占领傀儡计算机和攻击实施。

3.4.1 获取目标信息

获取目标信息,也称为踩点(footprint)。通常,攻击者的攻击并非盲目地胡乱进行的,他不会用一台通过Modem连接的PC机去轰炸(flooding)一个大型网站(当然,如果该网站有一些漏洞使得剧毒包型攻击也能奏效的话,用一台PC机通过一些不太多的剧毒包攻击大型网站而奏效的情况也是存在的,只不过这与风暴型拒绝服务攻击的狂轰滥炸又有不同)!为了使得攻击奏效,攻击者需要了解受害者许多的信息,如被攻击目标主机数目、配置、性能、操作系统、地址情况以及目标网络的带宽等。因此,在攻击发生前,攻击者需要先对目标进行侦察,如利用扫描工具对目标进行扫描。

1.信息收集 (1)whois命令

whois为Internet提供目录服务,包括名字、通信地址、电话号码、电子邮箱、IP地址等信息。其采用的是Client/Server结构,由Client端发出请求,接收结果,并按格式显示到客户屏幕上,而Server端则建立数据库,接受注册请求并提供在线查询服务。通常UNIX系统自带whois客户程序,也可以直接通过Web查询。

一些whois数据来源有:

http://www.networksolution.com

http://www.arin.net

http://www.ipswitch.com http://www.samspade.org

如果需要查询com、net、edu、org以外的域可以查询以下的whois服务器:

http://www.ripe.net 欧洲IP地址分配

http://whois.apnic.net 亚太IP地址分配 http://whois.nic.mil 美事部门 http://whois.nic.gov 美国部门

http://www.allwhois.com 美国以外的whois服务

通过这些查询一般可以得到攻击者感兴趣的如下一些信息:

注册机构:显示特定的注册信息和相关的whois服务器。 机构本身:显示与某个特定机构相关的所有信息。 域名:显示与某个特定域名相关的所有信息。

网络:显示与某个特定网络或IP地址相关的所有信息。

联系人:显示与某位特定人员(通常是管理方面联系人)相关的所有信息。 在Unix/Linux平台上使用whois的语法如下:

whois –h <whois服务器><查询对象>

例如,向whois.internic.net查询is.iscas.ac.cn时,采用如下命令:

$ whois -h whois.internic.net is.iscas.ac.cn

(2)nslookup命令

nslookup也是获取信息的重要工具,它可以进行DNS查询,用于查询DNS中的各种数据。在Windows的命令行下直接运行nslookup进入一个交互模式,即可查询各种类型的DNS数据,如图3.5所示。

图3.5 nslookup查询

DNS的名字解析数据可以有各种不同的类型,有设置区域参数的SOA类型数据,有设置名字对应的IP地址的A类型数据,有设置邮件交换的MX类型数据。这些不同类型的数据均可以通过nslookup的交互模式来查询,在查询过程中可以使用“set type”命令设置相应的查询类型。

(3)网上的公开信息

有些组织机构的网站上会提供一些令人感兴趣的信息,包括机构所在位置、与其关系紧密的公司或实体、电话号码、联系人姓名和电子邮件地址、指示所用安全机制的类型或安全策略、与其相关联的Web服务器链接等,有的甚至会在网站上给出机构的网络拓扑结构图,如图3.6所示即是某大学网络中心在其网页上提供的该大学网络拓扑结构图,从该图上能够看到其网络结构信息,包括带宽。有的甚至会在网络拓扑图上标明防火墙、路由器等网络设备的品牌与型号!这些对攻击者来说都是很有用的。此外,新闻报道也可能泄露很多机密信息,例如:某某公司采用某某系统或者某某公司购买了某某系统/设备用于某某业务等。

图3.6 某大学网络拓扑结构图

(4)搜索引擎

利用搜索引擎是一个获得组织机构内部网络额外信息的绝好的方法。如果没有使用搜索引擎查过此类信息,只需搜索你自己的组织机构的域名,你会为你查到的从组织机构连上Internet开始逐渐增加的大量的信息而感到惊讶。这些信息可能包括:邮件信息、新闻组帖子以及组织机构的Web网页(如果这些网页可以从外面访问)等。

有时候,搜索的结果中还可能包括一些已经删除的网页信息,因为搜索引擎存有网页的缓存,即使一些网页已经更换或者删除,在短时间内,还可以从搜索引擎的缓存中看到网页修改前的信息。这些信息对于攻击者来说有时候也是很有用的。

使用搜索引擎,甚至可以获得一些非常敏感的信息,如Web服务器的目录结构、计算机中的缓存信息、个人信用卡和银行账号与口令、企业网用户名和口令,以及一些要害部门的内部信息等。

感兴趣的读者请参考Johnny Long的《Google Hacking for Penetration Testers》,Syngress出版社,2005年版,ISBN: 1-931836-36-1。

2.网络刺探

(1)traceroute命令

traceroute命令用于追溯由一个主机到另一个主机的网络路径。这在需要记录两个主机之间的网段时是很有用的。traceroute通过修改ICMP或UDP(根据版本不同而异)数据包的TTL选项,从而获得到目的地的路途中每一跳或每一个路由器产生的ICMP超时(ICMP_TIME_EXCEEDED)消息。在默认的情况下,到一个指定目的地的途中的路由器会检查收到的数据包的IP头中的TTL值,并将其减1。TTL减1以后如果得到的是0,则路由器会丢弃此数据包并向该数据包的发出端发送一个ICMP超时消息,否则就转发此数据包到下一个路由器。利用这种机制,可以确保数据包在网络中只能传输有限的跳数。traceroute先发送数

个(通常为3个)TTL设置为1的数据包,看收到的ICMP超时消息是由哪个路由器发出的,则该路由器就是到目的地方向,离发出点1跳的距离。接着,traceroute发送TTL设置为2、3、„的数据包,并得到相应距离处的路由器发出的ICMP超时消息或者目的地的回应消息(如果目的地到发出端的距离正好是数据包中的TTL初始值)。如图3.7所示(traceroute在Windows系统下的命令是tracert以满足文件名不超过8个字符的)为traceroute的输出结果窗口。从图3.7中可以看出,利用tracerout可以列出从源端到目的地的整个途中的所有路由器IP地址。图中的第一列是以跳数(hop)表示的距离,最后一列则是从源端到目的地方向上距离为第一列所示数据的路由器IP地址,中间的3列分别表示的是3个数据包到达最后一列所指示路由器所花费的时间,“*”表示超时。

图3.7 tracerout的输出结果窗口

(2)网络扫描

网络扫描按扫描目标的不同可以分为主机扫描和端口扫描。主机扫描用于确定在目标网络上的主机是否可达,在对一个网络进行主机扫描时还要尽可能多地映射目标网络的拓扑结构,一般利用较多的是ICMP数据包。端口扫描主要用于发现远程主机开放的端口或服务。

按照利用协议不同,可以分为ICMP扫描、TCP扫描和UDP扫描等。ICMP扫描主要用于主机扫描,而TCP扫描和UDP扫描主要用于获得系统提供的服务信息,即端口扫描。

① ICMP扫描

ICMP扫描一般采用ICMP Echo消息,Ping即是发送此类消息测试网络的工具。通过Ping发送ICMP Echo消息到目标主机,等待Echo Reply消息,可以确定网络和外部主机的状态,因此Ping可以用来调试网络的软件和硬件。用Ping进行扫描就是利用了其测试功能。当要测试一个主机是否活动时,可以在Ping命令后加上主机IP地址或域名作为参数。当要扫描一组主机(或IP地址),如一个网段时,可逐个地Ping这些主机。这称为Ping扫射(Ping Sweep)

② TCP扫描

TCP扫描有多种方式,例如,利用TCP-SYN、TCP-FIN等。

a.TCP连接扫描。通过向目标系统发起一个正常的TCP连接,如果端口是打开的,则连接成功,否则,连接失败。这种方法的优点是简单且不需要特殊的权限;其缺点则是服务器可以记录下客户端的连接行为,如果同一个客户轮流对每一个端口发起连接,则可以判断其是在扫描,这对攻击者隐藏身份是不利的。

b.TCP-FIN扫描。TCP-FIN扫描原理是向目标主机发送一个FIN数据包,如果端口是关闭的,则远程主机丢弃该包,并送回一个RST包;否则,远程主机丢弃该包,不回送任何信息。这种方法的优点是它不是TCP建立连接的过程,所以比较隐蔽。缺点与TCP半开连接扫描类似,也需要构造专门的数据包。

c.TCP Ping扫描。TCP Ping扫描也称为TCP-SYN扫描,前者是根据其类似于ICMP的Ping消息的作用而得名,后者是根据其使用的是TCP-SYN消息而得名。

由于很多组织机构已经禁止来自于公网,如Internet的Ping(ICMP Echo Request)消息,未收到Ping的回应消息不足以说明主机系统不能访问。攻击者可以通过向潜在目标的一些常用的TCP、UDP端口(如TCP/80、UDP/TCP/53等)发送连接请求以强化其Ping活动。TCP Ping扫描的原理是通过向目标主机的指定端口发送一个SYN包,根据应答结果判断目标信息。如果应答包为RST包,则说明该端口是关闭的;否则,会收到一个SYN/ACK包。于是,发送一个RST,停止建立连接,如图3.8所示。由于针对主机监听端口的TCP消息比ICMP消息更容易通过防火墙,因此,在ICMP消息受到禁止的情况下可以采用TCP-SYN消息达到目的;同时由于连接没有完全建立,所以这种扫描方式也称为“半开连接扫描”,其优点是很少有系统会记录这样的行为,攻击者可以借此隐藏自己。缺点是在UNIX平台上,需要Root权限才可以建立这样的SYN数据包。

图3.8 TCP Ping扫描

采用端口扫描或Ping扫射(Ping Sweep)工具如Nmap、HPing、Nessus等,可以自动完成TCP Ping功能,此即TCP Ping扫描。

d.TCP逆向Ident扫描。安全专家Dave Goldsmith于1996在Bugtraq的一个帖子上指出,Ident协议(RFC 1413)会泄露通过TCP连接进程的所有者的用户名,即使该连接不是由此进程发起的。因此,攻击者可以连接到HTTP的端口,用Ident守护进程查明服务器是否由Root用户启动。

③ UDP扫描

UDP扫描原理是,利用UDP协议,发送UDP数据包到目标端口,看是否有回应包。由于UDP协议是无连接的,数据接收方不需要对收到的数据进行响应,如果目标UDP端口是开放的,并不需要送回ACK包,而关闭的端口也不要求送回错误包,因此,利用UDP包进行扫描非常困难。只是有些协议栈实现的时候,对于关闭的UDP端口,会送回一个ICMP的端口不可达消息。因此,可以根据端口不可达消息确定那些关闭的UDP端口,而对于没有收到端口不可达消息的,则可能是开放的端口。端口不可达消息一般要有根用户权限才能读取。Linux却可以以间接的方式“通知”非根用户端口不可达消息的到达,例如,当用户第二次向一个关闭的(远程)端口进行write()调用时,系统会返回一个失败信息。很多的扫描器如Netcat、Pscan.c都可以进行这种扫描。通过这种write()调用,Linux的非根用户就可以确定远程端口是否处于开放状态。

UDP扫描的缺点是速度慢,而且是否收到UDP包或ICMP包都不是可靠的。 (3)漏洞扫描

通过主机扫描和端口扫描以后,攻击者获得了活动主机及其开放端口(服务)的信息,接下来攻击者就希望获得受害者主机是否存在可以利用的漏洞的信息。由于已发现的可以让攻击者远程控制一台主机的漏洞千千万万,攻击者可以把与这些漏洞相关的攻击手法在受害者主机上一个个地进行测试,但是,这会耗费攻击者很多的时间,也许是数年的时间。为了加快这一过程,攻击者可以通过一个自动化地漏洞扫描工具测试受害者主机可能具有的漏洞,然后有针对性地攻击。

自动化的漏洞扫描工具本质上是一个常见漏洞的数据库和一个可以阅读此数据库,连接到目标计算机,测试目标主机是否存在此漏洞的引擎。

这种工具的有效性在于其测试的质量以及其漏洞库的完善程度。因此,好的漏洞扫描工具都会及时提供漏洞库的升级以及编制新的脚本以提供新漏洞的检测。

SATAN(Security Administrator Tool for Analyzing Network),一个免费软件,是最早广泛使用的自动漏洞扫描器,出现于1995。后来出现了著名的开放源码的漏洞扫描器Nessus(http://www.nessus.org)。Nessus是一个通用漏洞扫描器,它可以扫描多种系统和平台的漏洞。另外,也存在一些针对特定系统的漏洞扫描器,如Whisker [Whisker]就是专门扫描Web服务器的CGI脚本漏洞的。

3.4.2 占领傀儡机和控制台

在DDoS攻击中,攻击者可以通过自己的机器直接对目标发起攻击,这样攻击者可能会冒着被发现的风险。通常,为了掩蔽自己不被发现,攻击者需要占领一些傀儡机(也称僵尸Zombies或Bot、Slave、Drone等,详见5.2节。另外,由于傀儡机总是等待并执行攻击者的命令,因此在攻击者和傀儡机间构成的客户

机/服务器模型中,傀儡机居于服务器的角色,故傀儡机或相应的傀儡程序也叫做Server,而攻击者或者攻击者所用的控制程序也叫做Client),用来实施攻击。另外,为了达到需要的攻击力度,单靠一台或数台机器对一个大型系统的攻击是不够的,因此攻击者也需要大量的傀儡机器用于增强攻击的“火力”。这些傀儡机器最好具有良好的性能和充足的资源,如强的计算能力、大的带宽等,这样攻击者会获得较大的攻击力。当然,如果这些机器的管理水平、安全程度低,则更是攻击者的最佳选择,因为这样的机器更容易被攻击者攻破。比如一些宽带家庭用户的系统就具有高带宽、低安全的特性,而且,由于这些用户一般都是按月或按年度固定地付费的,因此,他们的计算机一般会长时间连在网上,这些都是最受攻击者青睐的。并且,攻击者还需要向傀儡机发送命令的控制台,因此攻击者还需利用某些被其攻破的机器或者其拥有访问权限的机器作为控制台。

攻击者占领傀儡机的方法有很多种。早期的占领方法一般是先通过扫描,得到一些容易攻破的机器,然后采用一些较为简单的方法予以攻破。攻击者也可以通过后门程序,以邮件、网站上的恶意链接等方式,引诱受害者运行后门程序,从而达到控制受害者机器的目的。目前,获得大量傀儡机的方法主要是通过携带后门程序的蠕虫,如后面将会介绍的Agobot等,随着蠕虫的传播,后门程序也安装到了受蠕虫感染的主机上。由于系统中运行的软件越来越多,必然的,整个系统的漏洞也越来越多;软件的漏洞使得恶意程序如蠕虫可以自动地攻破大量的主机,然后提供给攻击者作为傀儡机(攻击主机)使用。

攻击者“手工”占领傀儡机以后,需要在傀儡机上安装后门,以保持对傀儡机的“占有”。此外,对于那些攻击者选作攻击主机的傀儡机,攻击者还需在上面安装攻击软件。那些由蠕虫等攻破用做傀儡机的主机,已经在蠕虫感染的同时安装了攻击软件(当然也是攻击者能够通过远程控制的后门程序)。

关于傀儡机和傀儡网络,请参见5.2节。

3.4.3 实施攻击

在前面的准备工作完成之后,实际的攻击过程却相对比较简单,攻击者只需通过控制台向傀儡机发出指令,令其立即或在某个时间向指定的受害者大量发送特定的攻击数据包即可。或者,攻击者可以在傀儡机上做一定时设置,时间一到,这些傀儡机就自行对既定目标发起攻击。

这里描述的是分布式拒绝服务攻击的一个典型过程。实际上,并非每一次攻击都要遵循这样一个过程的。例如攻击者在攻击了受害者甲以后的某天打算攻击受害者乙,这时,由于攻击者已经掌握了控制台机器和大量的攻击主机,第二个步骤就已经是完成了的,无须重复。或者,攻击者也许通过一些其他的渠道对某个受害者早已有了足够的了解,当他想要对其实施攻击时,第一个步骤当然也就不再需要

因篇幅问题不能全部显示,请点此查看更多更全内容