今天为大家推荐的论文是来自CCS 2022上关于无线定位技术安全问题的工作Location Heartbleeding: The Rise of Wi-Fi Spoofing Attack Via Geolocation API,由南佛罗里达大学刘尧研究组和浙江网安合作共同完成并投稿。
「论文概述」
无线定位技术(Wi-Fi Positioning System)的安全问题在过去10年得到学术界的关注与研究。因为无线定位技术依赖于移动设备可见的Wi-Fi热点 (Wi-Fi AP) 来定位,所以攻击者可以通过伪造并广播不同位置的Wi-Fi APs的信号来欺骗移动设备。这里用一个例子来更加清晰地展现这种攻击。假设目标移动设备位于A地,而攻击者希望欺骗目标移动设备的无线定位装置并将其导至B地。攻击者可以首先伪造来自B地的Wi-Fi APs的信号并将其广播给目标设备。也就是说,攻击者是伪造来自B地的Wi-Fi APs的信号并在A地广播。当然,能有如此简单的攻击原因是因为移动设备并不会去验证Wi-Fi APs的信号是真是假。
但是这种攻击也并不是在任何地点都有效。已有的攻击都只能在郊区地区复现。这是因为郊区地区的Wi-Fi APs覆盖率更低。目标移动设备所在地周围的Wi-Fi APs密度越低,攻击的可靠性就会越高。现有的攻击大多假设A点附近的Wi-Fi APs数目少于5个。但是在大多数环境中,尤其是城市区域,Wi-Fi APs数目都会远大于这个数目。为了降低这些合法的Wi-Fi APs带来的影响,现有的攻击会运用无线干扰 (Wi-Fi jamming) 去消除来自这些Wi-Fi APs的信号。这样的话,目标设备就只会检测到来自攻击者的伪造的无线信号。
不过Wi-Fi jamming并不能一劳永逸。首先,攻击者需要增加类似USRP这样的设备去实现jamming的功能。其次,由于实现jamming需要向无线信道不间断地发射高能电波,这会让该攻击变得更加易于检测。
本文通过进一步研究当代的Wi-Fi定位技术的安全问题并解决上述问题。作者希望设计一种全新的针对无线定位技术的攻击。这种攻击可以在不需要应用jamming的情况下在城市环境中欺骗Wi-Fi定位技术。之所以现有的攻击必须要应用jamming,是因为没有人知道Wi-Fi定位技术到底是怎么根据其所获得到的Wi-Fi APs信息来定位的。例如,当Wi-Fi定位技术同时收到来自A地和B地的Wi-Fi APs信息的时候,我们无从得知Wi-Fi定位会返回哪个位置。是A地和B地中的一个还是两个位置中间的某个位置?为了解决这个问题,本文首先提出了LLT Inference Attack.这个攻击可以以合法的方式获取Wi-Fi定位数据库中所存储的每个Wi-Fi AP的位置信息。在获得了Wi-Fi APs在数据库中的位置信息后,本文展示如何利用Geolocation API去逆向Wi-Fi定位技术所使用的定位算法。同时,由于该攻击获得的Wi-Fi位置信息属于隐私信息,本文中也详细介绍了LLT Inference Attack所引发的隐私问题。本文以Google Wi-Fi Positioning System为例来展现。
「Wi-Fi定位系统的背景」
图1展现的是Wi-Fi定位服务的标准流程。
-
首先是一个移动端(client)侦测并收集附近的Wi-Fi AP的信息,包括MAC address, channel, signalStrength等等。
-
然后Client会把这些收集到的信息通过安全的信道发给Google的Wi-Fi定位系统服务器。Google在收到这些Wi-Fi热点的信息后,会在自己的数据库中寻找这些Wi-Fi AP的位置信息。
-
基于这些位置信息,Google会计算一个可能的当前位置并发送给Client作为定位信息。
本文中称这个数据库为 Location Lookup Table (LLT)。对于每一个存在于LLT的Wi-Fi AP,它都有一个由Google估计的物理位置(经纬度)存储在LLT里。而Wi-Fi AP的MAC address则作为它的识别码(ID)。
图1Wi-Fi定位系统的背景知识
「LLT Inference Attack」
首先展示的是如何通过Google Geolocation API获得LLT中Wi-Fi AP的位置信息。首先要说明,Google出于隐私考虑, 每一次Geolocation API请求都必须要包含至少两个可用的Wi-Fi热点信息。否则,Google就会认为这是一个非法的API请求。所以,按照常理来说,用户是不能获得LLT中每一个Wi-Fi热点的位置信息的。图3是LLT inference attack所使用的API请求的例子:
图2 (1)不使用信号强度的请求;(2)使用信号强度的请求
在2021年10月份之前,图2.(1)的API请求会返回两个Wi-Fi AP在LLT中的位置信息的中间点。
图3. Google返回两个Wi-Fi AP的中点
例如图3,用
不过在2021年10月份之后,Google便不再把中间点当作目前位置返回给用户。有意思的是,Google却选择直接返回两个Wi-Fi AP在LLT中的位置信息中的一个。
在2021年10月份后,在发送图2.(2)的API请求后,Google会直接返回第二个Wi-Fi AP的位置信息,也就是MAC address为 “00:24:7C:59:EC:0A” 的AP。而如果想获得第一个AP,也就是MAC address为 “00:24:7C:59:32:99” 的AP的位置信息,攻击者只需要交换下API请求中两个AP的signalStrength.
总结:论文发现,当发送一个包含两个Wi-Fi APs信息的 API请求时,Google的数据库LLT会直接返回其中一个signalStrength更大的Wi-Fi AP的位置信息。
「用户隐私泄露问题」
首先,作者发现Google LLT所存储的Wi-Fi AP的位置信息非常地精确。这样的话,攻击者就可以用LLT inference attack所获得的位置数据去精确地定位每个Wi-Fi AP所处的位置,例如该AP所处的门牌号或者街区号。
另外一个隐私问题是LLT Inference Attack可以被用来推断目标对象的搬家位置。
在测试中发现,当发送一个包含两个Wi-Fi AP的API请求时,不管这两个Wi-Fi AP在Google LLT中的位置相距有多远,Google都会返回攻击者想要的Wi-Fi AP的位置。例如发送一个包含一个来自美国佛罗里达州的Wi-Fi AP和一个来自美国加利福尼亚州的Wi-Fi AP的API请求。即使这两个Wi-Fi AP相距超过4000公里,攻击者依然能通过控制两个AP的signalStrength来获得它们的位置。这让攻击者有能力去持续跟踪更换位置后的Wi-Fi AP所处的最新位置。
在2022年1月份,论文在南佛罗里达大学周围收集了超过1000个Wi-Fi AP。通过API请求,这些Wi-Fi AP在LLT中的位置均在南佛罗里达大学附近。但是两个月后,当重新对这些Wi-Fi AP进行API请求后,发现有大约300个Wi-Fi AP更换了地理位置。这包括237个Wi-Fi AP搬到了美国佛罗里达州里其他的城市;36个Wi-Fi AP搬到了美国其他州(例如德克萨斯州,加利福尼亚州,宾夕法尼亚州和密西根州等等);一个Wi-Fi AP搬到了德国;另一个Wi-Fi AP搬到了马来西亚。这样的结果充分验证了之前的担忧,LLT Inference Attack确实造成了潜在的隐私泄露问题。
「逆向Google的定位算法」
鉴于已经获得了Wi-Fi APs在Google LLT中的位置信息,论文更进一步对Google的Wi-Fi定位算法进行逆向。该逆向的目标是探索,当Google在一个API请求中收到来自多个不同地理位置的Wi-Fi AP的时候,Google是怎么根据这些Wi-Fi APs在LLT中的位置信息来确定用户所处的当前位置的。最终的逆向结果可以被归类为以下四个准则。
准则四:当Google LLT并没有相关的Wi-Fi APs的位置信息时,Google会先筛除这些Wi-Fi APs,再进行定位。
「总结」
首先,本文发现了隐藏于Wi-Fi定位系统Geolocation API接口的漏洞。通过利用这个漏洞,攻击者可以轻易获得每个Wi-Fi AP在Google数据库中的位置。通过实验,作者清晰地展示出这个漏洞所造成的潜在隐私泄露问题。在获得Wi-Fi AP的位置信息后,作者进一步对Wi-Fi定位系统内的定位算法进行逆向。逆向的结果可以归纳为四个准则。在这些准则基础上,作者设计了全新的针对Wi-Fi定位系统的攻击。这种全新的攻击可以被用来实施更现实的攻击。即使在城市区域内,目标对象附近有大量的Wi-Fi APs,该攻击也不要实施信号干扰。这样可以确保该攻击的隐蔽性和有效性。
论文下载:https://dl.acm.org/doi/abs/10.1145/3548606.3560623
浙江大学科研团队为浙江大学网络空间安全学院博士生导师申文博老师。申文博老师博士毕业于美国北卡罗莱纳州立大学(NCSU)。是浙江大学“百人计划”研究员。他的研究方向是操作系统安全,云原生系统安全,软件供应链安全,芯片安全机制等。
原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2023-02-20 Location Heartbleeding
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论