拒绝服务攻击

拒绝服务攻击(DOS)


  1. 拒绝服务攻击简介
  • 拒绝服务攻击是一种耗尽cpu,内存,带宽以及磁盘空间等系统资源,来削弱或阻止对网络,系统或应用程序的授权使用的行为。
  • DOS一般攻击目标网络的网络服务,通过攻击其网络连接来实现。
  • DOS的攻击对象:

网络带宽:
网络带宽与连接服务器和因特网的网络链路容量有关,通常指的是机构连接到ISP的链路容量,这个连接容量低于ISP路由器内部或ISP路由器之间的链路容量。

如果经过具有高容量的链路到达ISP的通信量要大于到达机构链路的容量,在这种情况下,ISP路由器必须转发到达机构链路所能承载的最大容量,多余的流量必须丢弃。
在DOS攻击的情况下,攻击者直接或间接的制造大量流量访问目标服务器,这种流量相对于用户正常访问服务的流量来说是什么巨大的,那么就会导致用户真实的访问被丢弃,从而有效的拒绝了用户对服务器的访问。

系统资源:
针对系统资源的DOS攻击,是指通过过渡加载或使系统的网络处理程序崩溃来实现攻击的。
利用特殊类型的数据包耗尽服务器上有限的可用系统资源,从而达到攻击的目的,这些系统资源包括接受数据包的临时缓冲区,连接表和类似内存数据结构。
利用特殊类型的数据包来触发系统的网络处理程序的缺陷,从而导致系统崩溃,除非管理员重新启动网络处理程序,否则用户将一直得不到服务。

应用资源:
针对应用资源的攻击通常是一定数量的合法请求,而每个合法请求都会消耗掉一定的服务器资源,从而限制了服务器响应其他合法用户请求的目的。
通过构造一个能使服务器查询出错的请求,最终导致服务器的崩溃。

  1. 经典的拒绝服务攻击
  • 洪泛攻击-flooding attack

洪泛攻击的目标就是占据所有到目标机构的网络链路容量
攻击者可以使用大型公司的web服务器来攻击那些中小型公司的web服务器,攻击这可以通过大型公司的web服务器简单的向目标公司发送ping数据包,其中的一些数据包可能会被路由器丢弃,剩余的数据包会消耗掉中小型公司的链路的大部分容量。
在经典的ping洪泛攻击中,ICMP回送请求数据包的源地址写的是攻击者真实的IP地址,因此该方法存在一些问题:

攻击源很容易被识别
目标系统会尽可能的响应请求,每当攻击者发送一个ICMP回送请求数据包给目标公司时,便会收到一个ICMP响应数据包,这是攻击会反射给攻击源。

解决办法-源地址欺骗
只要攻击者拥有计算机处理程序的充分访问权限,攻击者就能够很快地制造出具有伪造源地址的数据包。

例如:通过操作系统的原始套接字接口来实现
安装自定义的设备驱动程序来获得硬件级的设备访问权。

拥有了对网络接口的硬件级的访问权限,攻击者可以制造出大量的目的地址指向目标系统的数据包,这些数据包的源地址是随机选择的,通常各不相同。
使用源地址欺骗后,对ping洪泛攻击,自定的ICMP请求数据包发送到目标系统后,目标系统会像虚假的源地址发送一个ICMP响应数据包,如果虚假的源地址存在,它们可能会像目标系统响应一个ICMP差错报告数据包;如不存在,则会目标系统响应一个ICMP目标不可达数据包或者数据包仅仅是被简单的丢弃,任何发送回来的数据包都会加大目标系统的网络拥塞。
对策:

可以在路由器上安装过滤器来确保源地址的真实性,过滤应该尽可能的接近源系统的路由器上,越接近源系统的路由器,它上面关于源地址的信息就越准确,因此最好的位置应该安装在机构连接到因特网的路由器上。

  • SYN欺骗

