Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

A Billion Open Interfaces for Eve and Mallory: MitM

作者:Milan Stute, Sashank Narain, Alex Mariotto, Alexander Heinrich, David Kreitschmann, Guevara Noubir, Matthias Hollick

单位:TU Darmstadt, Northeastern University

出处:USENIX Security Symposia 19

原文:https://www.usenix.org/conference/usenixsecurity19/presentation/stute


Abstract

Apple Wireless Direct Link(AWDL)是Apple生态系统中的一项关键协议,超过十亿的iOS和macOS设备使用该协议进行设备到设备的通信。 AWDL是IEEE 802.11(Wi-Fi)标准的专有扩展,并与低功耗蓝牙(BLE)集成以提供Apple AirDrop等服务。作者对AWDL及其与BLE的集成进行了首次安全和隐私分析,发现了一些安全和隐私漏洞,导致了一些可实现的攻击。作者提供了PoC的实现并进行了演示。最后作者提出切实可行的对策,认为尽管苹果可以发布针对DoS攻击漏洞的修复程序,但其他安全和隐私漏洞则需要重新设计其某些服务。

1 Introduction

AWDL无处不在: AWDL部署在超过十亿个设备上,涵盖多个Apple操作系统(iOS,macOS,tvOS和watchOS)以及越来越多的设备(Mac,iPhone,iPad,Apple Watch,Apple TV和HomePod),并且在支持Apple生态系统中的设备到设备通信中扮演着关键角色。

对AWDL知之甚少: 部分原因是其专有性,尤其是在安全性和隐私性方面。无线协议安全性方面,在Bluetooth,WEP,WPA2,GSM,UMTS和LTE中不断发现各种缺陷。有关AWDL安全性的信息不足是一个严重的问题,因为依赖它的服务越来越多,尤其是Apple的AirDrop和AirPlay。 <!– 还值得注意的是,AWDL的设计以及与BLE的集成是:

  1. 通过优化能量和带宽来驱动的;
  2. 设备不需要具有安全连接的现有Wi-Fi接入点(AP)但是对与任意设备进行通信很开放,因此有可能暴露给各种攻击媒介。 –> 文章工作: 作者率先进行AWDL的安全性分析及其与BLE的集成,步骤如下:
  • 首先是对协议和代码进行逆向分析,揭示从设计缺陷到实现错误的多种安全和隐私漏洞,这些漏洞可引发各种攻击;
  • 作者提出了一系列攻击:
    • 中间人攻击,可对通过AirDrop传输的文件进行秘密修改
    • 拒绝服务(DoS)攻击,会阻止设备之间的通信
    • 隐私泄露,造成用户被标识
    • 长期跟踪,从而破坏MAC地址随机性
    • targeted DoS和blackout DoS攻击 这些缺陷跨越了AirDrop的BLE发现机制,AWDL同步,UI设计和Wi-Fi驱动程序实现。作者证明,这些攻击可以是隐形的,低成本的,并且可以由未连接到目标Wi-Fi网络的设备发起。
  • 提供了PoC,并演示了可以使用低成本微型位设备和现成的Wi-Fi卡进行攻击。这些发现的影响超出了苹果公司的生态系统,因为Wi-Fi Alliance采用AWDL作为 Neighbor Awareness Networking(NAN)的基础,因此可能容易受到类似攻击。此外,自2017年以来,Google Android提供了NAN API,尚待制造商支持。

作者贡献: 有三个层次的贡献

  • 发现AWDL和AirDrop中的安全和隐私漏洞,并在iOS上提出四种基于网络的新颖攻击
    • 长期的设备跟踪攻击,尽管进行了MAC随机化处理,但仍可能会泄露个人信息,例如设备所有者的姓名(超过75%的实验案例)。
    • 针对AWDL的选举机制的DoS攻击,旨在故意使目标通道序列不同步,从而有效地防止了通信。
    • MitM攻击可拦截和修改通过AirDrop传输的文件,从而有效地植入了恶意文件。
    • 对Wi-Fi驱动程序中Apple的AWDL实现实施了两次DoS攻击。攻击可通过注入特制框架来使附近的Apple设备崩溃。这些攻击可以针对单个受害者,也可以同时影响所有相邻设备。
  • 针对这四种攻击提出了切实可行的缓解措施。
  • 发布了AWDL和AirDrop的开源实现,作为逆向工程工作的副产品,以刺激该领域的未来研究。

