分布式拒绝服务 (DDoS) 攻击已成为活动家、犯罪分子、游戏玩家甚至政府进行破坏的一种越来越普遍的形式。 随着服务提供商实施 5G 基础设施以及企业进行数字化转型,潜在攻击的规模和目标表面积预计会增加。 这种风险的增加,加上组织转向高效且经济的软件定义架构的趋势,使得针对云/NFV 环境的 DDoS 缓解现在比以往任何时候都更加重要。
本文介绍了有关 DDoS 攻击机制的信息,并描述了如何通过英特尔的 FPGA PAC N3000 SmartNIC 增强 F5 的软件 DDoS 缓解解决方案,从而通过卸载到 SmartNIC 嵌入式 FPGA 来缓解高达 300 倍的 DDoS 攻击。
在这个依赖数字化、互联互通的世界中,网络攻击会对企业、服务提供商和政府实体产生严重的负面影响。 虽然新闻机构关注的是黑客窃取保密资料用于敲诈勒索,但许多恶意行为者只是想造成经济损失。[1] 在拒绝服务攻击 (DoS) 中,攻击者以互联网连接的服务(例如,网站或邮件服务器)为目标,并导致其崩溃或无响应。 DoS 攻击可能是由特制的请求导致服务器软件发生故障而引发的。
近年来,更好的编码实践和回归技术已经使得简单的 DoS 攻击变得不那么有效。 因此,分布式拒绝服务 (DDoS) 攻击变得更加普遍;随着服务提供商实施 5G 基础设施和边缘计算,这种趋势预计将持续下去。 DDoS 攻击通常由恶意个人精心策划,并通过受感染的联网计算机设备组成的协调僵尸网络进行分布。 可以命令这些设备向受害设备或服务发送攻击流量。[1] 虽然按照大多数处理吞吐量标准来看,单个受损设备的影响微乎其微,但大型僵尸网络中数千甚至数万台设备发起的协同攻击可能会达到许多服务提供商无法吸收的吞吐量水平。
对于依赖在线业务的企业来说,服务质量下降和停机时间会对盈利造成不利影响。 电子商务特别容易受到干扰;服务中断每分钟可能造成数千甚至数百万美元的损失。 即使不会造成中断的攻击仍可能会降低性能,如果失望的客户转而选择其他电子商务提供商,则会导致真正的收入损失。[2]
消费者互联网连接速度的提高和云端设备的日益普及增加了发生 DDoS 攻击的可能性。 联网设备引起了特别的关注,维护它们的安全对于维护在线服务的安全性和可靠性至关重要。 随着这些攻击的可能性增加,许多组织在转向以软件为中心的架构时,面临的 DDoS 攻击风险也随之增加。 大多数基于软件的 DDoS 防护措施缺乏防御大规模攻击所需的容量和性能。 幸运的是,最新一代网络接口卡 SmartNIC 可以通过从软件解决方案中卸载网络和安全功能并减轻可用 CPU 的压力来改变这种状况。
本报告将使用来自真实攻击场景的证据定义多种攻击机制,然后展示如何通过英特尔的 PAC 3000 SmartNIC 增强 F5 软件 DDoS 缓解解决方案 F5® BIG IP® Advanced Firewall Manager™ 虚拟版 (BIG-IP AFM VE)。我们将展示这种组合解决方案(BIG-IP SmartNICs 虚拟版解决方案)如何能够缓解比同等纯软件解决方案高出 300 倍的 DDoS 攻击。
无状态攻击可用于对抗有状态协议,但不需要攻击者跟踪恶意连接的状态。 它们之所以受欢迎,是因为它们需要的资源很少,并且可以与源 IP 地址欺骗配合使用。 经典且最广泛使用的攻击形式始于向服务器发出打开状态连接的虚假请求,而违规客户端(通常是僵尸网络节点)永远不会确认该请求。[1] TCP SYN 洪水攻击就是一个具体的例子。 在 TCP 连接建立期间,三次握手从客户端传输 SYN 数据包开始。 当服务器从客户端收到 SYN 数据包时,它会立即为保存会话的元组、序列号和状态的 TCP 套接字数据结构分配内存。 然后,服务器使用 SYN-ACK 数据包回复客户端。
图 1 – 完整的 TCP 三次握手
正常情况下,数据包丢失或通信缓慢可能会导致 SYN-ACK 数据包延迟或完全丢失。 服务器必须决定在传输重置和释放内存以执行其他任务之前将套接字保持在半开状态多长时间。[3] 一种流行的 DDoS 技术是生成大量 SYN 数据包来诱骗受害服务器为数千个虚假会话分配 TCP 套接字和内存。 每秒数千个 SYN 数据包的攻击率很快会导致 Web 服务器耗尽其所有内存。 在这个例子中,恶意攻击者占有优势;攻击者知道不会使用任何会话,因此不需要保留内存来跟踪会话。 这使得攻击者能够利用所有系统资源来传输额外的虚假 SYN 数据包。
图 2 – 使用伪造的源 IP 地址进行 SYN 泛洪
图 3 – 反射 DNS DDoS 攻击图
2018年,深受开发者青睐的代码管理服务GitHub遭遇了有史以来最大规模的DDoS攻击。 在攻击高峰期,该服务的传入流量为每秒 1.3 太字节 (Tbps)。 这是一次 memcached DDoS 攻击,利用了流行的数据库缓存系统 Memcached 的放大效应。 在攻击期间,攻击者用欺骗请求淹没了 Memcached 服务器,并将攻击规模扩大了 50,000 倍。[6]
图 4 – 僵尸网络精心策划的 DNS放大攻击
尽管无状态攻击是一种常见的 DDoS 威胁,但其简单性使其很容易被发现和预防或缓解。
状态 DDoS 攻击更容易成功,也更难以预防。 状态攻击完成与受害者的握手,并以合法用户的身份行事。 此类攻击媒介可以欺骗较旧的 DDoS 预防机制,并且需要攻击机器具有更多的计算能力和内存。 发动成功攻击的关键在于表现得像一个合法请求。 减轻这些攻击的挑战在于正确的分类以将真实用户请求与恶意请求区分开。
状态攻击的一个简单示例是模拟合法用户的行为,使用大量攻击者(例如僵尸网络)创建足够大的流量。 当受害者无法使用或处理所有请求,或者服务的互联网连接达到容量饱和时,这些容量攻击就会成功。 由于流量是模仿合法用户的行为而设计的,因此检测和区分恶意流量与合法流量要困难得多。 对于涉及某种类型的握手机制的服务(示例可能包括质询-响应、秘密编码或 cookie 交换),除非在响应方案中发现弱点,从而可以轻松生成有效响应,否则容量耗尽攻击可能是利用受害者的唯一方法。[7]
一类高级状态攻击针对特定的应用程序级服务。 一个攻击 HTTP 协议的例子被称为“Slowloris”。 此次攻击始于恶意攻击者向 Web 服务器发送多个部分 HTTP“GET”请求,以达到其最大可用同时连接数。 这种攻击之所以能够成功,是因为当客户端发送请求命令时,HTTP 协议会保持连接打开,而请求命令本身可以分成多个数据包。 恶意客户端会定期向服务器发送部分 HTTP 请求(中间最多有几分钟的空闲时间),而不会终止请求。
图 5 – 利用慢速 HTTP POST 进行 RUDY 攻击
与 Slowloris 类似的方法是“Are You Dead Yet”或“RUDY”攻击,它利用 HTTP“POST”命令向毫无戒心的 Web 服务器缓慢发送数据响应。[8] 这两种方法都需要最少的资源来执行,并且由于在许多 Web 服务器上保持 HTTP 连接打开的默认超时时间为 5 分钟,因此它们也需要最少的带宽。[1]
碎片洪水攻击也可能是一种有效的状态攻击。 该技术可以与针对单个目的地的多个源端口和地址进行协调。 受到攻击的端点在尝试重新组装每个碎片数据包时,将保存每个碎片数据包的状态。 每个唯一的源端口和地址组合都将需要受到攻击的系统分配另一个碎片缓冲区。 各种恶意系统获取碎片数据包的能力可能会超出受攻击系统的资源,因为它会尝试维护所有碎片事务的状态。
由于状态攻击依赖于对受害者生成有效的响应,因此通常不可能欺骗攻击者的源地址。 此规则的一个例外是,如果攻击者可以破坏合法流量经过的路由器或网络介质。 在这种情况下,攻击者可以欺骗源地址,并在嗅探到受害者的响应时生成有效的状态响应,本质上是跟踪连接的状态。[7]
为了表征 F5 解决方案缓解不同类型 DDoS 攻击的有效性,使用 IXIA 测试系统配置了测试环境。 IXIA XT80 产生了良好的“合法”客户端流量和服务器响应,而 IXIA XGS12 则产生了恶意的客户端攻击流量。 该测试配置为建立合法客户端-服务器流量的稳定基线,同时增加攻击流量以确定攻击流量开始干扰合法流量成功传输的级别。 这使得缓解效果的表征和比较成为可能。 对于每次测试,如果观察到合法流量从既定基线下降 10%,则判断 DDoS 攻击已成功影响系统。
合法流量基线配置为 BIG-IP VE 系统容量的 20%,该系统是配备有 BIG-IP AFM 模块的 8vCPU 高性能 VE。 由于该系统能够处理 40 Gbps,因此合法流量基线维持在 8 Gbps。
BIG-IP AFM VE 通过为各种流量分类(例如 UDP、片段、TCP SYN 等)建立允许的阈值来缓解 DDoS 攻击。 一旦超过特定流量类型的阈值,系统就可以配置为丢弃与该分类匹配的所有流量。 这使得系统免于处理此类流量所产生的进一步成本。 虽然基于软件的 DDoS 解决方案与不受保护的系统相比可以提供一些好处,但是软件以线速处理数据包的能力限制意味着软件缓解无法完全防止 DDoS 攻击的影响。
测试的下一步是确定仅使用软件解决方案开始中断合法流量所需的 DDoS 流量速率。 这样做是为了对纯软件解决方案和 BIG-IP VE for SmartNICs 解决方案进行性能比较。 BIG-IP AFM 测试的架构系统配置如图 6 所示。
图 6 – BIG-IP AFM VE(纯软件)测试的架构系统配置
为了进行更全面的分析,我们针对三种不同的 DDoS 攻击类型捕获了 BIG-IP AFM VE 的 DDoS 缓解性能数据。 本次模拟的攻击类型包括:
图 7 显示了使用 BIG-IP AFM VE(仅软件)时,每种攻击类型影响正常流量所需的流量(以 Gbps 为单位)。
图 7 – 使用 BIG-IP AFM VE(仅软件)影响正常流量所需的 DDoS 速率
并非所有 DDoS 攻击都是一样的。 有些攻击在系统中分布得比其他攻击更广泛,有些攻击需要更多的数据包检查和解析才能被识别。 这导致 DDoS 攻击的有效性发生变化,如上图所示。 这三种模拟攻击方法表明,当使用纯软件解决方案时,合法流量可能会受到相对较低的吞吐量的 DDoS 攻击的影响。
BIG-IP VE for SmartNICs 解决方案由一个 8vCPU 高性能 AFM VE(与纯软件测试中使用的相同)与英特尔 FPGA PAC N3000 SmartNIC 集成而成。这样可以将 DDoS 保护卸载到 SmartNIC。嵌入此 SmartNIC 中的 FPGA 已被编程为自动检测和阻止 100 多种不同类型的已知 DDoS 攻击,同时还使用行为分析来缓解未知的、不断演变的威胁。
通过监控入口流量中所有编程流量配置文件的数据包接收率,并与可接受的配置阈值进行比较,FPGA 可以确定何时超过阈值。 当发生这种情况时,FPGA 会制定适当的策略来丢弃超过配置最大值的流量。 这可以保护 CPU 子系统免于处理最终会因 DDoS 缓解策略而被丢弃的数据包流量。 由于 FPGA 能够以线速对数据包流量进行分类(与 CPU 子系统不同),因此支持 SmartNIC 的解决方案比纯软件解决方案具有显著优势。
在本次演示的下一步中,支持 SmartNIC 的解决方案在测试环境中遭受了相同的三次 DDoS 攻击。 与以前一样,目标是确定影响合法流量所需的 DDoS 流量速率。 图 8 显示了 BIG-IP VE for SmartNICs 测试的架构系统配置。
图 8 - BIG-IP VE 用于 SmartNIC 测试的架构系统配置
测试结果如图9所示。
图 9 – 使用 BIG-IP VE for SmartNICs 解决方案影响正常流量所需的 DDoS 速率
观察发现,F5 的纯软件 DDoS 解决方案(BIG-IP AFM VE)可以在合法流量受到不利影响之前,对小规模攻击提供一定程度的防护,但无法防止更大规模攻击造成的负面影响。 将 BIG-IP AFM VE 与英特尔的 FPGA PAC N3000 SmartNIC 集成以形成 BIG-IP VE for SmartNICs 解决方案,从而显著提高性能。 通过将减轻 DDoS 威胁的责任从 BIG-IP AFM VE 转移到 SmartNIC 内的 FPGA,组合解决方案能够抵御强度提高 41 到 381 倍的攻击,包括速率为 30Gbps 及更高的攻击。 对于具有云优先要求的组织和服务提供商,该解决方案提供专用硬件的高性能保护,同时提供云环境的灵活性和敏捷性。 此外,由于 FPGA 可以重新编程,因此随着威胁的演变,它们可以增强其他网络和安全功能。
1 G. D. Hakem Beitollahi,分析著名的针对分布式拒绝服务攻击的对策,计算机通信,2012 年。
2 HW Chuan Yue,“电子商务网站的盈利感知过载保护”,网络与计算机applications杂志,第 32 卷,第 347-356 页,2009 年。
3 AM Christos Douligeris,“DDoS 攻击和防御机制:分类和最新技术” ,计算机网络,第 44 卷,第 5 期,第 643-666 页,2004 年。
4 GD Hakem Beitollahi,“分析针对分布式拒绝服务攻击的著名对策”,《计算机通信》,第 35 卷,第 11 期,第 1312-1332 页,2012 年。
5 M. Prince,“深入探究 DNS 放大 DDoS 攻击”,CloudFlare,2012 年 10 月 30 日。[在线]。 链接: https ://blog.cloudflare.com/deep-inside-a-dns-amplification-ddos-attack/。[2015 年 11 月 1 日访问]。
6 US-CERT,“基于 UDP 的放大攻击”,2015 年 8 月 19 日。[在线]。 网址: https://www.us-cert.gov/ncas/alerts/TA14-017A 。
7 YTWD Shigang Chen,《状态 DDoS 攻击和有针对性的过滤》,《网络与计算机applications杂志》,第 30 卷,第 3 期,第 823-840 页,2007 年。
8 https://www.incapsula.com/ddos/attack-glossary/rudy-ru-dead-yet.html,“RUDY (RU-Dead-Yet?)”,[在线]。 网址: https://www.incapsula.com/ddos/attack-glossary/rudy-ru-dead-yet.html 。[2015 年 12 月 9 日访问]。