安全博客 Krebs on Security 2024年5月21日發布博文,表示蘋果公司的定位服務存在被濫用風險,通過 "竊取"WPS 數據庫,可以定位部隊行蹤。
相關背景知識
手機定位固然主要依賴衛星定位,不過在城市地區,密集的高樓會導致移動設備難以接收衛星的微弱信號,因此移動設備在這種場景中會依賴基于 Wi-Fi 的定位系統(WPS)。
WPS 使用一個包含近 5 億臺 Wi-Fi 路由器的全球數據庫。最重要的是,這不僅僅是他們能實際訪問的公共路由器,而且他們能看到的所有 BSSID,這也包括很多家庭中的 Wi-Fi 路由器。
設備無法訪問你的路由器,但它們可以檢測到路由器并查詢數據庫,找出路由器的確切位置。這些數據庫是由四處行駛的汽車創建的,它們使用多種方法跟蹤自己的位置,并收集 BSSID,然后將其與這些位置進行匹配。
制造商設置的 BSSID 與用戶選擇的路由器 SSID 不同,簡單來說可以將其視為路由器中無線網卡的 MAC 地址。
蘋果和谷歌都有自己的 WPS 數據庫,它們使用的方法基本相同。檢測附近的 BSSID,測量每個信號的強度,然后將這些數據與 WPS 數據庫進行比較,找出移動設備的位置。
谷歌定位方式
安卓手機會記錄它能看到的 BSSID 及其信號強度,并將數據發送到谷歌服務器,服務器使用 WPS 數據庫計算手機的位置,并將其發送給手機。
蘋果定位方式
蘋果的 WPS 還接受附近 BSSID 的列表,不是根據觀察到的接入點及其接收到的信號強度來計算設備的位置,而是蘋果通過 API 返回最多 400 個 BSSID 的地理位置,然后使用其中大約 8 個 BSSID 根據已知地標確定用戶的位置。
定位方式區別
從本質上講,谷歌的 WPS 可以計算用戶的位置,并與設備共享。蘋果的 WPS 為其設備提供了足夠多的有關該地區已知接入點位置的數據,設備可以自行進行估算。
根據論文描述,WPS定位主要兩種工作方式:1)在服務器計算手機端位置,2)返回一些的BSSID的地理位置,并讓手機端進行計算以確定其位置。谷歌的WPS采用前者,而蘋果的WPS采用后者。
研究人員指出,谷歌和蘋果的WPS系統在基本工作原理上有根本區別,蘋果的系統由于其開放性,為安全研究人員和潛在的攻擊者提供了進行這項研究的途徑。
研究人員指出,蘋果的WPS系統特別“熱情健談”(下圖):
論文指出:“除了客戶端提交的BSSID的地理位置,蘋果的API還會隨機性地返回多達數百個附近BSSID的地理位置。”
“在蘋果的WPS版本中,用戶提交BSSID進行地理定位,蘋果WPS則會返回其認為的BSSID位置,同時返回的還包括用戶未請求的多達400個附近BSSID的位置。這400個額外的BSSID對于安全研究人員/黑客的研究非常重要,因為它們允許研究人員在短時間內積累大量的地理定位BSSID。此外,蘋果的WPS服務接口沒有設置認證或速率限制,可以免費使用。”
相比之下,谷歌的WPS則僅返回計算出的位置,并且經過認證、速率限制和收費,使得進行類似攻擊或安全研究變得難以負擔,因此比蘋果的WPS要安全得多。
蘋果定位方式漏洞
馬里蘭大學的研究人員表示可以利用蘋果公司 API 的冗長功能,繪制出單個設備進出世界上幾乎任何指定區域的移動地圖。
馬里蘭大學的這對研究人員說,他們在研究初期花了一個月的時間不斷查詢 API,詢問隨機生成的十億多個 BSSID 的位置。
在這些隨機生成的 BSSID 中,只有約 300 萬個是蘋果公司的 Wi-Fi 地理定位 API 所知道的,但蘋果公司還返回了另外 4.88 億個 BSSID 位置,這些位置已經通過其他查詢存儲在其 WPS 中。
研究人員說,通過歸零(zeroing)或“地理圍欄”蘋果公司位置 API 索引的其他較小區域,他們可以監控 Wi-Fi 接入點隨著時間的推移是如何移動的。
這個問題在實際層面可能會是個大問題,團隊可以對俄烏沖突區域進行定位,能確認烏克蘭和俄羅斯軍隊使用的星鏈設備的位置和移動情況。
參考
IT 之家博文
Krebs on Security 博文
Maryland大學的研究論文
安全內參博客