AWDL是基于IEEE 802.11标准的专有无线ad hoc协议。核心在于AWDL使用信道跳变(channel hopping)机制来实现与AP和不同信道上的其他AWDL节点的“同时”通信。此信道跳变是由一系列所谓的Availability Windows(AW)实现的。

对于每个AW,一个节点指示它是否可用于直接通信,如果可以,则指示它将在哪个信道上。频道值可以是其AP的频道(专用的AWDL社交频道之一,6、44或149),也可以是0(表示它将不在任何频道上收听)。每个节点在AWDL特定的IEEE 802.11 Action Frames(AF)中定期宣布自己的序列,该序列由16个AW组成。 我们称这样一个完整的16-AW序列的长度为周期τ。每个AW的长度为64个时间单位(TU),其中1 TU = 1024μs,因此τ≈1 s。

AWDL节点选择一个公共主节点,并使用其AF作为时间参考来实现同步。每个主节点根据其本地时钟$t_{AW}$传输同步参数,该同步参数包括当前AW序列号i(0至$2^{16} -1$)以及直到下一个AW开始的时间。

3 Reverse Engineering AirDrop

AirDrop是允许iOS和macOS用户使用AWDL作为设备之间交换文件的方式的应用程序。作者通过使用MitM HTTPS代理以及在macOS的sharingd daemon和Sharing框架(实现了AirDrop)上流行的反汇编程序,对AirDrop协议进行了逆向工程。作者在Python中重新实现了AirDrop,并将其作为开源软件提供。https://github.com/seemoo-lab/opendrop

后面主要讲述:(1)可发现性设置;(2)协议流程;(3)经过身份认证和和未经身份验证的连接

3.1 Discoverability User Setting

三种发现设置:(1)可被每个人发现(2)仅由联系人发现(3)接收关闭

AirDrop需要启用Wi-Fi和蓝牙。默认情况下,Wi-Fi和蓝牙已启用,并且AirDrop设置为仅联系人。 设备需要解锁才能被发现。根据作者的用户研究,80%的参与者启用了AirDrop(仅59.4%的联系人和20.6%的所有人模式),而其他20%的人禁用了它。在本文的其余部分,作者假定目标设备已启用AirDrop并已解锁。

3.2 Protocol and User Interaction

  • 发现阶段
    • 发送方发送BLE广播(包含其contract identifier的哈希值)
    • 接收方对不同模式有不同的反应方式–>activate AWDL
      • contact-only模式:哈希值与address book中的contact identifier匹配就激活
      • everyone模式:接收方直接激活自己的AWDL接口
    • 发送方使用mDNS/DNS-SD开始通过AWDL接口查找AirDrop服务实例
  • 对于每个找到的AirDrop服务,发送方创建与接收方的HTTPS连接,并进行完全的authentication handshake。若认证成功,则发送方手机界面上会出现对应的接收方。
  • 当发送者选择了一个接收者,AirDrop发送一个包含metadata和文件缩略图的请求。接收者决定自己是否想要接收。若接收者愿意,那么发送方继续传输整个文件。

3.3 (Un)authenticated Connections

AirDrop始终会尝试建立我们所谓的身份验证连接。这样的连接只能在具有Apple ID且在其通讯录中具有对方的用户之间建立。这个身份认证涉及到多个证书和CAs。

为了进行身份认证,设备需要证明自己拥有某个联系人标识符 {c_i},例如email地址、电话号码等与AppleID相关联的信息。

当建立TLS连接时,AirDrop使用苹果签名的特定于设备(Device-specific)的证书 $\sigma_{UUID}$

当用户使用其Apple ID登录设备时,会发出$\sigma_{UUID}$且 UUID不受任何联系人标识符的约束

AirDrop使用Apple签名的记录数据”blob”RD:

  • 包含UUID和所有联系人标识符

    这些联系人标识符{c1,c2..,c_n}都是用用户的AppleID以hash形式注册的

  • Formally,RD是如下的元组:$RD = UUID, SHA2(c_1),…,SHA2(c_n)$

