可怕的DDoS

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

本文大纲:

1、可怕的DDoS

2、DDoS攻击科普


3、DDoS防护科普

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

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

1.国际化

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

2.超大规模化

因为跨网调度流量越来越方便、流量购买价格越来越低廉,现在DDoS攻击流量规模越来越大。特别是2014年底,某云还遭受了高达450Gbps的攻击。

3.市场化

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

流量获取方式 在线DDOS平台购买API VPS 专属服务器 黑市购买 社交平台购买 肉鸡集群
价格 中等 中等
法律风险 中等 中等 中等
交易风险 中等
流量稳定性 不确定 稳定 稳定 不确定 不确定
IP资源数量 不确定 不确定 不确定
技术要求
交易货币要求 比特币 普通货币 普通货币 比特币 比特币,普通货币等

DDoS攻击科普

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

TCP三次握手与四次挥手

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通信流程

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

攻击原理与攻击危害

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

攻击网络带宽资源:

攻击系统资源:

攻击应用资源:

DDoS防护科普

攻击防护原理

从TCP/UDP协议栈原理介绍DDoS防护原理:

syn flood:

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

ack flood:

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

udp flood:

1.限速 启动阈值,一秒钟去往服务器IP的同一端口的UDP包数目,如果是WEB服务器,可以设置严格一些
2.报文内容特征-模式匹配 模式匹配规则主要用于过滤包内容带特征字符的攻击包
3.IP特征-ACL 若遇到(1)源IP+目的固定;(2)流量超过1G==>在网络设备层面使用acl进行过滤

不同层面的防护

1.按攻击流量规模分类

较小流量:

小于1000Mbps,且在服务器硬件与应用接受范围之内,并不影响业务的: 利用iptables或者DDoS防护应用实现软件层防护。

大型流量:

大于1000Mbps,但在DDoS清洗设备性能范围之内,且小于机房出口,可能影响相同机房的其他业务的:利用iptables或者DDoS防护应用实现软件层防护, 或者在机房出口设备直接配置黑洞等防护策略,或者同时切换域名,将对外服务IP修改为高负载Proxy集群外网IP,或者CDN高仿IP,或者公有云DDoS网关IP,由其代理到RealServer;或者直接接入DDoS清洗设备。

超大规模流量:

在DDoS清洗设备性能范围之外,但在机房出口性能之内,可能影响相同机房的其他业务,或者大于机房出口,已经影响相同机房的所有业务或大部分业务的:联系运营商检查分组限流配置部署情况并观察业务恢复情况。

2.按攻击流量协议分类

syn/fin/ack等tcp协议包:

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

UDP/DNS query等UDP协议包:

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

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

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

其他:

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


返回首页>>