分布式拒绝服务攻击的精髓是,利用分布式的客户端,向服务提供者发起大量看似合法的请求,消耗或长期占用大量资源,从而达到拒绝服务的目的。
从不同的角度看,分布式拒绝服务攻击的方法有不同的分类标准。
依据消耗目标资源的不同,可分为攻击网络带宽资源、攻击系统资源和攻击应用资源三类。
依据攻击数据包发送的频率和速度来划分,又可以分为洪水攻击和慢速攻击。

1.攻击网络带宽资源
无论是服务器的网络接口带宽,还是路由器、交换机等互联网基础设施,其数据包处理能力都是存在着事实上的上限的,当到达或通过的网络数据包数量超过了这个上限时,就会出现网络拥堵、响应缓慢的情况。
消耗网络带宽资源的DDos攻击就是根据这个原理,利用受控主机发送大量的网络数据包,占满被攻击目标的全部带宽,从而使正常的请求无法得到及时有效的响应,造成拒绝服务。

1.1 直接攻击

1.1.1 ICMP/IGMP洪水攻击
网络控制消息协议ICMP用于在TCP/IP网络中发送控制信息,因特网组管理协议IGMP用于管理因特网协议多播组成员。
攻击者使用受控主机向被攻击目标发送大量的ICMP/IGMP报文,进行洪水攻击以消耗目标的带宽资源。
这种类型的攻击出现得很早,但现在已不多见,被攻击目标可以在其网络边界直接过滤并丢弃ICMP/IGMP数据包使攻击无效。

1.1.2 UDP洪水攻击
用户数据报协议UDP是一种面向无连接的传输层协议,主要用于不要求分组顺序到达的传输目的。
利用UDP数据报文,攻击者可以发动洪水攻击,通常会分为小包和大包两种攻击方式。
小包是指64字节大小的数据包,这是以太网上传输数据帧的最小值。
在相同流量下,单包体积越小,包数量就越多。
由于交换机、路由器等网络设备需要对每一个数据包进行检查和校验,因此使用UDP小包攻击能够最有效地增大网络设备处理数据包的压力,造成处理速度的缓慢和传输延迟等拒绝服务效果。
大包是指1500字节以上的数据包,其大小超过了以太网的MTU最大传输单元,使用UDP大包攻击,能够有效地占用网络接口的传输带宽,并迫使被攻击目标在接收到UDP数据时进行分片重组,造成网络拥堵,服务响应缓慢。
UDP洪水攻击出现得很早,它完全依靠受控主机本身的网络性能,通常对攻击目标带宽资源的消耗并不太大。

1.2 反射和放大攻击

1.2.1 ACK反射攻击
在传输控制协议TCP建立连接时,首先会进行TCP三次握手。
在此过程中,当服务器端接收到客户端发来的SYN连接请求时,会对该请求进行ACK应答。
利用TCP握手的ACK应答,即可进行ACK反射攻击。
如果攻击者将SYN的源IP地址伪造成被攻击目标的IP地址,服务器的应答也就会发送给被攻击目标。
由于使用TCP协议的服务在互联网上广泛存在,攻击者可以通过受控主机向大量不同的服务器发送伪造源IP地址的SYN请求,从而使服务器响应的大量ACK应答数据涌向被攻击目标,占用目标的网络带宽资源并造成拒绝服务。
在发动ACK反射攻击时,首先需要进行扫描,获得大量的反射器地址,并分别向这些反射器发送伪造源地址的SYN请求数据。
ACK反射攻击的优点主要在于能够比较有效地隐藏攻击的来源。

1.2.2 DNS放大攻击
域名系统DNS是因特网的一项核心服务,它将域名和IP地址相互映射。DNS使用TCP/UDP 53端口通信,主要使用UDP协议。
通常,DNS响应数据包会比查询数据包大,因此攻击者利用普通的DNS查询请求就能够发动放大攻击。
在以前,对DNS查询的响应数据包被限制在512字节以内,多余的字节根据实现的不同可能会被丢弃或使用TCP协议建立连接并重传。
后来出现了DNS扩展机制EDNS0扩展了DNS数据包的结构,增加了OPT RR字段。
该字段包含了客户端能够处理的最大UDP报文大小的信息,服务端在响应DNS请求时,根据该字段的大小生成响应报文。
攻击者发送的DNS查询请求数据包大小一般为60字节左右,而查询返回结果的数据包大小通常在3000字节以上。使用该方式进行放大攻击能够达到50倍以上的放大效果。
发动DNS放大攻击需要先进行扫描,获得大量的开放DNS解析器地址,并向这些地址发送伪造源IP的查询命令来放大攻击流量。

1.2.3 NTP放大攻击
网络时间协议NTP用于使计算机与时钟源进行同步和校正,它使用UDP 123端口通信。
NTP协议的monlist请求能够获取与目标NTP服务器进行同步的最近600个客户端的IP地址等信息。
这意味着,只需要发送一个很小的请求包,就能够触发大量连续的UDP响应数据包。
使用该方式进行放大攻击能够达到700倍以上的放大效果。
发动NTP放大攻击需要先进行扫描,获得大量的NTP服务器,并向这些NTP服务器发送伪造源地址的请求来放大攻击流量。

1.2.4 SNMP放大攻击
简单网络管理协议SNMP是目前网络中应用最为广泛的网络管理协议,它使用UDP 161端口通信。
攻击者向广泛存在并开启了SNMP服务的网络设备发送GetBulk请求,使用默认通信字符串作为认证凭据,并将源IP地址伪造成攻击目标的IP地址。
设备收到GetBulk请求后,会将响应结果发送给攻击目标。当大量的响应结果涌向攻击目标时,就会导致攻击目标网络拥堵和缓慢,造成拒绝服务。
使用该方式进行放大攻击能够达到25倍以上的放大效果。
在发动SNMP放大攻击时,需要先进行扫描,获得开放SNMP协议的网络设备,虽然开放SNMP协议的网络设备很多,但是还需要猜测它们使用的默认通信字符串,因此该方式更复杂一些。