签名的记录数据$RD_\sigma$还额外包含了一个签名和一个证书链:

  • $RD\sigma = RD, sign(\sigma{VR},RD),\sigma_{VR},\sigma{AAI2}$

认证过程:

  • 计算address book中所有联系人标识符,与$RD_\sigma$中的比较
  • 验证UUID与当前TLS连接中的证书匹配。这是为了防止$RD_\sigma$被使用不同的TLS证书的攻击者重用

如果发送方或接收方不能提供Apple签名的TLS证书或有效的记录数据,AirDrop会将连接视作非认证的,这意味着对于使用自签名证书和不提供记录数据的设备,AirDrop会建立不认证的连接。

AirDrop的身份验证机制在密码学上设计得不错,但作者在后面展示了如何将经过身份验证的连接降级为未经身份验证的连接,以及如何对数据传输发起中间人攻击。

4 Activating AWDL on Devices in Proximity

某些攻击要求目标的AWDL接口处于活动状态,通常情况并非如此,因为应用程序必须明确请求激活。作者发现,可以利用与AirDrop集成的BLE发现机制来激活附近的所有AWDL设备。处于所有人模式的设备将在收到任何AirDrop BLE广播后立即启用AWDL。作者分析了当目标设备在仅联系人模式下,在AirDrop的BLE广播中强行强制截断联系人哈希值来激活目标的AWDL接口的理论性能。 最后,作者利用低成本($ 20)BBC micro:bit设备构建了一个PoC,并通过实验证实了这种攻击在实践中是可行的,目标响应时间大约为一秒,针对其地址簿中具有100个联系人标识符的设备。

4.1 AirDrop BLE Advertisements

AirDrop实际使用的BLE广播帧包含了四个联系人标识符哈希。它们作为不可连接的无向广播(ADV_NONCONN_IND)进行广播。框架使用制造商特定的数据字段,该字段具有固定值(联系人hash除外)。实际上,作者发现联系哈希是发送方联系人标识符的SHA2摘要的前两个字节,该记录也包含在记录数据中。如果发件人的标识符少于四个,则将其余联系人哈希字段设置为零。由于长度短,使用蛮力尝试所有可能的值似乎是可行的。

4.2 Brute Force Analysis

作者假设攻击者不了解目标的联系人,因此尝试使用蛮力开启目标的AWDL接口。 由于目标至少具有一个联系人标识符(通讯簿中至少包含用户自己的Apple ID),因此在最坏的情况下,攻击者需要尝试$2^{16}$ = 65536次。 因此,攻击者面临的挑战是在目标进行BLE扫描时快速发送大量BLE广播。 作者在这一块分析攻击者能以多快的速度耗尽搜索空间以及它们将如何成功。

  • One Scan Window

    • 让攻击者以$i{PHY}$的间隔在物理层注入BLE广播帧。考虑到攻击者只有一个radio而BLE使用三个广播通道,另外,AirDrop的BLE帧有四个联系人哈希值的空间,因此,攻击者的有效暴力率为 $r=\frac{4}{3 * i{PHY}}$
    • 攻击者每个扫描窗口w可以注入的哈希值的数量n=w*r
  • Multiple Scan Intervals

4.3 Jailbreaking BLE Advertisements

蓝牙标准对不可连接的无向广播施加了100 ms的最小广告间隔,我们发现这通常是在BLE固件中强制执行的。遵守该标准,攻击者将至少需要$2^16$ = 27分钟才能遍历整个搜索空间一次。如果攻击者可以访问BLE物理层来控制和调度各个传输,则他们可以绕开标准的限制,从而更快地遍历搜索空间。 为此,作者为Nordic nRF51822 芯片组扩展了开源BLE固件,以实施蛮力攻击。攻击实现非常简单,如图5所示。使用iPHY = 0.625 ms的发送间隔,得出r = 2133.3 $s^-1$,这使得攻击仅在216 / f = 30.72 s内迭代完 。通过使用三个BLE无线电(每个广播频道一个),可以将此时间减少到10.24 s。但是,实践中证明使用一个无线电就足够了。

4.4 Target Response Times Micro Benchmark

作者测量目标响应时间,即,当目标遭受攻击时,目标打开其AWDL接口所花费的时间。尤其是为contact-only的接收器测量响应时间,其通讯录中分别具有10、100和1000个通讯录标识符。此外,作者还提供了在相同攻击下everyone模式下接收机的参考测量值。

