如果你的苹果设备蓝牙是开启的状态,那么附近的所有人都可以获取你的设备状态,观看设备名、WiFi状态、操作系统版本、电池信息,甚至可以获取你的手机号。

简介

Apple设备以互联生态而著称:即在一个设备上使用一个APP后可以再另一个设备上可以继续使用该APP。同时可以再离线的情况下访问你的文件。这好像与苹果的“What happens on your iPhone, stays on your iPhone”策略是相悖的,但是吗?

首先看一下苹果的隐私策略是如何工作的。

Wireless. Wireless everywhere.

如果你想与朋友分享照片,iPhone是如何知道它设备是否在你附近呢?你的MacBook是怎么知道你的手机上运行的Safari呢?答案很简单,就是蓝牙和WiFi。苹果设备经常会通过Bluetooth LE来发送大量的数据包。即使你当前没有使用使用iPhone,通信也会发生。

本研究中分析如何监听Bluetooth LE频率来分析获取的数据。

Nearby

设想这样一个攻击场景。如果攻击者和你处于同一地铁车厢中会发生什么呢?前面已经说了iPhone会通过BLE发送大量数据。其中就包括手机状态、WiFi状态、操作系统版本等。MacBook, Apple Watch和AirPods都一样会发送。

Demo:

AirDrop

AirDrop是一种允许APPLE用户在没有互联网访问的情况下进行文件分享的技术。因为没有注册,该服务是匿名和安全的。之前已经有过报道称,在乘坐地铁时会收到未经同意的内容,还有95后用AirDrop来作弊。

AirDrop并没有我们想象地那样匿名。因此可能会识别出来你:每当你按下share时,你的手机会发送你手机号的SHA256哈希值到你周围的所有设备。

那攻击者可以做什么呢?

1.创建一个该区域的HA256(phone_number):phone_number数据库,比如洛杉矶是(+1-213-xxx-xxxx, +1-310-xxx-xxxx, +1-323-xxx-xxxx, +1-424-xxx-xxxx, +1-562-xxx-xxxx, +1-626-xxx-xxxx, +1-747-xxx-xxxx, +1-818-xxx-xxxx, +1-818-xxx-xxxx)

2.在笔记本上运行特殊的脚本并乘坐地铁

3.当有人使用AirDrop时,获取发送者手机号的哈希值

4.根据哈希值恢复出手机号

5.通过iMessage联系用户,可以通过TrueCaller或设备名获取名字,比如一般的设备名中都含有名字,如John’s iPhone

Demo:

Wi-Fi密码分享

Apple设备还有一个功能就是用户可以分享WiFi密码。只需要从列表中选择一个网络,然后你的设备就开始发送BLE请求到哪些请求密码的设备上。你的朋友怎么知道请求密码的人就是你呢?因为宽带BLE请求中含有你的数据,包括手机号的SHA256哈希、AppleID和邮箱。虽然只发送哈希值的前3个字节,但足以识别出你的手机号。

Demo:

双向的

iPhone不仅仅会发送BLE请求,还会接收大量的BLE请求。因此攻击者可以将他们伪装成特定的设备。比如,伪装成AirPods或你朋友的iPhone来获取企业WiFi的密码。

如何应对?

这看起来更像是苹果生态系统的特征而非漏洞。研究人员检测发现从iOS 10.3.1版本开始都存在这些的特征。目前唯一能做的就是关上蓝牙。研究人员还发现iPhone 6s之前的老设备即使更新了系统也不会持续发送BLE消息,而是只发送一定数量的消息,比如WiFi设置菜单等,研究人员猜测苹果这么做的原因可能是为了节省电池。

PoCs

PoC脚本和视频参见:https://github.com/hexway/apple_bleee