网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御

简介: 网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御

DoS

简介

DoS,是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。

一般是使用一台计算机进行攻击。

常见攻击

Smurf

攻击者向网络广播地址发送ICMP包,并将回复地址设置成受害网络的广播地址,通过使用ICMP应答请求数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对次ICMP应答请求作出答复,导致网络阻塞。更加复杂的Smurf攻击攻击将源地址改为第三方受害者,最终导致第三方崩溃。

Teardrop

Teardrop是一种基于UDP的病态分片数据包的攻击方法。

攻击者A给受害者B发送一些分片IP报文,并且故意将“13位分片偏移”字段设置成错误的值(既可与上一分片数据重叠,也可错开),B在组合这种含有重叠偏移的伪造分片报文时,某些操作系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。利用UDP包重组时重叠偏移(假设数据包中第二片IP包的偏移量小于第一片结束的位移,而且算上第二片IP包的Data,也未超过第一片的尾部,这就是重叠现象。)的漏洞对系统主机发动拒绝服务攻击,最终导致主机宕掉;对于Windows系统会导致蓝屏死机,并显示STOP 0x0000000A错误。

DDoS

DDoS,是Distributed Denial of Service的简称,即分布式拒绝服务,分布式拒绝服务攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。

相关事件

Github DDoS事件

迄今为止最大的DDoS攻击发生在2018年2月。美国东部时间2018年2月28日下午12点15分左右,GitHub 遭遇了可能是迄今为止最大的 DDoS 攻击,最高访问量为 1.35Tbps。当地时间2月28日起,GitHub 经历了两次间歇性不可访问。攻击发生 10 分钟后,GitHub 向 CDN 服务商 Akamai 请求协助,访问 GitHub 的流量交由后者接管。攻击在 Akamai 介入 8 分钟后结束,GitHub 确认该网站上用户数据的机密性或完整性未受到威胁。

这是一个memcached DDoS攻击,因此没有涉及僵尸网络。相反,攻击者利用了一种称为memcached的流行数据库缓存系统的放大效应。通过使用欺骗性请求充斥memcached服务器,攻击者能够将其攻击放大约50,000倍!

幸运的是,GitHub正在使用DDoS保护服务,该服务在攻击开始后的10分钟内自动发出警报。此警报触发了缓解过程,GitHub才能够快速阻止攻击。最终这次世界上最大的DDOS攻击只持续了大约20分钟。

最近发生的事件:

17岁少年买不到票,买DDOS攻击套餐攻击南航

原理

常见的攻击针对以下协议:

  • TCP
  • UDP
  • NTP
  • DNS
  • HTTP
  • SSDP
  • Memcached

这里对其中几个进行简要说明

TCP SYN Flood

TCP SYN Flood是一种利用TCP协议缺陷的攻击,这种方式通过伪造IP向攻击服务器发送大量伪造的TCP SYN请求,被攻击服务器回应握手包后(SYN+ACK),伪造的IP不会回应之后的握手包,服务器会保持在SYN_RECV状态,并尝试重试。这会使得TCP等待连接队列资源耗尽,正常业务无法进行。

UDP

无论是基于 DNS 还是基于 NTP,其最终都是基于 UDP 协议的。在 UDP 协议中正常情况下客户端发送请求包到服务端,服务端返回响应包到客户端,但是 UDP 协议是面向无连接的,所以客户端发送请求包的源 IP 很容易进行伪造,当把源 IP 修改为受害者的 IP,最终服务端返回的响应包就会返回到受害者的 IP。这就形成了一次反射攻击。

放大攻击就是一次小的请求包最终会收到一个或者多个多于请求包许多倍的响应包,这样就达到了四两拨千斤的效果。

CC攻击(Http Flood)

CC(Challenge Collapsar)攻击是一种针对资源的DoS攻击,攻击者通常会常用请求较为消耗服务器资源的方式来达到目的。

CC攻击的方式有很多种,常见的攻击可以通过大量访问搜索页、物品展示页等消耗大的功能来实现。部分HTTP服务器也可通过上传超大文件、发送大量且复杂的参数的请求来实现攻击。

防御

  • 基于特定攻击的指纹检测攻击,对相应流量进行封禁/限速操作
  • 对正常流量进行建模,对识别出的异常流量进行封禁/限速操作
  • 基于IP/端口进行综合限速策略
  • 基于地理位置进行封禁/限速操作
    云服务商一般都会提供DDOS防御服务,一般通过流量清洗的方式,视频类的网站可以购买CDN。

参考

gatekeeper

TCP协议详解

UDP协议详解

NTP协议

SSDP协议

Memcached

阿里云-DDOS缓解

相关文章
|
12月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
452 12
|
负载均衡 网络协议 算法
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
这网络层就像搭积木一样,上层协议都是基于下层协议搭出来的。不管是ping(用了ICMP协议)还是tcp本质上都是基于网络层IP协议的数据包,而到了物理层,都是二进制01串,都走网卡发出去了。 如果网络环境没发生变化,目的地又一样,那按道理说他们走的网络路径应该是一样的,什么情况下会不同呢? 我们就从路由这个话题聊起吧。
498 4
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
|
网络协议 测试技术 Linux
Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库
gev 是一个基于 epoll 和 kqueue 实现的高性能事件循环库,适用于 Linux 和 macOS(Windows 暂不支持)。它支持多核多线程、动态扩容的 Ring Buffer 读写缓冲区、异步读写和 SO_REUSEPORT 端口重用。gev 使用少量 goroutine,监听连接并处理读写事件。性能测试显示其在不同配置下表现优异。安装命令:`go get -u github.com/Allenxuxu/gev`。
314 0
|
网络协议
TCP报文格式全解析:网络小白变高手的必读指南
本文深入解析TCP报文格式,涵盖源端口、目的端口、序号、确认序号、首部长度、标志字段、窗口大小、检验和、紧急指针及选项字段。每个字段的作用和意义详尽说明,帮助理解TCP协议如何确保可靠的数据传输,是互联网通信的基石。通过学习这些内容,读者可以更好地掌握TCP的工作原理及其在网络中的应用。
|
域名解析 缓存 网络协议
TCP传输层详解(计算机网络复习)
本文详细解释了TCP/IP协议族的分层模型、各层的功能、TCP报文的格式以及TCP连接建立的三次握手和断开的四次挥手过程。
1884 2
TCP传输层详解(计算机网络复习)
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
733 3
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
737 10
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
搜索推荐 安全 网络安全
Discuz! X3.5自带参数防御CC攻击以及原理、开启防CC攻击后不影响搜索引擎收录的方法
Discuz! X3.5自带参数防御CC攻击以及原理、开启防CC攻击后不影响搜索引擎收录的方法
886 2
|
域名解析 存储 网络协议
TCP套接字【网络】
TCP套接字【网络】
289 10