Setup 作者使用Wi-Fi嗅探器(Broadcom BCM4360)接收AWDL AF,并使用20美元的micro:bit设备注入BLE广播。为了获得响应时间,作者开始进行蛮力攻击并测量直到从目标接收到第一个AF为止的时间。然后,作者停止攻击并等待,直到目标停止发送AF,这意味着AWDL接口已关闭。然后,重新开始收集每个设置的50个测量值。

Results 假设BLE扫描窗口w和间隔i分别为30 ms和300 ms。可以观察得到:

  1. 分析模型不能准确地捕获实验结果,而是在一个足以满足目的的数量级内对其进行近似。
  2. 在地址簿中仅具有10个联系人标识符的目标的中值响应时间为10秒,当有更多联系人可用时,响应时间的中值降低为大约1秒。根据用户研究,我们发现一个用户平均有136个以上的联系人。
  3. 这意味着对于目标将在攻击者的通信范围内持续几秒钟的情况,暴力攻击是可行的。

5 Privacy: Tracking Apple Device Users

评估AWDL中的隐私问题,并发现AWDL设备易于跟踪。 首先,讨论启用跟踪的协议字段。 然后,利用第4节中介绍的攻击在不同位置进行实验性漏洞评估,并将结果与涵盖500名参与者的用户研究进行比较。 最后,讨论了可能的缓解措施。

5.1 Identifying Devices and Users via AWDL Protocol Fields

即使AWDL为IEEE 802.11标头实现了MAC随机化,但特定于AWDL的字段仍包含长期设备标识符,这些标识符公开了有关用户的敏感信息,从而破坏了MAC随机化。尤其是AWDL在AF中包括以下敏感字段,当AWDL接口处于活动状态时,设备每秒以明码广播多次:

  • 主主机名可能包括用户名的一部分,例如“ Janes-iPhone”,这是设置新设备时的默认设置。
  • 实际的MAC地址以及设备当前连接的AP。
  • 设备类别,macOS,iOS / watchOS和tvOS的设备。
  • 与协议版本结合使用,可用于推断OS版本,例如,在MacOS 10.12中使用AWDL v2,而在macOS 10.13中使用AWDL v3。攻击者可以在侦察过程中利用OS信息对易受攻击的驱动程序实施攻击。

目标需要广播AF,以使这些漏洞可被利用,但攻击者实际上可以通过第4节中介绍的攻击来强制执行这些漏洞。

5.2 A Survey on the Potential of Apple Device User Tracking

在Apple iOS和macOS设备安装过程中默认设置的主机名包括用户名。由于其帧结构,AWDL协议可帮助对手将主机名与设备的MAC地址进行映射。即使用户在设备上更改此主机名,这也使他们能够跟踪用户。这种组合还可以带来更复杂的威胁,因为此人的名字可以与公共数据库中的信息(例如人口普查)相结合,以推断其住所和工作地点,而MAC地址可用于实时跟踪它们。为了评估包含所有者名称部分的设备主机名的百分比,作者在对500个Amazon Mechanical Turk上Apple设备用户进行了调查。 特别是在跟踪方面,作者询问调查员其他用户是否容易找到他们的设备,因为他们的主机名包含真实姓名的一部分。我们将在下一部分中报告该问题的结果以及实验评估的结果。

5.3 Experimental Vulnerability Analysis

为了证明使用AWDL进行用户跟踪的可行性,作者收集了发现的设备数量,并检查了该设备的主机名是否在美国的四个不同位置都包含一个人的名字。作者选择了可以反映静态和动态环境的位置。尤其是在机场的登机口,公共图书馆的阅览区,正在行驶的地铁中以及大学的美食广场进行了记录。

确定主机名是否包含一个人的名字 作者使用两个数据库来确定主机名是否包含一个人的名字:2010年美国人口普查(包含162253个family name)以及美国社会保障署的1918-2017年婴儿名字(包含96 743个given name)。当检测到新的AWDL节点时,作者针对这两个数据库检查由连字符分隔的字符串段。

道德声明。为了保护用户的隐私,而不必存储任何敏感的用户信息,作者使名称匹配过程完全自动化。

