针对Wi-Fi的帧聚合和帧分段漏洞攻击

robots

 

在本文中介绍了支持Wi-Fi的802.11标准中的三个设计缺陷。 一个设计缺陷在帧聚合功能,另外两个缺陷在帧分段功能。这些设计缺陷使攻击者能够以各种方式伪造加密的帧,进而使敏感数据得以泄露。还发现了与聚合、分段相关的常见实现缺陷,这进一步加剧了攻击的影响。 本研究结果影响了从WEP一直到WPA3的所有受保护的Wi-Fi网络,这意味着自1997年发布以来,所发现的缺陷就一直是Wi-Fi的一部分。在实验中,所有设备都容易受到一个或多个本研究攻击的影响,确认所有Wi-Fi设备都可能受到影响。 最后,提供了一种工具来测试设备是否受到任何漏洞的影响,并讨论了防止攻击的对策(https://www.fragattacks.com )。

 

0x01 Introduction

在过去的几年中,Wi-Fi的安全性已进行了重大改进。最值得注意的是,这包括发现和防止WPA2中重安装密钥,以及WPA3的标准化,其中除了其他方面,还可以防止离线字典攻击。此外,额外的防御措施已经标准化,例如运行通道验证和信标保护,这进一步提高了Wi-Fi网络的安全性。这些最新的改进是Wi-Fi的一个受欢迎的补充,因为Wi-Fi仍然是用于访问互联网的主要方法之一。此外,Wi-Fi还用于家庭网络中,以防止外部人员访问个人打印机,安全摄像机,智能家庭设备等。在企业网络中,Wi-Fi扮演着同等重要的角色,因为它对用户进行身份验证,保护对内部服务的访问并在将内容传输到例如本地文件服务器,会议室中的智能演示屏幕等时保护内容。

尽管最近在Wi-Fi安全方面取得了进步,但本研究发现设计问题在二十多年内未被发现。这些问题是通过分析开源Wi-Fi堆栈并系统检查802.11标准而发现的。研究结果会影响所有受保护的Wi-Fi网络,包括使用有线等效保密性(WEP)的旧网络,直至并包括最新的Wi-Fi保护访问(WPA3)。由于WEP也受到影响,这意味着自1997年发布以来,Wi-Fi一直是多个设计缺陷的根本原因。同样令人担忧的是,测试的每个设备都容易受到至少一种攻击的影响。

最简单的设计缺陷在于802.11的帧聚合功能:通过翻转帧头中未经身份验证的标志,加密的有效负载将被解析为包含一个或多个聚合帧,而不是正常的网络数据包。滥用此方法可以注入任意帧,然后通过使用恶意DNS服务器来拦截受害者的流量。实际上,测试过的所有设备都容易受到这种攻击。

802.11的帧分割功能还有另外两个设计缺陷,该功能可将大帧分割成较小的片段。首先,尽管一帧的所有片段总是在相同的密钥下加密的,但是并不需要接收者检查这种情况是否确实如此。本文证明了攻击者可以通过混合使用不同密钥加密的片段来滥用此丢失的支票来伪造帧并泄露数据。其次,在连接到其他网络时,不需要接收者从内存中删除(不完整)片段。滥用这一点将恶意片段注入到片段缓存中,即例如受害者的缓存,从而注入任意数据包。大多数设备受到这些攻击中至少一种的影响。

除了设计缺陷,还发现了与框架聚合和分段相关的广泛实施漏洞。这些漏洞可以被单独挖掘,也可以使滥用已发现的设计问题变得更加容易。最常见的实现漏洞是接收者不检查所有片段是否都属于同一帧,这意味着攻击者可以通过混合两个不同帧的片段来伪造帧。针对某些实施方式,还可以混合加密的片段和纯文本片段,通过将它们伪装为握手消息来注入纯文本聚合帧,以及注入纯文本片段化(广播)帧。还发现了其他几个实现缺陷,本文创建了一个工具来测试所有这些缺陷。

发现的设计缺陷之所以被忽视这么长时间有两个主要原因。首先,滥用的某些功能通常不被视为Wi-Fi核心加密功能的一部分,因此未得到严格或正式的分析。其次,在实践中需要打补丁的驱动程序或固件来确认基于分段的漏洞。当使用普通驱动程序时,注入的帧的某些字段可能会被覆盖,而程序员不会意识到这一点。这会导致攻击失败,因此研究人员可能会错误地得出结论:设备是安全的,而实际上它们很容易受到攻击。

因为本文发现会影响所有Wi-Fi设备,所以联系了互联网安全企业论坛(ICASI),以帮助进行多方协作的公开披露。 还与Wi-Fi联盟合作,以向供应商分发信息。

 

0x02 Background

A.帧布局和数据包聚合

上图显示了802.11帧的布局,首先说明其通用字段。首先,帧控制(FC)字段包含几个标志并定义帧的类型,例如。例如,它是数据帧还是管理帧。接下来是三个MAC地址,它们定义了帧的接收方,发送方以及目的地或源。服务质量(QoS)字段定义帧的优先级,在802.11中称为流量标识符(TID)。正常帧的有效载荷字段包含已传输的数据包,该数据包以LLC / SNAP标头(有时也称为rfc1042标头)开头,它定义了数据包的类型,例如。例如,它是IP还是ARP数据包(请参见下图)。

当数据包较小时,将多个数据包聚合到一个较大的帧中会更有效。 802.11n修正案定义了两种聚合方法,集中于所有支持802.11n的设备都必须支持的聚合MAC服务数据单元(A-MSDU)。 A-MSDU帧的布局与上图所示的普通帧相似,不同之处在于,已设置QoS字段中的A-MSDU标志,并且有效载荷字段包含一个或多个A-MSDU子帧,如上图所示。每个子帧都以等效于802.3报头开头:数据包的目标和源MAC地址,然后是数据包的长度。请注意,数据包本身以LLC / SNAP标头开头,就像在正常帧中一样。最后,除了最后一个子帧,每个子帧都被填充,以使其长度是4的倍数。

当接收方看到在QoS字段中设置了A-MSDU标志时,它将提取所有A-MSDU子帧并将其转换为具有在子帧中指定的目标地址和源地址的以太网帧。问题在于,尽管对QoS字段进行了身份验证,但默认情况下,A-MSDU标志被掩码为零,这意味着该标志实际上并未得到身份验证。结果,攻击者可以截取正常帧,设置A-MSDU标志,并且接收方现在将错误地将有效载荷解释为包含A-MSDU子帧。

B.帧分段

在嘈杂的环境中,将较大的帧拆分为较小的片段可能会更有效,因此,如果某个片段损坏,则仅需要重新传输该片段。片段的布局也称为MAC协议数据单元(MPDU),与普通帧相同,如上图所示。由于它们的相似性,使用术语帧来指代普通帧和MPDU,术语“片段”将用于显式地引用MPDU。将一帧分割成多个片段时,每个片段都分配有一个递增的4位片段编号(上图中的片段编号)。这意味着一个帧最多可分为2^4个片段。为了使接收者能够确定何时接收到所有片段,除最后一个片段外,每个片段都在其帧控制字段中设置了更多片段标志。最后,特定帧的所有片段都具有相同的12位序列号(上图中的序列号)。仅单播数据帧被(解分段),并且这些帧可以由帧控制字段中的类型子字段和接收者MAC地址(Addr1)识别。在本文中,使用符号Fragx(s)表示具有片段号x和序列号s的片段。例如,Frag1(9)表示序列号为9的第二个片段。

缺省情况下,仅当帧大于配置的分段阈值时才将其拆分为分段。该分段阈值独立于最大分组大小,例如,最大传输单位(MTU)。当设备支持动态分段(这是802.11ax的一部分)时,发送器可以根据分段阈值将帧拆分为多个分段。特别是,当为客户端分配固定时间的传输机会(在802.11ax中称为资源单元)时,它可以使用片段化的帧填充此持续时间的最后部分。

C.身份验证和加密

在受保护的家庭和企业Wi-Fi网络中,客户端最终都将使用4次握手来与AP协商成对会话密钥。该会话密钥用于加密数据帧。在任何时间点,AP都可以开始新的4次握手以更新会话密钥。

使用(AES-)CCMP或GCMP数据机密协议时,首先将大于分段阈值的帧拆分为片段,然后以与普通帧相同的方式对所有片段进行加密:对有效负载字段进行身份验证和加密,并且所选的元数据也将得到验证。除其他事项外,该元数据包含报头中的所有MAC地址,片段编号和更多片段标志。序列号未经验证,因为其值仅在站能够发送之前才知道。请注意,可以通过FC字段中的保护标志识别加密的帧。每个加密帧还具有严格增加的数据包编号(PN),通常称为随机数,用于防止重放攻击,并由数据保密协议隐式地进行身份验证。使用符号Enc n k {f}表示使用密钥k和数据包编号n对帧f的加密。

接收器首先检查PN是否增加,否则丢弃片段(或帧)。然后,它将片段解密并存储,直到收到所有片段为止。接收到最后一个片段后,所有解密的片段将重新组合到原始帧中。由于片段号和更多片段标志是经过身份验证的,因此攻击者无法更改片段数或它们的相对位置。另外,为了防止攻击者通过组合不同帧的片段来伪造帧,如果接收者的PN不连续,则它们必须丢弃所有片段。

较早但尚未弃用的WPA-TKIP数据保密协议不会对分片编号和更多分片标志进行身份验证,也不会检查分片的PN是否连续。取而代之的是,使用迈克尔算法对重新组装的框架进行身份验证。当使用残破和不建议使用的WEP协议时,片段编号和更多片段标记未通过身份验证,并且重组后的帧也未单独进行身份验证。这导致了针对WEP的新颖攻击,攻击者可以混合并重新排列不同帧的片段。

D.攻击技巧和场景

尽管利用发现的每个设计缺陷都需要不同的威胁模型(在每一节的开头都进行了介绍),但是大多数威胁模型之间都有相似之处。特别是,有些攻击依赖于中间的多通道计算机(MitM)位置,有些攻击还依赖于宽松的BEAST威胁模型,而一种攻击则针对热点类型的网络。因此首先介绍这些概念:

多通道MitM:许多(已知)攻击都需要能够阻止,修改或延迟在客户端和AP之间发送的加密帧。为了可靠地做到这一点,引入了多通道MitM位置。在此MitM技术中,攻击者将真实的AP克隆到不同的通道上,迫使客户端在克隆的通道上连接到恶意AP,并在客户端和真实的AP之间转发帧。攻击者然后可以在转发帧之前修改帧,或者根本不转发帧。最近,针对此MitM的防御措施已被批准为802.11标准草案,称为操作通道验证,但实际上尚未使用。结果,在实践中可以可靠地建立多通道MitM位置:唯一的要求是攻击者拥有两个WiFi天线,并且在客户端和AP的无线电范围内。

BEAST威胁模型:针对TLS的BEAST攻击引入了一种新颖的威胁模型,其中,诱骗受害者执行恶意JavaScript代码。例如,这可以通过对受害者进行社会工程设计以使其在攻击者的控制下访问网站来实现,并使敌人能够使受害者发送大量流量。其他针对TLS的攻击也依赖于此威胁模型,将其称为BEAST威胁模型。在此威胁模型的宽松版本中,仅要求受害者连接到攻击者的服务器,而无需执行恶意的JavaScript代码。

热点安全:热点曾经是开放和不安全的Wi-Fi网络的代名词。但是,情况已不再如此。在现代热点类型的网络(例如eduroam)和Hotspot 2.0网络中,用户可以(例如例如,使用他们的移动SIM卡进行身份验证,每个用户拥有唯一的身份验证密钥,因此,他们的加密密钥也保持秘密。为了防止用户相互攻击,热点通常使用下游组地址转发和客户端隔离。使用前一种功能,将为每个客户端分配一个随机的组密钥,以防止滥用本来共享的组密钥的攻击。客户端隔离是后者的功能,可防止用户彼此通信,这尤其是阻止了基于ARP的MitM攻击。

 

0x03 Abusing Frame Aggregation

在本节中介绍了802.11帧聚合功能的设计缺陷,该缺陷使攻击者通过使受害者将正常的Wi-Fi帧作为聚合帧处理来注入任意数据包。滥用它来执行端口扫描,并诱使受害者使用恶意DNS服务器。此设计缺陷已分配为CVE-2020-24588。

A.威胁模型

该攻击针对Wi-Fi的所有当前数据机密协议,即WEP,TKIP,CCMP和GCMP,这意味着所有受保护的Wi-Fi网络都会受到影响。攻击者必须在受害者的无线电范围内,以便可以获得多信道MitM,并且受害者必须支持A-MSDU帧的接收,这是802.11n的强制性部分。此外,攻击者必须能够通过对有效负载进行一定控制并使用可预测的IP标识(ID)字段将IPv4数据包发送给受害者。本节重点介绍一种通用的攻击技术,在这种技术中,攻击者可以按如下方式将此类IPv4数据包发送到客户端或AP:

攻击客户端:如果客户端的IP地址已知,并且没有防火墙阻止传入的数据包,可以直接向受害者发送IPv4数据包。否则,假设攻击者能够使受害者在攻击者的控制下连接到服务器,从而允许攻击者通过此连接注入IPv4数据包。实现此目的的一种广泛方法是注册一个拼写错误的域名或利用流行网站中的第三方广告。还可以使用宽松的BEAST威胁模型,对受害人进行社交设计以使其访问攻击者的网站。

攻击AP:要攻击AP,至少一个连接的客户端的IP ID字段必须是可预测的。对于较旧的客户端可能是这种情况,在某些设备上,此字段始终等于零。还依靠BEAST威胁模型来使该客户端发送具有给定有效负载的IPv4数据包。

B.通过欺骗A-MSDU注入帧

默认情况下,不通知A-MSDU标志(通知接收方如何解析帧的加密有效载荷)。仅当发送方和接收方支持信令和有效负载保护(SPP)A-MSDU时,A-MSDU标志才经过身份验证。但是测试的设备均不支持此功能,这意味着实际上A-MSDU标志永远不会经过身份验证。这是有问题的,因为测试的几乎所有设备都支持接收A-MSDU,这意味着它们可以被欺骗来将正常帧作为A-MSDU处理,反之亦然。

可以通过处理正常的802.11帧来利用此设计缺陷,以便在将其作为A-MSDU帧处理时,其中一个子帧将与要注入的数据包相对应。这要求帧的有效载荷包含特制的数据包,例如,上图中所示的IPv4数据包。请注意,当将这个IPv4数据包封装在802.11帧中时,它前面带有8字节的LLC / SNAP标头(请参阅参考资料2.1)。在威胁模型中以客户端为目标时,攻击者可以控制IP ID字段和IPv4标头后面的有效负载。当这些字节被解释为A-MSDU子帧时,第一个子帧的长度字段对应于IP ID字段(请参见上图)。这意味着攻击者可以将2字节IP ID字段设置为e,这意味着下一个A-MSDU子帧在注入帧的TCP或UDP报头之后开始。这就留出了在恶意IPv4数据包中包含有效TCP或UDP标头的空间,从而增加了将数据包正确路由到受害者的机会。最后,指出NAT设备或其他中间盒不会更改IP ID字段,因此此类设备不会干扰攻击。

为了将IPv4数据包更改为A-MSDU帧,攻击者在客户端和AP之间建立了多通道MitM。根据其长度和QoS优先级来检测包含IPv4数据包的加密802.11帧。攻击者在未经身份验证的QoS字段中设置A-MSDU标志,从而使客户端将帧的有效载荷视为A-MSDU子帧。第一个子帧将具有未知的发送方和目标MAC地址,将被忽略。第二个子帧将包含攻击者想要注入的数据包,客户端将解析并处理此注入的数据包。如果至少一个客户端使用可预测的IP ID,则可以类似的方式攻击AP,某些较旧的操作系统(OS)就是这种情况。依靠BEAST威胁模型,使此客户端执行包含攻击者控制的二进制数据的POST请求。

实质上,这会导致IP数据包的传输受到攻击者控制的部分负载。如果正确预测了此IPv4数据包的ID字段,则第二个A-MSDU子帧将对应于攻击者控制的数据。结果,攻击者可以注入任意数据包。 AP将将此数据包转发到其下一个目的地,即网关或网络中的任何客户端。最后,如果客户端始终使用零的IP ID值,则可以使用附录C中的注入技术。

C.实际影响

注入任意数据包的影响取决于受害者上运行的服务,是否定期更新等等。作为一般示例,对具有IPv6或IPv4功能的受害者进行了以下两种攻击:

端口扫描:对IPv4和IPv6主机执行了一个端口扫描,以演示大量数据包的注入。根据加密的TCP SYN / ACK答复的长度检测到打开的端口。

恶意DNS服务器:针对双栈IPv4 / 6客户端,可以注入ICMPv6路由器广告,以诱骗受害者使用被控制的DNS服务器。更确切地说,通过注入包含恶意DNS服务器的ICMPv6路由器广告来滥用IPv6无状态地址自动配置。在Linux,Windows 10,Android 8.1,iOS 13.4.1和macOS 10.15.4上,确认这成功毒化了OS使用的DNS服务器。一旦受害者使用了恶意DNS服务器,攻击者就可以将所有流量重定向到其恶意服务器,从而有效拦截客户端的所有基于IP的流量。请注意,恶意DNS服务器将托管在IPv6地址上,但如果需要,仍可以使用IPv4地址响应DNS请求。

对于仅使用IPv4的客户端,如果可以获得客户端在其DHCP发现和请求中包含的4字节事务标识符,则可能会发生类似的攻击。该标识符通常是不可预测的。但是发现iOS和macOS会在启动时随机生成一个标识符,然后为每个DHCP消息递增该标识符。同样,Halvorsen等。发现Mac OS X使用了可预测的标识符。此外,某些物联网设备(例如小米安全摄像机)会在启动时随机生成一个事务标识符,并在所有DHCP消息中重用此值。这意味着,如果一个事务标识符可能被泄漏或强行使用,则有可能欺骗DHCPv4消息并迫使客户端使用恶意DNS服务器。最后,即使重启后,ESP-12F始终使用相同的标识符,这意味着如果可以向其注入数据包,则可以使它使用恶意的DNS服务器。

D.适用于短A-MSDU

在修正802.11ad定义的定向多吉比特(DMG)网络中,站也可以发送短A-MSDU,其中每个子帧仅由长度字段和传输的数据组成。短A-MSDU只能封装在DMG帧内,因为只有这些帧在QoS字段中定义了短A-MSDU标志。此标志始终在DMG网络中进行身份验证。由于DMG帧仅应在DMG网络中发送,因此短A-MSDU标志始终是经过身份验证的,因此无法被攻击者操纵。但是,建议标准更明确地要求短A-MSDU标志仅在经过身份验证时才使用。

实现的风险是硬件支持并验证短A-MSDU标志,但是基于软件的网络堆栈不支持短A-MSDU。在那种情况下,短的A-MSDU可以被视为正常的A-MSDU。不幸的是,目前很少有设备支持802.11ad,这意味着无法检查是否有任何设备受到此类特定于实现的问题的影响。

E.将A-MSDU欺骗为普通帧

还可以欺骗受害者将A-MSDU帧作为普通帧进行处理。这导致将第一个A-MSDU子帧的目标MAC地址作为LLC / SNAP标头的开始进行处理。这意味着仅当目标具有(本地管理的)MAC地址AA:AA:03:00:00:00时,生成的LLC / SNAP标头才有效。由于此限制,在实践中不太可能将其滥用。

F.实验

所有主要操作系统都容易受到本文攻击,包括Windows,Linux,Android,macOS和iOS。测试的所有AP也都容易受到攻击,包括家用路由器和专业AP。唯一的例外是NetBSD和OpenBSD:它们不支持A-MSDU的接收,因此不受攻击的影响。

测试了针对多个客户端的端到端攻击。在这些测试中,为多通道MitM使用了两个TL-WN722N加密狗,并且通过欺骗通道切换公告来可靠地获得了该MitM位置。根据其长度检测到注入的IPv4数据包,在将其转发给受害者之前先设置A-MSDU标志,并成功注入路由器通告以毒害受害者的DNS服务器。

在测试针对FreeBSD和Linux 4.9及更高版本的攻击时,注意到无法如前文所述注入数据包。经过仔细检查,发现如果这些操作系统看起来像有效的LLC / SNAP标头,则这些操作系统会剥离A-MSDU帧的前8个字节,然后对其进行进一步处理。此行为不符合802.11标准。当剥离前8个字节时,第一个A-MSDU子帧的长度字段与源IP地址的前两个字节相对应。如果受害者不在防火墙后面,可以欺骗IPv4数据包的源地址,以便注入的数据包将再次包含在第二个A-MSDU子帧中。如果受害者阻止了欺骗性的IP地址,可以在IP地址为3.5.0.0/16的子网内的Amazon AWS上租用一台服务器。然后,第一个A-MSDU子帧的长度为773字节,从而留出了足够的空间来注入恶意数据包。

G.讨论

为防止聚合攻击,站点不得使用A-MSDU,或始终对A-MSDU标志进行身份验证,即仅使用SPP A-MSDU。推测将正常帧转换为A-MSDU也可能被用作泄漏数据的预言。例如,AP可能会根据位于A-MSDU标头字段中的值而采取不同的行动。将对滥用A-MSDU泄漏数据进行更详细的分析,以作为将来的工作。

 

0x04 Mixed Key Attack against Fragmentation

在本节中首先讨论发现的两个基于分段的设计缺陷的共同根源。然后将重点放在第一个设计缺陷上,即802.11标准如何使攻击者通过混合使用不同密钥加密的片段来伪造帧。此设计缺陷已分配为CVE-2020-24587。将展示如何利用此缺陷来窃取客户端数据,以及如何恢复通过纯文本HTTP连接发送的敏感信息。

A.分段设计缺陷

从高层次来看,发现的分段缺陷是由于未正确分离不同的安全上下文及其关联的内存,接收队列或分段缓存引起的:

混合密钥攻击:第一个问题是802.11标准不要求每个片段都使用相同的密钥解密。因此,攻击者可以通过混合使用不同密钥加密的帧片段来伪造帧。例如,通过混合属于不同安全上下文的片段。此设计缺陷将在本节中进一步讨论和滥用。

片段高速缓存中毒:802.11标准也没有规定何时应从内存中删除解密的片段,例如,来自片段缓存。即当安全上下文由于(重新)连接或(重新)关联而改变时,解密的片段不会被丢弃。攻击者可以滥用此方法将片段注入受害者的片段缓存中,然后将其与合法片段组合以注入数据包或泄露已解密的片段。

B.威胁模型

首先关注针对WEP,CCMP和GCMP的混合密钥攻击。仅当接收者忘记验证重组帧的真实性时,才会影响较旧的TKIP协议。

攻击需要网络中的一个或多个设备发送分段帧。尽管并非所有设备默认情况下都执行此操作,但是由于其配置的分段阈值等于或大于MTU,因此建议在嘈杂的环境中使用分段。此外,预计802.11ax设备将支持动态分段,这使得分段的使用在实践中更加普遍。例如,Cisco Catalyst 9130默认情况下启用了动态分段,而Aruba AP也支持它。考虑到这一点,基于分段的攻击与新设备特别相关。

为了进行攻击,网络还必须定期刷新所连接设备的会话密钥,并且必须能够诱使受害者将数据包发送到攻击者控制的服务器。尽管大多数网络默认情况下不会定期刷新会话密钥,但确实指出此假设符合针对WPA2的某些密钥重新安装攻击的要求。为了诱使受害者将数据包发送到被控制的服务器,可以依靠宽松的BEAST威胁模型。将在没有这些假设的情况下利用其他设计和实现缺陷来执行混合密钥攻击。

C.提取敏感数据

攻击者的目标是通过混合使用不同密钥加密的帧片段来伪造数据包。这些片段必须具有连续的数据包编号,因为否则接收者将丢弃这些片段。尽管许多实现不检查片段是否使用连续的数据包编号,但本文攻击确实假定受害者已对此进行检查,因此说明即使完全符合该标准的实现也容易受到攻击。

混合分段:下图说明了本文攻击,其中利用易受攻击的AP窃取客户端发送的数据。攻击始于向攻击者的服务器生成数据包(第1阶段)。例如,此攻击者指定的数据包可能是通过对受害者进行社会工程改造而在攻击者的服务器上加载无害资源而生成的。通过将资源托管在一个较长的URL上,生成的数据包将足够大,以便在传输之前将其分为两个片段。这两个加密的片段用Enc n k {Frag0(s)}和Encn + 1 k {Frag1(s)}表示。然后,攻击者依靠多通道MitM位置来拦截所有分段帧,并根据其唯一长度来检测攻击者指定的数据包。请注意,攻击者必须先收集一帧的所有片段,然后才能确定整个帧的长度。一旦检测到攻击者指定的数据包,攻击者就只会将第一个片段转发给AP。然后,AP将解密该片段并将解密后的片段存储在其内存中。

在攻击的第1阶段和第2阶段之间,攻击者会阻止客户端和AP之间的所有帧。为了防止这些帧干扰攻击,在将帧转发到AP时,请勿使用序列号s。这样可以确保不会将攻击者指定数据包的第一个片段从AP的内存中删除。任何其他转发的片段也不会干扰攻击,因为该标准要求设备必须支持并发接收至少3个片段帧。在阶段2开始之前,客户端和AP必须进行更新,即例如,使用四次握手将成对的会话密钥从k更改为l。请注意,攻击者可以预测何时发生重新生成密钥,因为它们以固定的间隔发生,并且可以检测到重新生成密钥,因为它们导致数据保密协议的数据包编号从零重新开始。

当客户端发送包含敏感信息的片段时,攻击的第2阶段开始。第二个片段必须具有等于n + 1的数据包号,否则攻击者必须等待,直到执行了另一次4次握手,以便数据包号再次从零开始。攻击者将序列号s分配给第二个片段,这是可能的,因为此字段未经身份验证,然后将所得的片段Enc n+1 l{Frag1(s)}转发给AP(上图中的阶段2)。在接收到第二个片段后,AP将两个解密的片段组合在一起以重新组装数据包。现在,此数据包是攻击者指定的数据包和包含敏感用户数据的数据包的组合。

对于仅接受具有连续数据包编号的片段的设备,第二个片段必须具有数据包编号n + 1。为了增加这种情况的发生,攻击者可以依靠BEAST威胁模型来使客户端使用恶意JavaScript发送后台流量。

数据包的构造:在攻击中,将攻击者指定的IP数据包的片段与包含用户数据的数据包的片段混合在一起。此过程如上图所示。伪造数据包的IP校验和是正确的,因为它仅在IP报头上计算得出。 TCP校验和将是错误的,但这对攻击没有影响:中间跃点仍将数据包转发到其最终目的地,因为它们仅验证IP校验和。而且由于攻击者控制了最终目的地,因此他们可以简单地忽略不正确的TCP校验和。最后,攻击者指定的数据包不得大于包含敏感用户数据的目标数据包。否则,IP长度字段将大于重组数据包的实际有效负载,从而导致AP丢弃数据包。如果IP长度字段小于有效负载,则仅丢弃尾随数据。

可以泄露的数据取决于网络和受害者的配置。当使用512字节的分段阈值时(例如Arch Linux建议),超出此位置的数据位于第二个分段中,这意味着可以对其进行过滤。因此可以提取HTTP cookie,POST数据,基本身份验证凭据等。此外,借助BEAST威胁模型,恶意JavaScript可以使客户端执行带有URL中额外参数的跨域请求,从而将cookie推向第二个片段。这类似于针对TLS攻击的当前标准方法。

D.攻击变化

易受攻击的客户端:针对客户端,可以执行类似的攻击来伪造数据包。但是,伪造数据包的TCP或UDP校验和只有2^(-16)的正确几率,这意味着该数据包可能会被丢弃。但是,仍然可以针对通过UDP-Lite运行的多媒体流协议进行攻击。这是因为UDP-Lite中的校验和仅在数据包的一部分上,因此可以更改某些数据而不会使校验和无效。与片段缓存攻击结合使用时,可能会出现针对客户端的更一般的混合密钥攻击。

多密钥支持:802.11标准包含一个可选功能,发送方可以在两个密钥之间进行选择以加密单播帧。这有助于简化向新会话密钥的切换,并且可以通过在帧的标头中包含密钥ID来标识已使用的密钥,从而使其成为可能。使用此功能时,可以将紧接在不同密钥下的两个片段彼此立即转发到目标。如果目标在某个超时后从内存中删除了片段,或者片段之间发送的任何帧都干扰了它们在目标上的重组,这将使攻击变得更加容易。

E.适用于WEP和TKIP

当使用带有动态密钥更新的WEP时,还可以混合使用不同密钥加密的片段。针对Linux进行了经验验证,这表明自1997年发布以来,发现的设计缺陷就一直是Wi-Fi的一部分。此外,由于WEP不需要分段具有连续的数据包编号,即i。例如,初始化向量,攻击者甚至可以混合使用同一密钥加密的两个帧的片段。

TKIP协议不受影响,因为与CCMP和GCMP不同,它的真实性检查覆盖整个帧,而不是单个片段。但是,某些设备不执行此真实性检查,这意味着在实践中仍然可能对TKIP进行混合密钥攻击。

F.实验

要执行攻击,必须注入具有特定片段和序列号的帧。但是,无线网卡可能会覆盖这些字段。此外,网卡可能会对具有不同QoS优先级的帧进行重新排序,这也可能会干扰攻击。为了解决这些问题,修补了Intel卡的驱动程序,并修补了Atheros卡的驱动程序和固件。

在测试中,所有主要操作系统都容易受到攻击,包括Windows,Linux,Android,macOS和iOS。少数设备不会受到影响,因为它们要求立即接连收到所有分段,并且在它们之间发送的任何帧都会干扰其重组,从而防止了默认的混合密钥攻击。例如,针对NetBSD,FreeBSD以及Windows和Linux上的一些网卡,就是这种情况。此行为不符合该标准。此外,发现了一种仍然可以对FreeBSD进行混合密钥攻击的方法。该技术依赖于非平凡的条件,最后,OpenBSD不受影响,因为它不支持分段。

尽管三个专业AP中只有一个受到影响,但测试的所有四个家用路由器都受到了影响。在Aruba AP-305上,分段之间发送的任何帧都会干扰其重组。Cisco Catalyst 9130不支持更新成对会话密钥,这意味着不可能进行默认的混合密钥攻击。

为了保持实验的可重复性,使用虚拟Wi-Fi接口对Linux进行了端到端攻击。特别是实施并成功实施了针对易受攻击的AP的攻击,以窃听(解密)客户端发送的分段。

在Linux上,此攻击比较乏味,因为它会在两秒钟后从内存中清除分段。这可以在BEAST威胁模型中克服,在该模型中,客户端上的恶意JavaScript可以在4次握手完成之前触发攻击者指定的数据包的传输。此后,可以生成流量,以使带有敏感数据的数据包在两秒钟内以足够高的数据包编号发送,然后可以将其提取。已针对Linux 4.9成功测试了此方法。

G.讨论

为防止混合密钥攻击,接收方应验证所有片段均已在同一密钥下加密。攻击假设网络定期刷新成对会话密钥。根据经验,大多数路由器和AP都不默认执行此操作。但是,这实际上并没有限制攻击,因为几乎所有实现都接受非连续的数据包号,这意味着攻击是可能的,而无需依靠密钥。

攻击的局限性在于,仅当一个或多个设备发送分段帧时才可以使用它。但是,推测可以使用动态分段来延迟分段帧的传输。通过动态分段,发送器将发送分段的帧以填充分配的时隙。为了诱发这种类型的分段,可以使用MitM位置来欺骗客户端或AP的802.11ax功能元素,并宣传它们支持动态分段。该技术的实验分析留作未来的工作。

 

0x05 Poisoning the Fragment Cache

在本节中介绍了一个设计缺陷,该缺陷使广告客户可以将片段注入到内存中,例如受害者的分段缓存。此漏洞允许攻击者窃取客户端数据并注入任意数据包。此设计缺陷已分配给CVE-2020-24586。

A.威胁模型

攻击针对WEP,CCMP和GCMP。仅当未验证重组框架的真实性时,才会影响TKIP协议。与混合密钥攻击类似,网络中的设备必须发送分段的帧才能进行攻击。在没有这种假设的情况下滥用实现缺陷来执行片段缓存攻击。还根据目标是客户端还是AP做出以下假设:

易受攻击的AP:攻击将利用热点类型的网络(如eduroam)和Hotspot 2.0网络中的易受攻击的AP,在这些网络中,用户可以使用其移动SIM卡进行身份验证。在这些网络中,用户可能会彼此不信任,他们将使用单独的身份验证和加密密钥。当这些网络使用下游组地址转发和客户端隔离时,攻击也会起作用。

易受攻击的客户端:假设客户端将连接到受保护的Wi-Fi网络,而攻击者也知道该密码。客户端不信任该网络,并且在连接到该网络时不会发送敏感数据。这样的网络可以是公开共享密码的咖啡店或会议网络。请注意,实际上,攻击者可以侦听探测请求以获取(旧)设备愿意连接的网络,并且可以使用密码共享应用程序获取附近热点的密码。

B.提取客户端数据

首先攻击易受攻击的AP,然后窃取客户端发送的数据。在此攻击的第一阶段,欺骗了目标客户端的MAC地址,并使用有效的凭据连接到网络(请参见上图)。这样就可以将片段注入到AP的内存中,这些片段保存在受害者的MAC地址下。请注意,由于以热点类型的网络为目标,因此攻击者拥有有效的凭据。

当真实客户端发送Auth帧以连接到网络时,攻击的第2阶段开始。此时,攻击者将加密的片段Enc n k {Frag0(s)}发送到AP,该片段包含攻击者指定IP数据包的开头。 AP解密该片段并将其存储在受害者MAC地址下的片段缓存中。此后,攻击者通过发送Deauth帧与网络断开连接,随后在客户端和AP之间建立多通道MitM。 802.11标准没有规定客户端断开连接或重新连接时AP必须删除片段,这意味着注入的片段保留在AP的片段缓存中。

在攻击的第2阶段和第3阶段之间,攻击者让客户端正常连接。此外,攻击者永远不会将序列号为s的帧发送给AP。这样可以确保在攻击的第二阶段注入的片段保留在AP的片段缓存中。

在攻击的第3阶段,攻击者等待,直到发送了第n + 1个数据包的第二个片段。攻击者将此片段发送给序列号为s的AP。由于它们具有相同的序列号和MAC地址,因此这会导致AP将其与注入的片段组合在一起。因为AP不会存储接收这些片段的凭据,所以它不会意识到这两个片段实际上是由不同的用户发送的。重组后的帧将包含一个IP数据包,该数据包将攻击者作为目的地,并将用户数据作为有效负载。这会将用户数据泄露给攻击者。如果数据包编号为n + 1的帧不是第二个片段,则可以通过强制断开客户端与AP的连接来重新开始攻击。

C.数据包注入

攻击者还可以通过使片段缓存中毒来注入数据包。针对AP,此攻击类似于数据渗透攻击,不同之处在于,阶段2中注入的片段Frag0包含要注入的数据包。当接收到第二个分段时重新组装框架时,未知内容将被添加到注入的框架中。但是,802.11之上的网络层将丢弃此未知内容作为填充数据。接收者知道填充数据的起始位置,因为网络数据包(例如IP或ARP数据包)包含定义数据包大小的长度字段。结果,攻击者可以使用其他客户的身份注入数据包,而这在热点类型网络中是不可能的。

为了对客户端滥用片段缓存中毒,依赖于新颖的威胁模型,其中客户端将连接到不受信任的受保护网络,但仅在连接到受信任的网络时才发送敏感数据。例如,公司笔记本电脑可以配置为仅在连接到公司网络时发送敏感数据,但是笔记本电脑还可以用于休闲上网,例如通过使用公开共享的密码连接到咖啡店网络。为了攻击客户,攻击者首先欺骗了受信任(公司)网络的MAC地址,但广告了不受信任(咖啡店)网络的SSID(请参见上图中的阶段1)。一旦客户端连接到该恶意网络,攻击者就会将片段Frag0注入受害者的记忆中。该片段包含要注入的数据包。

在攻击的第1阶段和第2阶段之间,客户端与不受信任的网络断开连接,此后,客户端将连接到受信任的(公司)网络。在客户端连接时,攻击者会在客户端和AP之间建立多通道MitM位置。在此MitM位置,攻击者避免在客户端和AP之间转发所有帧,同时避免使用帧中的序列号s向客户端发送。请注意,802.11标准不要求客户端在(重新)连接到AP时清除其片段缓存。

当受信网络的AP发送第二个数据包编号为n + 1的片段时,攻击的第2阶段开始。攻击者转发序列号为s的该帧,以便客户端将其与注入的片段Frag0(s)重新组合。类似于对AP的攻击,客户端的网络层将丢弃第二个片段中的内容作为填充字节,然后将处理Frag0中包含的数据包。实际上,攻击者可以使用此数据包注入功能来诱使客户端使用恶意DNS服务器(请参阅第3.3节)。反过来,这使攻击者可以拦截客户端仅在连接到受信任(公司)网络时才传输的数据。

D.实验

与混合密钥攻击类似,在实践中需要打补丁的驱动程序才能执行攻击。 Windows和Linux容易受到所有测试网卡的一半以上的攻击。测试的Android和iOS设备不容易受到攻击。在经过测试的BSD系统中,只有FreeBSD在AP模式下以及使用附录E的注入技术时容易受到攻击。三个专业AP并未受到影响,但不幸的是所有四个家用路由器都受到了影响。

为了使实验更容易重现,再次测试了针对Linux用户虚拟Wi-Fi接口的端到端攻击。目标网络使用EAP-PWD,这意味着用户使用用户名和密码进行身份验证。在此设置中成功攻击了一个易受攻击的AP,并通过向服务器发送IP数据包来毒化了其片段缓存,并泄漏了受害者发送的(解密的)片段。

还成功确认了对Linux上WEP的攻击,这意味着自1997年发布以来,此设计缺陷一直是802.11标准的一部分。最后注意到,攻击Linux并非易事,因为它在两秒钟后从内存中清除了片段。尽管如此,针对Linux AP的攻击还是很实用的,因为可以在客户端已经尝试连接到AP之前立即注入恶意片段,从而确保注入和转发的片段之间的延迟很短。

E.讨论

向后兼容的防御是在(重新)连接或(重新)与工作站关联时清除片段缓存。仅当网络中的设备使用分段时,才可能发生缓存中毒攻击。与混合密钥攻击类似,推测MitM位置可以假装客户端和AP支持动态分段,从而诱使针对802.11ax设备使用分段。实际上,如果设备容易受到缓存攻击,那么它也很可能容易受到混合密钥攻击。但是,这不能保证,因为可以防止混合密钥攻击,同时仍然可以进行缓存攻击(反之亦然)。

 

0x06 Experiments and Implementation Flaws

A.实验装置

为了确认实践中的设计缺陷,测试了智能手机,笔记本电脑,物联网设备,家用路由器和专业AP(请参见上表)。还在Latitude 7490和MSI GE60上使用16个无线网卡对Windows 10和Linux 5.5作为客户端进行了测试(上表)。然后,使用多个网卡(下表)测试了FreeBSD 12.1和NetBSD 7.0,并使用了少量受支持的网卡测试了OpenBSD 6.4。总共这意味着测试了75台设备。例如,网卡和操作系统组合。在这些实验中,所有设备都受到一种或多种攻击的影响。通常,设备是否受影响取决于操作系统,网卡以及它是否充当客户端或AP。在进行实验时,还分析了泄漏和开源网络堆栈的代码,并发现了一些与聚合和分段有关的实现缺陷。

本研究创建了一个工具,可以测试客户端或AP是否受到发现的设计和实现缺陷的影响。它可以测试家庭网络和企业网络,在这些网络中,可以使用以下方式完成身份验证:例如PEAP-MSCHAPv2或EAP-TLS。工具支持45多个测试用例,并且在所有设备组合中,执行了上千个测试。

B.非连续数据包编号

一个常见的实现缺陷是设备不检查帧的所有片段是否具有连续的数据包编号,即例如,所接收的片段是否确实属于同一帧。此漏洞已分配为CVE-2020-26146。在测试中使用Intel 3160或8265卡时,除Windows 10外,所有设备均受到影响;当内核本身重新组装片段时,Linux和Linux均受影响(对于SoftMAC 802.11驱动程序通常是这种情况)。这意味着在68个支持分段的经过测试的设备中,有52个是易受攻击的。有关受影响的设备的概述,请参见中的“ Non-con”列。类似于混合密钥攻击,攻击者可以通过混合不同数据包的片段来滥用此漏洞,以泄露用户数据。下图说明了这种攻击的详细信息。

该漏洞影响CCMP和GCMP。TKIP仅在未验证重组框架的真实性的情况下才会受到影响。 WEP协议在设计上容易受到攻击,这意味着可以将其视为第四个新颖的设计缺陷。有趣的是,当GCMP于2013年推出时,其规范并不要求GCMP加密的片段必须具有连续的PN。802.11小组在2015年注意到了这一错误,并更新了标准,也要求对GCMP进行此检查。由于这个临时的设计缺陷,即使内核重新组装了片段,使用GCMP的Linux 4.0到4.4也容易受到攻击。

C.混合纯文本和加密片段

本文解决的另一个常见实现缺陷是设备重新组合了加密的片段和纯文本片段,而不是仅接受加密的片段(CVE-2020-26147)。这使攻击者可以将某些加密的片段替换为纯文本片段。在测试中,有21台设备仅要求对第一个片段进行加密(◐ ),而9则对最后一个片段进行加密(◑),并且仅3个仅对一个片段进行加密(⦁)。此外,有11个设备甚至接受纯文本帧(CVE-2020-26140),另外9个设备接受分段但不分段的明文帧(CVE-2020-26143)。分别使用⚡和◎表示这两个最后的实现漏洞。在支持分段的68个设备中,共有53个受这些实施漏洞中的至少一个漏洞影响(请参阅表1、2和3中的“纯分段”列)。

Linux中的分段整理代码试图通过检查所有片段是否具有连续的PN来强制对所有片段进行加密。不幸的是,这种检查是不安全地实现的:解密帧后,其PN存储一个会话变量,并且将前一个片段的PN与该会话变量进行比较。结果,当接收到(第二个)明文片段时,它检查该会话变量中的PN是否与先前的片段连续,并且没有意识到此PN与接收的明文片段无关。这意味着可以通过以下方法绕过PN检查:首先使用连续的PN,但使用不同的序列号将有效的加密片段转发到Linux,然后在正确的序列号下注入纯文本片段(有关详细信息请参见下图)。

实际影响:如果第一个片段可以是纯文本片段,则攻击者可以在该片段中包含一个恶意数据包,一旦受害者收到所有片段,该恶意数据包便会对其进行处理。这类似于缓存攻击。

如果必须对第一个片段进行加密,可以将此漏洞与A-MSDU或片段缓存攻击结合使用,以注入任意帧。与A-MSDU攻击结合使用时,攻击者将使用其多通道MitM位置来设置已加密的第一个片段的A-MSDU标志。此后,攻击者注入一个纯文本片段,受害者在其上重新组装这两个片段并处理生成的A-MSDU。现在的想法是,第二个子帧将对应于明文片段的有效载荷,并包含攻击者想要注入的数据包。障碍在于,攻击者无法控制的第一加密片段必须导致可预测长度的小的第一子帧,以使第二子帧包含在注入的(第二)明文片段中。这可以通过预测数据包的IP ID来确保,类似于针对客户端的A-MSDU攻击。第二个限制是并非所有设备都支持分段的A-MSDU。特别是,在支持A-MSDU的56台设备中,有33台经过适当处理的分段化A-MSDU,有9台接收它们为格式错误的帧,其他14台则无声地丢弃了它们。

当与高速缓存攻击结合使用时,攻击者首先会使用包含要注入的数据包(部分)的加密片段,为AP或客户端的片段缓存进行定位。受害者连接到目标网络后,攻击者将第二个片段作为明文注入,受害者将重新组装帧并处理注入的数据包。与默认的高速缓存攻击相比,此组合的一个优点是,即使网络中没有设备发送分段的帧,也可以执行此组合。

适用于WEP和TKIP:还在Linux上对WEP进行了测试,发现由于未经过身份验证,攻击者可以轻易设置更多片段标志,然后将第一个加密片段与纯文本片段组合在一起。仅当未验证重组框架的真实性时,才会影响TKIP协议(请参见6.7节)。

D.广播明文片段

尽管广播帧永远不应该被分段,但是一些设备将广播的片段作为正常的未分段帧进行处理。此外,即使在受保护的Wi-Fi网络中未加密发送(CVE-2020-26145)时,某些设备也会接受第二个(或后续)广播片段。攻击者可以通过将数据包封装在第二个分段的纯文本广播帧中来滥用此功能,以注入数据包。例如,在具有广播接收器地址的Frag1帧中。甚至单播网络数据包(例如IPv4或ARP数据包)也可以封装在广播802.11帧中,并因此以这种方式注入。

受影响的设备列在“Bcast. frag.”中,在前表中列出。受影响的设备主要是Apple和NetBSD和FreeBSD上的AP。某些设备仅在执行4次握手时易受攻击,但这并不能限制攻击:受害者可以被强制断开连接,例如。例如,已取消身份验证或被阻塞,则受害者将重新连接并执行新的4次握手。

E.隐藏A-MSDU作为握手帧

设备接受纯文本4次握手帧,即例如,当连接到网络时,带有EAPOL LLC / SNAP标头的纯文本数据帧。如果实施不正确,则可以滥用此方法来注入纯文本A-MSDU(CVE-2020-26144)。尤其是,攻击者可以构造一个纯文本A-MSDU,其前8个字节也可以解释为有效的EAPOL LLC / SNAP标头(请参见下图)。尽管这导致第一个子帧的目的地址和源地址无效,这意味着接收器丢弃了该子帧,但仍处理其他子帧。因此,攻击者可以向接受其前8个字节等于EAPOL LLC / SNAP标头的纯文本A-MSDU的设备注入任意数据包。

针对FreeBSD和表1和2中所示的几种设备,这允许攻击者注入纯文本A-MSDU帧。某些设备仅在执行4次握手时易受攻击。对于Windows 10上的AWUS036ACH,以有效EAPOL标头开头的A-MSDU导致蓝屏死机。最后,如果某些实现等于有效的LLC / SNAP标头,则一些实现会剥离A-MSDU的前8个字节。这不符合该标准,也不能阻止对易受攻击的设备的攻击。

F.EAPOL转发和分段

如上一节中突出显示的那样,当客户端连接到网络时,设备必须接受纯文本4次握手帧。发现即使发件人尚未通过身份验证,某些设备也将转发给网络中其他客户端的纯文本握手帧(CVE-2020-26139)。受影响的设备包括FreeBSD和NetBSD AP,以及某些家用路由器,例如Asus RT-N10和Linksys WAG320N。攻击者可以滥用它来仅使用多通道MitM位置来执行A-MSDU攻击。尤其是,攻击者首先与目标网络相关联。然后,攻击者将不发送四次握手,而是发送一次握手,例如EAPOL,以连接到网络的客户端作为最终目的地,将帧固定到AP。易受攻击的AP接受此EAPOL帧并将其转发到其目的地(在本例中为目标客户端)。此外,AP将向客户端加密此帧。然后,攻击者可以使用其MitM位置在加密的EAPOL帧中设置A-MSDU标志。然后,攻击者可以通过构建如上图所示的EAPOL帧并将要注入的数据包放入第二个A-MSDU子帧来注入任意数据包。

攻击者还可以针对NetBSD AP发送较大的EAPOL帧,然后AP将对其进行分段,加密并将其转发给目标客户端。换句话说,攻击者可以滥用NetBSD AP来生成加密的片段。可以通过首先中毒受害者的片段缓存,然后通过NetBSD AP生成第二个加密的片段,使受害者重新组装片段并处理注入的数据包,从而与缓存攻击相结合。另一种选择是,只要加密最后一个片段,就会对接受片段帧的客户端进行滥用。不幸的是,大多数NetBSD驱动程序不支持发送分段的帧,而仅发送第一个分段并丢弃后续的分段。但是,诸如ath之类的驱动程序确实会传输所有分段,攻击者可以利用这些分段更轻松地执行基于分段的攻击。

G.绕过KIP真实性检查

对TKIP的分段攻击应该是不可能的,因为它可以验证完整(重组)框架的真实性。但是,在Linux和Windows上发现了几张网卡,它们无法验证重新组装的TKIP帧的真实性(CVE-2020-26141)。在Windows上,AWUS036H,AWUS036ACH和TL-WN725N受到影响,而在Linux上,NWD6505和AWUS036ACM受到影响。针对这些设备,即使使用旧的TKIP协议,也可能基于分段的攻击。

H.将片段视为全帧

某些实现,例如OpenBSD和ESP-12F,不支持A-MSDU或分段的帧。但是,它们仍然容易受到攻击,因为它们将所有帧都视为非分段帧(CVE-2020-26142)。攻击者可以通过控制分段之一中包含的内容来滥用此特征以注入任意网络数据包。在宽松的BEAST威胁模型中,可以通过使客户端加载攻击者控制的URL或资源来实现此目的,从而使结果请求或响应在Wi-Fi层中被分段,并且其中一个片段纯粹由攻击者控制数据(然后将其视为完整帧)。

对于OpenBSD解密片段时,更多的片段标志未包含在关联的元数据中,导致除最后一个片段之外的所有片段解密均失败。最后一个片段没有设置此标志,这意味着它已成功解密,并将作为完整帧进行处理。 OpenBSD还可以将解密工作转移到Wi-Fi芯片上。在那种情况下,所有片段都会被正确解密,但是OpenBSD会将每个解密片段视为未分段的帧。在这两种情况下,都可以通过控制最后一个片段中包含的内容来注入任意网络数据包。

本文证实了针对ESP-12F的攻击,该攻击甚至接受了明文帧,并且针对使用Belkin F5D8053 v3或Intel 8265作为客户端的OpenBSD 6.6进行了攻击。推测其他设备也不支持分段,可以用类似的方式进行攻击。

 

0x07 Conclusion

本研究发现了与帧聚合和分段有关的广泛设计和实现缺陷。有趣的是,如果设备较早地实现了可选的安全性改进,则可以避免聚合攻击。这突出了在已知实际攻击之前部署安全性改进的重要性。从根本上说,这两个基于分段的设计缺陷是由于未充分分离不同的安全上下文而造成的。由此了解到,正确隔离安全上下文是设计协议时要考虑的重要原则。在实践中,特定于实现的漏洞是最破坏性的。有几种方法可以实现简单的帧注入,可以滥用这些帧来诱骗受害者使用恶意DNS服务器来拦截大多数受害者的流量。

(完)