SYNFlood攻击
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SYNFlood攻击
什么是SYN Flood攻击?
SYN泛洪(半开放式攻击)是⼀种,旨在通过消耗所有可⽤的服务器资源来使服务器⽆法⽤于合法流量。
通过重复发送初始连接请求(SYN)数据包,攻击者可以淹没⽬标服务器计算机上的所有可⽤端⼝,从⽽使⽬标设备对合法流量的响应缓慢或完全不响应。
SYN Flood攻击如何⼯作?
SYN Flood攻击通过利⽤连接的握⼿过程来⼯作。
在正常情况下,TCP连接表现出三个不同的过程以进⾏连接。
1. ⾸先,客户端将SYN数据包发送到服务器以启动连接。
2. 然后,服务器使⽤SYN / ACK数据包响应该初始数据包,以便确认通信。
3. 最后,客户端返回⼀个ACK数据包,以确认已从服务器接收到该数据包。
完成发送和接收数据包的顺序之后,TCP连接将打开并能够
发送和接收数据。
为了创建,攻击者利⽤以下事实:接收到初始SYN数据包后,服务器将以⼀个或多个SYN / ACK数据包进⾏响应,并等待握⼿的最后⼀
步。
运作⽅式如下:
1. 攻击者通常使⽤IP地址将⼤量SYN数据包发送到⽬标服务器。
2. 然后,服务器响应每个连接请求,并保留⼀个开放的端⼝以准备接收响应。
3. 当服务器等待永远不会到达的最终ACK数据包时,攻击者将继续发送更多SYN数据包。
每个新的SYN数据包的到来使服务器暂时维持
新的开放端⼝连接⼀段时间,⼀旦所有可⽤端⼝都被利⽤,服务器将⽆法正常运⾏。
在⽹络中,当服务器使连接保持打开状态但连接另⼀端的计算机未打开时,该连接被视为半打开。
在这种DDoS攻击中,⽬标服务器会不断离开开放的连接,并等待每个连接超时,然后端⼝才能再次可⽤。
结果是,这种类型的攻击可以被视为“半开放式攻击”。
SYN泛滥可以通过三种不同的⽅式发⽣:
1. 直接攻击:未被欺骗的SYN泛洪称为直接攻击。
在这种攻击中,攻击者根本不会掩盖其IP地址。
由于攻击者使⽤具有真实IP地址的单
个源设备来发起攻击,因此攻击者极易受到发现和缓解的影响。
为了在⽬标计算机上创建半开状态,⿊客阻⽌其计算机响应服务器的SYN-ACK数据包。
这通常是通过实现的规则,⽤于阻⽌除SYN数据包以外的其他传出数据包,或在传⼊的SYN-ACK数据包到达恶意⽤户计算机之前对其进⾏过滤。
实际上,这种⽅法很少使⽤(如果有的话),因为缓解⾮常简单-只需阻⽌每个恶意系统的IP地址即可。
如果攻击者使⽤的是诸如类的他们不会在意掩盖受感染设备的IP。
2. 欺骗攻击:恶意⽤户还可以欺骗他们发送的每个SYN数据包上的IP地址,以抑制缓解措施并使其⾝份更难被发现。
虽然可能会欺骗数
据包,但这些数据包可能可以追溯到其源。
进⾏这类侦探⼯作很困难,但并⾮没有可能,尤其是如果Internet服务提供商(ISP)愿意提供帮助。
3. 分布式攻击(DDoS):如果使⽤僵⼫⽹络创建攻击,则将攻击追溯到其源头的可能性很低。
为了增加混淆的程度,攻击者可能会让每
个分布式设备也欺骗其发送数据包的IP地址。
如果攻击者使⽤的是诸如Mirai僵⼫⽹络之类的僵⼫⽹络,则他们通常不会在意掩盖受感染设备的IP。
通过使⽤SYN Flood攻击,坏的演员可以尝试创建在⽬标设备或服务⽐其他DDoS攻击流量⼤⼤减少。
代替旨在使⽬标周围的⽹络基础架构饱和的⼤规模攻击,SYN攻击只需要⽐⽬标操作系统中的可⽤积压更⼤即可。
如果攻击者能够确定积压的⼤⼩以及每个连接在超时之前保持打开状态的时间,则攻击者可以确定禁⽤系统所需的确切参数,从⽽将总流量减少到创建所需的最⼩数量拒绝服务。
如何缓解SYN Flood攻击?
SYN洪⽔漏洞早已为⼈所知,并且已利⽤了许多缓解途径。
⼀些⽅法包括:
积压队列增加
⽬标设备上的每个操作系统都具有⼀定数量的半开放连接,这将允许该半开放连接。
对⼤量SYN数据包的⼀种响应是增加操作系统允许的最⼤半开连接数。
为了成功增加最⼤积压,系统必须保留其他内存资源来处理所有新请求。
如果系统没有⾜够的内存来处理增加的积压队列⼤⼩,则系统性能
将受到负⾯影响,但这可能⽐拒绝服务更好。
回收最旧的半开式TCP连接
另⼀个缓解策略是⼀旦积压已满,就覆盖最旧的半开连接。
这种策略要求合法的连接可以在少于积压的恶意SYN数据包的时间内建⽴完整的连接。
当攻击量增加或积压的⼤⼩太⼩⽽⽆法实际使⽤时,这种特殊的防御就会失败。
SYN Cookie
此策略涉及服务器创建cookie。
为了避免在积压已填满后断开连接的风险,服务器使⽤SYN-ACK数据包响应每个连接请求,
然后从积压中删除SYN请求,从内存中删除请求,并使端⼝保持打开状态,准备建⽴新的连接。
如果连接是合法请求,并且最终ACK数据包从客户端计算机发送回服务器,
则服务器将在⼀定的限制下重建SYN积压队列条⽬。
尽管这种缓解措施的确丢失了有关TCP连接的某些信息,但⽐允许攻击导致合法⽤户进⾏拒绝服务要好。