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

admin6个月前笔记86

一、可怕的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 包可以直接丢弃,先在机房出口以下各个层面做丢弃或者限流策略。现在这种攻击已经很少见,对业务破坏力有限。


相关文章

Git 笔记 - 程序员都要掌握的 Git

Git 笔记 - 程序员都要掌握的 Git

前言本文是参考廖雪峰老师的Git资料再加上我自己对Git的理解,记录我的Git学习历程,作下此文是为以后学习,工作,开发中如果遇到问题可以回过头来参考参考。因为水平有限,难免会有出错的地方,欢迎指正。...

ext3文件系统反删除利器-ext3grep

ext3文件系统反删除利器-ext3grep

ext3grep的恢复原理利用ext3grep恢复文件时并不依赖特定文本格式。首先ext3grep通过文件系统的root inode(根目录的inode一般为2)来获取当前文件系统下所有文件的信息,包...

Docker与DevOps的结合:实现自动化监控和日志管理

Docker与DevOps的结合:实现自动化监控和日志管理

1.引言1.1 概念和背景软件开发和运维领域,Docker和DevOps是两个备受关注的重要概念。了解这两个概念的背景和意义对于理解如何将它们结合起来实现自动化、监控和日志管理至关重要。Docker的...

Linux命令快速巧记法

Linux命令快速巧记法

history 首先要介绍的是命令行工具 history,它能帮你记住那些你曾经用过的命令。包括应用最广泛的 Bash 在内的大多数 Linux shell,都会创建一个历史文件来...

svn 迁移到git

1.物理环境Git–server    Centos5.8    192.168.1.245 Svn–server&n...

香港虚拟银行开户攻略:一小时搞定ZA BANK、livi理慧银行、天星银行、蚂蚁银行

香港虚拟银行开户攻略:一小时搞定ZA BANK、livi理慧银行、天星银行、蚂蚁银行

10月中旬去了一趟香港,主要是为了激活香港招商永隆银行账户,顺便申请了几家虚拟银行:ZA BANK、livi理慧银行、天星银行、蚂蚁银行,全程手机APP操作,大约花了一个小时的时间。本文会介绍这几家虚...

发表评论    

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