Setup。作者进行以下测量(a)无攻击(被动),(b)使用仅包含“零”联系哈希值的静态BLE广播,以及(c)使用BLE蛮力方法进行测量。使用(b),只有所有人模式下的设备才应响应;使用(c),作者还可以捕获处于仅联系人模式下的设备。将每个设置运行60秒,然后在每个位置重复10次。为了避免统计偏差,在每次迭代中都在(a)到(c)设置之间来回循环,并且在它们之间使用40秒的冷却时间。冷却时间可确保附近的所有设备都再次关闭其AWDL接口。

Results。与仅发送常规广播相比,通过使用蛮力方法,可以发现大约两倍的设备。这意味着在实验中,大约有50%的Apple设备处于AirDrop的所有人模式。20%的Apple设备用户关闭AirDrop,因此无法通过AWDL进行跟踪。 另外即使不发送任何广播,也能够使用AWDL设备。如果设备(不受控制)本身发出广播,则可能发生这种情况。例如,当用户打开AirDrop共享窗格时(明显在大学所在地定期出现的)。 最后,作者发现在所有发现的设备中,超过75%的主机名中包含一个人的名字。大多数设备仅包含一个given name,这是新设置的Apple设备的默认设置,有些包含given name和family name的组合,很少有仅包含姓氏的。调查证实了这些结果,有68%情况下其他人识别其设备很“容易”或“非常容易”,因为其中包含他们的名字。

大规模攻击的前景。在此分析中,显示了有动机的攻击者将能够收集什么样的信息。作者为每个实验使用一个固定的物理位置,并且没有尝试跟踪任何用户的移动。但是,鉴于可以接收到适当设备的唯一标识符(Wi-Fi MAC地址和主机名),因此对于可以部署多个低成本Wi-Fi和整个区域的BLE节点的企业来说,进行大规模的跟踪攻击应该是微不足道的。

5.4 Mitigation

作者提出了一个短期解决方案,然后提出了两种缓解技术,该技术消除了稳定的设备标识符,以防止通过AWDL进行用户跟踪。 禁用AirDrop。在Apple解决问题之前,阻止用户跟踪的唯一方法是完全禁用AirDrop。这是我们在第4节中提出的攻击的对策。例如,无法通过BLE广告远程激活AWDL接口。 未连接到AP时隐藏真实的MAC地址。当设备连接到AP时,它将使用其实际MAC地址进行通信,在这种情况下,AWDL不会公开新信息。但是,作者发现即使设备未连接到AP,MAC偶尔也会包含在AF中。这似乎是意外行为,应通过软件更新进行修复。 随机化AWDL的主机名。 Apple设备在AWDL AF中传输其主机名,以及在服务发现期间用于查找AirDrop实例的mDNS响应。作为对策,作者建议使用与MAC地址随机化类似的AWDL随机化主机名。如果诸如AirDrop之类的应用程序需要真实的主机名进行标识,则只能通过加密且经过身份验证的通道(例如TLS)进行传输。 实际上,AirDrop已经在HTTPS握手中传输了设备名称,并在UI中使用了该名称,而忽略了mDNS响应中的主机名。因此,主机名随机化将不需要对AirDrop实现进行任何更改。

一些相关工作研究了从移动设备进行用户跟踪的主题。一些常见的攻击媒介包括使用GPS传感器、蜂窝、Wi-Fi、无线电接口指纹识别和运动传感器。作者认为上述工作与他们的方法正交,可以与他们的方法结合使用以改善跟踪性能。

还提出了许多对策来防止从上述向量进行跟踪。其中一些建议包括推荐新的位置框架和隐私度量,位置混淆,位置掩盖,合成位置,传感器数据混淆和权限分析。这些对策连同移动设备上的资源许可一起,限制了上述某些攻击的实用性。

一些特定于设备的标识符也已用于跟踪,例如。例如,IMEI,BLE地址和MAC地址。BLE是健身跟踪器和智能手机通信的主要标准,必须公开其地址。已经证明使用BLE标识符进行跟踪很容易。但是,作者的方法对于暴露主机名的攻击者来说具有额外的好处,这允许推断其他用户信息,例如家庭和工作地点,家庭成员或移动方式,这些信息对于更有针对性的跟踪很有用。像BLE地址一样,MAC地址也是必不可少的,因为它们形成了第2层网络通信的主干,并且必须暴露给网络(例如Wi-Fi探测请求)。

