如今智能手机和人的亲密程度几乎已经超过了伴侣,所以安全变得尤为重要。实际上,许多人都清楚 Android 手机的安全问题,但它们到底为什么赢得比 iPhone 差的名声呢?其实很多时候是一些基本的措施都没做好,就像本文中发现的问题。本文由雷锋网编译自 Arstechnica,原文作者 Dan Goodin。
同很多打开页面正在阅读这篇文章的用户一样,笔者也是 Android 阵营的成员之一。每天当我们在零售商店徘徊,在城市街道穿梭,或者去哪里旅游,我们随身携带的 Android 智能手机就有可能变成实时的地址追踪器。
出于对实时定位追踪功能的安全考量,在 2015 年年初负责 Android 移动操作系统开发的 Google 架构师团队对其进行了限制。然而最近发布的一篇研究报告表明,在大多数 Android 手机上并未部署这项功能,极少数手机即使激活了这项功能也能非常轻易的进行破解。
在这个「流量贵如油」的年代里,智能手机用户对于 Wi-Fi 的渴望和需求是直接且明显的,无论到哪个场所都希望连接到可用的 Wi-Fi 网络,才能发朋友圈刷微博看新闻等等。同所有开启 Wi-Fi 功能的设备一样,智能手机也会持续搜索附近可用的 Access Point(访问接入点,下文简称 AP),在每次扫描搜索过程中智能手机都会向 Wi-Fi 网络发送当前设备的 MAC(介质访问控制)地址。
你可以将 MAC 地址想象成你的名字,每次连接 Wi-Fi 网络就像是一次相亲,在建立更深的了解和互动(数据上传和下载)之前,你们都会相互交换姓名。纵观 Wi-Fi 的发展历史,MAC 地址的自由交互并不会对用户隐私产生太大的安全隐患。
然而伴随着移动计算能力的迅速崛起,你会突然震惊地发现 MAC 地址的交互竟然演变成了个人数字足迹的深渊!这个深渊的可怕之处在于它无声无息,在大多数人不知情的情况下记录了我们的生活习惯和运行轨迹。它所记录的繁杂信息能够知道我每天下班的时间;能够知道我昨晚是走哪条道路到的酒吧;能够知道我昨晚是何时离开的酒吧;能够知道在过去 1 个月中我去过这家酒吧几次等等。
苹果(Apple)和谷歌(Google)已经意识到滥用 MAC 地址交互的潜在危害,并已经采取了相应的措施。他们此前提出的解决方案是:创建有规律的伪随机 MAC 地址数列,当智能手机扫描附近 AP 的时候就循环使用数列中的一个 MAC 地址。
通过这种方式,那些日志记录 MAC 地址的 Wi-Fi 设备就无法通过扫描直接关联到具备当前智能手机硬件地址身份标识的唯一 MAC 地址。而只有当智能手机真的加入连接到 Wi-Fi 网络中,真实的 MAC 地址才会显示出来。
2014 年 6 月份在发布 iOS 8 系统的时候,苹果引入了 MAC 地址随机化功能。数月之后,谷歌的 Android 操作系统也出于相同的安全考量,进行了实验性质的功能支持。2015 年 3 月份谷歌开始全面推广和部署,在最新的 Android 7.1 Nougat 版本中已经进化到第五个版本,如果按照 Android 版本分布来看,大约有三分之二的 Android 设备部署激活了这项功能。
然而在最新公布的研究报告中发现,即使设备当前运行的 Android 版本支持 MAC 地址随机化功能,但大部分设备依然没有启用这项功能。在长达两年的测试中,粗略估计有 960,000 台 Android 设备被扫描,然而只有不足 60,000 台设备(实际情况可能少于 30,000 台)激活了随机化 MAC 地址功能。尽管在本次测试中共计接受检测到了 60,000 个随机化 MAC 地址,但是科研团队认为其中有两个或者更多随机化 MAC 地址来自于同一台设备。
换算成百分比后的数字同样触目惊心:在本次测试中只有 6% 的 Android 设备提供 MAC 地址随机化,而大部分 Android 设备直接使用真实且唯一的 MAC 地址进行连接,极大程度上表明这项措施形同虚设。在测试过程中,科研人员发现唯一能够正确 MAC 地址随机化的设备是 CAT S60。与之形成鲜明对比的是,本次测试中几乎所有 iOS 设备都很好的执行了地址随机化。
安全的错觉
美国海军学院资深教授,同时也是这篇论文的联合作者之一 Travis Mayberry 在一封邮件中写道:
对于普通手机用户来说,我们的研究包含两个非常重要的结论:
1)大部分 Android 设备并未激活这项技术,尽管事实上这些设备所运行的新版操作系统都允许支持这项技术。
2)即使通过这种方式部署的 MAC 地址随机化也存在很多薄弱点,非常容易被攻克。这给众多普通用户留下安全的错觉,误认为这项技术正防止设备被追踪记录,然而事实上并没有。
那些已经激活地址随机化的 Android 手机存在的最大问题,同时也是和 Cat S60 存在明显区别的是即使设备并未同 AP 关联的情况下,在双方的通信过程中通常也会显示设备的硬件 MAC 地址。目前尚不清楚为何会发生这种情况。在名为《A Study of MAC Address Randomization in Mobile Devices and When it Fails》(关于移动设备的 MAC 地址随机化以及失败情况研究)报告中,科研专家写道:
除了时而发生的全球管理 MAC 寻址探针请求之外,在我们的实验室环境中已经对所有出现的情况进行了细致的观察,我们能够要求所有 Android 设备在信息传输过程中强制附加此类探针。首先,在任意时间内一旦用户点亮屏幕,一组全球管理探针请求就会被发送。这样,即使用户激活了 MAC 地址随机化功能,两者同时生效下就会让这项隐私保护策略完全失效。
第二,如果手机接收到一个通话请求,不管用户是否选择接听,全球管理探针请求都会进行发送。尽管黑客不大可能通过这种方式来主动攻击手机,但是令人感到遗憾和不安的是,这些没有必要同 Wi-Fi 关联的活动信息可能对用户隐私造成意想不到的后果。
科研人员表示即使手机端 Wi-Fi 状态处于关闭状态,但是探针宣传依然有可能获得和利用手机的真实 MAC 地址,这是因为手机中还有很多基于 Wi-Fi 的功能设置,例如激活基于 Wi-Fi 的定位设置。
即使在 Android 设备不显示全球管理 MAC 地址的情况下,科研人员表示依然存在多种方式来识别智能手机的真实 MAC 地址。诸多方式中最有效且最常用的就是基于「信息元素」(除了随机化 MAC 地址之外的所有 MAC 地址)对探针请求进行特征采集。这些元素可用于传播手机的各种属性,而且在通常情况下会在标准 Wi-Fi 协议之上部署扩展程序和特殊功能。
每款手机型号都有不同的卖点,恰恰是这些标签的组合得以让这款手机有别于其他手机,创建属于自己的独特签名,即使激活 MAC 地址随机化这种特征依然不会被泯灭。即使通过 MAC 地址的更改,这些标签也不会产生变动。科研团队表示在本次研究过程中,借鉴了此前报告研究中的特征信息采集技术,但在此基础上进行了强化和精炼。在他们的报告中,写道:
我们观察发现相比较使用全球管理 MAC 地址,在启用 MAC 地址随机化的时候大部分 Android 设备使用了不同的签名。因此,前文中关于基于签名的追踪方式已经无法利用地址进行关联。但通过剖析 Android 随机化方案,以及区别不同设备型号的衍生知识,我们已经能够使用全球管理和随机化 MAC 地址来正确配对探针请求的签名。只需要通过这些签名的组合,我们就能精准和高效地映射和检索全球管理 MAC 地址。
科研人员表示,96% 已经部署地址随机化功能的 Android 设备都能利用这种精准的特征信息采集技术进行破解。
突破 Android 地址随机化的另外一种常用方式叫做「Karma Attack」,攻击者部署一个具备相同 SSID 的 AP,这样设置为自动连接的目标手机就会连接到这个 Wi-Fi 网络中。一旦设备连接到这个 AP 中,那么碎机化功能就会失效停止,攻击者就能获得手机的全球管理 MAC 地址。
恰恰是利用了手机自动连接 Wi-Fi 网络的功能设置,在过去很多年以来攻击者往往会将自己的 AP 伪装成 attwifi, xfinitywifi 和 starbucks 等具有极高知名度的 SSID。研究人员表示,运营商或者制造商会配置手机以便于自动连接到某些 AP,从而极大地助长了此类攻击的规模和安全隐患。
iOS 系统的随机化也不代表就安全了
接下来要介绍的是反地址随机化终极技术,除了上文提及的 Android 设备之外,同样适用于 iOS 设备。这项终极技术涉及到 Wi-Fi 控制消息(一个请求发送帧,下文简称 RTS 帧)。只需要向全球管理 MAC 地址发送一个 RTS 帧,攻击者就能知道当前 Wi-Fi 覆盖范围内某个或者多个手机的信息。通过发送 RTS 帧到不同 MAC 地址以及观察附近设备的响应,攻击者还能利用这项技术来蛮力破解未见过新设备的 MAC 地址。
科研团队表示,RTS 帧攻击方式是利用 Wi-Fi 芯片处理低级控制消息的漏洞,可用于攻击所有手机型号,生产厂商和操作系统。因此,这项漏洞并不是单单依靠苹果和谷歌就能解决修复的。
所幸的是这种绕过攻击手段尽管比较常见和长期存在,但却存在一个致命的缺陷:它要求攻击者主动向目标设备发送信息。和上文中提及的其他攻击方式有所不同的是,主动攻击意味着攻击者等着警察上门逮捕。
而且研究人员发现在 Android 和 iOS 手机也存在第二次地址随机化的安全隐患——启用随机化的所有设备都适用增量数列方式用于探针请求。假设 MAC 地址随机化更新 5 次,当前使用的地址是 1234,科研人员发现接下来的 MAC 地址随机化就是增量更新,会陆续使用 1235,1236,1237,最终会更新至 1238。
由于 MAC 地址随机化的范围只有 4096 个,因此日常使用过程中设备极有可能会和其他设备「碰撞」。尽管这种攻击的有效性并不是很高,但是科研人员只需要查看这些数字的变化就能锁定追踪手机的 MAC 地址。研究人员表示,Wi-Fi 协议如果不经过彻底检修,否则这个缺陷很难解决。
本次研究数据基于自 2015 年 1 月至 2016 年 12 月收集的超过 260 万个不同 MAC 地址,发现一半左右的地址是和设备匹配的全球管理 MAC 地址,而另外一半则是随机化,而且由于单个设备可能显示多个不同的本地地址,因此推测实际上启用随机地址的设备会更少。
研究人员表示,本次收集的 MAC 地址只有极少部分属于微软的 Windows Phone/Windows 10 Mobile 操作系统,可能部分启用地址随机化功能的 WP 设备在手机列表中划分到了未知型号一栏中。研究人员表示手动检查的两台 Windows 手机并没有启用地址随机化。
包括 Nexus 5X,Nexus 6,Nexus 6P,Nexus 9 和 Pixel 在内的所有 Google 品牌 Android 手机都提供了地址随机化功能。从目前收集到的信息中,启用 MAC 地址随机化的 Android 设备完整列表包括:
- BlackBerry STV100-1
- BlackBerry STV100-2
- BlackBerry STV100-3
- Blackberry STV100-4
- Google Pixel C
- Google Pixel XL
- HTC HTC 2PS650
- HTC Nexus 9
- Huawei EVA-AL00
- Huawei EVA-AL10
- Huawei EVA-DL00
- Huawei EVA-L09
- Huawei EVA-L19
- Huawei KNT-AL20
- Huawei Nexus 6P
- Huawei NXT-AL10
- Huawei NXT-L09
- Huawei NXT-L29
- Huawei VIE-AL10
- LGE LG-H811
- Sony 402SO
- Sony 501SO
- Sony E5803
- Sony E5823
- Sony E6533
- Sony E6553
- Sony E6603
- Sony E6633
- Sony E6653
- Sony E6683
- Sony E6853
- Sony E6883
- Sony F5121
- Sony F5321
- Sony SGP712
- Sony SGP771
- Sony SO-01H
- Sony SO-02H
- Sony SO-03G
- Sony SO-03H
- Sony SO-05G
- Sony SOV31
- Sony SOV32
广大读者,如果你因为正在使用的 Android 设备出现在上方的列表中而感到侥幸的话,这里再给大家提个醒:正如前文所提及的,除了 Cat S60 之外其他所有 Android 手机尽管提供了地址随机化功能,但是这项功能形同虚设。而更为重要的是,绝大多数 Android 用户在激活 MAC 地址随机化功能之后就误认为自己不会被追踪,但是这项研究得出了相反的事实。
这就意味着攻击者只需要少量工作,在极短的时间内就能探针附近的 Android 用户。对于那些真的不想要被追踪的用户应该使用 iPhone,或者当你不想要泄漏关于位置或者移动路径信息的时候最好关机。
via arstechnica