分享

「华安解密之DDoS攻防」12TCP原理篇之SYN

 启云_9137 2020-07-20

上一篇我们介绍了SYN Flood攻击的原理和防御方式,除了SYN报文之外,TCP交互过程中还存在SYN-ACK、ACK、FIN和RST报文,这几类报文也可能会被攻击者利用,海量的攻击报文会导致被攻击目标系统资源耗尽、网络拥塞,无法正常提供服务。本篇就来介绍这几种Flood攻击的原理和防御方式。

0x01 SYN-ACK Flood攻击与防御

通信双方通过三次握手建立一个TCP连接的过程中,SYN-ACK报文出现在第二次握手中,是用来确认第一次握手的。一方收到SYN-ACK报文后,首先会判断该报文是不是属于三次握手范畴之内的报文。如果都没有进行第一次握手就直接收到了第二次握手的报文,那么就会向对方发送RST报文,告知对方其发来报文有误,不能建立连接。

SYN-ACK Flood攻击正是利用了这一点,攻击者利用工具或者操纵僵尸主机,向目标服务器发送大量的SYN-ACK报文,这些报文都属于凭空出现的第二次握手报文,服务器忙于回复RST报文,导致资源耗尽,无法响应正常的请求。

华为Anti-DDoS解决方案使用源认证方式防御SYN-ACK Flood攻击,其原理是Anti-DDoS系统向发送SYN-ACK报文的源地址发送SYN报文,相当于发起了第一次握手,探测该地址是否真实存在。真实的源会向Anti-DDoS系统响应正确的SYN-ACK报文,也就是第二次握手的报文;而虚假的源则不会响应正确的SYN-ACK报文。

「华安解密之DDoS攻防」12TCP原理篇之SYN-ACK/ACK/FIN/RST Flood

1、当连续一段时间内去往目标服务器的SYN-ACK报文超过告警阈值后,Anti-DDoS系统启动源认证机制。源认证机制启动后,Anti-DDoS系统向发送SYN-ACK报文的源地址发送SYN报文。

2、如果这个源是虚假源,不会向Anti-DDoS系统响应正确的SYN-ACK报文。

3、如果这个源是真实源,会向Anti-DDoS系统响应正确的SYN-ACK报文。Anti-DDoS系统收到该SYN-ACK报文后,将该源IP地址加入白名单,同时会向源地址发送RST报文,断开自己和这个源地址的连接。

4、后续这个源发出的SYN-ACK报文命中白名单直接通过,而对于那些未匹配白名单的SYN-ACK报文则继续进行源认证。

Anti-DDoS系统防御SYN-ACK Flood攻击与防御SYN Flood攻击采用的方式类似,也是采用源认证的方式。区别是防御SYN-ACK Flood攻击时,通过发送中TCP第一次握手中的SYN报文来探测源是否真实存在,防止虚假源攻击。可见,对于这两种基于TCP的面向连接的DDoS攻击,最有效的防御方式就是源认证。

0x02 ACK Flood攻击与防御

在TCP三次握手的过程中,ACK报文出现在第三次握手中,用来确认第二次握手中的SYN-ACK报文。ACK Flood攻击指的是攻击者利用工具或者操纵僵尸主机,向目标服务器发送大量的ACK报文,服务器忙于回复这些凭空出现的第三次握手报文,导致资源耗尽,无法响应正常的请求。

华为Anti-DDoS解决方案使用会话检查的方式防御ACK Flood攻击,这与防御SYN Flood和SYN-ACK Flood时采用的方式有所不同。提到会话,大家应该不会陌生,它是状态检测防火墙的一个机制,是防火墙最基本的功能,也是实现安全防护的基础技术。

Anti-DDoS系统借鉴了防火墙的会话机制,通过检查会话来确定ACK报文的真实性。我们可以把Anti-DDoS系统看成是关闭了链路状态检查功能的防火墙,SYN、SYN-ACK、ACK等报文都会创建会话。对于一次正常的TCP连接建立过程来说,必须先有SYN报文,接着是SYN-ACK报文,然后才是ACK报文,所谓有“因”才有“果”。只有ACK报文命中了会话这个“因”,才能说明该报文是正常交互过程中的报文,是真实的。

Anti-DDoS系统对ACK报文进行会话检查时,支持基本和严格两种模式,我们先来看基本模式。

基本模式

使用基本模式时,Anti-DDoS系统对ACK报文进行会话检查,如果ACK报文没有命中会话,Anti-DDoS系统会允许第一个ACK报文通过,并建立会话,以此来对后续ACK报文进行会话检查;如果ACK报文命中了会话,则继续检查报文的序号,序号正确的报文允许通过,序号不正确的报文则被丢弃。

「华安解密之DDoS攻防」12TCP原理篇之SYN-ACK/ACK/FIN/RST Flood

基本模式允许第一个ACK报文通过,检查条件比较宽松。如果攻击者发送变源或变端口的ACK报文,基本模式会允许报文通过并建立会话,这样就会导致攻击报文被放过,影响防御效果。为此,Anti-DDoS系统提供了严格模式,检查条件更加严格,防御效果也会更好一些。

严格模式

严格模式指的是Anti-DDoS系统对ACK报文进行会话检查时,如果ACK报文没有命中会话,直接丢弃报文;如果ACK报文命中会话,并且序号正确,允许报文通过。

「华安解密之DDoS攻防」12TCP原理篇之SYN-ACK/ACK/FIN/RST Flood

严格模式的检查条件比较苛刻,没有命中会话的ACK报文都会被丢弃。在旁路部署动态引流的场景,由于报文来回路径不一致,正常业务的ACK报文会因为没有命中会话而被丢弃,因此对正常业务有一定的影响。

0x03 FIN/RST Flood攻击与防御

TCP交互过程中还存在FIN和RST报文,FIN报文用来关闭TCP连接,RST报文用来断开TCP连接。这两种报文也可能会被攻击者利用来发起DDoS攻击,导致目标服务器资源耗尽,无法响应正常的请求。

华为Anti-DDoS解决方案也是使用会话检查的方式防御FIN/RST Flood攻击,如果FIN/RST报文没有命中会话,直接丢弃报文;如果FIN/RST报文命中会话,则根据会话创建原因和会话检查结果来判断该报文是否通过:

l 如果会话是由SYN或SYN-ACK报文创建的,则允许该FIN/RST报文通过。

l 如果会话是由其他报文创建的(例如ACK报文),则进一步检查报文序号是否正确,序号正确的报文允许通过,序号不正确的报文则被丢弃。

「华安解密之DDoS攻防」12TCP原理篇之SYN-ACK/ACK/FIN/RST Flood

SYN-ACK Flood、ACK Flood和FIN/RST Flood攻击的原理和防御方式就介绍到这里,下一篇我们将介绍另外几种TCP类的DDoS攻击,包括连接耗尽类攻击、异常报文类攻击,请大家继续关注。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多