MAC地址随机化已被提出来防止设备通过Wi-Fi探测请求进行跟踪。如今,Apple和Google都在其移动操作系统中实现了MAC地址随机化。随机化确实改善了用户隐私;但是,一些工作表明设备仍然可以跟踪。例如,有工作使用探测请求指纹实现了一种算法,该算法具有50%的成功率,可以跟踪用户20分钟。另一项工作证明,MAC随机化可以通过定时攻击来克服,在定时攻击中,基于探测请求的帧间到达时间的签名可用于对来自同一设备的具有不同MAC地址的帧进行分组。他们的框架可以将同一设备的随机MAC地址分组(最多约500个设备)达到75%的情况。我们的工作提高了先前工作的可伸缩性,跟踪时间和准确性。作者证明,由于AWDL协议中的实现差异,攻击者可以100%的准确性在全球范围内跟踪数百万苹果设备所有者。

6 DoS: Impairing Communication with Desynchronization

AWDL不采用任何安全机制,苹果将安全机制留给上层。 因此,尽管可以使用诸如TLS之类的安全传输协议来实现端到端的机密性和完整性,但AWDL帧容易受到伪造,这使得使用AWDL的任何上层都容易受到可用性攻击。 作者提出一种新颖的DoS攻击,它针对AWDL的同步机制,以防止两个节点相互通信。 这种新颖的去同步攻击,其旨在最小化两个目标的信道序列重叠。

6.1 Desynchronizing Two Targets

作者利用AWDL的同步机制,通过在两个目标之间产生人为的相位偏移来减少信道重叠。为了获得成功,攻击者需要

  • 被两个目标都识别为master
  • 与每个目标分别通信
  • 发送不同的同步参数集,从而导致零(或最小)信道重叠。图9描绘了正常运行中的非零重叠和作为非同步攻击结果的零重叠。有以下三个步骤。 (1)Winning the Master Election。 AWDL中的主选举基于在选举参数中传输的两个值的数字比较。第一个值称为度量(metric),每个节点在初始化时随机绘制一个。指标的数字范围是有界的,并且取决于在节点上运行的AWDL版本。第二个值称为计数器,它被初始化为一个随机值,并在该节点被选为主节点时随时间线性增加。给定两个节点A和B的度量值和计数器值分别为($m_A$,$c_A$)和($m_B$,$c_B$),若 $c_A > c_B \cup (c_a=c_b \cap m_a>m_b)$,则A赢得主选举,否则失败。 为了持续赢得选举,攻击者将c和m设置为最大值。 (2)单播AF。攻击者需要在没有其他通知的情况下将同步参数发送到每个目标。虽然通常将AF发送到广播MAC地址ff:ff:ff:ff:ff:ff:ff,但AWDL节点也接受单播AF。因此,攻击者可以单播其AF,以确保只有预期的目标才能接收到它们。

(3)Phase Shift:不同的同步参数 要使两个目标不同步,攻击者需要发送不兼容的同步参数,这将导致可控制的偏移量。下面说明攻击者如何计算两个目标的相关参数$i$和$t{AW}$。假设攻击始于某个时间$T_s$。在某一时间$T{Tx}$伴随$t=\lfloor \frac{T{Tx}-T_S}{1024} \rfloor$发送给第一个目标的AF将包含以下的参数 $i = (\lfloor \frac{t \; mod \; 64 }{16} + 4\lfloor \frac{t}{64} \rfloor) \; mod \; 2^{16}$ $t{AW} = 64 - t \; mod \; 64$ 发送给第二个目标,攻击者将计算$t^\phi = \lfloor \frac{T_{Tx}-T_S-\phi}{1024} \rfloor$和$i^\phi$, $t^\phi _{AW}$

我们从实验上验证了这些计算的正确性,并在图10中显示了目标相位$\phi$=τ/ 4时两个目标之间的相位偏移。

6.2 Evaluating Packet Loss

通过通过ping程序测量数据包丢失,作者评估了去同步攻击的影响。作者使用配有Qualcomm Atheros AR928X Wi-Fi卡的APU板充当可以注入AWDL AF的攻击者。ICMP回显请求从MacBook Pro(late 2015,macOS 10.13)发送到iPhone 8(iOS 12)。攻击者引起跨越一个周期的不同相移。在每个实验中,发送方发出100个ICMP回显请求,作者重复10次,并在图11中绘制出最终的丢包情况。

