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

admin12个月前笔记116

一、可怕的DDoS

出于打击报复、敲诈勒索、政治需要等各种原因,加上攻击成本越来越低、效果特别明显等趋势,DDoS 攻击已经演变成全球性的网络安全威胁。

危害

根据卡巴斯基 2016Q3 的调查报告,DDoS 攻击造成 61% 的公司无法访问其关键业务信息,38% 的公司无法访问其关键业务,33% 的受害者因此有商业合同或者合同上的损失。

image.png

趋势

总结来看,现在的 DDoS 攻击具有以下趋势:

1. 国际化

现在的 DDoS 攻击越来越国际化,而我国已经成为仅次于美国的第二大 DDoS 攻击受害国,而国内的 DDoS 攻击源海外占比也越来越高。

image.png 

2. 超大规模化

由于跨网调度流量越来越方便、流量购买价格越来越低廉,现在 DDoS 攻击的流量规模越来越大。在 2014 年底,国内曾有云服务提供商遭受过高达 450Gbps 的攻击。

3. 市场化

市场化势必带来成本优势,现在各种在线 DDoS 平台、肉鸡交易渠道层出不穷,使得攻击者可以以很低的成本发起规模化攻击。按流量获取方式进行的对比可参考下表:

image.png

二、DDoS 攻击科普

DDoS 的攻击原理,往简单说,其实就是利用 tcp/udp 协议规律,通过占用协议栈资源或者发起大流量拥塞,达到消耗目标机器性能或者网络的目的。下面我们先简单回顾 TCP “三次握手” 与 “四次挥手” 以及 UDP 通信流程。

TCP 三次握手与四次挥手

image.png 

TCP 建立连接:三次握手

1.client: syn

2.server: syn+ack

3.client: ack

TCP 断开连接:四次挥手

1.client: fin

2.server: ack

3.server: fin

4.client: ack

UDP 通信流程

image.png 
      根据上图可发现,udp 通信是无连接、不可靠的,数据是直接传输的,并没有协商的过程。

攻击原理与攻击危害

按照攻击对象的不同,将对攻击原理和攻击危害的分析分成 3 类,分别是攻击网络带宽资源、系统以及应用。

攻击网络带宽资源

 
image.png 
攻击应用资源
 
image.png 

三、DDoS 防护科普

攻击防护原理

从 tcp/udp 协议栈原理介绍 DDoS 防护原理:

image.png

syn flood:

可以在收到客户端第三次握手 reset 、第二次握手发送错误的 ack,等 Client 回复 Reset,结合信任机制进行判断。

ack flood:
丢弃三次 ack,让对方重连:重发 syn 建立链接,后续是 syn flood 防护原理;学习正常 ack 的源,超过阈值后,该 ack 没有在正常源列表里面就丢弃 ack 三次,让对方重连:重发 syn 建立链接,后续是 syn flood 防护。

udp flood:

image.png

不同层面的防护

按攻击流量规模分类

较小流量

小于 1000Mbps,且在服务器硬件与应用接受范围之内,并不影响业务的:

利用 iptables 或者 DDoS 防护应用实现软件层防护。

大型流量

大于 1000Mbps,但在 DDoS 清洗设备性能范围之内,且小于机房出口,可能影响相同机房的其他业务的:

利用 iptables 或者 DDoS 防护应用实现软件层防护,或者在机房出口设备直接配置黑洞等防护策略,或者同时切换域名,将对外服务 IP 修改为高负载 Proxy 集群外网 IP 或者 CDN 高仿 IP 或者公有云 DDoS 防护网关 IP,由其代理到 RealServer;或者直接接入 DDoS 清洗设备。

超大规模流量

在 DDoS 清洗设备性能范围之外,但在机房出口性能之内,可能影响相同机房的其他业务,或者大于机房出口,已经影响相同机房的所有业务或大部分业务的:

联系运营商检查分组限流配置部署情况,并观察业务恢复情况。

按攻击流量协议分类

syn/fin/ack 等 tcp 协议包

设置预警阀值和响应阀值,前者开始报警,后者开始处理,根据流量大小和影响程度调整防护策略和防护手段,逐步升级。

udp/dns query 等 udp 协议包

对于大部分游戏业务来说,都是 TCP 协议的,所以可以根据业务协议制定一份 tcp 协议白名单,如果遇到大量 udp 请求,可以不经产品确认或者延迟跟产品确认,直接在系统层面 /HPPS 或者清洗设备上丢弃 udp 包。 

http flood/CC 等需要跟数据库交互的攻击

这种一般会导致数据库或者 webserver 负载很高或者连接数过高,在限流或者清洗流量后可能需要重启服务才能释放连接数,因此更倾向在系统资源能够支撑的情况下调大支持的连接数。相对来说,这种攻击防护难度较大,对防护设备性能消耗很大。

其他

icmp 包可以直接丢弃,先在机房出口以下各个层面做丢弃或者限流策略。现在这种攻击已经很少见,对业务破坏力有限。


相关文章

ChatGPT API使用介绍

ChatGPT API使用介绍

1.概述随着人工智能技术的不断发展,越来越多的AI产品被应用到各个领域,其中最具代表性的莫过于人工智能语言模型。语言模型是一种可以通过学习大量语言数据来预测文本或语音的技术,其应用范围十分广泛,如智能...

shell高效编程:shell脚本从未如此美丽

shell高效编程:shell脚本从未如此美丽

平常工作中,你是否感觉shell脚本只是命令的堆砌;很多时候只是为了实现功能而没有好的组织结构;自己的脚本都不想再看一遍;哈哈,我这就教给shell的“葵花宝典“,自此让你的shell脚本有pytho...

HTTP HSTS协议和 nginx

HTTP HSTS协议和 nginx

什么是HSTSHTTPS(SSL和TLS)确保用户和网站通讯过程中安全,使攻击者难于拦截、修改和假冒。当用户手动输入域名或http://链接,该网站的第一个请求是未加密的,使用普通的http。最安全的...

你在浏览器输入一个URL都经历了什么过程

一:相关概念说明: 1.1: DNS(Domain name System)缓存: (域名系统)(查看本机的ipconfig/displaydns)当电脑把一个域名解析完之后,它把这个这个域...

简述Linux磁盘IO

简述Linux磁盘IO

1、什么是磁盘  在讲解磁盘IO前,先简单说下什么是磁盘。磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类:机械磁盘和固态磁盘。1.1 机械磁盘  第一类,机械磁盘,也称...

cURL 与 wget:到底哪一个才更适合你

cURL 与 wget:到底哪一个才更适合你

当想要直接通过 Linux 命令行下载文件,马上就能想到两个工具:wget 和 cURL。它们有很多一样的特征,可以很轻易的完成一些相同的任务,虽然它们有一些相似的特征,但它们并不...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。