2022-01-07 SYN洪水攻击

原理:

Client伪造大量的虚假ip,向Server发送SYN包

Server在接收到SYN包后,会返回响应,并进入SYN_RECV状态,等待客户端的确认

但是伪造的ip肯定不会给予响应,于是Server以为数据包丢失,不断重发,直到超时

危害:

这些伪造的SYN包会长期占用未连接队列,导致后来真实的ip无法加入队列,从而被丢弃,引起网络拥堵甚至网络瘫痪。

如何确认是SYN攻击:

当服务器上有大量的半连接且ip为随机的,可以确认是SYN攻击。

Syn_Flood防御

cookie源认证:  

原理是syn报文首先由DDOS防护系统来响应syn_ack。带上特定的sequence number (记为cookie)。真实的客户端会返回一个ack 并且Acknowledgment number 为cookie+1。 而伪造的客户端,将不会作出响应。这样我们就可以知道那些IP对应的客户端是真实的,将真实客户端IP加入白名单。下次访问直接通过,而其他伪造的syn报文就被拦截。

reset认证:  

Reset认证利用的是TCP协议的可靠性,也是首先由DDOS防护系统来响应syn。防护设备收到syn后响应syn_ack,将Acknowledgement number (确认号)设为特定值(记为cookie)。当真实客户端收到这个报文时,发现确认号不正确,将发送reset报文,并且sequence number 为cookie + 1。 而伪造的源,将不会有任何回应。这样我们就可以将真实的客户端IP加入白名单。 

TCP首包丢弃:

该算法利用了TCP/IP协议的重传特性,来自某个源IP的第一个syn包到达时被直接丢弃并记录状态(五元组),在该源IP的第2个syn包到达时进行验证,然后放行。

当防御设备接到一个IP地址的SYN报文后:

接受到syn报文      -> 简单比对该IP是否存在于白名单中:   存在则转发到后端,否则进行第2步

不存在于白名单中 -> 检查是否是该IP在一定时间段内的首次SYN报文: 不是则进行第3步,是则进行第5步

不是首次SYN报文 -> 检查是否重传报文: 是重传则转发并加入白名单,不是则丢弃并加入黑名单

是首次SYN报文    ->  丢弃并等待一段时间以试图接受该IP的SYN重传报文,等待超时则判定为攻击报文加入黑名单。

 

 

原文地址:https://blog.csdn.net/qq_34777600/article/details/81946514?utm_source=app&app_version=4.21.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

 

posted @ 2022-01-07 16:10  admin-xiaoli  阅读(115)  评论(0编辑  收藏  举报