zzzzy09

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

来自:https://etherealmind.com/tcp-syn-cookies-ddos-defence/

syn cookie 历史:https://cr.yp.to/syncookies.html

TCP SYN Cookies – DDoS 防御

TCP SYN Cookie 通常用于 DDoS 引擎和负载平衡器,以创建另一层协议安全以应对拒绝服务攻击。让我们快速了解一下这项技术。

什么是 SYN Cookie,我为什么需要它们?

SYN cookie 是 TCP 软件对初始 TCP 序列号的特定选择,用于防御 SYN Flood 攻击。

在正常操作中,客户端发送 SYN,服务器以 SYN+ACK 消息响应,然后服务器将在 TCP 堆栈中保存状态信息,同时等待客户端 ACK 消息。一个简单的 SYN 洪水(使用合适的软件)将生成 SYN 数据包,这些数据包将消耗所有可用的 TCP 内存,因为服务器必须为所有半开连接保持状态。并且由于这个状态表是有限的,服务器将不再接受新的 TCP 连接,从而失败或拒绝向用户提供服务((或者更糟糕的是,缓冲区溢出或系统内存耗尽,今天不是什么问题))。

这是一种高度杠杆化的攻击,因为极少量的带宽和 CPU 就可以耗尽大量服务器上的资源。

通过在 SYN-ACK 响应中使用特定的、秘密的数学函数专门计算 TCP 序列号,服务器不需要维护这个状态表。收到来自客户端的 ACK 后,将对照函数检查 TCP 序列号以确定这是否是合法回复。如果检查成功,则服务器将创建 TCP 会话,用户连接将正常进行。

 

TCP 序列开始时的 TCP 序列号通常是一个随机选择。TCP 序列是 NMAP 用来识别操作系统的,因为它“知道”某些操作系统没有高质量的随机化,并且 NMAP 使用算法来分析 ISN 以“猜测”操作系统。这是 PIX/ASA 防火墙功能的一部分,它将提高 ISN 的随机性以确保

如果 ACK 响应不正确,则不会创建 TCP 会话。结果是 SYN 泛洪将不再消耗服务器或负载平衡器上的资源/这在数据中心等高带宽环境中尤其如此。

 

我应该如何实现 SYN Cookies ?

一般来说,在服务器上实现这种类型的代码是一个坏主意。为函数计算提供数学运算的 CPU 要求超出了 x86 服务器(及其操作系统)实时可靠计算的能力((虽然 MSWin/Linux 服务器当然可以计算函数,但其​​整体性能将是严重影响))。CPU 影响可能会导致服务器无法交付应用程序,或者充其量在任何情况下都运行得更慢。

最常见的实现是在负载平衡器和 DDoS 设备上,具有专用 CPU 和操作系统,可以处理大量 TCP 序列计算而不会损失性能。在这种情况下,TCP 建立是通过使用会话终止或会话拦截来处理的。

DDoS 引擎((为什么将它们称为引擎而不是设备?我不知道,我就是这么称呼它们的。必须是营销方面的东西))也将使用 SYN cookie,例如 Cisco Guard 将使用 SYN cookie 作为第一级一旦流量被转移到模块,DDoS 防御。

你应该实施吗?

SYN Cookies 是当今一种简单的 DDoS 防御,可能适用于所有 Internet 托管,包括邮件服务器和企业 Web 服务器。

许多 DDoS 攻击只会使您的 Internet 连接大量溢出,因为 100 MB 的以太网连接现在非常小,例如,与 500 台平均带宽为 200 Kbs 的受感染台式机相比,每次发起攻击都会使您的 100 Mbs 链接饱和,并且什么都没有您可以这样做((此时您需要使用您的服务提供商来减轻攻击))。但是 SYN 攻击可以使用 2Mbs DSL 线路完成,并且不太可能超出您的带宽(因为 SYN 数据包是 64 字节)。

SYN Cookie 的替代品

您不必使用 SYN cookie 来防御 SYN 洪水,因为大多数现代防火墙都会监控状态表,并在达到高水位线时丢弃连接。当然,更智能的防火墙将查看每个协议每秒的 SYN 数据包,并开始标记攻击并开始清除半打开的连接以确保资源可用性。但它们通常没有智能例程,实际上可能会丢弃良好的 TCP 会话,尤其是在大量攻击时),从而在攻击继续时导致服务降级。

结论

我不得不承认互联网 DDoS 攻击是一门专业的艺术,从业者必须跟上当前的趋势。经验至关重要,不仅在使用设备方面,而且在识别和识别新攻击方面也是如此。我不是他们中的一员。

TCP SYN cookie 是在中型网络中准备防御的有用工具,在这些网络中,不可能在托管 DDoS 服务上花钱。

 

posted on 2021-06-25 20:14  zzzzy09  阅读(157)  评论(0编辑  收藏  举报