6.3 Mitigating Desynchronization

设备可以通过丢弃单播AF减轻去同步攻击。不接受单播帧是一种非常有效且实用的对策,因为它将导致范围内的所有节点专门处理相同的信息。虽然这不能防止攻击者赢得主选举,并因此发送无效的同步参数,但由于所有节点都处理相同的帧,因此在两个目标之间创建确定性偏移变得更加困难。更高级的攻击者可以对PHY层进行攻击(例如,使用定向天线)以实现与单播类似的效果。但是,在实践中很难进行这种攻击。

乍一看,作者的去同步攻击获得了与无功干扰相同的效果。但是,去同步攻击在两个原因上可能更具吸引力:

  • 首先,从原理上讲,去同步攻击所需的能量少于干扰攻击。去同步攻击者仅需每1.5 s发射一帧即可维持其作为主节点的位置,因为如果AWDL节点在距其当前节点不超过1.5 s的时间内未收到AF,则将选举新的主节点。相反,无功干扰器需要针对目标发送的每个数据包发出干扰信号。
  • 其次,它允许拦截来自其目标的帧,从而可以发起更复杂的MitM攻击。相比之下,正常的干扰器会杀死传输中的帧,从而使任何人(甚至攻击者自己)也无法解码该帧。存在更复杂的接收器设计,可以抵消干扰器自身的信号,但这通常需要特殊的硬件。我们的去同步攻击只需要一个带有现成Wi-Fi芯片的系统,因此甚至可以在智能手机中实现。

7 MitM: Planting Malware via AirDrop

7.1 Ambiguous Receiver Authentication State

已经观察到,AirDrop使用两种不同的连接,分别称为已认证和未认证。此外,用户可以将其设备设置为只能由联系人或每个人发现,可发现性设置仅适用于接收方。虽然处于仅联系人方式的接收者将仅接受来自经过身份验证的发送者的文件,但是发送者将看到所有可发现的接收者。发送方可以决定连接是否通过身份验证。区分经过身份验证的连接和未经身份验证的连接的唯一视觉提示是,经过身份验证的连接将显示收件人的姓名和发件人地址簿中的照片。两者均未提供足够的证据来明确确定接收者是否真实。

7.2 The Complete AirDrop MitM Attack

我们对AirDrop的MitM攻击分三个阶段进行。

  • 打破了发现过程,将自己置于特权位置
  • 等待目标接收者被所有人发现,从而有效地迫使用户降级连接
  • 转发和操纵实际的数据传输,以将任意文件植入接收器。

(1)通过DoS打破发现。攻击最关键的部分是阻止发送方发现接收方,阻止其在共享窗格中显示为图标。特别是需要防止通过HTTPS的发现握手成功完成。原则上,这种DoS攻击可以通过之前的去同步攻击来进行。但是发现它不能可靠地阻止短发现请求和响应的接收。这是由于AirDrop发送方在开始发现过程时增加了信道分配,因此,即使不同步,也会增加与接收方的重叠。 作为替代方案,作者使用了TCP重置攻击,该攻击将包括RST标志的TCP段发送到目标,该目标继而立即断开连接。对于此攻击,攻击者针对未寻址到其自身的每个TCP段发出RST响应,并有效地防止了从发送方到接收方的任何重新连接尝试。 (2)降级已认证的连接。对于完整的MitM攻击,需要向接收方进行身份验证。否则,它将拒绝任何询问或上传请求。如果每个人都可以发现接收方,那么这很简单,因为它接受所有身份验证尝试,甚至包括那些具有攻击者可以轻松生成的自签名证书的身份验证尝试。接收者通过将其设备名称包含在“发现”响应中来指示来自非接触者的成功身份验证尝试。但是,我们发现,在大多数情况下(在我们的调查中为59.4%),用户将设备设置为仅联系人。在这种情况下,作者利用持续的DoS攻击迫使接收者尝试所有人的设置。 (3)转发和修改数据传输。一旦接收者可以被发现(可以通过定期发送发现请求来检查每个人何时可以发现接收者),作者将通过mDNS通告自己的AirDrop身份,然后等到发送者尝试通过HTTPS执行身份验证握手以进行发现,让作者成功。接着将发送者的“询问”请求(包括原始文件缩略图)转发给接收者,以使请求看起来有效。接收方接受传输请求后,将回复转发回发送方,然后发送方开始发送实际文件。现在,作者可以决定是转发文件的修改版本还是将可能包含恶意软件的全新文件发送给接收者。

