DDOS小记

DDOS小记

分类

以攻击方向来区分的话

  • 网络

    • 基于大量的Flood耗尽目标网络带宽资源

    • Syn Flood,

      发送大量伪造的 TCP 连接请求,从而使得被攻击方资源耗尽(CPU 满负载或内存不足)的攻击方式 。 用户向服务器发送报文后突然死机或掉线,那么服务器在发出应答报文后就无法收到客户端的确认报文(第三次握手无法完成),这时服务器端一般会重试并等待一段时间(至少 30s)后再丢弃这个未完成的连接

    • ICMP Flood,

    • Connection Flood

      利用真实的 IP 地址向服务器发起大量的连接,并且建立连接之后很长时间不释放。长期占用服务器的资源,造成服务器上残余连接 (WAIT 状态) 过多,效率降低,甚至资源耗尽,无法响应其它客户所发起的连接 ,虽然可以通过限制没个源IP的地址每秒钟连接数,但是已经可以采取慢速连接的方式,并不定时发送垃圾数据包给服务器来达到DDOS的目的

    • UDP Flood,

      伪造大量的源 IP 地址去发送 UDP 包 , 常应用情况下,UDP 包双向流量会基本相等,因此在消耗对方资源的时候也在消耗自己的资源

    • ACK Flood、

    ACK Flood 攻击是在 TCP 连接建立之后进行的。所有数据传输的 TCP 报文都是带有 ACK 标志位的,主机在接收到一个带有 ACK 标志位的数据包的时候,需要检查该数据包所表示的连接四元组是否存在。如果存在则检查该数据包所表示的状态是否合法,然后再向应用层传递该数据包。如果在检查中发现该数据包不合法(例如:该数据包所指向的目的端口在本机并未开放),则主机操作系统协议栈会回应 RST 包告诉对方此端口不存在 ,攻击带来的影响要小于syn

    • ICMP Flood、

      不断发送不正常的 ICMP 包(所谓不正常就是 ICMP 包内容很大),导致目标带宽被占用。但其本身资源也会被消耗,并且目前很多服务器都是禁 ping 的(在防火墙里可以屏蔽 ICMP 包),因此这种方式已经落伍

    • 等等

  • 协议

    • 攻击协议漏洞
    • Syn Flood, Ping of Death,ARP,DNS,802.11,SSL
  • 应用

    • 针对应用软件和操作系统漏洞

    • cc攻击(针对加载慢,比较消耗资源的网页发起访问)

    • Slowloris(类似基于HTTP的Syn flood攻击)

      # 构造以下畸形 HTTP 请求包
      GET / HTTP/1.1\r\n
      Host: Victim host\r\n
      User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n
      Content-Length: 42\r\n
      

      正常的HTTP应该是两次 \r\n\r\n

    • Slow Attack

      慢速 DoS 攻击,它通过消耗服务器的系统资源和连接数,导致 Web 服务器无法正常工作。常见的攻击方式包括

      • Slow Header:正常的 HTTP Header 以两个 CLRF 结尾,通过发送只包含一个 CLRF 的畸形 Header 请求来占用 Web 服务器连接,从而达到消耗掉服务器所有可用的连接数。最终造成 Web 服务器资源饱和并拒绝新的服务。
      • Slow Read:向服务器请求很大的文件,然后通过设置 TCP 滑动窗口较小值,导致服务器以极慢的速度传输文件。这样,就会占用服务器大量的内存,从而造成拒绝服务。
      • Slow Body:在向服务器发送 HTTP Post 包时,指定一个非常大的 Content-Length 值,然后以极低的速度发包并保持连接不断,最终导致服务器连接饱和不可用。
    • JS DDOS

      在海量访问的网页中嵌入指向攻击目标网站的恶意 JavaScript 代码,当互联网用户访问该网页时,则流量被指向攻击目标网站

    • ReDos

      构造特殊的字符串来大量消耗服务器的系统资源,从而造成服务器的服务中断或停止

    • DNS Query Flood

      操纵大量傀儡机器,向目标服务器发送大量的域名解析请求

      请求解析的域名是随机生成或者是网络上根本不存在的域名。由于在本地域名服务器无法查到对应的结果,本地域名服务器必须使用递归查询向上层域名服务器提交解析请求,引起连锁反应。解析过程给本地域名服务器带来一定的负载,每秒钟域名解析请求超过一定的数量就会造成域名服务器解析域名超时

  • 无线

    • Auth Flood

      身份验证洪水攻击。该攻击目标主要针对那些处于通过验证和 AP(WirelessAcesssPoint) 建立关联的关联客户端,攻击者将向 AP 发送大量伪造的身份验证请求帧(伪造的身份验证服务和状态代码),当收到大量伪造的身份验证请求超过所能承受的能力时,AP将断开其他无线服务连接

    • Deauth Flood

      取消验证洪水攻击,它旨在通过欺骗从 AP 到客户端单播地址的取消身份验证帧来将客户端转为未关联 / 未认证的状态

    • Association Flood

      关联洪水攻击。在无线路由器或者接入点内置一个列表即为连接状态表,里面可显示出所有与该 AP 建立连接的无线客户端状态。它试图通过利用大量模仿和伪造的无线客户端关联来填充 AP 的客户端关联表,从而达到淹没 AP 的目的

    • Disassociation Flood

      取消关联洪水攻击,和 Deauth Flood 攻击表现方式很相似。它通过欺骗从 AP 到客户端的取消关联帧来强制客户端成为未关联 / 未认证的状态。一般来说,在攻击者发送另一个取消关联帧之前,客户端会重新关联以再次获取服务。攻击者反复欺骗取消关联帧就能使客户端持续拒绝服务

