SYN Flood攻击

 

 

什么是SYN Flood攻击?

SYN泛洪(半开放式攻击)是一种拒绝服务(DDoS)攻击,旨在通过消耗所有可用的服务器资源来使服务器无法用于合法流量。

通过重复发送初始连接请求(SYN)数据包,攻击者可以淹没目标服务器计算机上的所有可用端口,从而使目标设备对合法流量的响应缓慢或完全不响应。

 

SYN Flood攻击如何工作?

SYN Flood攻击通过利用TCP连接的握手过程来工作在正常情况下,TCP连接表现出三个不同的过程以进行连接。

  1. 首先,客户端将SYN数据包发送到服务器以启动连接。
  2. 然后,服务器使用SYN / ACK数据包响应该初始数据包,以便确认通信。
  3. 最后,客户端返回一个ACK数据包,以确认已从服务器接收到该数据包。完成发送和接收数据包的顺序之后,TCP连接将打开并能够发送和接收数据。

为了创建拒绝服务,攻击者利用以下事实:接收到初始SYN数据包后,服务器将以一个或多个SYN / ACK数据包进行响应,并等待握手的最后一步。运作方式如下:

  1. 攻击者通常使用欺骗性IP地址将大量SYN数据包发送到目标服务器
  2. 然后,服务器响应每个连接请求,并保留一个开放的端口以准备接收响应。
  3. 当服务器等待永远不会到达的最终ACK数据包时,攻击者将继续发送更多SYN数据包。每个新的SYN数据包的到来使服务器暂时维持新的开放端口连接一段时间,一旦所有可用端口都被利用,服务器将无法正常运行。

在网络中,当服务器使连接保持打开状态但连接另一端的计算机未打开时,该连接被视为半打开。

在这种DDoS攻击中,目标服务器会不断离开开放的连接,并等待每个连接超时,然后端口才能再次可用。结果是,这种类型的攻击可以被视为“半开放式攻击”。

SYN泛滥可以通过三种不同的方式发生:

  1. 直接攻击:IP地址未被欺骗的SYN泛洪称为直接攻击。在这种攻击中,攻击者根本不会掩盖其IP地址。由于攻击者使用具有真实IP地址的单个源设备来发起攻击,因此攻击者极易受到发现和缓解的影响。为了在目标计算机上创建半开状态,黑客阻止其计算机响应服务器的SYN-ACK数据包。这通常是通过防火墙实现的规则,用于阻止除SYN数据包以外的其他传出数据包,或在传入的SYN-ACK数据包到达恶意用户计算机之前对其进行过滤。实际上,这种方法很少使用(如果有的话),因为缓解非常简单-只需阻止每个恶意系统的IP地址即可。如果攻击者使用的是诸如Mirai僵尸网络之类的僵尸网络,则他们不会在意掩盖受感染设备的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连接的某些信息,但比允许攻击导致合法用户进行拒绝服务要好。

 

posted on 2021-03-29 09:26  曹伟雄  阅读(624)  评论(0编辑  收藏  举报

导航