1. 什么是 DDoS

分布式拒绝服务攻击(Distributed Denial of Service),是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击。

DDoS 是一种基于 DoS 的特殊形式的拒绝服务攻击。单一的 DoS 攻击一般是采用一对一方式,利用网络协议和操作系统的缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。与 DoS 相比,DDos 借助数百上千台攻击机形成集群,发起的规模更大,更难防御的一种进攻行为。

2. 常见的 DDoS 攻击

2.1 ICMP Flood

ICMP 用于在 IP 主机,路由器之间传递控制消息(网络是否连通,主机是否可达,路由是否可用等)。ICMP 虽然不传递用户数据,但是对于用户数据的传递起着重要的作用。ICMP Flood 通过对目标系统发送海量的数据报,就可以令目标主机瘫痪,形成洪泛攻击。

2.2 UDP Flood

UDP 协议是一种无连接的协议,在 UDP Flood 中,攻击者通常发送大量伪造 IP 地址的 UDP 报去冲击 DNS 服务器,Radius 认证服务器,流媒体视频服务器等,造成服务不可用。
上述的两种是比较传统的流量型攻击,技术含量较低,以占满网络带宽使得正常用户无法得到服务为攻击方式,攻击效果通常依赖于攻击者本身的网络性能,而且容易被查找攻击源头。

2.3 NTP Flood

NTP 是标准的基于 UDP 协议的网络时间同步协议。由于 UDP 无连接的特性,NTP 服务器并不能保证收到报文的源 IP 的正确性。所以,攻击者通过将 IP 报文的源 IP 地址换为靶机的 IP 地址,并向 NTP 服务器发送大量的时间同步报文,这样,NTP 服务器的响应报文就会达到靶机上,沾满靶机网络段的带宽资源,同时也很难去追溯攻击源头。

2.4 SYN Flood

SYN Flood 是一种利用 TCP 协议缺陷,发送大量伪造的 TCP 连接请求,从而使目标服务器资源耗尽的攻击方式。如果客户端只发起第一次握手,而不响应服务端的第二次握手,那么这条连接就处于半连接状态,服务端会维持这条连接一段时间(SYN Timeout)并不断地重试。但攻击者大量的模拟这种情况,就会沾满整个服务端的连接符号表,并消耗大量的 CPU 资源进行重试操作。而对于 SNY Flood 的防御目前有两种常见的方式,一种是算短 SYN Timeout,另一种是设置 SYN Cookie,并开辟一个数组存放 Cookie,单连接没有真正建立时,不去占用连接符号表。

2.5 DNS Query Flood

DNS Query Flood 通过操纵大量的傀儡机,向本网段的域名服务器发送大量域名解析请求,通常这些请求解析的域名是随机生成或网络上根本不存在的域名,由于本地域名服务器无法找到对应的结果,就会通过层层上次给更高级的域名服务器,引起连锁反应,导致本网段内的域名解析服务瘫痪,但一般最多只会瘫痪一小段网络。

2.6 HashDos

HashDos 是一种新型的,基于 Hash 碰撞形成的攻击。随着现在 RESTful 风格的不断普及,json 格式作为数据传输的格式愈发成为主流。但是 json 反序列化为对象时,底层是通过 hash 算法来将字段与属性,属性值进行一一匹配。所以,一旦攻击者知道了我们序列化方式,构造出一段具有严重哈希碰撞的 json 数据,就会使我们服务端序列化的复杂度从 O(1) 暴增到 O(n)。

3. DDos 攻击的防御

DDos 的防御主要有两种,一种是针对流量带宽,一种是针对服务端资源。流量带宽一般需要通过运营商采用 ISP 黑洞,近源清洗等策略,在源头(即攻击者所在的网段)进行拦截,而不是等到所有的细流汇聚成猛水时才进行拦截。

而对于服务端的资源,则是当下 DDos 的重灾区,本文以攻防对抗的方式讲述 DDos 的发展历程。

  1. 第一回合:
  • 防:在报文头中设置一些特征字段,如果服务端接收的请求报头中没有此特征字段,则视为恶意请求,直接过滤。
  • 攻:通过收集正常用户的请求报文进行重放,或者对报文格式进行分析,得到特征字段。
  1. 第二回合:
  • 防:拦截短期内大量重复的 IP。
  • 攻:随机化伪造报文的源 IP。
  1. 第三回合:
  • 防:因为 IP 地址大约有 62 亿个,但国内的 IP 地址只有几千万个,于是我们可以根据网段过滤一些非法 IP。
  • 攻:先进行一波随机化 IP 的攻击,得到攻击的结果,再分析出可用的网段,利用这些网段进行攻击。
  1. 第四回合:
  • 防:通过指纹学习算法(在报文中增加设备指纹信息,例如设备号,操作系统,浏览器类型等),拦截短时间内相似指纹的请求。
  • 攻:对报文进行分析,将报文的所有字段(包含指纹字段)都进行随机化伪造。
  1. 第五回合:
  • 防:利用安全水印技术,客户端和服务端协商好一套签名算法,客户端生成签名,服务端验证签名,同时增加一些时间戳参数,保证攻击方重放无效。
  • 攻:通过反编译获取签名算法,伪造签名,但实现难度很大。
  • 防:规定生成的水印必须携带用户信息,这样即使被反编译,水印也带有用户信息,可以溯源追踪。