SYN欺骗通过造成服务器上的TCP连接表溢出,从而攻击网络服务器响应TCP连接请求的能力。
SYN是针对系统资源的DOS攻击,具体地说是针对操作系统上网络处理程序的攻击。
TCP三次握手中所用到的数据包都是通过IP协议传输的,而IP协议是一种不可靠的,尽力而为的网络协议。在此协议上,任何数据包在传输过程中都有可能丢失。但基于重发机制的TCP协议是一个可靠的传输协议,任何使用TCP协议进行数据传输的应用程序不需要考虑数据包的丢失或重新排序问题,但是也增加了系统在管理数据包实现可靠传输的开销。
SYN欺骗过程:
在这里插入图片描述
攻击者构造出一定数量的具有伪造源地址的SYN连接请求数据包到目标系统,对于每一个数据包,目标系统的网络处理程序都会记录该请求的详细信息到TCP连接表中,然后会向该数据包声称的源地址响应一个SYN-ACK响应数据包,如果该源地址存在,那么源地址对应的主机会响应一个RST(复位),让目标系统取消这个莫名其妙的连接请求,目标系统收到这个数据包后就是删除TCP连接表中该连接的信息;如果源地址不存在或者源地址对应的主机正在处于繁忙状态,那么目标系统会不断重发SYN-ACK数据包到目标系统,直至确认连接失败,然后删除TCP连接表中对应的信息。
从SYN连接请求数据包到达至服务器认定连接请求失败的这段时间内,服务器使用TCP连接表中的一个表项来存储相关信息,TCP连接表的大小是在假设大多数连接都能够在短时间内完成且请求的数量在合理的情况下设定的。在SYN欺骗中,攻击者发送大量的SYN请求连接到目标服务器,这些连接请求会迅速占满服务器的TCP连接表,一旦连接表占满后,后来的TCP连接请求包括正常用户的请求,都不会得到服务器的响应。
攻击者一般使用那些不会用RST响应SYN-ACK的源地址,可以使用一些超载主机的源地址或者仅仅使用大范围随机地址
SYN攻击所需要的网络流量相对于洪泛攻击来说是很小的,不会接近网络链路的最大容量,只需将TCP连接表填满即可。


洪泛攻击


  1. 洪泛攻击目的大都是使到服务器的链路超负荷,也可以是使服务器处理和响应网路流量的能力超负荷。
  2. 几乎任何类型的数据包能可以用来进行洪泛攻击,只要数据包能够到达目标系统所在的链路,那么它就可以消耗到目标系统的某个链路的所有可用流量。
  3. 通常数据包越大,攻击的效果就越好。使用越不常用的数据包,攻击效果越明显,但同时越容易被管理员发现并过滤掉。
  4. 几种类型的洪泛攻击
  • ICMP洪泛:同上述。
  • UDP洪泛

UDP数据包通常发送到目标服务器提供服务的端口上,攻击者通常将UDP数据包发送给诊断回送服务,因为这个服务一般是默认开启的,如果服务器开启了这项服务便会响应一个带有初始数据的UDP数据包给源地址,如果服务器没有开启这样服务的话,那么来自攻击者的数据包会被丢弃,然后服务器会向攻击者响应一个ICMP目的主机不可达的数据包。因此不管服务器有没有开启,攻击者都达到了消耗服务器链路容量的目的。

  • TCP SYN洪泛

通过发送TCP数据包给目标系统,通常这些数据包都是带有真实或虚假源地址的正常TCP连接请求。
TCP SYN洪泛与SYN欺骗的区别在于,TCP SYN洪泛攻击的对象是数据包的总量而不是目标系统的网络处理程序。
多机系统的TCP SYN洪泛包括:

分布式拒绝服务攻击
反射攻击
放大攻击


分布式拒绝服务攻击(DDOS)


  1. 攻击者采取等级的方式控制僵尸机,其中少量的充当执行者,用于控制大量的代理僵尸机。
    在这里插入图片描述
  2. 攻击者可以发送单一的命令给执行者,然后执行者就会自动将其通知所有在其控制之下的代理系统。
  3. 自动感染工具会自动扫面并控制合适的僵尸机,一旦代理软件被上传到一个个刚刚被控制的系统后,那么这个受控系统就会联系一个或多个执行者,并将该系统的可用性自动的通知给它们。
  4. 实例-部落洪泛网络(TFN)
  • 代理系统就是一个木马程序,这个木马程序可以在受控的僵尸系统上进行自我复制和运行,而且可以进行ICMP洪泛攻击,UDP洪泛攻击,SYN洪泛攻击等形式的DOS攻击。
  • 执行者是简单的命令程序运行在受控系统上,攻击者利用适当的机制获得僵尸机上的shell访问权,然后运行执行者程序,每一个执行者都可以控制大量的代理系统,并用提供的列表进行标识,执行者与代理系统之间的通信是经过加密的,而且会伴随着一些诱骗的数据包迷惑管理员,防止被监控或进行流量分析,而且他们之间的通信以及攻击本身可以通过随机化TCP,UDP和ICMP数据包来发送。

