如果你的苹果设备蓝牙是开启的状态,那么附近的所有人都可以获取你的设备状态,观看设备名、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