SYN Flooding(同步包风暴)攻击的原理,怎样防范?

SYN Flooding(同步包风暴)攻击的原理,怎样防范?,第1张

原理:在SYN Flood攻击中,利用TCP三次握手协议的缺陷,攻击者向目标主机发送大量伪造源地址的TCP SYN报文,目标主机分配必要的资源,然后向源地址薯樱返回SYN+ACK包,并等待源端返回ACK包。由于源地址是伪造的,所以源端永远都不会返回ACK报文,受害主机继续发送SYN+ACK包,并将半连接放入端口的积压队列中,虽然一般的主机都有超时机制和默认的重传次数,但由于端口的半连接队列的长度是有限的,如果不断的向受害主机发送大量的TCP SYN报文,半连接队列就会很快填满,服务器拒绝新的连接,将导致该端口无法响应其他机器进行的连接请求,脊高最终使受害主机的资源耗尽。

防范手段:

�8�5 优樱手尺化系统配置:包括缩短超时时间,增加半连接队列的长度,关闭不重要的服务等。

�8�5 优化路由器配置:配置路由器的内、外网卡。

�8�5 完善基础设施:增加源IP地址检查机制等。

�8�5 使用防火墙:采用半透明网关技术的放火墙可有效防范SYN Flooding攻击

�8�5 主动监视:监视TCP/IP流量,收集通信控制信息,分析状态,辨别攻击行为。

SYN泛洪攻击(SYN Flood)是一种比较常用的DoS方式之一。通过发送大量伪造的Tcp连接请求,使被攻击主机资源耗尽(通常是CPU满负荷或者内存不足)

的氏派攻击方式。

我们都知道建立Tcp连接需要完成三次握手。正常情况下客户端首先向服务端发送SYN报文,随后服务端回以SYN+ACK报文到达客户端,最后客户端向服务端发送ACK报文完成三次握手。

而SYN泛洪攻击则是客户端向服务器发送SYN报文之后就不再响应服务器回应的报文。由于服务器在处理TCP请求时,会在协议栈留一块凯慎缓冲区来存储握手的过程,当然如果超过一定的时间盯核敬内没有接收到客户端的报文,本次连接在协议栈中存储的数据将会被丢弃。攻击者如果利用这段时间发送大量的连接请求,全部挂起在半连接状态。这样将不断消耗服务器资源,直到拒绝服务。

  最基本的DoS攻击就是攻击者利用大量合理的服务请求来占用攻击目标过多的服务资源,从而使合法用户无法得到服务的响应。DoS攻击一般是采核枝用一对一方式的,当攻击目标各项性能指标不高时(例如CPU速度低、内存小或者网络带宽小等等),它的效果衡斗是明显的。

   泛洪攻击(Flood)

  指攻击者通过僵尸网络、代理或直接向攻击目标发送大量改拦敏的伪装的请求服务报文,最终耗尽攻击目标的资源。发送的大量报文可以是TCP的SYN和ACK报文、UDP报文、ICMP报文、DNS报文HTTP/HTTPS报文等。

  以下Python脚本可实现简易的SYN Flood攻击

运行结果如下

使用Wirshark观察如下,产生大量TCP syn包;由于使用单IP单端口发送时,scapy使用了相同TCP序列号和数据,Wirshark认为是TCP重传,使用多IP多端口是则正常。

以下Python脚本可对捕获的SYN Flood包进行分析,并展示出数量大于5的连接。

运行结果如下

首先会打印出数量大于5的连接与其对应的数量。

同时会生成对应图表,可以直观的看到攻击目标主机和端口的源IP排名。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12264528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存