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
本文来自博客园,作者:{admin-xiaoli},转载请注明原文链接:{https://www.cnblogs.com/crackerroot}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架