如何防范 DDoS 攻击
分布式拒绝服务 (DDoS) 攻击旨在使组织或服务脱机并源自多个分布式主机。防御 DDoS 攻击的难点在于主机是分布式的——如果是单个主机或小组,您可以使用防火墙规则轻松阻止流量。DDoS 攻击有许多不同类型,但我们可以将它们大致分为三类:容量攻击、协议攻击和应用程序攻击。让我们详细看看每一个。
什么是容量 DDoS 攻击?
容量 DDoS 攻击旨在填满受害者的带宽(例如 UDP 反射攻击)。
UDP 反射攻击发送的数据包将目标 IP 地址伪装为源。然后,对欺骗数据包的响应将发送到目标,而不是攻击者。
通过中间服务器而不是直接攻击目标的优点是响应数据包通常比发送的数据包大得多。例如,对 DNS 查询的响应可能比原始请求大 28 到 54 倍。
这样,攻击者可以发送许多更小的数据包,而响应数据包将耗尽目标的资源。
什么是协议 DDoS 攻击?
协议 DDoS 攻击发现了协议运行方式的弱点(例如 SYN 洪水)。SYN 洪水利用了三向握手的工作方式。
当攻击者向一台机器发送大量 SYN 数据包时,服务器将为该请求分配资源并返回一个 SYN ACK 数据包——假设它是连接请求的开始。
通常,另一台服务器会以 ACK 响应,开始连接。在受到攻击的情况下,攻击者在没有完成连接的情况下继续发送 SYN 请求,直到服务器资源耗尽且无法接受任何额外的流量。
什么是应用程序 DDoS 攻击?
应用程序 DDoS 攻击针对的是应用程序工作方式中的弱点(例如 Slowloris 攻击)。
Slowloris 攻击与 SYN 洪水攻击非常相似,但针对的是网络服务器。当攻击者发送 HTTP 请求而没有完成它们,继续(缓慢地)发送额外的标头以保持连接打开时,就会发生这种情况。
由于连接永远不会完成,它们吸收了服务器的所有可用资源,因此无法处理合法连接。
其他类型的 DDoS 攻击
或者,DDoS 攻击可以根据它们影响的 OSI 模型层进行分组。这些通常分为基础设施攻击(例如 UDP 反射和 SYN 泛洪)或应用程序攻击(例如 HTTP 泛洪和缓存破坏)。
当攻击者向服务器或应用程序发送看似合法的 HTTP 请求的“洪水”,耗尽其资源时,就会发生 HTTP 洪水。
缓存总线攻击是 HTTP 泛洪攻击的一个子集,旨在通过改变查询字符串来避免 CDN 缓存,因此 CDN 必须为每个请求联系源服务器,从而使其过载。
DDoS 攻击的缓解措施
防御 DDoS 攻击最重要的部分是准备工作本身。DDoS 尝试在开始后很难处理。
扩大带宽
应对容量攻击的一种方法是扩大带宽作为响应。不幸的是,这可能非常困难,具体取决于攻击的规模,以及攻击者扩大攻击规模作为响应的能力。
除非被攻击的组织是服务提供商或非常大的组织,否则这不太现实。
外包响应
较小的组织可以将他们的响应外包给其他专业公司,或他们的 ISP(或两者)。
这些类型的关系需要在攻击发生之前就位,这样当攻击发生时,缓解措施就像联系 ISP 或服务提供商以激活保护(或持续启用保护)一样简单。
DDoS 保护提供商通常会做的是将流量转移到他们的环境(如果它尚未通过他们的环境)。这可以通过 DNS,通过更新 A 记录以指向 DDoS 提供商已分配的 IP(尽管您需要较低的 TTL 以使其快速生效),或通过 BGP,通过通告更具体的路由目前正在宣传中。
制定 DDoS 特定的事件响应计划
即使组织已将其 DDoS 保护外包,制定特定于 DDoS 的事件响应计划也是关键。
一旦它被各个利益相关者编写并同意,重要的是至少每年审查一次(最好通过桌面练习)以确保每个人都了解他们在计划中的角色。
特定于 DDoS 的响应计划应包括以下内容:
活动前:
- 电路图:创建尽可能准确的电路图,包括电信触点。
还要创建您自己的网络和任何适当联系人(包括能够并有权进行本地更改的人员,以及可以联系电信公司进行任何更新的人员)的地图。 - 升级:确定何时(以及如何)让您的 ISP 或 DDoS 缓解组织(提供最新的联系人和合同副本)参与进来。
- 沟通:制定应该通知谁和何时通知的列表(安全团队的联系信息、适当的网络团队联系人等)。
这应该分为两组 - 技术响应人员(可以/将实施技术更改以解决攻击)和其他所有人(通信、法律等)。第二组应该包括可能需要参与的任何人,但他们应该与进行更改的技术人员单独通话,以便尽可能有效地做出响应。
理想情况下,这应该被打印和分发,这样即使系统不可用,人们也可以访问。
确保您的沟通团队制定了一个计划,说明在发生导致面向客户的资产丢失的事件时如何以及如何沟通。 - 审查:应定期(至少每季度)审查这些文件和联系人名单。
活动期间:
- 将事件归类为 DDoS 攻击:需要确认这是一次 DDoS 攻击,而不仅仅是短暂的高流量爆发或某人在网络中犯下的错误。理想情况下,这还包括确定正在发生的攻击类型和攻击量。
- 升级:循环事件指挥官,以便他们可以开始通知必要的人员。
- 采取初始步骤:如果可能,请疏通流量。如果流量高于链接的带宽,请联系您的运营商(他们可能会在他们的一端造成流量下降)。同时,如果您有 DDoS 缓解服务,也请联系他们。
- 沟通:为技术人员和非技术人员建立一个链接以了解事件的最新情况。
如果公共服务长时间中断,这一点尤其重要,因为您的通信团队需要保持最新状态才能与股东/媒体/客户进行沟通。
事后:
- 恢复正常:您何时会取消任何缓解措施?谁来签收?
- 攻击来源:您可以收集哪些有关攻击的信息来解释它以及背后的攻击者?这是有针对性的攻击吗?
- 经验教训:它们是什么?如何使用它们来改进事件响应计划?
构建弹性架构
构建具有弹性的系统需要一个全面的业务连续性计划,并将 DDoS 作为该计划的一个组成部分。
在为 DDoS 进行架构设计和为业务连续性进行架构设计时,基本上相同的原则适用于数据中心和网络。您希望避免任何单点故障或瓶颈,并拥有地理上不同的网络和供应商的多样性。
内容分发网络 (CDN) 是改善您对 DDoS 响应的一种方法,因为它们提供了一个地理分布的代理服务器网络,可以显着提高弹性。
云架构提供了对旧模型的显着改进。它允许任何规模的组织创建完全冗余的系统,该系统可以上下旋转并单击按钮。它还以极低的成本拥有地理上多样化的基础设施,以及一种根据需要上下扩展负载容量的廉价、简单的方法。
专门针对云进行架构可以使组织利用这些新模型并显着改善您的 DDoS 响应。
升级您的硬件
一些 DDoS 攻击类型非常古老,可以通过更新的硬件来缓解。例如,您可以使用适当的网络防火墙和负载均衡器抵御许多协议攻击(如 SYN 泛洪)和应用程序攻击(如 Slowloris)。
这些防火墙通常可以监控此类攻击的迹象,并在连接达到不可持续的水平时关闭连接。安装正确的硬件可以减轻攻击可能造成的损害。