長期以來,如何找到 iDevice 的 bootrom 硬體漏洞,一直是越獄界跟安全界中的難題。
原因很簡單,要找到硬體漏洞,必須先對硬體 debug。但是我們市售的 iDevice 裡面的 SoC 已經被關閉 debug 功能,要 debug 得先找到漏洞,於是變成了一個「雞生蛋、蛋生雞」的問題。
之前 checkm8 的漏洞是由於蘋果在 iOS 12 beta 中,跟 iboot 有關的底層程式碼做了一些變動,導致相關研究人員注意到變動的地方是為了修補某一個漏洞,最後反推出漏洞所在的程式碼以及觸發方式,才完成 checkm8 的。
這樣的方式不但效率低落(無法主動開始研究),使得 checkm8 距離上個 bootrom 漏洞 limera1n 發佈已經有九年這麼久(如果前幾年那個 3GS 新 bootrom 完全破解不算的話)。此外,當發現漏洞時,Apple 也早就在新的 SoC 修復此問題。
那麼,有什麼方法可以主動出擊呢?軟的不行就來硬的!
首先要知道的是,蘋果 A 系列晶片關於 debug 的模式有幾個:
CPFM 03:我們市售拿到的手機全部都是 CPFM 03,如果手上沒有已知的漏洞,則無法對 bootrom debug。
CPFM 01:目前透過 bootrom 漏洞可以修改出來的狀態,允許對 bootrom debug,但是用漏洞觸發此模式只是暫時性的,下次開機就會回到 CPFM 03。
CPFM 00:完全允許 debug 的狀態,唯有這個狀態才可以對 SEP debug(研究如何破解 SEP),目前沒有任何已知漏洞可以讓市售手機變成 CPFM 00。
控制 CPFM 的方式是用熔斷的方式,在工廠製造過程中,一開始所有 SoC 原本都是 CPFM 00,但透過施加電流,熔斷部份線路,就可以改變 CPFM 狀態。順帶一提,任天堂 Switch 也有用到這個機制,Switch 主機會在安裝系統更新時,將內部線路熔斷,進而阻止使用者降級回舊版。
好啦,那沒有任何已知軟體漏洞讓市售手機變成 CPFM 00 的話,研究人員要如何研究呢?有一個方法:把 CPFM 00 的 SoC 裝到機器上就好了啊!
所以,一家中國廠商不知道怎麼搞到了 CPFM 00 的 SoC(工廠流出料件,或者他們把熔斷的線路焊接回去),提供了這樣「換心手術」的服務,以下影片來自他們網站的介紹。
▼ 先用 CNC 直接磨掉整個 SoC,不過好像可以用解焊的啊,不知道為什麼他們直接磨掉,超哈扣
▼ 經過清理 PCB 板、加焊錫等一些步驟之後,再把修改為 CPFM 00 的 CPU 焊接回去
哇,這樣一隻可以 debug SEP 跟 bootrom 的 iPhone 就完成了呢!是不是很簡單呢?
這樣一隻 iPhone XR,要價 3000 美金,聽起來很貴,但如果找到了 bootrom 漏洞、甚至 SEP 漏洞,可以帶給研究人員的利益是 3000 美金的很多倍。如果有興趣的話,可以到 https://i-devshop.com/ 網站看他們的詳細介紹。
發佈留言