放射攻击与放大攻击


  1. 反射攻击
  • 攻击者将目标系统地址作为数据包的源地址,并将这些数据包发送给中间媒介上的已知的网络服务,当中间媒介响应时,大量当响应数据包会被发送源地址所指向的目标系统,它能有效的从中间媒介反射出去。
  • 攻击者希望他们所利用的网络服务是一个用较小请求产生就可以产生较大响应数据包服务,任何常用UDP服务都可以用来进行这种攻击,chargen,DNS,SNMP和ISAKMP服务都可以产生大量响应数据包而曾被用来进行反射攻击。
  • 作为反射的中间系统往往是具有较高性能的网络服务器或较高连接性能的路由器。
  • 另一种类型的反射攻击利用TCP SYN数据包和建立TCP连接三次握手进行攻击,攻击者会发送一些带有虚假源地址的SYN数据包给中间媒介,作为回应,中间媒介会响应一个SYN-ACK的数据包给这个源地址指向的主机,这是真正的目标系统。攻击者用一定数量的中间媒介产生大量的SYN-ACK数据包,这种攻击的目的就是在目标系统的网络上形成足够大流量的数据包,洪泛攻击的是目标网络的链路,目标网络收到SYN-ACK数据包,由于自己本没有提出建立连接的请求,会响应一个RST包。此时攻击者已经达到淹没目标系统的网络链路的目的。
  • 另一种改进型的反射攻击是在中间媒介和目标系统上建立一条自包含的回路,如果UDP回送服务运行在两个系统上,则用它来达到这个目的。
    在这里插入图片描述

攻击者发送较大的UDP数据包给中间媒介上的回送服务,其中UDP数据包中的源地址和端口号是目标系统的上提供的UDP回送服务的源地址和端口号,中间媒介收到数据包后,会对目标是系统的回送服务发送数据包加以响应,目标系统接收到数据包后,也会反过来对中间媒介加以响应,这样就形成了一个死循环-中间媒介和目标系统之间不断有UDP回送数据包进行传输,除非某个UDP回送数据包在传输的过程中丢失,这个反射回路才被停止。
回送和chargen服务以及其他的类似的网络诊断服务都可以形成这样的反射回路。
反射攻击的另一个特点是他没有反向散射流量。
成功进行反射攻击的基本要求是能够生成具有虚假源地址的数据包,如果过滤器放在适当位置,就可以阻止反射攻击。

  1. 放大攻击
  • 放大攻击是反射攻击的一个变种,同样是发送带有虚假的源地址的数据包给中间媒介,不同的是中介媒介对每个来自攻击者的数据包产生多个响应数据包。例如:攻击者可以发送初始请求数据包到一些广播地址,那么这个广播地址的所有主机都有可能对数据包指向的源地址进行响应,也就是这些主机将会形成一个响应数据包洪泛流。
    在这里插入图片描述
  • 实施放大攻击需要某个网络的大部分主机都提供网络处理服务

基于ICMP回送请求数据包的ping服务
选择UDP服务,如回送服务

  • TCP服务不能用于这种攻击,因为TCP服务是面向连接的,其目标地址不能是广播地址。
  • 抵御放大攻击的最好的措施就是不允许定向广播由外部进入网络。
  • 另一种抵御放大攻击的措施就是限制回送或ping等网络服务被外部机构访问。
  1. DNS放大攻击
  • 反射和放大攻击的另一个变种是将DNS服务器作为中间媒介系统,使用了直接指向DNS服务器的数据包进行攻击,攻击者利用DNS协议将较小的请求转化成较大的响应数据包从而达到攻击的效果。
  • 利用标准的DNS协议,一个60字节的UDP请求数据包可以很容易地生成一个512字节的UDP响应数据包,而仅仅需要有着足够大的DNS记录的域名服务器就可以完成其攻击过程。
  • 由于放大作用,攻击者只需要使用一个中等数量的数据包就可以形成更大的,被放大的数据流,使得目标系统的网络链路超负荷。
  • 这种攻击的一个变种就是利用递归域名服务器,DNS协议的一个基本特征是允许一个域名服务器查询大量的其他域名服务器来解析客户的查询。

