ISP 如何应对 DDoS 攻击?

信息安全 攻击 ddos 拒绝服务 网络服务商 cdn
2021-08-27 08:38:36

像 50 Gbps 这样的低带宽 ISP 如何处理更多的 DDoS 攻击?我知道有一种解决方案叫做“黑洞”。

  • 这是否足以缓解 DDoS 攻击,或者是否有任何其他企业解决方案?
  • 现在有哪些 DDoS 缓解服务可用?
  • CDN 能否缓解 DDoS 攻击?
2个回答

有许多策略,每种策略都有自己的成本和收益。这里有一些(还有更多,还有变化):

黑洞

通过黑洞流量,您可以丢弃所有流向目标 IP 地址的流量。通常,ISP 会尝试使用 RTBH(远程触发黑洞),通过它他们可以要求其上游网络丢弃流量,因此它甚至不会到达目标网络。这样做的好处是它不会使 ISP 的上行链路饱和。这里最大的缺点是您完全按照攻击者的意愿行事:目标 IP 地址(以及在其上运行的服务)处于脱机状态。但是,ISP 的其余客户不会受到攻击,成本也很低。

选择性黑洞

与其对整个 Internet 的 IP 地址进行黑洞化,不如更改目标地址范围的 BGP 路由以使其仅可访问 Internet 的一部分。这通常称为“选择性黑洞”,由许多大型运营商实施。这个想法是许多互联网服务只需要在特定地区(通常是一个国家或大陆)可用。例如,使用选择性黑洞,受到攻击的荷兰 ISP 可以选择将其 IP 范围作为来自中国的流量的黑洞,而欧洲 IP 将能够到达目标地址。如果攻击流量来自与常规流量完全不同的来源,则此技术可以很好地工作。

擦洗

一个更好的解决方案是使用清理中心,通常作为服务托管在 ISP 网络之外。当受到 DDoS 攻击时,ISP 将该 IP 范围的流量重定向到清洗中心。清理中心拥有过滤不需要的流量的设备,留下(大部分)干净的流量流,这些流量被路由回 ISP。与黑洞相比,这是一个更好的解决方案,因为目标 IP 上的服务仍然可用。缺点是大多数洗涤中心都是商业的,而且成本很高。此外,清理并不总是那么容易,可能同时存在误报(想要的流量被过滤)和误报(不需要的流量未被过滤)。

交通工程

ISP 网络通常通过中转提供商和/或互联网交换点与互联网建立多个连接。通过使这些连接以及 ISP 骨干内的链接比正常流量模式所需的大得多,网络可以应对 DDoS 攻击。然而,这有一个实际的限制,因为未使用的带宽容量是昂贵的(例如,如果你只做几 Gbps 的话,投资 100Gbps 设备和上行连接非常昂贵且成本效率低下),这通常只会将问题转移到网络中的某处:某处将有容量较小的交换机、路由器或服务器,这将成为阻塞点。

对于某些攻击,ISP 可能能够以某种方式平衡传入流量,因此并非所有外部连接都会被淹没,只有一个或几个会变得饱和。

在较大的网络中,可以创建一个“sinkhole”路由器,它只吸引受到攻击的 IP 范围的流量。流向所有其他 IP 范围的流量通过其他路由器路由。这样,ISP 能够在一定程度上隔离 DDoS,方法是仅在 sinkhole 路由器上宣布 BGP 中的目标 IP 范围,同时停止在其他路由器上宣布该 IP 范围。从互联网到该目的地的流量将被强制通过该路由器。这可能会导致该沉洞路由器的所有上行链路饱和,但其他路由器上的上行链路不会被淹没,其他 IP 范围也不会受到影响。

这里最大的缺点是目标 IP 所在的整个范围(至少为 /24)可能会受到此影响。这种解决方案通常是最后的手段。

本地过滤

