為啥這次蘋果A系列處理器中的BootROM漏洞是史詩級的?
這幾天有關(guān)于iPhone最熱門的話題莫過于這個新的checkm8漏洞了,漏洞發(fā)現(xiàn)人axi0mX在宣布自己研究發(fā)現(xiàn)的Tweet里面直接用了史詩級(EPIC)這個單詞來描述這個漏洞,為什么呢?主要有三大理由。
硬件漏洞,無法修復(fù)
checkm8漏洞存在于A系列芯片的BootROM中,換句話說它的位置是在硬件中,而這塊區(qū)域是只讀的,不可通過軟件手段進(jìn)行寫入,這也就意味著這個漏洞是不能通過軟件手段進(jìn)行修復(fù)的。
而大家知道之前Intel CPU上面的幽靈和熔斷兩大硬件漏洞卻可以被修復(fù),為什么呢?
checkm8這個漏洞是BootROM里面存放的軟件代碼中的漏洞,屬于軟件范疇,而恰恰這塊區(qū)域是只讀的,制造時候一次性寫入,連蘋果自己也不能在寫入后修改的。而Intel CPU的漏洞屬于硬件設(shè)計問題,其實也沒有辦法修復(fù),在老的處理器上面只是通過微碼和操作系統(tǒng)更新來進(jìn)行了規(guī)避,本質(zhì)上并沒有完全修復(fù)掉。而蘋果能不能在系統(tǒng)中采取一些規(guī)制手段呢?可以,但是作用很小。我們回頭看一下那些被發(fā)現(xiàn)存有BootROM漏洞的設(shè)備都怎么樣了:
Nintendo Switch
老版本的NS上面是有一個BootROM漏洞的,這個是NVIDIA的Tegra X1芯片帶過來的,而這也是離我們最近的一款影響范圍比較大并且有BootROM漏洞的設(shè)備,它存在于所有使用T210芯片的老款NS之上。而它能夠干什么大家都已經(jīng)知道了,破解NS的系統(tǒng)還只是一個方面,用它來把NS變成一個Android設(shè)備或者運行Linux都不是什么難題。
而任天堂在新款NS上面通過新制程的新版Tegra X1修復(fù)掉了這個漏洞。
Apple A4
在iPod touch 3以及其他所有使用Apple A4芯片的設(shè)備上都存在一個BootROM漏洞,由天才小子ghohot(題外話,這人現(xiàn)在做自動駕駛汽車去了)發(fā)現(xiàn),并且成功利用它結(jié)合iOS系統(tǒng)本身的漏洞做出了完美越獄。而這個漏洞使得iPhone 4等使用Apple A4的設(shè)備在iOS 6時代仍然是首批能夠進(jìn)行越獄的設(shè)備。
而3GS上面存有的另一個BootROM漏洞則是讓蘋果直接推出了新款3GS,在硬件上修復(fù)了漏洞,不過后來就再也沒這么干過了。
洞穿iOS安全啟動鏈源頭
iOS用了一套安全啟動鏈的機(jī)制來保證iOS不被輕易篡改,在Apple自制的一系列A系列SoC中有一塊存儲區(qū)域?qū)iT存放了一部分最初的啟動代碼,也就是俗稱的BootROM,這部分被Apple稱之為SecureROM,它是在電源鍵被按下,設(shè)備上電之后最初加載的代碼。SecureROM檢查下一級Bootloader,也就是Low Level Bootloader(LLB),如果簽名沒有問題,那么就加載并初始化LLB,此時設(shè)備的Apple Logo就出現(xiàn)了。然后LLB檢查并初始化iBoot,同樣是通過Apple Root CA Public證書驗證簽名,驗證通過就會把設(shè)備帶給iBoot,而iBoot會映射Device Tree,然后驗證內(nèi)核簽名并加載,最終初始化內(nèi)核并運行,這時候可以說iOS系統(tǒng)已經(jīng)啟動了。
這里要補(bǔ)充的是,LLB只存在于使用A9及之前的iOS設(shè)備上,從A10開始已經(jīng)沒有LLB了,BootROM直接把設(shè)備交給iBoot,也就是iOS設(shè)備的主要Bootloader。
可以看到Apple這套安全啟動鏈的核心機(jī)制就是使用證書簽名驗證機(jī)制,在前一級驗證后一級的完整性來確保安全。而現(xiàn)在,在第一級Bootloader上面存在就有漏洞,并且可以被利用,那么可以說整個安全啟動鏈就已經(jīng)失效了。
題外話,其實這種安全啟動鏈在PC平臺和Android平臺上面同樣存在,不過可能實現(xiàn)形式有所不同。單論從iPhone 4S到iPhone X這期間的iPhone銷量就已經(jīng)是一個非??植赖臄?shù)字了,再加上iPad這個銷量也不俗的平板設(shè)備和陪襯的iPod touch,算它幾個億,不過分吧。幾個億的設(shè)備上存有這個漏洞,可能已經(jīng)是史上影響范圍最為廣泛的硬件漏洞之一了,堪比當(dāng)年Intel處理器中的幽靈和熔斷兩大硬件漏洞。
漏洞的局限之處
以上三點已經(jīng)足以讓checkm8成為一個史詩級的漏洞,但它還是有很多局限之處的,首先,想要利用這個漏洞首先還是要通過USB有線連接,不能在手機(jī)端直接操作或者通過遠(yuǎn)程命令來執(zhí)行。其次,想要達(dá)成無需引導(dǎo)越獄(也就是常說的完美越獄)還需要iOS系統(tǒng)上面的漏洞配合完成,單靠這個漏洞只能達(dá)成需引導(dǎo)越獄(也就是常說的非完美越獄),目前這個漏洞還只是黑客用來對iOS設(shè)備進(jìn)行研究的一個渠道。還有用戶也不用擔(dān)心自己的一些核心機(jī)密數(shù)據(jù)可以被讀取到,像Touch ID、Face ID還有NFC信用卡數(shù)據(jù)都是存放于另外一個區(qū)域中的—;—;蘋果處理器中有一塊類似于ARM Trustzone的區(qū)域用來存放這些敏感數(shù)據(jù),至今還沒有曝出泄露。
總之,iOS越獄這個帶有反抗蘋果色彩的行為離徹底消亡還太過于早,它可能會沉寂,可能會淡出人們的視線,但黑客精神永遠(yuǎn)鼓動著世界上成千上萬的黑客、白帽子等等極客們對這個封閉的平臺進(jìn)行分析研究,向蘋果發(fā)起挑戰(zhàn),黑客精神不滅,它就不會死。