常州金坛网站建设,空中客车网站建设需求,永久免费自助建站源代码,做家务的男人网站SYN洪泛攻击属于 DOS 攻击的一种#xff0c;它利用 TCP 协议缺陷#xff0c;通过发送大量的半连接请求#xff0c;耗费 CPU 和内存资源。
原理#xff1a;
在三次握手过程中#xff0c;服务器发送 [SYN/ACK] 包#xff08;第二个包#xff09;之后、收到客户端的 [ACK…SYN洪泛攻击属于 DOS 攻击的一种它利用 TCP 协议缺陷通过发送大量的半连接请求耗费 CPU 和内存资源。
原理
在三次握手过程中服务器发送 [SYN/ACK] 包第二个包之后、收到客户端的 [ACK] 包第三个包之前的 TCP 连接称为半连接half-open connect此时服务器处于 SYN_RECV等待客户端响应状态。如果接收到客户端的 [ACK]则 TCP 连接成功如果未接受到则会不断重发请求直至成功。SYN 攻击的攻击者在短时间内伪造大量不存在的 IP 地址向服务器不断地发送 [SYN] 包服务器回复 [SYN/ACK] 包并等待客户的确认。由于源地址是不存在的服务器需要不断的重发直至超时。这些伪造的 [SYN] 包将长时间占用未连接队列影响了正常的 SYN导致目标系统运行缓慢、网络堵塞甚至系统瘫痪。
检测当在服务器上看到大量的半连接状态时特别是源 IP 地址是随机的基本上可以断定这是一次 SYN 攻击。
防范
通过防火墙、路由器等过滤网关防护。通过加固 TCP/IP 协议栈防范如增加最大半连接数缩短超时时间。SYN cookies技术。SYN Cookies 是对 TCP 服务器端的三次握手做一些修改专门用来防范 SYN 洪泛攻击的一种手段。 SYN攻击利用的是TCP的三次握手机制攻击端利用伪造的IP地址向被攻击端发出请求而被攻击端发出的响应 报文将永远发送不到目的地那么被攻击端在等待关闭这个连接的过程中消耗了资源如果有成千上万的这种连接主机资源将被耗尽从而达到攻击的目的。
1、什么是SYN泛洪攻击 TCP SYN泛洪发生在OSI第四层这种方式利用TCP协议的特性就是三次握手。攻击者发送TCP SYNSYN是TCP三次握手中的第一个数据包而当服务器返回ACK后该攻击者就不对其进行再确认那这个TCP连接就处于挂起状态也就是所谓的半连接状态服务器收不到再确认的话还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。攻击者就对服务器发送非常大量的这种TCP连接由于每一个都没法完成三次握手所以在服务器上这些TCP连接会因为挂起状态而消耗CPU和内存最后服务器可能死机就无法为正常用户提供服务了。
2、SYN泛洪攻击原理
大家都知道一个TCP连接的启动需要经历三次握手的过程。正常情况下客户端首先向服务端发送SYN报文随后服务端回以SYNACK报文到达客户端最后客户端向服务端发送ACK报文完成三次握手后续就是上层业务数据交互直到某一方断开连接。 那么假如在这“握手”的过程中客户端程序因为莫名崩溃等原因收到SYNACK报文后不再回以ACK服务端将如何处置呢这时服务端会“优雅地”再等等会不会是发送的包丢失了呢于是重新发送一遍SYNACK再收不到来自客户端的ACK响应的话就把这次连接丢弃掉。这个过程大约会“优雅地”持续分钟级这个持续时间被称作SYN timeout时间。如果只有个别这样的异常情况目标服务端处理起来自是毫不费力可如果大量这样的情况出现对服务端来说就不堪重负了。这是为什么呢 如果大量的握手请求涌向TCP服务端而它们只发出SYN报文而不以ACK响应结束握手服务端就要为这每一个请求都维持约一分多钟的连接去等待ACK也就形成所谓的“半连接”。维护这些半连接是需要消耗很多服务器的网络连接资源的。如果短时间内这些资源几乎都被半连接占满那么正常的业务请求在这期间就得不到服务处于等待状态。 更进一步的如果这些半连接的握手请求是恶意程序发出并且持续不断那么就会导致服务端较长时间内丧失服务功能——这就形成了DoSDenial of Service拒绝服务攻击。这种攻击方式就称为SYN泛洪SYN flood攻击。 由于正常的TCP三次握手中发出去多少SYN报文就会收到多少SYNACK报文。攻击方需要将这些消息丢弃同时为了隐藏自己于是需要大量伪造泛洪攻击的源地址随机改成其它地址。为达到SYN泛洪攻击的效果这些伪造的源地址最好无法响应SYNACK如这些源地址的主机根本不存在或者被防火墙等网络设施拦截等等。
3、防范措施
对于SYN泛洪攻击的防范优化主机系统设置是常用的手段。如降低SYN timeout时间使得主机尽快释放半连接的占用又比如采用SYN cookie设置如果短时间内连续收到某个IP的重复SYN请求则认为受到了该IP的攻击丢弃来自该IP的后续请求报文。此外合理地采用防火墙等外部网络安全设施也可缓解SYN泛洪攻击。