DDOS攻击类型和防御方法

参考【绿盟科技应急快速指南DDOS模块】

一:利用ADS处理DDOS攻击

1、UDP Flood

UDP Flood攻击的判断依据:

  1. 同一目标同一侧的UDP数据包大量出现;
  2. UDP包的大小相对固定。

UDP Flood攻击的处理步骤:

  1. 调整专业参数1,进行限速,UDP pps总和达到参数时,设备启动UDP防护;
  2. 调整UDP防护策略中的源IP带宽系数,每个源的UDP pps上限是 (UDP专业参数1/源IP带宽参数) ;
  3. 根据ADS上的bps/pps,估算UDP报文大概长度,可根据此长度设置UDP防护策略中重组后的大小以限制超长的UDP报文;
  4. UDP攻击通常会伴随有大量碎片包,可以通过调低ICMP专业参数1和丢弃UDP碎片包来组织UDP Flood攻击,但是这一做法有可能也阻断正常用户的UDP碎片报文。

2、ICMP Flood

此种攻击为攻击主机向目标主机发送大量ICMP请求,目标主机丢弃,大量消耗目标主机资源,达到攻击效果,甚至可能出现ICMP Request报文带负载的情况,这时如果过大就由可能出现分片。

处理步骤:

  1. 调整ICMP专业参数1;
  2. 由于ICMP的上层可能是UDP数据,所以可以开启UDP防护算法,结合前面提到的UDP专业参数以及源IP带宽等;
  3. 甚至可以采取丢弃分片的方法。

 

3、SYN Flood

抓包分析可以看到,大量的syn请求发向目标地址,而syn包的源地址为大量的随机生成的虚假地址。

在目标主机上使用netstat –an命令可以看到大量syn连接,处于syn_received状态

下面这个批处理文件,可以编辑执行。

@echo off

  time /t >>SYN.log

  netstat -np tcp |find "SYN">>SYN.log

  notepad SYN.log

  exit

DDOS攻击类型和防御方法_第1张图片

ADS应对SYN Flood攻击:

通常情况下,ADS默认的防护策略就足以应对SYN Flood,但在出现大流量的SYN Flood时,需要调整策略,将防护目标纳入群组中,增大检测SYN Flood专业参数2,以提高反向探测的速率,这样ADS对于SYN Flood攻击的判断就更为准确迅速。

注意:调整专业参数2会影响ADS系统负荷,建议控制在55%以下。

针对SYN FLOOD攻击的防护,ADS有三种算法可供选择:0-SynCheck仅适用于对称流量网络环境;1-SafeConnect2-DynaCheck适用于非对称流量网络环境和对称流量网络环境。旁路部署下,只能选择算法1-SafeConnect或算法2-DynaCheck。通常建议旁路时采用2-DynaCheck算法。

 

4、ACK Flood

此种攻击方式为攻击主机向目标主机发送大量含有ack标志位的包,目标主机向攻击主机回复rst标志位的包;或者攻击主机向目标主机发送大量的psh+ack标志位的包,目标主机直接丢弃,最终导致目标主机性能严重下降。

出现此攻击时,抓包查看到的ACK报文比例很大。

DDOS攻击类型和防御方法_第2张图片

ACK Flood攻击由于对系统危害不大,通常需要很大流量才能起效,故可以通过ACK防护专业参数1限制速率。同时由于ADS的ACK Flood防护算法在设计时考虑到通过反向探测来检测攻击,所以防护ACK Flood攻击时,选择SYN Flood防护算法为2-DynaCheck适当调整SYN Flood专业参数2增强防护效果。

 

5、Connection Flood

Connection Flood攻击可以分为两种,普通的连接耗尽攻击和HTTP GET攻击。

普通的连接耗尽与目标成功建立连接,可能还会定期发送垃圾数据维持连接,消耗正常连接数,达到拒绝服务的目的。

HTTP GET攻击是利用大量代理向目标发起连接,并发送URL GET请求消耗目标资源,让服务器响应这些请求,达到拒绝服务的目的。

应对这两种攻击,首先应区分开是哪一种。区分依据:

  1. 查看服务器TCP连接,netstat –an。