参考文献:

  • 什么是 DDoS 攻击
  • Syn flood 通信百科

DDoS 攻击与防御相关推荐

  1. 浅谈 DDoS 攻击与防御

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

  2. DDoS攻击及防御技术综述

    DDoS攻击及防御技术综述 本文内容为论文转载. 摘    要: 分布式拒绝服务攻击 (Distributed Denial of Service, DDoS) 是互联网上有严重威胁的攻击方式之一, ...

  3. 史上最全DDoS攻击与防御教程

    可怕的DDoS 出于打击报复.敲诈勒索.政治需要等各种原因,加上攻击成本越来越低.效果特别明显等特点,DDoS攻击已经演变成全球性网络安全威胁. 购买阿里云服务器等产品或腾讯云产品,请先领取优惠券礼包 ...

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

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

  5. DOS和DDOS攻击和防御(ATTACK)

    目录 一.DOS攻击和DDOS攻击的区别 第一.我们可以从他们两个的英文全称上来看初步的区别 第二.攻击方法不同 二.DOS和DDOS攻击的实现方式 1.DOS攻击 1.SYN Flood(是DOS和 ...

  6. ddos攻击怎么防御,一文了解如何防御DDoS攻击

    DDoS攻击是目前最普遍的网络攻击手段,DDoS攻击非常受黑客欢迎,因为DDoS攻击非常有效,易于启动,并且几乎不会留下痕迹.那么如何防御DDoS攻击呢?你能否确保对你的web服务器和应用程序提供高级 ...

  7. ddos攻击怎么防御/ddos防御

    ddos流量攻击又称为洪水攻击,攻击流量都是按秒到的,像几个G,几十G的流量都是小流量,服务器没有防御的话,这种流量就可以把服务器打的不能访问.普遍的攻击流量都在100-400G左右.大的有上千G的. ...

  8. 云服务器DDOS攻击如何防御

    (DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动 DDoS 攻击,从而成倍地提高拒绝服务攻击 ...

  9. 基于$_session变量的验证码用于ddos攻击的防御(php实现)

    文章目录 一.基础知识 1.strpos() 函数 2.strpos() 函数 3.$_SESSION 4.fopen() 函数 5.file_exists() 函数 6.fputs() 函数 7.$ ...

最新文章

  1. 学习Python开发培训有用吗
  2. SpringIOC源码分析总结
  3. sql添加删除主键、外键
  4. mysql+keepalived 双主热备高可用
  5. Lua介绍极其在C#项目中的应用
  6. Hadoop、Zookeeper、Hbase分布式安装教程
  7. Spring - 理解BeanPostProcessor
  8. 面向对象(Python):学习笔记之继承
  9. actviti 工作流核心技术和实战-学习笔记(一)什么是工作流
  10. 计算机网络习题集与习题解析 pdf,计算机网络习题集与答案.pdf
  11. 数据分析师面试题目_拼多多面经分享:24个「数据分析师」岗位面试题和答案解析...
  12. Python入门_打印矩形
  13. 某电商网站Java面试题-2(高级开发,架构级别)
  14. 2023 年软件文档工具,这5款可以看看!
  15. 计算机三级网络技术最全知识点总结【2】
  16. win7 nvme 支持补丁_国产桌面版OS系统发布:Win7般体验 最高安全认证
  17. CentOS 7 下安装 Nginx
  18. 蜂窝物联网技术一览-Cat-1,Cat-0,Cat-M1,NB-IoT
  19. mysql 数据库初始化失败怎么办_mysql数据库失败的解决方法
  20. k-shingles与minhash技术

热门文章

  1. CodeSoft官方Demo
  2. 惠普HP LaserJet 1022 打印机驱动
  3. Correcting Over-Exposure in Photographs
  4. 如何生成二维码图片(添加中文标识),并保存到指定的图片静态服务地址,解决二维码汉字不存在得问题。
  5. dw之php删除,删除uft
  6. spss分析方法-生存分析(转载)
  7. android 方法统计,神兵利器—Android方法耗时统计插件Mirror(上)
  8. java三国杀百度云,GitHub - wzk1015/sanguosha: 文字版三国杀,10000+行java实现
  9. 数商云SRM供应商系统询比价采购业务流程介绍,重塑汽修企业核心竞争力
  10. 列主元高斯消去法解线性方程组——C语言实现