思路

  • 从攻击者到被害者

    • 网络->防火墙->服务器OS->应用
  • 资源耗尽

    • 网络带宽
    • 防火墙:吞吐量,并发连接
    • 服务器:CPU,内存,I/O
    • 应用:处理请求能力,对OS资源的使用权
  • 程序漏洞

    • 缓冲区
    • 协议,程序逻辑

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cBEeURvE-1646818688124)(file://D:/blog/post-images/1574601824323.jpg)]

常用攻击方法以及工具

Syn-Flood

基于伪造TCP请求

知识补充

单服务器最大tcp连接数及调优

IP地址欺骗

常常伴随着Dos攻击,即伪造源IP地址,可攻击伪造的地址目标或者发送的目标

防御措施有边界路由器过滤(个人觉得用处不大),TCP序列号(貌似已经可破解了)

Smurf
  • 向广播地址发送伪造源地址的ICMP echo Request(ping)包
  • LAN所有计算机向伪造源地址返回响应包

防御

  • 网络层

    1. 限制单 IP 请求频率。
    2. 网络架构上做好优化,采用负载均衡分流。
    3. 防火墙等安全设备上设置禁止 ICMP 包等。
    4. 通过 DDoS 硬件防火墙的数据包规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等技术对异常流量进行清洗过滤。
    5. 采用 ISP 近源清洗,使用电信运营商提供的近源清洗和流量压制,避免全站服务对所有用户彻底无法访问。这是对超过自身带宽储备和自身 DDoS 防御能力之外超大流量的补充性缓解措施。
  • 应用层

    1. 优化操作系统的 TCP/IP 栈。

    2. 应用服务器严格限制单个 IP 允许的连接数和 CPU 使用时间。

    3. 编写代码时,尽量实现优化并合理使用缓存技术。尽量让网站静态化,减少不必要的动态查询。网站静态化不仅能大大提高抗攻击能力,而且还给骇客入侵带来不少麻烦,至少到现在为止关于 HTML 的溢出还没出现。

    4. 增加 WAF(Web Application Firewall)设备,WAF 的中文名称叫做 Web 应用防火墙。Web 应用防火墙是通过执行一系列针对 HTTP / HTTPS 的安全策略来专门为 Web 应用提供保护的一款产品。

    5. 使用 CDN / 云清洗,在攻击发生时,进行云清洗。通常云清洗厂商策略有以下几步:预先设置好网站的 CNAME,将域名指向云清洗厂商的 DNS 服务器;在一般情况下,云清洗厂商的 DNS 仍将穿透 CDN 的回源的请求指向源站,在检测到攻击发生时,域名指向自己的清洗集群,然后再将清洗后的流量回源。

使用 CDN / 云清洗,在攻击发生时,进行云清洗。通常云清洗厂商策略有以下几步:预先设置好网站的 CNAME,将域名指向云清洗厂商的 DNS 服务器;在一般情况下,云清洗厂商的 DNS 仍将穿透 CDN 的回源的请求指向源站,在检测到攻击发生时,域名指向自己的清洗集群,然后再将清洗后的流量回源。

  1. CDN 仅对 Web 类服务有效,针对游戏类 TCP 直连的服务无效。这时可以使用 DNS 引流 + ADS (Anti-DDoS System) 设备来清洗,还有在客户端和服务端通信协议做处理(如:封包加标签,依赖信息对称等)

猜你喜欢

转载自blog.csdn.net/qq_43271194/article/details/123383059