下面这个批处理文件,可以编辑执行,查看EST建立情况。

@echo off

  time /t >>EST.log

  netstat -np tcp |find "EST">>EST.log

  notepad EST.log

  exit

DDOS攻击类型和防御方法_第3张图片

抓包查看,是否有很多不合规的HTTP GET请求,或针对少数页面的重复请求。

DDOS攻击类型和防御方法_第4张图片

  1. 如果ADS上既有SYN Flood报警也有ACK Flood报警,则有可能是HTTP GET。

据统计:正常Web服务器的流量,进出比约为1:7—1:15,包平均大小约为512byte,可以作为一个依据抓包来统计分析判断业务正常或者遭受了攻击。

普通连接耗尽攻击的处理步骤:

  1. 首先在缺省策略中打开连接耗尽开关。
  2. 添加连接耗尽防护规则,如下图例子:
  3. DDOS攻击类型和防御方法_第5张图片

    HTTP GET攻击的处理步骤:

  4. 开启CC防护,将目标纳入群组中。
  5. 选择防护算法。在ADS中,通用的有五种CC防护算法,最强的算法是ASCII图片验证及BMP图片验证,该算法与“SYN-Cookie URL”算法结合时,所有客户端向服务器发起的连接,均会被黑洞拦截,只有客户端能够正确输入图片的字母时,才能访问服务器资源,但使用之前需告知客户,其客户端会弹出图片验证框,对客户体验有一定影响。最长用的CC算法是URL验证及HttpCookie验证算法,此类算法黑洞会验证客户端的合法性,正常浏览器能够自动响应该类算法。结合“连接耗尽策略”—“URL-ACL防护规则”中的“阻断代理”规则,可对付通常的CC攻击。抓包查看HTTP GET报文特征,可以判断是否针对某些少数域名的攻击报文较多,如果是,则可以配置URL-ACL选择丢弃这些页面的请求,目的是恢复其他未被攻击页面的服务。

 

二:其他设备防护DDOS

1、IPS

IPS具备一定的防护DDOS攻击能力。可以防护SYN Flood、UDP Flood、Ping Flood、HHTP代理和ARP Flood。

防护synflood:导出config.xml文件,修改其中的false,将false改为true,保存后传回探测器,覆盖原文件。重启探测器即可。

防护udpflood:同防护synflood。

防护arpflood:修改0为1。

防护HTTP代理:自定义规则选择“高级”方式中“IP”中的“TCP层”,监控字段名为“tcp.data”,方向为“任意”,操作符为“包含”,字段内容为“Proxy-Connection:”。定义事件后由控制台导入即可。

 

2、WAF

WAF的anti-ddos模块可以防护syn flood 、ack flood、http get flood几种攻击,但注意此模块需要授权。

另外根据抓包分析,如果发现某些来源的访问或针对某些页面的访问明显异常,可以自定义规则过滤。具体自定义规则配置可以参考用户手册有详细介绍,有自定义内容防护规则和自定义爬虫防护规则(爬虫防护也需要授权)。

 

三:操作系统自身加强DDOS防护

1、Linux主机

编辑/etc/sysctl.conf,添加以下参数:

#增加连接数:

net.ipv4.tcp_max_syn_backlog = 2048

#检查syncookies值:

net.ipv4.tcp_syncookies = 1

#减少重新连接次数:

net.ipv4.tcp_synack_retries = 2

#发送keepalive消息间隔时间修改:

net.ipv4.tcp_keepalive_time = 300

#会话结束等待时间修改:

net.ipv4.tcp_fin_timeout = 20

#TCP检测连接中断的数量修改:

net.ipv4.tcp_keepalive_probes = 4

#把不符合rfc1377文档的包丢弃:

net.ipv4.tcp_rfc1337 = 1

#加快接收客户端的连接速度:

net.ipv4.tcp_abort_on_overflow = 1

修改完毕后,需要执行命令/sbin/sysctl -p,使得配置马上生效。

 

2、Windows主机

暂无

 

 

你可能感兴趣的:(系统)