攻击者以大量的开发递归DNS服务器为目标,攻击所用的域名不一定保存在这些服务器上,而是可以来自因特网上的任何位置,查询结果被直接发送给用虚假地址指定的期望目标。
防范防范:防止使用虚假地址,DNS服务器的正确配置,限定仅对内部用户系统提供递归查询。


拒绝服务攻击防范


  1. 常用的缔约措施是提供显著过剩的网络带宽和内容相同的分布式服务器。
  2. 抵御DDOS攻击的三道防线:
  • 攻击预防和先发制人机制:这种机制允许被攻击者能够承受攻击而不拒绝为合法用户提供服务,包括执行资源消耗战略,根据需求提供后备资源,修改Internet上的系统和协议,来减少DDOS攻击的可能。

根本的,长期有效的方式来抵御DDOS攻击的方法是限制主机系统发送带有虚假源地址数据包的能力,即网络输入过滤。过滤器应该尽可能地接近数据包的源头,放在可以获得输入数据包的有效地址范围的路由或网关附近。路由器上利用明确的访问控制机制来确认来自其客户的所有数据包上的源地址是否为ISP所分配的地址。也可以用过滤器来确认源地址所指向的返回路径是否与发送过来的路径一致。安装过滤器后也会对路由器的性能产生一些影响。

可以使用改进版本的TCP连接处理程序专门抵御SYN欺骗攻击-SYN Cookie

其核心技术是服务收到SYN连接请求数据包后,返回一个SYN-ACK数据包时,不在连接表中记录该请求的信息,而是根据这个SYN请求数据包计算出一个cookie值,然后将这个cookie值作为服务器的初始序号封装在SYN—ACK响应包中发送给客户端,但合法用户返回ACK应答包时,要求在应答包中包含序号加1的cookie值,TCP再根据那个cookie值检查这个ACK包的合法性。如果合法,再分配专门的数据进行处理未来的TCP连接。
优点:
三次握手成功之前服务器上不会有内存消耗
服务器有理由相信数据包的源地址对应一个正在与服务器交互的真实客户端
缺点:
服务器要消耗一定资源来计算cookie值
限制了某些TCP的功能

随机性丢弃:当TCP连接表溢出的时候,通过修改系统的TCP/IP网络处理程序来选择性的丢弃一些TCP连接表不完全连接的表项,从而允许新的请求。
另一种抵御SYN欺骗的措施是修改TCP/IP的网络处理程序所使用的参数,这些参数包括TCP连接表的大小以及当未收到响应时删除表项的时间,限制网络连接的速率来控制所允许的最大连接请求率。
抵御放大攻击的最好措施是屏蔽IP定向广播的使用
抵御以应用程序资源为攻击目标的DOS攻击一般要求修改作为目标的应用程序,如web服务器,抵御措施可以包括判断数据包来自合法的,人工发起的交互,还是来自自动的DOS攻击,应用程序也可以限制某种类型的交互速率以持续提供某种类型的服务。

  • 攻击检测和过滤(攻击时):这种机制试图在攻击一开始就将其检测出井迅速响应。
  • 攻击源回溯和识别(攻击时和攻击后):试图识别攻击源,通常被作为预防未来攻击的第一步。

对拒绝服务攻击的响应


  1. 当检测到一次DoS攻击时,我们首先要做的事情是判定出这次攻击的类型,并选择一个最佳的方陆来抵御这次攻击。通常这个过程应该包括:数据包的捕获、数据包的分析以及寻找常见的攻击数据包类型。通过这样的分析,我们就可以判定出所受到攻击的类型,并合理配置过滤器来过滤掉
    这些攻击数据包。
  2. 如果攻击是来自大量的分布式或反射系统的扩展的、协同的、洪泛的攻击,那么要想过滤掉足够的数据包从而保证网络连接的连通性几乎是不可能。在这种情况下,需要一个应急策略来切换到备份服务器,或者快速地用新的服务器建立具有新地址的新站点,从而恢复服务。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值