如果 ISP 在其上行链路上有足够的容量(因此它们不会饱和),他们可以实施本地过滤。这可以通过多种方式完成,例如:

  • 在拒绝源地址或目标端口等特征的流量的路由器上添加访问列表。如果攻击中的源 IP 地址数量有限,这可以有效地工作
  • 实施流量速率限制器以减少到目标 IP 地址的流量
  • 通过过滤不需要的流量的本地清理框路由流量
  • 实现BGPFlowspec,它允许路由器使用 BGP 实现交换过滤规则(例如:“拒绝从 IP 地址 X 到 IP 地址 Y 协议 UDP 源端口 123 的所有流量”)

内容交付网络和负载平衡

网络托管商可以使用内容交付网络 (CDN) 来托管他们的网站。CDN 使用全局负载平衡,因此在全球拥有大量带宽和缓存服务器集群,因此很难完全关闭一个网站。如果一组服务器由于 DDoS 而停机,流量会自动重定向到另一个集群。许多大型 CDN 也作为清理服务运行。

在较小的规模上,可以部署本地负载平衡。在这种情况下,服务器池可用于托管网站或 Web 应用程序。流量通过负载平衡器分布在该池中的服务器上,从而增加了可用的服务器容量,这可能有助于抵御 DDoS 攻击。

当然,CDN 和负载均衡仅适用于托管,不适用于访问 ISP。

好问题!

让我们从部署到生产中的 Web 应用程序的实际场景的上下文来讨论,它在应用层受到攻击者的攻击,每秒 10,000 个请求,再加上仍然可控的巨大网络层攻击。

当然,ISP 可以处理 DDoS 攻击,但同样取决于他们的整体设置和资源、基础设施。

案例分析 -

因此,首先,我很荣幸能回答这个问题,因为我的一位客户最近在他的 Web 应用程序上面临 DDoS 攻击,但似乎很难缓解问为什么

因为我发现这是一次“应用层 DDoS 攻击”,而 聪明的攻击者针对的是不同的资源,而不是不受速率限制的特定端点

正如您可以想象的那样, 该提议的关键要点不仅是实施强大的CDN,而且还改进了他们的 -

  1. 负载均衡
  2. 通过适当的Nginx(或任何其他服务器)服务器配置实现速率限制,这种速率限制又具有许多基于攻击的配置子集,您可以通过这些子集优化您的隐身并保护您的应用程序。随意阅读文档以阅读有关 nginx 速率限制的更多信息,这对于处理大负载的应用程序来说确实是理想的。
  3. 当您特别拥有庞大的用户群并处理实时服务的需求时,使用在这方面被认为非常高效和强大Akamai CDN
  4. 在攻击的高峰条件下,在用户发送 2 次请求后,在应用程序中几乎所有可以想象的字段上实施验证码。整个网络上最流行的应用程序都使用Recaptcha和 Recaptcha 还阻止TOR出口节点和代理(攻击者经常使用它们通过从一个 TOR 电路跳到下一个或使用不同的代理作为高级规避的一种形式来规避网络层防火墙规则) 这是一个优点,因为在我们的案例中,一些恶意流量似乎来自高度匿名的 TOR 网络。
  5. 最后,必须更改应用程序逻辑,以便无法绕过速率限制

ISP层,您只能有效地控制网络层攻击,而不会对您的用户产生不利影响,这也有一些缺点。因此,黑洞对您的企业来说可能还不够,另一方面,可能会导致严重的问题,例如应用程序中的可用性问题 -

当良好的流量也受到影响时,使用黑洞路由的一个关键后果是,攻击者基本上已经完成了中断到目标网络或服务的流量的目标。尽管它可以帮助恶意行为者实现他们的目标,但当攻击的目标是大型网络中的一个小站点时,黑洞路由仍然很有用。在这种情况下,将指向目标站点的流量黑洞化可以保护更大的网络免受攻击的影响。

这就是 Cloudflare 在这方面不得不说的。所以黑洞本质上是路由网络流量并丢弃它。但是使用多个 IP 子网的应用层或更深层的攻击呢?传统方法在这些情况下会失败,您需要调查并找到应用程序中的主要漏洞,这可能是您在使用 Cloudflare 时披露了内部服务器 IP 或易受攻击的端点,在这种情况下 Cloudflare 也会失败