信息安全原理与技术第八次实验:拒绝服务攻击与防范

信息安全原理与技术第八次实验:拒绝服务攻击与防范

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!

一、实验目的

通过本实验的学习,使大家了解拒绝服务攻击的原理以及相应的防范方法。通过一个SYN Flood 的拒绝服务程序,使大家加强对 DoS 攻击的理解。
通过本实验的学习,使大家了解分布式拒绝服务(DDoS)攻击的原理以及相应的防范方法。

二、实验原理

1.TCP 协议介绍
TCP(Transmission Control Protocol,传输控制协议)是用来在不可靠的因特网上提供可靠的、端到端的字节流通信协议,在 RFC 793 中有正式定义,还有一些解决错误的方案在 RFC 1122 中有记录,RFC 1323 则有 TCP 的功能扩展。常见到的 TCP/IP 协议中,IP 层不保证将数据报正确传送到目的地 TCP 则从本地机器接收用户的数据流,将其分成不超过64K 字节的数据片段,将每个数据片段作为单独的 IP 数据包发送出去,最后在目的地机器中再组合成完整的字节流,TCP 协议必须保证可靠性。发送方和接收方的 TCP 传输以数据段的形式交换数据,一个数据段包括一个固定的 20 字节,加上可选部分,后面再加上数据。TCP 协议从发送方传送一个数据段的时候,还要启动计时器,当数据段到达目的地后,接收方还要发送回一个数据段,其中有一个确认序号,它等于希望收到的下一个数据段的顺序号。如果计时器在确认信息到达前超时了,发送方会重新发送这个数据段。
从上面内容可总体上了解一点 TCP 协议,重要的是要熟悉 TCP 的数据头(header)。因为数据流的传输最重要的就是数据头 header 里面的东西,至于发送的数据,只是 TCP 数据头附带上的。客户端和服务端的服务响应就是同 header 里面的数据相关,两端的信息交流和交换是根据 header中的内容实施的,因此,要了解DoS 攻击的原理,就必须对 TCP 的 header中的内容非常熟悉。有关 TCP 数据段头格式参见 7.1.3 节内容。
TCP 连接采用“三次握手”,其原理与步骤如下所述。
在没有连接时,接受方服务器处于监听(LISTEN)状态,等待其他机器发送连接请求。第一步:客户端发送一个带 SYN 位的请求,向服务器表示需要连接,比如发送包假设请求序号为 10,那么 SYN=10,ACK=0,然后等待服务器的响应。
第二步:服务器接收到这样的请求后,查看监听的端口是否为指定的端口。如果不是,则发送 RST=1 应答,拒绝建立连接;如果是,那么服务器发送确认。SYN 为服务器的一个内码,假设为 100,ACK 位则是客户端的请求序号加 1,本例中发送的数据是:SYN=ll,ACK=100,用这样的数据发送给客户端。向客户端表明,服务器连接已经准备好了,等待客户端的确认。
这时客户端接收到消息后,分析得到的信息,准备发送确认连接信号到服务器。
第三步:客户端发送确认建立连接的消息给服务器。确认信息的 SYN 位是服务器发送的 ACK 位,ACK 位是服务器发送的 SYN 位加 1。即:SYN=11,ACK=101。
整个 TCP 的“三次握手”过程可以由图 7.46 说明。
在这里插入图片描述
图 7.46 TCP 三次握手
这时,连接已经建立起来了,可以进行发送数据的过程。这是一个基本的请求和连接过程。需要注意的是,这些标志位的关系,比如 SYN、ACK。
服务器不会在每次接收到 SYN 请求就立刻同客户端建立连接,而是为连接请求分配内存空间,建立会话,并放到一个等待队列中。如果这个等待的队列已经满了,那么服务器就不再为新的连接分配资源,直接丢弃新的请求。如果到了这样的地步,那么服务器就是拒绝服务了。
2.拒绝服务(DoS)攻击
(1)DoS 的基本概念
DoS 的英文全称是 Denial of Service,也就是“拒绝服务”的意思。从网络攻击的各种方法和所产生的破坏情况来看,DoS 算是一种很简单但又很有效的攻击方式。它的目的就是拒绝服务访问,破坏服务程序的正常运行,最终它会使部分 Internet 连接和网络系统失效。DoS 的攻击方式有很多种,最基本的 DoS 攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务。
DoS 攻击的基本过程是:攻击者向服务器发送众多的带有虚假地址的请求,服务器发送回复信息后等待回传信息,由于地址是伪造的,所以服务器一直等不到回传的消息,分配给这次请求的资源就始终没有被释放。当服务器等待一定的时间后,连接会因超时而被切断,攻击者会再度传送新的一批请求,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽。
被 DoS 攻击时的现象大致有:
被攻击主机上有大量等待的 TCP 连接;
被攻击主机的系统资源被大量占用,造成系统停顿;
网络中充斥着大量的无用的数据包,源地址为伪地址;
大量无用数据使得网络拥塞,受害主机无法正常与外界通信;
利用受害主机提供的服务或传输协议上的缺陷,反复高速地发出特定的服务请求,使受害主机无法及时处理所有正常请求;
严重时会造成系统崩溃。
(2)拒绝服务攻击的基本方法
通过上面的介绍,我们了解到 TCP 协议、“三次握手”的连接过程以及服务器建立连接的缓冲区队列的基本知识。要对服务器实施拒绝服务攻击,实质上的方式有两个:一是迫使服务器的缓冲区满,不接收新的请求;二是使用 IP 欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。这就是 DoS 攻击实施的基本思想。具体实现有以下几种方法:
①SYN Flood
编写发包程序,设置 TCP 的 Header,向服务器端不断成倍地发送只有 SYN 标志的 TCP连接请求。当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。如果 SYN 请求超过了服务器能容纳的限度,缓冲区队列占满,那么服务器就不再接收新请求了,其他合法用户的连接都将被拒绝掉。
②IP 欺骗 DoS 攻击
这种攻击利用 RST 位来实现。假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的 TCP 数据,伪装自己的 IP 为 1.1.1.1,并向服务器发送一个带有 RST 位的 TCP 数据段。服务器接收到这样的数据后。认为从 1.l.l.1 发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户 1.1.1.1 再发送合法数据;服务器就已经没有这样的连接了,该用户就必须重新开始建立连接。使用这种方式攻击时,需要伪造大量的 IP 地址,向目标发送 RST 数据,可以使服务器不对合法用户服务。
③Smurf(directed broadcast)
广播信息可以通过一定的手段(广播地址或其他机制)发送到整个网络中的机器。当某台机器使用广播地址发送一个 ICMP echo 请求包时(如 PING),一些系统会口应一个 ICMPecho 回应包。也就是说,发送一个包会收到许多的响应包。Smurf 攻击就是使用这个原理来进行的,当然,它还需要一个假冒的源地址。也就是说在网络中发送源地址为要攻击主机的地址,目的地址为广播地址的包,会使许多的系统响应发送大量的信息给被攻击主机。
④自身消耗的 DoS 攻击
这种 DoS 攻击就是把请求数据包中的客户端 IP 和端口设置成主机自己的 IP 和端口,再发送给主机,使得主机给自己发送 TCP 响应和连接。这样,主机会很快把资源消耗光,直接导致死机。这种伪装攻击对一些身份认证系统威胁巨大。
上面这些实施 DoS 攻击的手段最主要的就是构造需要的 TCP 数据包,充分利用 TCP 协议。这些攻击方法都是建立在 TCP 基础上的。
⑤塞满服务器的硬盘
通常,如果服务器可以没有限制地执行写操作;那么通过一些手段就可以造成硬盘被写满,从而拒绝服务;比如发送垃圾邮件。
⑥合理利用策略
一般服务器都有关于账户锁定的安全策略,比如某个账户连续 3 次登录失败,那么这个账号将被锁定。这点也可以被破坏者利用,他们伪装一个帐号去错误登录,这样使得这个账号被锁定,而正常的合法用户就不能使用账号去登录系统了。
(3)拒绝服务攻击的防范
到目前为止,防范 DoS 特别是 DDoS 攻击仍比较困难,但仍然可以采取一些措施以降低其产生的危害。对于中小型网站来说,可以从以下几个方面进行防范:
①主机设置
即加固操作系统,对各种操作系统参数进行设置以加强系统的稳固性。重新编译或设置Linux 以及各种 BSD 系统、Solaris 等操作系统内核中的某些参数,可在一定程度上提高系统的抗攻击能力。例如,对于 DoS 攻击的典型种类——SYN FIood,它利用 TCP/IP 协议漏洞发送大量伪造的 TCP 连接请求,以造成网络无法连接用户服务或使操作系统瘫痪。该攻击过程涉及系统的一些参数:可等待的数据包的链接数和超时等待数据包的时间长度。因此,
则进行如下设置:
关闭不必要的服务。
将数据包的连接数从缺省值 128 或 512 修改为 2048 或更大,以加长每次处理数据包队列的长度;以缓解和消化更多数据包的连接。
将连接超时时间设置得较短,以保证正常数据包的连接,屏蔽非法攻击包。
及时更新系统、安装补丁。
②防火墙设置
仍以 SYN Flood 为例,可以在防火墙上进行如下设置:
禁止对主机非开放服务的访问。
限制同时打开的数据包最大连接数。
限制特定 IP 地址的访问。
启用防火墙的防 DDoS 的属性。
严格限制对外开放服务器的向外访问,以防止自己的服务器被当作工具攻击他人。
Random Drop 算法。 当流量达到一定的阈值时,按照算法规则丢弃后续报文,以保持主机的处理能力。其不足是会误丢正常的数据包,特别是在大流量数据包的攻击下,正常数据包犹如九牛一毛,容易随非法数据包被拒之网外。
SYN Cookie 算法。采用“六次握手”技术以降低受攻击率。其不足是依据列表查询,当数据流量增大时,列表急剧膨胀,计算量随之提升,容易造成响向延迟乃至系统瘫痪。
③路由器设置
以 CISCO 路由器为例,可采取如下方法:
Cisco Express Forwarding(CEF)。
使用 Unicast reverse-path。
访问控制列表(ACL)过滤。
设置数据包流量速率。
升级版本过低的 IOS。
为路由器建立 log server。
不论防火墙还是路由器都是到外界的接口设备,在进行防 DDoS 设置的同时,要权衡可能牺牲的正常业务的代价,谨慎行事。
④利用负载均衡技术
就是把应用业务分布到几台不同的服务器上。采用循环 DNS 服务或者硬件路由器技术,将进入系统的请求分流到多台服务器上。这种方法要求投资比较大,相应的维护费用也高,中型网站如果有条件可以考虑。
以上方法对流量小、针对性强、结构简单的 DoS 攻击进行防范还是很有效的。而对于DDoS 攻击,则需要能够应对大流量的防范措施和技术,需要能够综合多种算法、集多种网络设备功能的集成技术。
1.DDoS 的基本概念
分布式拒绝服务(Distributed Denial of Service,DDoS)攻击是指借助于客户-服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动 DDoS 攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃账号将 DDoS 主控程序安装在一个计算机上,在一个设定的时间,主控程序将与大量代理程序通信,代理程序已经被安装在Internet 上的许多计算机上。代理程序收到指令时就发动攻击。利用客户-服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
2.DDoS 攻击原理
下面结合几个 DDoS 实例,介绍 DDoS 攻击原理。
①Smurf 与 Fraggle
将一个目的地址设置成广播地址(以太网地址为 FF:FF:FF:FF:FF:FF:FF)后,它将会被网络中所有主机接收并处理。显然,如果攻击者假冒目标主机的地址发出广播信息,则所有主机都会向目标主机回复一个应答而使目标主机湮没在大量信息中,无法提供新的服务。这两个攻击就是利用广播地址的这一特点将攻击放大而实施的拒绝服务攻击。其中,Smurf 是用广播地址发送 ICMP ECHO 包,而 Fraggle 是用广播地址发送 UDP 包。
显然,Smurf 为了能工作,必须要找到攻击平台,这个平台就是:其路由器上启动了 IP广播功能——允许 Smurf 发送一个伪造的 Ping 信息包,然后将它传播到整个计算机网络中。另一方面,为防止系统成为 Smurf 攻击的平台,要将所有路由器上 IP 的广播功能都禁止(一般来讲,IP 广播功能并不需要)。但是,攻击者若从 LAN 内部发动一个 Smuf 攻击,在这种情况下,禁止路由器上的 IP 广播功能就没有用了。为了避免这样一个攻击,许多操作系统都提供了相应设置,防止计算机对 IP 广播请求作出响应。
挫败一个 Smurf 攻击的最简单的方法就是对边界路由器的回音应答(echo reply)信息包进行过滤,然后丢弃它们,使网络避免被湮没。
②trinoo
trinoo 是复杂的 DDoS 攻击程序,它使用了前面介绍过的主控程序 master 对实际实施攻击的任何数量的“代理”程序实现自动控制。图 7.47 形象地表明了它的攻击原理。图中的“傀儡机”就是一些“代理”,“控制傀儡机”就是安装有 master 程序的计算机。该图对介绍 DDoS 更具有一般性。
在这里插入图片描述
图 7.47 DDoS 的一般原理
一个比较完善的 DDoS 攻击体系分成以下 4 部分:
攻击者所在机。
控制机(用来控制傀儡机)
傀儡机。
受害者。
对受害者的攻击是从傀儡机上发出的,控制机只发布命令而不参与实际的攻击。
trinoo DDos 攻击的基本过程是:攻击者连接到安装了 master 程序的计算机,启动 master程序,然后根据一个 IP 地址的列表,由 master 程序负责启动所有的代理程序。接着,代理程序用 UDP 信息包冲击网络,攻击目标。在攻击之前,侵入者为了安装软件,已经控制了装有 master 程序的计算机和所有装有代理程序的计算机。
DDoS 就是利用更多的傀儡机来发起进攻,以更大的规模来进攻受害者。
③TFN2K
TFN(tribe flood network,作者是德国的 Mixter,主页网址为 http://mixter.void.ru/papers. html)与 trinoo 一样,使用一个 master 程序与位于多个网络上的攻击代理进行通信。TFN 可以并行发动数不胜数的 DoS 攻击,类型多种多样(如 UDP 攻击、TCP SYN 攻击、ICMP 回音请求攻击以及 ICMP 广播),而且还可建立带有伪装源 IP 地址的信息包。
TFN2K(tribe flood network 2000)是 TFN 的一个更高级的版本,它“修复”了 TFN 的某些缺点。
④Stacheldraht
Stacheldraht 也是基于 TFN 的,它采用和 trinoo 一样的客户机-务器模式,其中 master程序与潜在的成千个代理程序进行通信。在发动攻击时,侵入者与 master 程序进行连接。Stacheldraht 增加了以下新功能:攻击者与 master 程序之间的通信是加密的,以及使用 rcp(remote copy,远程复制)技术对代理程序进行更新。
3.DDoS 系统的一般结构
在更一般的情况下,DDoS 可能使用多台控制机,形成如图 7.48 所示的结构。
在这里插入图片描述
图 7.48 DDoS 的一般攻击结构
4.DDoS 的监测
现在网上 DDoS 攻击日益增多,只有及时检测,及早发现自己受到攻击才能避免遭受惨重的损失。检测 DDoS 攻击的主要方法有以下几种。
①根据异常情况分析
异常情况包括:
网络的通信量突然急剧增长,超过平常的极限值时。
网站的某一特定服务总是失败。
发现有特大型的 ICP 和 UDP 数据包通过或数据包内容可疑。
②使用 DDoS 检测工具
扫描系统漏洞是攻击者最常进行的攻击准备。目前市面上的一些网络入侵检测系统,可以杜绝攻击者的扫描行为。另外,一些扫描器工具可以发现攻击者植入系统的代理程序,并可以把它从系统中删除。
5.DDoS 攻击的防御策略
DDoS 攻击的隐蔽性极强,迄今为止,人们还没有找到防御 DDoS 攻击的行之有效的解决方法。所以加强安全防范意识、提高网络系统的安全性,还是当前最为有效的办法。可以采取的基本安全防御措施有以下几种。
①及早发现系统存在的攻击漏洞,及时安装系统补丁程序。对一些重要的信息(例如系统配置信息)建立和完善备份机制。对一些特权账号(例如管理员账号)的密码设置要谨慎。通过这样一系列的举措可以把攻击者的可乘之机降低到最小。
②在网络管理方面,要经常检查系统的物理环境,禁止那些不必要的网络服务。建立边界安全界限,确保输出的包受到正确限制。经常检测系统配置信息,并注意查看每天的安全日志。
③利用网络安全设备(如防火墙)来加固网络的安全性,配置好它们的安全规则,过滤掉所有可能的伪造数据包。
④与网络服务提供商协调工作,让他们帮助实现路由的访问控制和对带宽总量的限制。
⑤当发现自己正在遭受 DDoS 攻击时,应当立即启动应急策略,尽快地追踪攻击包,并且要及时联系 ISP 和有关应急组织,分析受影响的系统,确定涉及的其他节点,从而阻挡从已知攻击节点的流量。
⑥发现自己的计算机被攻击者用做主控端和代理端时,不能因为自己的系统暂时没有受到损害而掉以轻心,因为攻击者已发现你系统的漏洞,这是一个很大的潜在威胁。同时一旦发现系统中存在 DDoS 攻击的工具软件要及时把它清除,以免留下后患。
除了上面几种基本防范措施外,对不同组织还可采取下面手段或措施:
①企业网络管理员可采取的措施
网络管理员作为一个企业内部网的管理者,可以从主机与网络设备两个角度去考虑安全措施。
主机上的设置。几乎所有的主机平台都有抵御 DoS 的设置,如关闭不必要的服务、限制同时打开的 SYN 半连接数目、缩短 SYN 半连接的 time out 时间、及时更新系统补丁。
网络设备上的设置。网络设备上的安全措施可以从防火墙与路由器上考虑。在进行防御 DDoS 设置的同时,要注意这是以多大的效率牺牲为代价的。必要时可采用专门的抗 DDoS 防火墙设备,这类设备对网络通信效率影响较小。
防火墙上的设置。其主要功能是禁止对主机的非开放服务的访问、限制同时打开的 SYN 最大连接数、限制特定 IP 地址的访问、严格限制对外开放的服务器的向外访问、启用防火墙的防 DDoS 功能。
防止自己的服务器被攻击者当做“肉鸡”去攻击别人。
路由器上的设置。以 Cisco 路由器为例,可采取如下设置:
使用 Cisco Express Forwarding(CEF)、使用 unicast reverse-path、访问控制列表(ACL)过滤、设置 SYN 数据包流量速率、为路由器建立 log server。其中使用 CEF 和 Unicast 设置时要特别注意,使用不当会造成路由器工作效率严重下降。
1 ISP/ICP 管理员可采取的措施
ISP/ICP 为很多中小型企业提供了各种规模的主机托管业务,在防御 DDoS 时,除了可采取与企业网络管理员一样的手段外,还要特别注意自己管理范围内的客户托管主机不要成为傀儡机。客观地说,这些托管主机的安全性普遍是很差的,有的连基本的补丁都没有打就赤膊上阵了,成为黑客最喜欢的“肉鸡”。不管黑客怎么用这台机器都不容易被发现,而它又是高性能、高带宽的主机,似乎就是为做 DDoS 的“肉鸡”定制的。托管主机难管的原因是,作为 ISP 的管理员,对托管主机的管理的权力是客户授予的,而很多客户与托管主机服务商的配合、沟通不是很好,造成 ISP 管理员有时明知自己负责的一台托管主机已成为傀儡机,不能及时采取措施的局面。
2 骨干网络运营商可采取的措施
骨干网络运营商提供了互联网存在的物理基础。如果骨干网络运营商可以很好地合作的话,DDOS 攻击可以很好地被预防。在 2000 年,Yahoo 等知名网站被攻击后,美国的网络安全研究机构提出了骨干运营商联手合作解决 DDoS 攻击的方案。方法很简单,就是每家运营商在自己的出口路由器上进行源 IP 地址的验证,如果在自己的路由表中没有这个数据包源 IP 的路由,就丢掉这个包。这种方法可以阻止黑客利用伪造的源 IP 地址来进行 DDOS攻击。不过这样做会降低路由器的效率,而由于效率却又是骨干运营商非常关注的问题,所以这种做法要真正采用还很困难。
作为网络管理员,如果所管理的网络还没有安装抗 DDoS 防火墙的话,也应该做到把自己的网络与主机“看管”好,首先让自己的主机不要成为“肉鸡”去攻击别人;其次在受到攻击的时候,要能及时发现并尽量地保存证据,以便事后追查。维护一个良好的日志系统或安装使用入侵检测系统对做好这两点是很有帮助的。
当然还是有一些有效的防范措施。目前最有效的手段是使用专用的抗 DDoS 防火墙。

三、实验环境

1.安装有 Windows 操作系统的 PC,编程工具可选用 VC++6.0。
2.由 HUB 或交换机组成的有若干台 PC 的局域网
DDoS 实验网络拓扑如图 7.49 所示。实验在局域网中进行,各计算机充当的角色如图所标注。网络操作系统使用 Windows 2000/2003 Server,DDoS 软件使用“风云压力测试”,防范软件采用“冰盾防火墙”。
在这里插入图片描述

四、实验内容

1.在一个局域网环境中,根据实验内容中提供的 DoS 程序,编写一个 SYN Flood 拒绝服务程序。使用自己编写的 DoS 程序攻击实验室的一台实验主机,在实验主机上安装一个网络监听工具(如 tcpdump 等),观测 DoS 攻击效果。
2. 交自己编写的 SYN Flood 拒绝服务攻击程序源代码,并对代码中的关键步骤添加注释,通过网络监听工具观测攻击效果,并对实验结果进行分析。
有关 DoS 的样例程序参见本书所附的光盘。
在这里插入图片描述
在这里插入图片描述
1.实验内容
如图 7.49 所示,4 台傀儡机 C2~C5 上安装独裁者 DDoS 服务器端程序,C1 上安装客户端程序,C6 上安装启用冰盾抗 DDoS 防火墙,C7 上不使用防火墙,C6 和 C7 上各建立一个简单的 Web 站点。让 4 台傀儡机对它们同时发起 SYN 攻击,观察、分析攻击的结果。
警告:本实验所用到的软件均从网上下载的共享软件,仅用于了解 DDOS 攻击的原理和方式,请勿用于非法用途,否则,法律责任由使用者承担!!!
2.实验步骤
(1)按照如图 7.49 所示的连接网络,各主机 IP 地址设置在同一网段。
(2)C2~C5 上安装风云压力测试 DDoS 服务器端程序。
风云压力测试是一款可以控制大量服务器进行 DDoS 的工具,支持多种种攻击方法:SYN、UDP、TCP、ICPM、TCP 并发连接等等,危险程度很高。
下载软件安装解压后可以看见目录下有一个风云生成器文件。打开后如图 7.50 所示:
在这里插入图片描述
图 7.50 “风云生成器”运行界面
其中,上线域名:是通过域名服务端向客户端发送消息的,需要自己配置。为了在局域网中造作本实验,这里的域名是安装“风云 VIP 客户端.exe”的域名,在装服务端“Server.exe”的电脑的“hosts”文件最后加入这个域名和 IP。格式为:xxx.xxx.xxx.xxx 域名。示例:192.168.1.12 stufy.3322.org
上线端口:客户端和服务器端数据传送的端口
域管理证号:默认
管理证号密码:默认。
然后,点击“生成版本”,生成客户端“风云 VIP 客户端.exe”和服务端“Server.exe”,其他文件是生成的配置文件。如图 7.51 所示:
在这里插入图片描述
图 7.51 “风云压力测试软件”的客户端和服务端
作为一个 DDoS 工具,为了隐蔽,以 C/S 的形式存在。Server.exe 是服务端,把它设法传到“肉鸡”上运行即可。这个文件不需要配置,运行后可使用客户端程序“风云 VIP客户端.exe”进行控制。
在服务器上装上 Server.exe,在客户端上装上“风云 VIP 客户端.exe”程序。
运行“风云 VIP 客户端.exe”,出现的主界面如图 7.52 所示,其中“主机列表”中是所控制的被植入并运行服务端程序的主机(“肉鸡”)。单击“开始监听”按钮可检测上线“肉鸡”,有效 “肉鸡”的 IP 地址会在下方的信息栏显示出来。
在这里插入图片描述
图 7.52 风云 VIP 客户端主界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从图 7.52 可见,上线域名:stufy.3322.org 是开始运行生成器时候配置的,有两台“肉鸡”210.40.2.201 和 210.40.20.213,还有多种攻击方式可供选择。本攻击实验是在网络实验室中进行的,也可以在虚拟网络上进行实验。
在这里插入图片描述
在这里插入图片描述
(3)在 C1 上运行“风云 VIP 客户端.exe”,在出现的如图 7.52 所示的界面上单击“扫描主机”按钮,连接 4 台傀儡主机;“攻击方式”选择 SYN,在“组 1 目标”栏输入 C6 的IP 地址。然后单击“开始攻击”按钮对 C6 进行攻击。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)在 C1 上再次运行“风云 VIP 客户端.exe”,进行和(3)同样的操作,只是将目标 IP地址改成 C7 的,对 C7 进行攻击。
(5)在 C6 上安装启用冰盾抗 DDoS 防火墙冰盾防火墙是具备 IDS(入侵检测)功能的抗 DDoS 防火墙,入侵检测采用了生物基因鉴别技术,能智能识别各种 DDoS 攻击和黑客人侵行为。防火墙采用微内核技术实现,工作在系统的最底层,能充分发挥 CPU 的效能,占用内存少。该公司的报告称:在抗 DDoS 攻击方面,工作于 100MB 网卡的冰盾的可抵御每秒 25 万个 SYN 包攻击,工作于 1000MB网卡冰盾约可抵御每秒 160 万个 SYN 包攻击;在防黑客入侵方面,冰盾可智能识别 Port 扫描、Uicode 恶意编码、SQL 注入攻击、Trojan 木马上传、Exploit 漏洞利用等 2000 多种黑客入侵行为并自动阻止。
冰盾防火墙的主要防护功能如下。
(1)阻止 DoS 攻击,如 TearDrop、Land、Jolt、IGMP Nuker、Boink、Smurf、Bonk、BigPing、OOB 等数百种。
(2)抵御 DDoS 攻击,如 SYN/ACK Flood、ICMP Flood、TCP Flood 等所有流行的DDOS 攻击。
(3)拒绝 TCP 全连接攻击:自动阻断某一 IP 对服务器特定接口的大量 TCP 全连接资源耗尽攻击。
(4)防止脚本攻击:能防范 ASP、PHP、PERL、JSP 等脚本程序的洪水式 Flood 调用导致数据库和 Web 崩溃的拒绝服务攻击。
(5)能对付的 DDoS 工具有:XDoS、HGOD、SYNKILLER、CC、GZDoS、PKDoS、JDoS、KKDoS、SUPERDDoS、FATBOY、SYNKFW 等数十种。
(6)超强 Web 过滤:过滤 URL 关键字、Unicode 恶意编码、脚本木马、防止木马上传等。
(7)侦测黑客入侵:智能检测 Port 扫描、SQL 注入、密码猜测、Exploitt 利用等 2000多种黑客入侵行为并阻断。
冰盾提供限工作时间的免费版本在冰盾官方网站和国内各大下载站点供下载使用,注册后取消限时。如图 7.53 所示的是冰盾 v8.2 运行后的主界面。
在这里插入图片描述
图 7.53 冰盾 v8.2 运行后的主界面
界面简单明白,一般防护不需特别设置,使用时单击“启动防火墙”按钮,系统即对攻击进行检测和防护。
对一些特殊的攻击则要进行设置,下面以防护 CC 攻击为例加以说明。
挑战黑洞(Challenge Collapsar,CC)攻击机制是通过多代理多线程不停地对目标服务器发起连接请求,而攻击者的计算机指令代理转发连接请求后马上断开与代理的连接,由代理发起的连接会造成目标不堪负荷而终止服务。例如,对传奇私服的攻击是攻击其 7000 接口为主,现象为客户登录游戏非常缓慢或者无法登录游戏,在服务器端用 Netstat-na 命令会观察到有数百上千个 IP 地址不停地连接 7000 接口,若用 Sniffer 观察会发现这些 IP 地址在不停地连接 7000 接口再断开、再连接,如此反复,导致服务器的 LoginGate 工作不稳定而无法接收新连接,最终造成客户端无法登录。
冰盾防火墙是通过限制来自同一 IP 地址的最大连接数来降低攻击的强度,具有一定的效果。设置抗 CC 攻击的设置步骤如下:
在主界面上单击“连接限制”按钮,即会弹出“Add Tcp Port”对话框,如图 7.54 所示,填写 TCP 防护基本信息,例如在“Tcp 基本信息”之“服务器 TCP 接口”栏输入 7000,在“空连接阀值”栏输入 15。
在这里插入图片描述
图 7.54 填写 TCP 防护基本信息
在“TCP 约束”区单击“服务器资源占用限制”栏的“设置”按钮,在弹出的“Tcp 连接约束”选项卡中填入如图 7.55 所示的参数,然后单击“确定”按钮完成设置。
这样通过对同一个 IP 地址维持目标连接的数目和在一定时间内新建连接的数目进行限制,超过限制数量的请求数据包一律丢弃,从而有效防御 CC 攻击。
在这里插入图片描述
图 7.55 填入“TCP 连接约束”参数
(6)每隔一会儿从 C1 上访问 C6 和 C7 的 Web 页面,同时观察 C7 上冰盾的攻击监控窗口。
(7)攻击进行一段时间后,C7 的 Web 页面访问不到了,而 C6 的 Web 页面则一直都能访问。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、思考题

  1. 如何防止和发现拒绝服务攻击?
    答:议在该网段的路由器上做些配置的调整,这些调整包括限制Syn半开数据包的流量和个数。要防止SYN数据段攻击,我们应对系统设定相应的内核参数,使得系统强制对超时的Syn请求连接数据包复位,同时通过缩短超时常数和加长等候队列使得系统能迅速处理无效的Syn请求数据包。在路由器的前端做必要的TCP拦截,使得只有完成TCP三次握手过程的数据包才可进入该网段,这样可以有效地保护本网段内的服务器不受此类攻击。对于信息淹没攻击,我们应关掉可能产生无限序列的服务来防止这种攻击。比如我们可以在服务器端拒绝所有的ICMP包,或者在该网段路由器上对ICMP包进行带宽方面的限制,控制其在一定的范围内。
  2. 怎样修改 TCP 协议来防止拒绝服务攻击?
    在等待SYN ACK的ACK时,目标主机上限定大小的连接队列将跟踪等待完成的连接。这个队列典型情况下会很快腾空,因为ACK在SYN ACK的几毫秒之后就会到达。TCP SYN攻击就利用了这种设计,其中攻击源主机生成随机源地址的TCPSYN数据包发往受害主机。受害者主机向某个随机源地址返回一个SYN ACK数据包,并向连接队列增加一个条目。因为SYNACK被设计来用于一个不正确的或非存在的主机,所以“三次握手”的最后部分绝不可能完成,而此条目一直位于连接队列中直至计时器超时,典型情况下也就是大约一分钟的时间。通过以极高的速率生成来自随机IP地址的欺诈性TCPSYN数据包,就能够填满连接队列并对合法用户拒绝TCP服务(如电子邮件、文件传输、Web服务)
  3. 编写一个 DoS 攻击检测程序,并对检测结果进行分析。
  4. DOS 与 DDoS 在原理上的区别有哪些?
    DOS:中文名称是拒绝服务,一切能引起DOS行为的攻击都被称为DOS攻击。该攻击的效果是使得计算机或网络无法提供正常的服务。常见的DOS攻击有针对计算机网络带宽和连通性的攻击。 DOS是单机于单机之间的攻击。DDOS:中文名称是分布式拒绝服务攻击。指的是攻击者控制多台主机同时向同一主机或网络发起DOS攻击。
  5. 编写一个 DDoS 攻击检测程序,并对检测结果进行分析。

猜你喜欢

转载自blog.csdn.net/sjx3161/article/details/125122284
今日推荐