借助面向SmartNIC的BIG-IP VE,增强云和NFV环境的DDoS防护
执行摘要:
分布式拒绝服务(DDoS)攻击日益普遍,已成为激进分子、犯罪分子、游戏玩家甚至政府实施破坏的一种手段。随着服务提供商部署5G基础设施以及企业推进数字化转型,潜在攻击的规模和目标攻击面预计将不断扩大。风险上升,加之各组织正转向高效且经济实用的软件定义架构,使云/NFV环境中的DDoS缓解比以往任何时候都更加重要。
本文介绍了DDoS攻击机制,并说明如何利用Intel FPGA PAC N3000 SmartNIC增强F5软件DDoS缓解解决方案。通过将处理任务卸载到SmartNIC的嵌入式FPGA,该方案可缓解规模高达原来300倍的DDoS攻击。
背景:
在这个依赖数字技术且互联互通的世界中,网络攻击可能会对企业、服务提供商和政府机构造成严重的负面影响。新闻机构往往关注黑客窃取机密信息并用于敲诈勒索的事件,但许多恶意行为者只是意图造成经济损失。1 在拒绝服务攻击(DoS)中,攻击者以连接互联网的服务(例如网站或邮件服务器)为目标,使其崩溃或无法响应。DoS攻击可能由特制请求引发,导致服务器软件出现故障。
近年来,随着编码实践和回归技术不断改进,简单DoS攻击的有效性有所降低。因此,分布式拒绝服务(DDoS)攻击变得更加常见。随着服务提供商部署5G基础设施和边缘计算,预计这一趋势将持续。DDoS攻击通常由恶意人员策划,并通过由已遭入侵的联网计算设备组成的协同僵尸网络发起。这些设备可受命向受害设备或服务发送攻击流量。1 尽管按大多数处理吞吐量标准衡量,单台受入侵设备造成的影响很小,但由大型僵尸网络中数千乃至数万台设备协同发起的攻击,其吞吐量可能达到许多服务提供商无法承受的水平。
对于依赖线上业务的企业而言,服务质量下降和停机都会影响盈利。电子商务尤其容易受到业务中断的影响;服务中断每分钟可能造成数千至数百万美元的损失。即使攻击未导致服务中断,也可能降低性能;如果客户因体验不佳而转向其他电子商务提供商,企业仍会遭受实际收入损失。2
随着消费者互联网连接速度提升以及云端设备日益普及,DDoS攻击发生的可能性也随之增加。联网设备尤其值得关注,保障其安全对于维持在线服务的安全性和可靠性至关重要。除了此类攻击发生的可能性增加之外,随着许多组织转向以软件为中心的架构,其面临DDoS攻击的风险也在上升。大多数基于软件的DDoS防护措施缺乏抵御大规模攻击所需的容量和性能。SmartNIC是新一代网络接口卡,有望通过从软件解决方案中卸载网络和安全功能,减轻可用CPU的负担,从而改善这一状况。
本报告将结合真实攻击场景的证据,介绍多种攻击机制,并说明如何使用Intel PAC 3000 SmartNIC增强F5的软件DDoS缓解解决方案F5® BIG IP® Advanced Firewall Manager™ Virtual Edition(BIG-IP AFM VE)。我们将展示这一组合解决方案(BIG-IP Virtual Edition for SmartNICs解决方案)如何缓解规模最高可达同等纯软件解决方案所能应对规模300倍的DDoS攻击。
攻击方法
无状态攻击
无状态攻击可用于攻击有状态协议,但攻击者无需跟踪恶意连接的状态。这类攻击所需资源极少,并且可配合源IP地址欺骗,因此被广泛使用。典型且常用的攻击方式是先向服务器发送虚假请求,要求建立有状态连接,但发起攻击的客户端(通常是僵尸网络节点)永远不会确认该连接。[1] (https://www.f5.com/resources/white-papers/augmented-ddos-protection-for-cloudnfv-environments-with-big-ip-ve-for-smartnics#footnote01)TCP SYN洪水攻击就是一个具体示例。建立TCP连接时,三次握手首先由客户端发送SYN数据包。服务器收到客户端的SYN数据包后,会立即为TCP套接字数据结构分配内存,用于保存该会话的元组、序列号和状态。随后,服务器向客户端回复SYN-ACK数据包。
正常情况下,丢包或通信缓慢可能导致SYN-ACK数据包延迟或完全丢失。服务器必须确定套接字保持半开放状态的时长,之后再发送重置并释放内存供其他任务使用。3一种常见的DDoS攻击手法是生成大量SYN数据包,诱使受害服务器为数千个虚假会话分配TCP套接字和内存。每秒数千个SYN数据包的攻击速率会迅速耗尽Web服务器的全部内存。在此示例中,恶意攻击者占据优势,因为攻击者知道这些会话都不会被使用,因此无需预留内存来跟踪这些会话。这样,攻击者便可将所有系统资源用于发送更多虚假SYN数据包。
无状态协议很容易被利用,因为它们可以使用伪造的源地址正常工作。4 由于无状态协议不需要握手,只需向服务器发送一个特制数据包,就会触发服务器立即响应。这种方式仅占用攻击者设备的少量资源,还能隐藏攻击者的身份。5 受害者发出的数据响应包会被转发到伪造的IP地址,该地址可能属于另一个受害者;大量此类数据包可能会减慢互联网连接或服务器的速度,甚至使其无法正常运行,从而增强攻击效果。
放大攻击
另一类无状态攻击称为放大攻击,包括DNS洪水攻击和NTP洪水攻击。这两种攻击都将地址欺骗作为攻击手段的一部分。放大攻击的破坏性尤其严重,因为服务器响应的数据量可能比原始请求高出一个数量级。
2018年,广受开发者欢迎的代码管理服务GitHub遭遇了当时有记录以来规模最大的DDoS攻击。攻击高峰期,该服务的入站流量达到每秒1.3太字节(Tbps)。这是一起memcached DDoS攻击,攻击者利用常用的数据库缓存系统Memcached产生放大效应。攻击期间,攻击者向Memcached服务器发送大量伪造请求,将攻击流量放大了50,000倍。6
尽管无状态攻击是一种常见的DDoS威胁,但由于其攻击方式简单,因此很容易被发现、阻止或缓解。
有状态攻击
有状态DDoS攻击的成功率更高,也更难防范。有状态攻击会与受害者完成握手,其他行为则与合法用户无异。这类攻击向量可以绕过较旧的DDoS防御机制,但需要攻击设备具备更强的计算能力和更多内存。成功发起此类攻击的关键在于使其行为看似合法请求。缓解此类攻击的难点在于准确分类,以区分真实用户请求与恶意请求。
有状态攻击的一个简单示例是利用大量攻击者(例如僵尸网络)模拟合法用户的行为,从而产生足够大的流量。当受害者无法接收或处理所有请求,或者服务的互联网连接达到容量上限时,这类容量型攻击就会得逞。由于这些流量经过专门构造以模拟合法用户的行为,因此检测恶意流量并将其与合法流量区分开来要困难得多。对于采用某种握手机制的服务(例如质询-响应、秘密编码或Cookie交换),除非响应机制中存在可轻易生成有效响应的弱点,否则容量型攻击可能是利用受害者的唯一方式。7
高级有状态攻击中有一类专门针对特定的应用层服务。其中一种攻击以HTTP协议为目标,称为“Slowloris”。攻击开始时,恶意攻击者会向Web服务器发送多个不完整的HTTP“GET”请求,以耗尽服务器可用的并发连接数。此攻击之所以能够奏效,是因为客户端发送请求命令时,HTTP协议会保持连接处于打开状态,而请求命令本身可以拆分为多个数据包。恶意客户端会定期向服务器发送不完整的HTTP请求,每次发送之间的空闲时间最长可达数分钟,并且始终不会结束请求。
与Slowloris类似的一种方法是“Are You Dead Yet”(你死了吗)攻击,也称“RUDY”攻击。该攻击利用HTTP“POST”命令,向毫无防备的Web服务器缓慢发送数据响应。8 这两种方法只需极少的资源即可实施,而且由于许多Web服务器保持HTTP连接打开的默认超时时间为5分钟,因此所需带宽也很少。[1] (https://www.f5.com/resources/white-papers/augmented-ddos-protection-for-cloudnfv-environments-with-big-ip-ve-for-smartnics#footnote01)
分片洪泛攻击也可能成为一种有效的有状态攻击。攻击者可以协调多个源端口和源地址,以单个目标为攻击对象。受攻击的端点会尝试重组每个分片数据包,并为每个数据包保存状态。对于每种唯一的源端口和源地址组合,受攻击的系统都需要额外分配一个分片缓冲区。多个恶意系统发送分片数据包的能力可能会超出受攻击系统的资源承载能力,因为该系统需要尝试维护所有分片事务的状态。
由于有状态攻击依赖于向受害者生成有效响应,因此通常无法伪造攻击者的源地址。但有一种例外情况:攻击者能够攻陷合法流量所经过的路由器或网络介质。此时,攻击者可以伪造源地址,并在嗅探到受害者的响应后生成有效的有状态响应,实质上是通过持续跟踪来掌握连接状态。7
DDoS攻击测试
为评估F5解决方案缓解不同类型DDoS攻击的有效性,测试使用IXIA测试系统搭建了测试环境。IXIA XT80用于生成正常的“合法”客户端流量和服务器响应,IXIA XGS12则用于生成恶意客户端攻击流量。测试先建立稳定的合法客户端与服务器流量基线,再逐步增加攻击流量,以确定攻击流量开始干扰合法流量成功传输时的流量水平。这样可以重复评估和比较缓解效果。在每项测试中,如果观察到合法流量较既定基线下降10%,则判定DDoS攻击已成功影响系统。
测试环境
合法流量基线配置为BIG-IP VE系统容量的20%。该系统为配备8个vCPU的高性能VE,并已配置BIG-IP AFM模块。由于该系统能够处理40 Gbps的流量,因此合法流量基线保持在8 Gbps。
使用BIG-IP AFM VE进行软件缓解
BIG-IP AFM VE通过为不同类别的流量(例如UDP、分片、TCP SYN等)设置允许阈值来缓解DDoS攻击。当特定流量类型超过阈值后,可将系统配置为丢弃符合该类别的所有流量,从而避免系统继续承担处理此类流量所产生的开销。与未受保护的系统相比,基于软件的DDoS解决方案虽能带来一定帮助,但由于软件以线速处理数据包的能力有限,软件缓解措施无法完全消除DDoS攻击的影响。
测试的下一步是确定仅部署软件解决方案时,开始中断合法流量所需的DDoS流量速率,以便比较纯软件解决方案与BIG-IP VE for SmartNICs解决方案的性能。图6展示了BIG-IP AFM测试的系统架构配置。
为开展更全面的分析,针对三种不同的DDoS攻击类型采集了BIG-IP AFM VE的DDoS缓解性能数据。本次模拟包括以下攻击类型:
- 攻击类型1:UDP洪水攻击:这种无状态容量型攻击通过向目标服务器发送大量用户数据报协议(UDP)数据包,旨在影响该服务器的处理和响应能力。
- 攻击类型2:圣诞树攻击:此类攻击使用圣诞树数据包。之所以这样命名,是因为这些数据包的所有选项均设置为“开启”,因此可使用任何协议,看起来就像“点亮的圣诞树”。与其他数据包相比,这些数据包需要更多处理能力;大量发送时,可能会迅速耗尽终端设备的计算能力。
- 攻击类型3:IP短分片攻击:这种常见的容量型DDoS攻击利用数据报分片过程使网络不堪重负。攻击者通常会发送无法重组且大于网络最大传输单元(MTU)的伪造数据包,通过耗尽CPU资源迅速使服务器不堪重负。
图7显示了使用BIG-IP AFM VE(纯软件)时,每种攻击类型影响正常流量所需的流量(以Gbps为单位)。
不同DDoS攻击的影响并不相同。有些攻击在系统中的分布范围更广,有些攻击则需要经过更多的数据包检查和解析才能识别。因此,DDoS攻击的有效性会有所不同,如上图所示。这三种模拟攻击方法表明,使用纯软件解决方案时,即使吞吐量相对较低,DDoS攻击也可能影响合法流量。
使用BIG-IP VE for SmartNICs进行SmartNIC辅助缓解
BIG-IP VE for SmartNICs解决方案由8 vCPU高性能AFM VE(与纯软件测试中使用的相同)和Intel 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测试的系统架构配置。
该测试的结果如图9所示。
结论
观察结果表明,F5的纯软件DDoS解决方案(BIG-IP AFM VE)可在合法流量受到不利影响之前,为抵御小规模攻击提供一定程度的保护,但无法避免较大规模攻击造成的不利影响。将BIG-IP AFM VE与Intel FPGA PAC N3000 SmartNIC集成,构成BIG-IP VE for SmartNICs解决方案后,性能得到显著提升。通过将缓解DDoS威胁的任务从BIG-IP AFM VE卸载到SmartNIC内的FPGA,该组合解决方案能够抵御规模高出41至381倍的攻击,包括速率达到30 Gbps及以上的攻击。对于以云优先为重要目标的组织和服务提供商,该解决方案既能提供专用硬件的高性能防护,又具备云环境的灵活性和敏捷性。此外,由于FPGA可以重新编程,因此能够随着威胁的演变增强其他网络和安全功能。
1 G. D. Hakem Beitollahi,《常见分布式拒绝服务攻击应对措施分析》,《计算机通信》,2012 年。
2 H. W. Chuan Yue,“电子商务网站中兼顾收益的过载保护”,《网络与计算机应用期刊》,第 32 卷,第 347–356 页,2009 年。
3 A. M. Christos Douligeris,“DDoS 攻击与防御机制:分类及技术现状”,《计算机网络》,第 44 卷,第 5 期,第 643–666 页,2004 年。
4 G. D. 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 Y. T. W. D. Shigang Chen,“有状态 DDoS 攻击与定向过滤”,《网络与计算机应用期刊》,第 30 卷,第 3 期,第 823–840 页,2007 年。
8 https://www.incapsula.com/ddos/attack-glossary/rudy-r-u-dead-yet.html,“R.U.D.Y.(R-U-Dead-Yet?)”,[在线]。获取地址:https://www.incapsula.com/ddos/attack-glossary/rudy-r-u-dead-yet.html [访问日期:2015 年 12 月 9 日]。
发布于2020年7月27日