视频链接:https://www.youtube.com/watch?v=5T7Qatoh0Vo&feature=youtu.be

7.4 Mitigation

我们讨论了可能的缓解策略。我们根据实施的复杂性来检查它们,从缓解措施开始,要求对现有AirDrop实施进行最少的更改。 Provide Stronger Visual Cues for Authenticated Receivers。 AirDrop当前设计的核心问题之一是,用户可能很难区分已认证和未认证的接收者。 Reset Everyone to Contacts Only After a Timeout.。为了方便起见,用户可能将设备的可发现性设置设置为“所有人”,或者一次使用一次,然后忘记重置它。 Introduce Secure AirDrop Mode for Non-Contacts。最后一个提议涉及弃用未经身份验证的连接,而是通过out-of-band(OOB)通道与非联系人建立身份验证。在最初的HTTPS身份验证握手期间,AirDrop可以传输与记录数据,具有类似功能的一次性cookie。一次性Cookie可以通过NFC等OOB通道或QR码进行验证。一次传输后(或特定的超时后),每个设备都将删除其一次性cookie。通过在TLS握手中提交一次性cookie,对OOB通道的MitM攻击将是徒劳的,因为攻击者无法使用相同的密钥建立TLS连接。但这种模式将需要双方再进行一次手动操作,因此会损害可用性。

以前曾提出过对AirDrop的其他攻击。模拟攻击利用 mDNS / DNS-SD 将文件传输重定向到攻击者,以进行未经身份验证的连接。特别是,攻击使用伪造的SRV和AAAA响应将AirDrop ID重定向到攻击者。与作者的工作相反,他们不区分经过身份验证的连接和未经身份验证的连接,并声称UUID证书不能与任何联系人标识符绑定,作者发现这是不正确的。此外,该攻击仅适用于未经身份验证的连接,而作者的攻击也通过降级攻击针对经过身份验证的连接,提出了一种完整的MitM攻击,攻击者可以通过该攻击将恶意文件秘密发送给接收者。而且由于AWDL不使用任何安全机制,因此在链路层上安装DoS确实是切实可行的。

8 Implementation Security

在AWDL分析和构建AWDL原型期间,作者发现了Apple操作系统中的两个实施缺陷,这些缺陷使攻击者可以使附近的设备崩溃。

DoS:内核崩溃和系统崩溃。通过发送损坏的AF可以利用这些缺陷。特别是,可以通过分别在同步参数(影响macOS 10.12)和通道序列(影响macOS 10.14,iOS 12,watchOS 12和tvOS 5)中设置无效值来触发内核崩溃。PoC视频利用了iOS设备上的第二个漏洞,演示了攻击者如何发动有针对性的DoS攻击,该攻击会使单个设备崩溃,而black out的DoS攻击会使同一范围内的所有设备崩溃。

视频:https://www.youtube.com/watch?v=M5D9NeKapUo&feature=youtu.be

Outlook:远程执行代码。虽然这些漏洞本身并不严重,但仅存在这些漏洞就对Wi-Fi设备造成了新一类威胁,因为攻击者可以在无需对目标进行任何身份验证的情况下利用它们来进行攻击。例如,它们不必位于同一网络上。鉴于过去在标准化Wi-Fi程序的实现中发现远程执行代码,作者认为攻击者可以为AWDL找到类似的缺陷。

9 Conclusion

新事物出现 开放式Wi-Fi接口的部署为移动设备启用了新型应用程序,它们允许附近的设备彼此通信,而无需连接到同一Wi-Fi网络。 伴随安全问题 攻击者不再需要提供任何种类的认证(例如,访问安全的Wi-Fi网络)。

文章工作量和亮点在于:逆向并实现量opendrop,设计并测试了很多攻击,比较全面;新颖,PoC确实可以利用

https://owlink.org/ https://github.com/seemoo-lab/opendrop