摘要:最近作者發現了一個存在於iOS系統中的DoS問題,暫且把它命名爲AirDoS(隔空DoS),該bug能讓攻擊者一直用AirDrop共享彈出窗口向附近的iOS設備發送垃圾消息。雖然攻擊者可以一直用上述Bug向受害者發送大量垃圾請求消息,但是由於無法擁塞用戶界面,所以受害者用戶可以選擇關閉AirDrop或WiFi/Bluetooth來阻止攻擊。

如果你一走進某個房間就能讓裏面的所有iPhone或iPad設備無法使用,會怎麼樣?是不是聽起來非常邪惡?有什麼好的方法讓那些老是低頭刷蘋果手機的人停下來?

最近作者發現了一個存在於iOS系統中的DoS問題,暫且把它命名爲AirDoS(隔空DoS),該bug能讓攻擊者一直用AirDrop共享彈出窗口向附近的iOS設備發送垃圾消息。此共享彈出窗口會阻止用戶界面,因此設備所有者將無法在設備上執行任何操作,只有選擇彈出窗口上的接受或是拒絕按鈕,而且彈出窗口會反覆再現,即使設備在鎖定後,也一樣會持續發生。

該Bug受AirDrop接收設置限制,也就是說如果你把AirDrop設置爲Everyone,那麼周圍任何人都可能會攻擊你,但如果設置爲“僅限聯繫人”(Contacts Only),則只有你通訊錄裏面的人才能對你發起攻擊。如果有人在附近發起這種攻擊,那麼你就無法使用iPhone或iPad設備了,但我不確定這種攻擊效果在飛機上如何。

大多數情況下,這種攻擊者很難識別,除了避開攻擊者之外,你可以把AirDrop/WiFi/Bluetooth三者都關了。如果你未禁用控制中心的話,可以從鎖屏界面訪問控制中心來關閉AirDrop/WiFi/Bluetooth,當然還可以讓SIRI來執行WiFi/Bluetooth的關閉。另外就是重啓設備,也會在攻擊持續發生前,能有稍許時間關掉AirDrop。要防止這種攻擊的話,僅在需要AirDrop的時候打開它,而且不要把它的接收限制設置爲”Everyone”。

我於2019年8月向Apple上報了該漏洞,之後蘋果在後續的iOS 13.3版本中進行了修復,在其中加入了一個速率限制,即只要用戶拒絕了同一用戶3次隔空投送後,就會自動拒絕其它後續請求。

PoC

我在GitHub上發佈了 該Bug的PoC腳本 ,爲了減少公衆安全影響,該PoC僅只支持AirDrop設置爲僅限聯繫人”Contacts Only”的設備。PoC中加入了OpenDrop支持,也是由於OpenDrop的啓發,我嘗試發現了該問題。

OpenDrop是一個命令行工具,它允許你在設備之間通過Wi-Fi直接共享文件。它的獨特之處在於,它與Apple的AirDrop兼容,AIrDrop功能允許用戶與運行iOS和macOS的Apple設備共享文件。目前,OpenDrop只支持發送給所有人都可發現的Apple設備,因爲默認的“僅限聯繫人”模式需要Apple簽發的證書。

這是一個簡單的Bug,可以用opendrop構造一個簡單的無限循環命令來實現:

while true; do opendrop send -r 0 -f totally-random-file; done

macOS

macOS的AirDrop共享和iOS有點不同,而且不會阻塞用戶界面。雖然攻擊者可以一直用上述Bug向受害者發送大量垃圾請求消息,但是由於無法擁塞用戶界面,所以受害者用戶可以選擇關閉AirDrop或WiFi/Bluetooth來阻止攻擊。但在macOS Catalina 10.15.2中,該反覆發送垃圾共享消息的問題已經得到修復。

漏洞上報和處理進程

 2019.8.19   向蘋果上報該Bug
 2019.10.3   諮詢蘋果處理情況,蘋果回覆“仍在調查”
 2019.11.14   蘋果告知已在下一版本更新中對該問題加入了緩解措施,但無法獲得CVE編號,希望我測試驗證
 2019.11.14   經過測試我確定問題修復
 2019.12.10  iOS 13.3發佈 漏洞公開

*參考來源: kishanbagaria ,clouds 編譯整理,轉載請註明來自 FreeBuf.COM

相關文章