Apple iOS 14 使用 BlastDoor 系統防止 iMessage 被攻擊
蘋果在iOS 14中進行了結構性改進,以阻止基于iMessage的零點擊漏洞。
為了防止通過其iMessage功能發起攻擊,Apple在iOS 14(當前的移動操作系統版本)中首次推出了名為BlastDoor的安全服務。
BlastDoor是Google Project Zero的SamuelGro?在本周的一項分析中首次詳細介紹的,它充當“高度嚴密的沙盒”服務,負責 “幾乎所有” iMessages中不可信數據的解析。
這項服務是在最近發現的一項針對半島電視臺記者和高管的間諜攻擊中利用的iMessage零點擊漏洞之后推出的。去年12月披露了這一行動的Citizen Lab當時表示,它不認為該漏洞對iOS 14有效,因為它“包含了新的安全保護措施”。
但是,這些特殊的保護措施直到本周 Gro? 進行分析之前仍然未知。Gro?能夠執行逆向工程,以便使用運行macOS 11.1的M1 Mac Mini來分析新服務,并通過將其應用于iOS 14.3(在iPhone XS上運行)來驗證他的發現,
Gro?在星期四說:“總的來說,鑒于需要向后兼容,這些更改可能非常接近本來可以做的最好的更改,它們應該對iMessage和整個平臺的安全性產生重大影響。” “很高興看到Apple為這類大型重構留出資源來提高最終用戶的安全性。”
什么是BlastDoor?
BlastDoor具有兩個重要的安全隱患。
首先,當在電話上收到消息時,該服務允許在管道中應用沙箱規則。這意味著,當收到消息時,后端上的進程將獨立于操作系統執行代碼。執行網絡操作僅需要兩個進程(處理消息文件傳輸的IMTransferAgent和Apple的Push Notification Service守護程序apsd)。
Gro?表示,BlashDoor的沙箱配置文件“非常緊密”,幾乎所有文件系統交互都被阻止,出站網絡訪問被拒絕,并且與IOKit驅動程序的任何交互都被禁止。IOKit允許訪問各種應用程序和服務的硬件設備和驅動程序,并且從歷史上看是漏洞的主要來源。
這種安全的環境意味著可以防止攻擊者通過iMessage發送的任何惡意代碼訪問用戶數據或與操作系統的其他部分進行交互。
其次,BlastDoor用Swift(一種內存安全的語言)編寫。Gro?表示,Swift使其“顯著”更難在代碼庫中引入內存損壞漏洞。這是因為Swift具有多種功能,可確保變量在使用前已初始化,釋放后不會訪問內存,并檢查數組索引是否存在越界錯誤。
新的消息解析過程
在iOS的早期版本中,發送消息時,解析將在Instant Messaging Agent(imagent)中進行。為了解析imagent中的消息,首先將二進制數據解壓縮;然后plist(也稱為屬性列表;用于保存應用程序首選項的擴展名)將從其二進制序列化格式中解碼。將提取各個字段以確保它們具有正確的類型;最后,iMessage格式的x字段內容將使用XML解碼器進行解碼。如果iMessage包含附件,則還將采取其他步驟進行解析。
在iOS 14中,此過程已移至新的BlastDoor服務。主要處理流程仍始于imagent –接收原始有效載荷字節,但隨后將消息轉發到BlastDoor服務(通過+ [IMBlastdoor sendDictionary:withCompletionBlock:])。Gro?說,在BlastDoor內部,解析消息和附件的過程主要發生在BlastDoor.framework和MessagesBlastDoorService中。
Gro?指出,這種新的處理管道的副作用是,現在圖像處理程序可以檢測到傳入消息何時導致BlastDoor崩潰–并且似乎正在向Apple服務器通知此類事件。
Gro?說:“目前尚不清楚在沒有訪問服務器代碼的情況下這樣做的目的是什么。” “盡管這些通知僅可用于統計目的,但它們也將為蘋果提供一個明確的信號,表明iMessage涉及蠻力攻擊,而對于BlastDoor服務的任何漏洞利用均較弱。”
其他iOS 14保護
除了BlastDoor外,Gro?還介紹了iOS 14中內置的其他兩個重要安全保護措施,該保護措施已于9月向公眾發布。
首先,Apple解決了地址空間布局隨機化(ASLR)的共享緩存區域存在的體系結構漏洞的問題。弱點是由于共享緩存區域僅在每次引導時才隨機進行-意味著它將在所有進程中都位于同一地址。這可能使攻擊者可以推斷共享緩存的基地址并破壞ASLR-可能將其設置為發起零點擊攻擊。

BlastDoor的消息解析過程(單擊放大)
蘋果現在已經添加了專門檢測這種攻擊的邏輯。現在,共享緩存將在下一次啟動時針對目標服務重新隨機化,從而使這種類型的攻擊無效。
Gro?說:“這將使在零點擊攻擊上下文中繞過ASLR變得更加困難,甚至不可能(除了暴力之外),這要視具體漏洞而定。”
其次,BlastDoor和imagent服務現在受新推出的“指數節流機制”的約束,該機制是由Apple的操作系統服務管理守護程序啟動的。使用這種新機制,如果設備上發生崩潰,則崩潰后重新啟動的間隔與隨后的每次崩潰加倍(導致間隔最大為20分鐘,Gro?發現)。
Gro?說:“通過這一更改,依賴于反復使受攻擊的服務崩潰的漏洞利用現在可能需要幾個小時到大約半天才能完成,而不是幾分鐘。”
蘋果安全問題
蘋果公司以其強大的安全性而聞名,過去幾個月來一直面臨各種問題-包括本周發布的緊急更新以修補在iOS中發現的三個零日漏洞。
零點擊攻擊會自動運行,而無需任何用戶交互,這一點尤其令人擔憂。研究人員在八月[發現了零點擊的macOS利用鏈,攻擊者可以使用帶有宏的Microsoft Office文檔將惡意軟件分發給macOS用戶。
Gro?稱贊蘋果在最近的變化中所做出的積極的安全工作,特別是它對基于消息的零點擊攻擊的影響。
他說:“不僅修復了單個漏洞,而且還根據漏洞利用開發工作獲得的見解進行了結構改進。”