拒绝服务 (DoS) 攻击是一种尝试对合法最终使用者进行恶意攻击,以影响其目标系统 (例如网站或应用程式) 可用性的行为。通常,攻击者会产生大量的封包或请求,最终使得目标系统无法负荷。如果是分散式拒绝服务 (DDoS) 攻击,攻击者会使用多个盗用或受控的来源来产生攻击。
开放式系统互联 (OSI) 模型:
- #——层——应用程式——描述——向量范例
- 7——应用程式——资料——应用程式网路程序——HTTP 泛洪、DNS 查询泛洪
- 6——展示——资料——资料展示和加密——SSL 滥用
- 5——工作阶段——资料——中间主机通讯——不适用
- 4——传输——区段——端对端连线和可靠性——SYN 泛洪
- 3——网路——封包——路径判定与逻辑定址——UDP 反射攻击
- 2——资料连结——框架——实体定址——不适用
- 1——实体——位元——媒体、讯号和二进位传输——不适用
DDoS攻击分类
思考对抗这些攻击的风险降低技术时,将这些攻击区分为基础设施层 (Layers 3 和 4) 与应用程式层 (Layer 6 和 7) 攻击会很有帮助。
基础设施层攻击
Layer 3 和 4 的攻击通常归类为基础设施层攻击。这也是最常见的 DDoS攻击类型,包括同步 (SYN) 泛洪等攻击途径,以及使用者资料包封包 (UDP) 泛洪等其他反射攻击。这些攻击通常数量庞大,且旨在使网路或应用程式伺服器的容量超载。幸运的是,这类攻击类型都具有清晰的签章,因此很容易侦测。
应用程式层攻击
Layer 6 和 7 的攻击通常归类为应用程式层攻击。虽然这些攻击较不常见,但却更为复杂。这些攻击与基础设施层攻击相比数量通常较少,但是倾向针对应用程式特定的重要部份进行攻击,使实际使用者无法使用应用程式。例如,对登入页面或重要搜寻 API 进行 HTTP 请求泛洪,或甚至是 WordPress XML RPC 泛洪 (也称为 WordPress pingback 攻击)。
DDoS 保护技术
1、减少受攻击区域
减缓 DDoS攻击的首选技术之一,是将可能受攻击的区域降到最低,以限制攻击者的选择,让您能够在单一位置建立保护。我们要确保应用程式或资源不会公开至不应收到任何通讯的连接埠、协定或应用程式。从而大幅减少可能的攻击点,让我们专注于减缓攻击风险。在某些情况下,可以将运算资源放在内容分发网路 (CDN) 或负载平衡器之後,使网际网路流量无法直接流向基础设施 (例如资料库伺服器) 的某些部分。在其他情况下,您可以使用防火墙或存取控制清单 (ACL) 来控制可流向您应用程式的流量。
2、扩展计划
减缓大规模 DDoS攻击的两个主要考量是,可承担与减缓攻击的频宽 (或传输) 容量和伺服器容量。
(1)传输容量:建立应用程式的架构时,请确保托管供应商提供足以让您处理大流量的冗余网际网路连线能力。DDoS攻击的最终目的是影响资源/应用程式的可用性,因此您不仅应将资源/应用程式放置在靠近最终使用者的位置,并且还要靠近大型网际网路交换,让使用者即使在高流量期间也能轻松存取应用程式。此外,Web 应用程式可以更进一步采用内容分发网路 (CDN) 和智慧 DNS 解析服务,这通常会从较靠近最终使用者的位置,为服务内容和解析 DNS 查询提供额外的网路基础设施层。
(2)伺服器容量:大多数的 DDoS攻击是大规模攻击,会占用大量资源;因此,能够快速扩展或缩减运算资源非常重要。实行的方式包括在较大的运算资源执行,或在具有更广泛的网路界面或支援更大流量的增强型联网等功能的资源中执行。此外,通常也会使用负载平衡器,持续监控及转换资源之间的负载,以防任一资源超载。
了解什么是正常和异常流量
每当我们侦测到攻击主机的流量增加时,最基本的底线就是在主机能够处理且不影响可用性的情况下,尽可能地接受流量。这个概念称为速率限制。更进阶的保护技术可以更进一步以智慧型的方式,透过分析个别封包仅接受合法的流量。若要这样做,您必须了解正常流量的特性,目标通常可接收正常流量且能够根据此底线来比较每个封包。
针对复杂的应用程式攻击部署防火墙
理想的做法是使用 Web 应用程式防火墙 (WAF) 来防止攻击,例如 SQL injection 或跨网站请求伪造,这类攻击都会尝试利用应用程式本身中的漏洞。此外,由于这些攻击的独特性质,您应该能够针对非法请求轻松建立自订风险降低措施,这些请求可能具有伪装成正常流量或来自错误 IP、未预期地理位置等特徵。在发生攻击时,得到经验丰富的支援来研究流量模式以及建立自订保护措施,都有助于减缓攻击。