Apple設(shè)備可通過利用的“Find My”網(wǎng)絡(luò)功能收集藍(lán)牙設(shè)備信息
安全研究人員證實(shí),“Send My”漏洞可以利用蘋果的定位服務(wù)收集并從附近設(shè)備發(fā)送信息,然后上傳至iCloud服務(wù)器。也就是說,蘋果公司的“Find My”功能可幫助某些別有用心的人跟蹤他們的iOS和macOS設(shè)備,這會(huì)允許非互聯(lián)網(wǎng)連接的設(shè)備通過使用附近的蘋果設(shè)備為其上傳數(shù)據(jù)來上傳任意數(shù)據(jù)。
Find My網(wǎng)絡(luò)使用所有活躍的iOS設(shè)備作為節(jié)點(diǎn)來傳輸位置數(shù)據(jù),這樣黑客便有可能模仿AirTag連接到Find My網(wǎng)絡(luò)并廣播其位置的方式,通過加密的廣播發(fā)送它的位置,而當(dāng)這個(gè)數(shù)據(jù)被替換成消息時(shí),它可以被加密廣播信息所掩蓋了。
安全研究員Fabian Bräunlein開發(fā)了一個(gè)概念證明,使用一個(gè)微控制器和自定義MacOS應(yīng)用程序,該應(yīng)用程序可以通過低功耗藍(lán)牙(BLE)將數(shù)據(jù)從一個(gè)設(shè)備廣播到另一個(gè)設(shè)備。一旦連接到互聯(lián)網(wǎng),接收設(shè)備便可以將數(shù)據(jù)轉(zhuǎn)發(fā)到攻擊者控制的Apple iCloud服務(wù)器。
Bräunlein將該方法稱為“Send My”,并提出了該方法的幾個(gè)用例,包括為物聯(lián)網(wǎng)(IoT)傳感器建立一個(gè)良性網(wǎng)絡(luò),或隨著時(shí)間的推移耗盡人們的移動(dòng)數(shù)據(jù)計(jì)劃。
考慮到該功能是基于“Find My離線查找系統(tǒng)的隱私和安全設(shè)計(jì)的固有功能”,蘋果幾乎不可能阻止這種濫用Find My的行為。
Braunlein表示,他的靈感來自于Apple AirTags,Apple AirTag是一款可以掛在隨身物品上的藍(lán)牙追蹤器。大小跟硬幣差不多,方便與任何物品掛在一起,比如你跟鑰匙掛在一起,只要鑰匙離開配對(duì)的iPhone一定范圍,手機(jī)就會(huì)發(fā)出聲響、跳出警訊通知用戶。若第一時(shí)間沒有收到警訊,也可以透過iPhone的“Find My”定位,一步步找回丟失的鑰匙。
Braunlein利用了德國(guó)達(dá)姆施塔特技術(shù)大學(xué)(Technical University of Darmstadt)的一個(gè)團(tuán)隊(duì)之前的研究(PDF) ,該團(tuán)隊(duì)已經(jīng)對(duì)蘋果的Find My網(wǎng)絡(luò)進(jìn)行了逆向工程,開發(fā)了一個(gè)名為OpenHaystack的工具。OpenHaystack允許人們創(chuàng)建自己的附件,這些附件可以被定位器服務(wù)找到和跟蹤。在此過程中,該團(tuán)隊(duì)還發(fā)現(xiàn)了系統(tǒng)可能暴露用戶身份的漏洞。
當(dāng)通過藍(lán)牙使用時(shí),蘋果的“Find My”功能基本上是通過藍(lán)牙眾包查找某人的設(shè)備或物品的能力,設(shè)備之間使用位置信標(biāo)進(jìn)行通信。然后,設(shè)備的所有者就可以接收到注冊(cè)在蘋果icloud上的“查找我的iPhone”或iOS/MacOS“查找我的手機(jī)”應(yīng)用程序中的設(shè)備的位置報(bào)告。
收集藍(lán)牙設(shè)備信息步驟如下:
1.當(dāng)AirTag和Apple Device配對(duì)時(shí),會(huì)生成一個(gè)橢圓曲線密鑰對(duì),并將公鑰推送到AirTag和一個(gè)用于生成滾動(dòng)公鑰的共享密鑰;
2.AirTag每2秒就發(fā)送一次以公鑰為內(nèi)容的低功耗藍(lán)牙廣播,使用之前共享的秘密每15分鐘更改一次;
3.附近的iPhone,Macbook等可識(shí)別Find My 的廣播,檢索其當(dāng)前位置,使用廣播的公共密鑰(使用ECIES)對(duì)位置進(jìn)行加密,并上傳加密的位置報(bào)告;
4.在設(shè)備搜索過程中,配對(duì)的所有者設(shè)備會(huì)生成AirTag在過去幾天使用過的滾動(dòng)公鑰列表,并向蘋果服務(wù)查詢它們的SHA256哈希值。Apple后端返回所請(qǐng)求的密鑰ID的加密位置報(bào)告;
5.所有者設(shè)備解密位置報(bào)告并顯示一個(gè)大致位置;
要按Bräunlein總結(jié)的方式使用該服務(wù),需要許多工程步驟和自定義的硬件。為了發(fā)送數(shù)據(jù),他編寫了一個(gè)低成本的ESP32微控制器作為調(diào)制解調(diào)器,使用基于openhaystack的固件廣播一個(gè)硬編碼的默認(rèn)消息,然后在串行接口上監(jiān)聽任何新數(shù)據(jù)的循環(huán)廣播,直到接收到新消息為止。然后,啟用了Find My服務(wù)的附近的Apple設(shè)備可以接收這些信號(hào)并將其發(fā)送到Apple的服務(wù)器。
為了檢索數(shù)據(jù),Bräunlein也開發(fā)了一個(gè)基于OpenHaystack的MacOS應(yīng)用程序,該應(yīng)用程序使用具有提高權(quán)限的Apple Mail插件將經(jīng)過身份驗(yàn)證的位置檢索請(qǐng)求發(fā)送到Apple后端。
用戶會(huì)被提示輸入4字節(jié)的調(diào)制解調(diào)器ID(可以在刷新ESP固件時(shí)設(shè)置),之后應(yīng)用程序?qū)⒆詣?dòng)獲取、解碼并顯示消息。之后,用戶可以獲取其他信息或改變調(diào)制解調(diào)器。
Bräunlein想到了Send My利用方法的幾種用途。一種方法是將物聯(lián)網(wǎng)設(shè)備連接在一起,以更有效地共享互聯(lián)網(wǎng)連接。這是使用Amazon 的Sidewalk網(wǎng)絡(luò)和Echo設(shè)備顯示的場(chǎng)景;然后,可以使用iOS設(shè)備使用“Send My”來創(chuàng)建相同的信息。
由于Finding設(shè)備會(huì)緩存收到的廣播,直到它們具有Internet連接,只要人們經(jīng)過該區(qū)域,傳感器甚至可以從沒有移動(dòng)覆蓋的區(qū)域發(fā)送數(shù)據(jù)。
對(duì)于有更險(xiǎn)惡意圖的人來說,這種方法可能被用來從某些氣密系統(tǒng)或高安全性法拉第籠屋子中竊取數(shù)據(jù)。 法拉第籠是由導(dǎo)電材料制成的外殼,用于阻止電磁場(chǎng)并防止通信信號(hào)穿透。
攻擊者可能會(huì)使用Send My來耗盡附近的iPhone的移動(dòng)數(shù)據(jù)計(jì)劃,盡管系統(tǒng)上發(fā)送的廣播信息的數(shù)據(jù)容量不是很大(以千字節(jié)為單位),所以這種消耗可能需要一段時(shí)間。
Bräunlein說:
由于Finder設(shè)備的位置報(bào)告數(shù)量有限(由于1字節(jié)計(jì)數(shù)值,每次提交255個(gè)報(bào)告),每個(gè)報(bào)告都超過100字節(jié),廣播許多獨(dú)特的公鑰應(yīng)該會(huì)導(dǎo)致手機(jī)發(fā)送的移動(dòng)流量的放大。
本文翻譯自:https://threatpost.com/apple-find-my-exploited-bluetooth/166121/如若轉(zhuǎn)載,請(qǐng)注明原文地址。