Syn Flood攻击是利用TCP/IP协议的什么漏洞

时间:2023-03-20 14:20:06 偲颖 通信工程毕业论文 我要投稿
  • 相关推荐

Syn Flood攻击是利用TCP/IP协议的什么漏洞

  在现实社会中,协议的使用频率呈上升趋势,签订协议可以使双方受到法律的保护。协议到底怎么写才合适呢?下面是小编收集整理的Syn Flood攻击是利用TCP/IP协议的什么漏洞,希望能够帮助到大家。

Syn Flood攻击是利用TCP/IP协议的什么漏洞

  Syn Flood攻击是利用TCP/IP协议的什么漏洞1

  答:客户端通过发送在TCP报头中SYN标志置位的数据分段到服务端来请求建立连接。通常情况下,服务端会按照IP报头中的来源地址来返回SYN/ACK置位的数据包给客户端,客户端再返回ACK到服务端来完成一个完整的连接(Figure-1)。

  在攻击发生时,客户端的来源IP地址是经过伪造的(spoofed),现行的IP路由机制仅检查目的IP地址并进行转发,该IP包到达目的主机后返回路径无法通过路由达到的,于是目的主机无法通过TCP三次握手建立连接。在此期间因为TCP缓存队列已经填满,而拒绝新的连接请求。目的主机一直尝试直至超时(大约75秒)。这就是该攻击类型的基本机制。

  发动攻击的主机只要发送较少的,来源地址经过伪装而且无法通过路由达到的SYN连接请求至目标主机提供TCP服务的端口,将目的主机的.TCP缓存队列填满,就可以实施一次成功的攻击。实际情况下,发动攻击时往往是持续且高速的。

  SYN Flood攻击

  1、攻击原理

  SYN Flood是拒绝服务攻击的一种,所谓拒绝服务攻击,即想办法让目标机器停止提供服务。

  这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。

  如果一个计算机系统崩溃或其带宽耗尽或其硬盘被填满,导致其不能提供正常的服务,就构成拒绝服务。

  TCP的三次握手

  由客户端向服务器发送一个包含SYN标志的数据包,表明请求与服务器进行通信,此时同服务器建立了第一次握手。

  服务器会返回一个SYN+ACK的报文,表示客户端的请求被接受,此时同服务器建立了第二次握手。

  最后客户端在发送一个确认报文ACK,此时同服务器建立了第三次握手,TCP连接成功。

  如果发生了SYN Flood攻击,攻击者会在短时间内伪造并不存在的IP地址,向服务器不断的发送SYN包,并且建立第一次握手,服务器则会回复ACK确认报文,建立第二次握手,在进行第三次握手时,服务器等待攻击者的确认,但此时攻击者并不会回复,服务器就会不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,其他客户的正常的SYN请求不能被接收,目标系统运行缓慢,造成网络拥堵。

  2、SYN Flood攻击简单示例

  同一局域网下

  攻击者:Kali Linux IP:192.168.220.136

  被攻击者:Windows XP IP:192.168.220.142

  1)查看两虚拟机的IP地址,判断是否在同一网段下

  Kali Linux:ifconfig

  Windows XP:ipconfig

  2)测试连通性(用ping指令)

  3)在Windows XP上打开任务管理器——性能(监控CPU的利用率)

  4)开始SYN Flood攻击

  Kali Linux:hping3 -q -n -a 伪造源IP地址 -S -s 53 --keep -p 445 --flood 目标IP地址

  5)查看结果

  查看Windows XP 的任务管理器,发现在被攻击的同时,很快Windows XP的性能使用率就已达到100%(居高不下)

  表明攻击成功。

  6)wireshark抓包观察

  可以发现有大量的源地址为伪造地址(1.1.1.1)的TCP包。

  目的主机处理不过来,以致于资源逐步被耗尽,最终导致系统崩溃。

  Syn Flood攻击是利用TCP/IP协议的什么漏洞2

  一、syn flood攻击原理是什么?

  syn flood攻击利用了TCP协议实现上的一个缺陷,通过向网络服务所在端口发送大量的伪造源地址的攻击报文,就可能造成目标服务器中的半开连接队列被占满,从而阻止其他合法用户进行访问。这种攻击早在1996年就被发现,但至今仍然显示出强大的生命力。很多操作系统,甚至防火墙、路由器都无法有效地防御这种攻击,而且由于它可以方便地伪造源地址,追查起来非常困难。

  客户端发起连接的报文即为syn报文。当攻击者发送大量的伪造IP端口的syn报文时,服务端接收到syn报文后,新建一共表项插入到半连接队列,并发送syn ack。但由于这些syn报文都是伪造的,发出去的syn ack报文将没有回应。TCP是可靠协议,这时就会重传报文,默认重试次数为5次,重试的间隔时间从1s开始每次都番倍,分别为1s + 2s + 4s + 8s +16s = 31s,第5次发出后还要等32s才知道第5次也超时了,所以一共是31 + 32 = 63s。

  也就是说一共假的syn报文,会占用TCP准备队列63s之久,而半连接队列默认为1024,系统默认不同,可 cat /proc/sys/net/ipv4/tcp max syn backlog c查看。也就是说在没有任何防护的情况下,每秒发送200个伪造syn包,就足够撑爆半连接队列,从而使真正的连接无法建立,无法响应正常请求。

  一台普通的每秒就可以轻松伪造100w个syn包。因此即使把队列大小调大最大也无济于事。

  二、如何防范syn flood攻击?

  针对syn flood攻击有2种比较通用的防范机制:

  1.cookie源认证:

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

  2.reset认证:

  Reset认证利用的.是TCP协议的可靠性,也是首先由DDOS防护系统来响应syn。防护设备收到syn后响应syn ack,将Acknowledgement number (确认号)设为特定值(记为cookie)。当真实客户端收到这个报文时,发现确认号不正确,将发送reset报文,并且sequence number 为cookie + 1。

  而伪造的源,将不会有任何回应。这样我们就可以将真实的客户端IP加入白名单。

  通常在实际应用中还会结合首包丢弃的方式结合源认证一起使用,首包丢弃原理为:在DDOS防护设备收到syn报文后,记录5元组,然后丢弃。正常用户将重传syn报文,防护设备在收到报文命中5元组,并且在规定时间内,则转发。当重传syn报文到达一定阀值时,在启用上述的源认证。这样就能减少反射syn ack报文的数量,缓解网络拥堵,同时对防护不产生影响。

【Syn Flood攻击是利用TCP/IP协议的什么漏洞】相关文章:

TCP/IP安全性研究09-01

TCP/IP在网络中的高效配置10-06

嵌入式系统的TCP/IP协议栈的研究与设计08-29

具有TCP/IP协议的智能开关控制器的研究09-01

TCP/IP在网络中的高效配置理工论文07-23

在TMS320VC5402上实现的嵌入式TCP/IP协议栈10-10

基于嵌入式TCP/IP的在线签名数据采集系统08-29

嵌入式TCP/IP协议单片机技术在网络通信中的应用08-29

基于精简TCP/IP协议栈的信息家电网络服务器10-06