什么是 DDoS 攻击?
# | 层 | 应用 | 描述 | 向量示例 |
7 | 应用 | 数据 | 网络层发展至应用层 | HTTP 泛洪,DNS 查询洪泛 |
6 | 表示 | 数据 | 数据表示和加密 | SSL 滥用 |
5 | 会话 | 数据 | 主机间通信 | 不适用 |
4 | 运输 | 行业 | 端到端连接和可靠性 | SYN 泛洪 |
3 | 网络 | 数据包 | 路径确定和逻辑寻址 | UDP 反射攻击 |
2 | 数据链路 | 帧 | 物理寻址 | 不适用 |
1 | 物理 | 位 | 媒体、信号和二进制传输 | 不适用 |
DDoS 攻击分类
在考虑抵御这些攻击的缓解技术时,将攻击分为基础设施层(第 3 层和第 4 层)和应用层(第 6 层和第 7 层)非常有用。
基础设施层攻击
第 3 层和第 4 层的攻击通常归类为基础设施层攻击。这些也是最常见的 DDoS 攻击类型,包括同步 (SYN) 泛洪攻击和其他反射攻击(如用户数据报数据包 (UDP) 泛洪)等向量。这些攻击通常数量较大,旨在使网络或应用程序服务器的容量过载。但幸运的是,这些也是具有清晰标识且更易于检测的攻击类型。
应用层攻击
第 6 层和第 7 层攻击通常被归类为应用层攻击。虽然这些攻击不太常见,但它们也往往更加复杂。与基础设施层攻击相比,这些攻击的数量通常较小,但往往侧重于应用程序的特定昂贵部分,从而使真实用户无法使用应用程序。例如,登录页的大量 HTTP 请求、昂贵的搜索 API,甚至 WordPress XML-RPC 泛洪(也称为 WordPress pingback 攻击)。
DDoS 防护技术
减少攻击表面积
缓解 DDoS 攻击的第一种技术之一是将可能受到攻击的表面积降至最低,从而限制攻击者的选择,并允许您在单个位置构建保护。我们希望确保我们不会将我们的应用程序或资源暴露给端口、协议或应用程序,而这些端口、协议或应用程序不会进行任何通信。因此,尽量减少可能的攻击点,让我们集中精力执行攻击缓解工作。在某些情况下,为了实现此目的,您可以将计算资源放置在内容分发网络 (CDN) 或负载均衡器之后,并将 Internet 直接流量限制在基础设施的某些部分,如数据库服务器。在其他情况下,您可以使用防火墙或访问控制列表 (ACL) 来控制到达应用程序的流量。
计划扩展
缓解大容量 DDoS 攻击的两个主要考虑因素是带宽(或传输)容量和服务器容量,以吸收和缓解攻击。
传输容量。构建应用程序时,请确保您的托管提供商提供充足的冗余 Internet 连接,使您能够处理大量流量。由于 DDoS 攻击的最终目标是影响您的资源/应用程序的可用性,因此您应该将它们置于靠近您的最终用户和大型 Internet 交换台的位置,这样即使在大量流量的情况下,您的用户也可以轻松访问您的应用程序。此外,Web 应用程序还可以进一步利用内容分发网络 (CDN) 和智能 DNS 解析服务,这些服务提供了一层额外的网络基础设施,用于从通常靠近最终用户的位置提供内容和解析 DNS 查询。
服务器容量。 大多数 DDoS 攻击都是容量攻击,占用大量资源;因此,您可以快速向上或向下扩展计算资源,这一点非常重要。要实现此目的,您可以在较大的计算资源上运行,也可以通过具有更多支持较大容量的广泛网络接口或增强网络等功能的资源。此外,使用负载均衡器持续监控和转移资源之间的负载也很常见,以防止任何一个资源过载。
了解什么是正常和异常流量
每当我们检测到流量水平升高而影响到主机时,最基本的基线是只能接受主机可以处理的最大流量,而不会影响可用性。此概念称为速率限制。更高级的保护技术可以更进一步,并且只能通过分析单个数据包本身智能地接受合法的通信。为此,您需要了解目标通常接收的良好流量的特征,并能够将每个数据包与此基线进行比较。
为复杂的应用程序攻击部署防火墙
最佳做法是使用 Web 应用程序防火墙 (WAF) 来抵御试图利用应用程序本身中的漏洞的攻击,如 SQL 注入或跨站点请求伪造。此外,由于这些攻击的独特性,您应该能够轻松创建针对非法请求的自定义缓解措施,这些请求可能具有伪装成良好流量或来自坏 IP、意外地理位置等特征。有时,它还有助于缓解攻击,因为它们可能会获得经验支持,以研究流量模式并创建自定义保护。