DDoS攻击与防御(1)的更多相关文章

  1. 通过DDOS攻击流程图来浅谈如何预防Ddos攻击与防御

    DDOS攻击流程图 站长之家配图(来源:ppkj.net) 一 背景 在前几天,我们运营的某网站遭受了一次ddos攻击,我们的网站是一个公益性质的网站,为各个厂商和白帽子之间搭建一个平台以传递安全问题 ...

  2. 浅谈 DDoS 攻击与防御

    浅谈 DDoS 攻击与防御 原创: iMike 运维之美  什么是 DDoS DDoS 是英文 Distributed Denial of Service 的缩写,中文译作分布式拒绝服务.那什么又是拒 ...

  3. DDoS 攻击与防御:从原理到实践

    本文来自 网易云社区 . 可怕的 DDoS 出于打击报复.敲诈勒索.政治需要等各种原因,加上攻击成本越来越低.效果特别明显等趋势,DDoS 攻击已经演变成全球性的网络安全威胁. 危害 根据卡巴斯基 2 ...

  4. DDoS 攻击与防御:从原理到实践(下)

    欢迎访问网易云社区,了解更多网易技术产品运营经验. DDoS 攻击与防护实践 DDoS 攻击的实现方式主要有如下两种: 自建 DDoS 平台 现在有开源的 DDoS 平台源代码,只要有足够机器和带宽资 ...

  5. DDoS 攻击与防御:从原理到实践(上)

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 可怕的 DDoS 出于打击报复.敲诈勒索.政治需要等各种原因,加上攻击成本越来越低.效果特别明显等趋势,DDoS 攻击已经演变成全球性的网络安全威胁 ...

  6. DDOS攻击与防御简单阐述,列出DDOS的攻击方法和防御方法

    参考1:https://www.hi-linux.com/posts/50873.html#%E7%BD%91%E7%BB%9C%E5%B1%82-ddos-%E6%94%BB%E5%87%BB 什么 ...

  7. DDoS攻击与防御(4)

    在发生DDoS攻击的情况下,可以通过一些缓解技术来减少攻击对自身业务和服务的影响,从而在一定程度上保障业务正常运行.缓解DDoS攻击的主要方法是对网络流量先进行稀释再进行清洗. 1.攻击流量的稀释 1 ...

  8. DDoS攻击与防御(3)

    3.攻击应用资源网络应用和服务在处理数据时,通常需要消耗一定的网络连接.计算和存储资源,这些资源是由应用程序向系统进行申请并自行管理和维护的.消耗应用资源的DDoS攻击就是通过向应用提交大量消耗资源的 ...

  9. DDoS攻击与防御(2)

    2.攻击系统资源终端设备在与服务器进行通信时,经常需要创建会话连接,在此过程中通常会使用TCP和SSL等协议.会话连接一旦被占满,新进入的会话请求就必须等待前面的会话完成.消耗系统资源的DDoS攻击的 ...

随机推荐

  1. idea Unable to open debugger port (127.0.0.1:58006) Address already in use: JVM_Bind 的解决办法

    报错说端口58006 被占用了,于是去修改端口 重新dubug 发现换个端口号还是不行,同样的错误.有时候你把idea关闭重新打开依旧不起作用.最暴力的办法就是重启电脑... 问题解决: 查看使用中的 ...

  2. C#将DLL嵌入到exe当中

    1.选中项目文件,找到Resources.resx,双击Resources.resx,然后添加文件(选择需要的dll文件),点击确定,项目下会自动生成一个Resources文件夹,里面包含添加dll. ...

  3. Confluence 6 站点高级自定义

    你可以继续编辑的全局布局文件来继续更新你的主面板.请查看 Customizing the Confluence Dashboard 页面来获得更多有关的信息.你需要具有一些基本的Velocity 知识 ...

  4. 开源中国社区 https://git.oschina.net/ 添加 SSH 公钥 添加

    首先可以参考官方的帮助文档 http://git.mydoc.io/?t=154712 然后进去码云首页 http://git.oschina.net 然后找到右边的头像点击一下  然后点击修改资料 ...

  5. 中介模型以及优化查询以及CBV模式

    一.中介模型:多对多添加的时候用到中介模型 自己创建的第三张表就属于是中介模型 class Article(models.Model): ''' 文章表 ''' title = models.Char ...

  6. 量化投资与Python

    目录: 一.量化投资第三方相关模块 NumPy:数组批量计算 Pandas:表计算与数据分析 Matplotlib:图表绘制 二.IPython的介绍 IPython:和Python一样 三.如何使用 ...

  7. LeetCode(83): 删除排序链表中的重复元素

    Easy! 题目描述: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1-&g ...

  8. 对<tr><td>标签里的input 循环取值

    需求描述:单击table整行,跳转到具体的信息页面  关键就是获取整行的id,传给后台做查询,返回list 解决思路:用带参数函数传过去id,然后在js的函数中用$("#id"). ...

  9. Python基础之面向对象进阶一

    一.isinstance(obj,cls)和issubclass(sub,super) 1.isinstance(obj,cls)检查obj是否是类 cls 的对象 class A: pass obj ...

  10. Python基础之初识类和对象

    我们在前面学习了解了面向过程编程,接下来我们一起来学习一下面向对象编程.其实不管是面向过程,还是面向对 象,说白了就是一种编程方式而已.既然是面向对象编程,顾名思义,此编程方式的落地需要使用 “类” ...