各大网站如何防范 DDoS?

信息安全 ddos
2021-08-27 05:49:49

据我所知,我从未听说过或见过任何大型网站,如亚马逊、微软、苹果、谷歌或 Ebay 遭受 DDoS 攻击。你?

我有一个个人哲学,即你越大,就越容易成为此类攻击的目标。想象一下,如果你关闭一个主要网站,你会得到多少分。

然而,这些网站始终保持坚固且看似不可战胜。他们实施了哪些安全措施,这些措施能否应用于小型企业?

4个回答

他们通常有一个非常分层的方法。以下是我在大型组织中实施或看到实施的一些事情。对于您关于小型企业的具体问题,您通常会找到第三方提供商来保护您。根据您的用例,这可能是云提供商、CDN、BGP 路由解决方案或基于 DNS 的解决方案。

带宽超额订阅- 这个相当简单。随着您的成长,您的带宽成本会下降。一般来说,大型组织将租用比他们需要考虑增长和 DDoS 攻击的容量大得多的容量。如果攻击者无法聚集足够的流量来压倒它,那么容量攻击通常是无效的。

自动缓解- 许多工具将监控来自路由器和其他数据源的网络流量数据,以确定流量的基线。如果流量模式超出这些区域,DDoS 缓解工具可以使用 BGP 或其他机制将流量吸引到这些区域并过滤掉噪音。然后,他们将干净的流量进一步传递到网络中。这些工具通常可以检测到体积攻击和更隐蔽的攻击,例如slowloris。

上游黑洞- 有一些方法可以使用路由器黑洞过滤 UDP 流量。我见过企业不需要接收 UDP 流量(即 NTP 和 DNS)到他们的基础设施的情况,所以他们让他们的传输提供商黑洞所有这些流量。最大的容量攻击通常是反射 NTP 或 DNS 放大攻击。

第三方提供商- 甚至许多相当大的组织都害怕怪物 300 Gbps 攻击。他们通常实施基于 DNS 的重定向服务或基于 BGP 的服务,以保护它们,以防它们遭受持续攻击。我想说 CDN 提供商也属于这一范畴,因为它们可以帮助组织在攻击期间保持在线。

系统强化——您通常可以同时配置操作系统和应用程序,使其对应用程序层 DDoS 攻击更具弹性。诸如确保您的 Linux 服务器上有足够的 inode 以配置正确数量的 Apache 工作线程之类的事情可以帮助攻击者更难取消您的服务。

虽然 DDOS 没有真正的对策,但有一些方法可以控制它。
首先是通过使用内容交付网络,使用世界各地的多个数据中心为来自不同地理区域的访问者提供内容。这有助于消除单点故障,使资源耗尽或链路饱和以及平衡攻击负载变得更加困难。
另一种方法是与主要骨干网、ISP 和相关组织密切合作,尽可能在最特定的网络中阻止攻击者 IP,以防止其流量到达目标。希望能帮助到你。

作为一家中型公司,我们使用 DOS 缓解服务来降低我们网站被下线的风险。我们的网站解析为提供商的 IP 地址。然后提供商将请求转发到我们的网络服务器。我们的网络服务器仅与提供商通信。

然后,他们使用他们的工具通过各种监控和关联工具来确定某些攻击是否是实际攻击。如果认为存在攻击,提供商不会将请求转发到我们的网络服务器并吸收攻击。为了能够执行这种类型的缓解,您的容量必须超过攻击者试图提供的容量。对于通常期望更大带宽容量的大型公司,我希望他们要么外包给 ISP,要么创建一个内部系统来执行相同的缓解策略。

我的公司已经处理了高达 180gbps 的 DDoS 攻击,这是我用来缓解的技术。

网站的规模不仅使其成为更大的目标,还发挥重要作用的事情是:

  • 公共关系(您是否将自己推销为您不是的东西,您的目标人群)
  • 兑现承诺
  • 以正确的方式对待客户

DDoS 攻击的动机包括但不限于以下内容:

  • 名声(“哦,看看我,我设法把这个网站拿下来了”)
  • 金钱(大型网站的攻击成本更高,通常如果他们正在寻找金钱,他们会针对没有大型技术团队且收入高的小型网站)
  • 行动主义

另外(来自评论之一):

  • 另一个动机是他们试图分散你的注意力。例如,如果他们想攻击 Apache,那么您正忙于修复它,而他们却暴力破解您的 SSH 密码。

DDoS攻击有很多种类型以及它们是如何发起的,首先您需要按顺序获得我上面列出的要点,然后您的DDoS攻击可能会减少。这并不意味着您将不再体验它们,您只是让人们减少了攻击您的动机。

在技​​术层面上,有很多事情需要考虑,因为大多数企业的基础架构中都有多个节点。在某些情况下,每个节点都需要不同类型的方法。在我的例子中,这些节点是一个 API、一个游戏服务器、一个身份验证服务器、一个数据库和一个社交服务器。第 1 步是确保您永远不会公开不需要公开的 IP 地址。在我的例子中,这些是身份验证服务器、数据库和社交服务器。一般来说,限制故障点是一个很好的开始方法。保护非常昂贵,只有在您真正需要它的地方拥有最具弹性的保护才是最好的。

在您确定哪些点需要公开后,您可以按照需要保护的方式单独保护每个功能。theterriblevitrium 对技术给出了很好的答案,这是我的 2 美分。

  • Anycast(例如,CDN。这对于本地 API、DNS 服务器和 Web 服务器等静态节点非常有效,但其缺点是目前对于游戏等具有单点故障的系统无法有效运行服务器)
  • 网络规则和数据包检查(例如,每个连接每秒只能占用 X kb 的流量,并且每个数据包应匹配模式 x、y 或 z。这对我们的游戏非常有效。缺点是如果它们达到您的带宽限制,您'运气不好。)

随意问任何问题!