1.什么是 DDoS 攻击?
拒绝服务 (DoS) 攻击是一种恶意攻击,其目的影响目标系统 (例如网站或应用程序目标) 对合法最终用户的可用性。攻击者通常会生成大量数据包或请求,最终压垮目标系统。进行分布式拒绝服务 (DDoS) 攻击时,攻击者会使用多个被攻破或受控制的源来生成攻击。
一般而言,DDoS 攻击可以由受攻击的开放系统互连 (OSI) 模型的层分隔开。攻击最常发生在网络层 (第 3 层)、传输层 (第 4 层)、表示层 (第 6 层) 和应用程层 (第 7 层)。
2.DDOS 攻击分类
考虑缓解此类攻击的技术时,将攻击分成基础设施层 (第 3、4 层) 攻击和应用层 (第 6、7 层) 攻击非常有用。
2.1基础设施层攻击
第 3、4 层中的攻击通常被分类为基础设施层攻击。这些也是最常见的 DDoS 攻击类型,包括同步 (SYN) 洪水等攻击以及用户数据报包 (UDP) 洪水等其他反射攻击。这类攻击的数量通常很多,目的是耗尽网络或应用程序服务器的容量。但是幸运的是,这些类型的攻击带有清晰的签名,易于检测。
2.2应用层攻击
第 6、7 层中的攻击通常被分类为应用层攻击。这类攻击不太常见,往往也更复杂。与基础设施层攻击相比,这些攻击的规模通常较小,但往往侧重于特别昂贵的应用程序,让真正的用户无法使用这些应用程序。例如,向登录页面或者昂贵的搜索 API 发起的 攻击) 都属于应用层攻击。
3.DDoS 防护技术
3.1减少攻击面
缓解 DDoS 攻击的一种首选方式是尽可能减少可能受到攻击的攻击面,这样可以限制攻击者的选择,让使您能够在一个位置构建防护。我们应该确保应用程序或资源不向其不会与之通信的端口、协议或应用程序开放。这样可以尽可能减少攻击点,让我们有重点地进行防护。在某些情况下,您可以将计算资源放置于内容分发网络 (CDN) 或负载均衡器的后面,并限制指向基础设施某些部分 (例如数据库服务器) 的直接 Internet 流量,从而实现这一点。在其他情况下,您可以使用防火墙或访问控制列表 (ACL) 来控制到达应用程序的流量。
3.2制定扩展计划
要缓解大规模 DDoS 攻击,带宽 (或传输) 容量和服务器容量是可以吸收和缓解攻击的两个重要方面。
3.3传输容量。
设计应用程序架构时,请确保您的托管提供商能够提供足够的冗余 Internet 连接,让您能够应对大量流量。因为 DDoS 攻击的最终目标是影响资源/应用程序的可用性,所以资源/应用程序的位置应该靠近最终用户和大型 Internet 交换机,这样,即使出现大量流量,您的用户也能轻松访问应用程序。此外,Web 应用程序可以使用内容分发网络 (CDN) 和 智能 DNS 解析服务,这样可以在更接近最终用户的位置额外设置一层网络基础设置来提供内容和解析 DNS,从而实现进一步的防护。
3.4服务器容量。
大多数 DDoS 攻击是针对容量的攻击,会耗尽大量资源;因此,您应该能够快速扩展或缩减计算资源。要实现这一点,您可以使用规模更大的计算资源,也可以使用支持更大容量、网络接口更多或者网络连接更强的计算资源。此外,您可以使用负载均衡器来持续监控并在资源间移动负载,以便防止任何一种资源过载,这也是一种常见的方式。
4.了解正常流量和异常流量
检测到进入主机的流量不断增加时,我们要保持的底线是只接受主机在不影响可用性的情况下能够处理的流量。这个概念称为速率限制。更高级保护技术可以更进一步,通过分析各个数据包来智能地只接受合法的流量。要实现这一点,您需要了解目标通常接收到的良好流量的特征,并能够针对这一基准线来比较每个数据包。
5.针对复杂的应用程序攻击部署防火墙
比较好的做法是使用 Web 应用程序防火墙 (WAF) 来防护试图利用应用程序本身漏洞的攻击 (例如 SQL 注入或跨站点请求伪造)。此外,由于这些攻击的独特性质,您应该能够针对非法请求 (可能具有伪装为良好流量或来自不良 IP、异常地理位置等特征) 轻松创建自定义缓解措施。在经验丰富的人员的支持下研究流量模式并创建自定义防护措施,也可能有助于缓解攻击。