蘋果超級大漏洞 BootROM 的說明及威脅評估

2021-01-08 雷鋒網

雷鋒網註:該報告轉載自360信息安全部涅槃團隊博文,原文標題為《iPhone BootROM 漏洞說明及威脅評估》。

0x00 相關詞彙

AP:應用處理器。

SEP:安全協處理器。

SecureROM:又稱 BootROM 是固化在 iPhone 只讀區域中的一段代碼,該區域中的代碼是啟動鏈及啟動信任鏈的起點,主要負責加載後續的啟動鏈,該區域中的代碼無法通過系統更新來更新,所以該區域中的代碼一旦出現安全問題,影響是非常大,並且這種影響是持久的,只能通過召回設備修復問題。關於 SecureROM 的具體功能,可以參考筆者之前寫的一篇文章 《SecureROM 分析筆記》。

GID:GID 是固化在 iPhone 加密引擎中的 AES 密鑰,所有相同型號的設備具有相同的密鑰,比如:所有 iPhone X 都具有相同的密鑰。該密鑰主要用來解密系統更新固件。SEP 有獨立的 GID,與 AP 的不同。

UID:UID 也是固化在 iPhone 加密引擎中的 AES 密鑰,但每臺手機都有不同的 UID,UID 主要用來加解密用戶相關的數據。SEP 有獨立的 UID,與 AP 的不同。

0x01 事件起因

北京時間9月 28 日凌晨,國外安全人員 @axi0mX 通過 Twitter 公開了一個 iPhone BootROM 的漏洞[1],同時公開了相關的利用代碼[2]。

就像 @axi0mX 在推文中所說[3],這是從 2010 開始,9 年間,第一個公開的針對 64 位蘋果設備的可以利用的 BootROM 的漏洞。我們知道越獄社區一直在跟蘋果設備的安全性做著「鬥爭」,隨著蘋果不斷地提高 iPhone 的安全性,越獄變得越來越難,而 BootROM 漏洞不僅可以用來越獄當前最新的 iOS 版本,還可以用來越獄將來的 iOS 版本(因為硬體漏洞無法通過系統更新進行修補),所以該漏洞在越獄社區中引起了巨大的轟動。

0x02 受影響的設備

影響從 iPhone 4s 到 iPhone X 的所有設備,同時影響這段時間內生產的 iPad 設備。

0x03 漏洞成因說明

@axi0mX 是通過二進位對比發現的這個漏洞[4],同時 @littlelailo 獨立的通過代碼審計的方式也發現了這個漏洞[5]。@littlelailo 對這個漏洞的成因及利用思路做了說明[6][7]。

由於 @littlelailo 對漏洞的成因已經說得非常清楚了,這裡就不再畫蛇添足,下面是@littlelailo 說明的直接機器翻譯結果。下文中的圖像並不是指圖片,而是指 img4 固件文件。

這個錯誤一開始也被稱為Moonshine基本上,我查看過的所有bootrom中都存在以下錯誤:1.當usb開始通過dfu獲取圖像時,dfu註冊一個接口來處理所有命令,並為輸入和輸出分配一個緩衝區2.如果您將數據發送到dfu,則設置包由主代碼處理,然後調出接口代碼3.接口代碼驗證wLength短於輸入輸出緩衝區的長度,如果是這種情況,它將使用指向輸入輸出緩衝區的指針更新作為參數傳遞的指針4.然後返回wLength,這是它要接收到緩衝區的長度5. USB主代碼然後使用長度更新全局變量,並準備接收數據包6.如果接收到數據包,則通過作為參數傳遞的指針將其寫入輸入輸出緩衝區,並使用另一個全局變量來跟蹤已經接收了多少字節7.如果接收到所有數據,則再次調用dfu特定代碼,然後繼續將輸入輸出緩衝區的內容複製到以後從中引導映像的存儲位置8.之後,usb代碼將重置所有變量並繼續處理新軟體包9.如果dfu退出,則釋放輸入輸出緩衝區,並且如果映像解析失敗,則bootrom重新輸入dfu

退出dfu可以通過發送dfu中止包或通過觸發USB重置觸發解析來完成

問題:在第5步,將更新全局變量,並且Bootrom準備接收數據,但是使用便宜的控制器,您可以違反USB規範並且不發送任何信息(arduino主機控制器或類似的東西)。然後,您可以觸發USB重置以觸發圖像解析。如果解析失敗,bootrom將再次輸入dfu,但未執行步驟8,因此全局變量仍包含所有值。但是,執行了步驟9,因此釋放了輸入輸出緩衝區,而在步驟3中作為參數傳遞的指針仍然指向它。因此,您可以通過將數據發送到設備來輕鬆觸發對已釋放緩衝區的寫入。

對A8的利用:1.將0x40的隨機數據發送到dfu,必須發送此數據,否則您將無法使用USB重置ctrlReq(bmRequestType = 0x21,bRequest = 1,wLength = 0x40)退出dfu2.通過發送ctrlReq(0x21,1,0)ctrlReq(0xa1,3,1)ctrlReq(0xa1,3,1)ctrlReq(0xa1,3,1)ctrlReq(0xa1,3,1)使dfu處於等待USB重置的狀態ipwndfu dfu.py)3.僅發送了帶有bmRequestType 0x21和bRequest 1以及有效載荷大小的wLength的設置數據包(此數據包將更新全局變量)4.發送一個狀態包以標記控制傳輸的結束(即使將wLength設置為一個值,我們也會跳過數據階段)5.觸發總線復位6.等待設備重新輸入dfu(現在將釋放輸入輸出緩衝區,並且將在釋放的緩衝區下分配usb任務)7.發送設置的配置請求ctrlReq(bmREQ_SET,USB_REQUEST_SET_CONFIGURATION,wLength = Payloadsize),但將有效載荷與數據階段一起發送(bootrom中的設置配置處理程序忽略wLength)

有效負載將覆蓋usb任務結構,並且將成為usb堆棧之後的下一個分配。通過定位USB任務結構中的連結列表,您可以插入偽造的任務。而且您可以將usb任務堆棧用作暫存空間,因為看起來它永遠都不會寫到那麼高。當dfu退出並且usb任務停止時,將生成該代碼。因此,您可以在第7步之後發送dfu中止數據包,並在該代碼執行exec的情況下控制所有較高的寄存器,因為您的虛假任務將添加到列表中並在以後的某個時刻運行。

0x04 能力及威脅評估

限制條件

漏洞利用的限制條件:需要將設備置入 DFU (Device Firmware Upgrade)模式。

漏洞及利用目前所具有的能力

1、BootROM 中的任意代碼執行能力。

2、開啟 CPU 的硬體調試能力(JTag)。

3、使用 AP 的 GID 進行加解密。

4、使用 AP 的 UID 進行加解密。

任意代碼執行能力及 CPU 級調試能力

BootROM 是 iPhone 啟動信任鏈的基礎,在 BootROM 中具有了任意代碼執行能力,意味著 iPhone 的整個啟動信任鏈被打破了,最終可以用來加載修改過的 iOS 內核,從而破壞 iOS 的基礎安全特性。這部分能力主要會被用來做越獄(這裡的越獄是指越獄所帶來的能力,而不僅僅指越獄行為)。

CPU 級調試能力,這個能力主要會被用來分析 iPhone 的安全啟動鏈及調試相關的漏洞及利用。

使用AP 的 GID 進行加解密的能力

使用 AP 的 GID 進行加解密的能力主要會被用來解密 iPhone 的固件,破壞了蘋果對相關組件的封閉性保護,進而可以用來評估相關模塊的安全性,下面是利用該能力解密出來的固件密碼:

; iOS-v13.1.1-17A854, iPhone X; iBoot.d22.RELEASE.im4pIV: 1ef67798a0c53116a47145dfff0aac60KEY: 9a6ddfb9f432a971be8ae360c6ce0a8e3170f372d4e3158bb04e61d81798929f

使用 AP 的 UID 進行加解密的能力

根據筆者目前所掌握的知識,用戶相關數據的密鑰主要是使用 SEP 的 UID 進行的加解密,因此尚不清楚使用 AP 的 UID 進行加解密的能力是否會對用戶數據造成直接的威脅。

對用戶數據的威脅評估

對用戶數據威脅的評估結論:筆者認為這個漏洞對用戶數據僅構成間接威脅,沒有構成直接威脅。

對用戶數據威脅評估基於的前提:用戶設置了鎖屏密碼。

一些離散的、iPhone 數據安全相關的知識:

1、 iPhone 的磁碟是加密的(SEP UID 相關)。

2、 設備中保存密碼是加密的(SEP UID 相關,且與鎖屏密碼相關)。

3、 iPhone 中的用戶文件是加密的(SEP UID 相關,且間接地與鎖屏密碼相關)。

4、 用戶相關的數據,只有在設備重啟後,第一次解鎖屏幕後,才有可能被解密,即:繞過鎖屏不會造成用戶數據解密。

5、 破解鎖屏密碼主要在 SEP 上進行,根據蘋果的文檔[8],蘋果做了相關的防暴力破解的防護。

通過上面的一些知識點,以及我們前面提到的漏洞限制條件:需要將設備置入 DFU 模式(DFU 模式意味著需要將設備重啟)筆者可以得到如下 2 個結論:

1、 利用該漏洞,攻擊者雖然無法直接解密用戶數據,但是可以解密 iPhone 磁碟的數據分區,該分區中包含一些系統日誌及程序行為的日誌。

2、 利用該漏洞,從取證的角度,攻擊者可以暴力破解鎖屏密碼,但仍會面臨一些限制。

但事情沒有絕對的,做過應用防護的應該清楚:如果端被攻破,那麼端上產生的數據會變得不安全;端上使用的數據也會變得不安全。前面我們說過,利用這個漏洞攻擊者可以破壞內核完整性,進而破壞內核的安全特性,獲得內核空間的任意代碼執行能力,獲得用戶空間的任意代碼執行能力,因此:雖然攻擊者無法利用該漏洞直接獲取用戶數據,但是配合一些其它的攻擊手段,攻擊者還是可以獲取用戶數據。

0x05 安全建議

1、不要將自己的受此漏洞影響的蘋果設備交給他人。

2、將鎖屏密碼設置為 6 位數字,或者設置為更複雜的由字母+數字構成的密碼。

3、定期重啟設備。

0x06 參考資料

1、https://twitter.com/axi0mX/status/1177542201670168576

2、https://github.com/axi0mX/ipwndfu

3、https://twitter.com/axi0mX/status/1177542362853040129

4、https://twitter.com/axi0mX/status/1177544539046703104

5、https://twitter.com/littlelailo/status/1177554568626024448

6、https://twitter.com/littlelailo/status/1177555154549313537

7、https://gist.github.com/littlelailo/42c6a11d31877f98531f6d30444f59c4

8、《iOS Security Guide》,iOS 12.3

0x07 時間線

2019-09-28 安全人員 @axi0mX 通過 Twitter 公開漏洞

2019-09-30 360信息安全部 涅槃團隊 完成本次報告

2019-09-30 360CERT發布本次報告

相關焦點

  • iOS爆bootrom漏洞:可導致iPhone永久越獄,系統升級也無法破解
    驅動中國2019年9月29日消息 iOS漏洞時長有,但這一次還真不一般。據外媒報導稱,一名國外安全研究員axi0mX於日前在Twitter上披露了一則消息,稱iOS存在著一個不可修復的bootrom漏洞,可導致數以億計的iOS設備遭到永久性、不可阻擋的越獄。
  • 蘋果驚天大漏洞帶來的不是越獄高潮,而是黑灰產的狂歡
    ,無法通過軟體來修復(來源:《蘋果驚爆史詩級硬體漏洞:你的iPhone可永久越獄,無法修復!》該文稱,BootROM 漏洞利用了iOS設備在啟動時加載的初始代碼中的一個安全漏洞。由於它是 ROM (只讀存儲器),蘋果不能通過軟體更新來覆蓋或修補它,所以漏洞會一直存在。這是自 10 年前發布的 iPhone 4之後,針對 iOS 設備首次公開發布的第一個bootrom級別的漏洞。
  • vxworks生成BOOTROM的兩種方式
    執行環境變量:tornado\host\x86-win32\bin> torvars2.生成bootrom文件:tornado\target\config\pcpentium> make bootrom_uncmp3.將生成的bootrom文件做在啟動軟盤上:tornado\target\config\pcpentium
  • 一種嵌入式系統bootrom自動備份及切換技術
    分析這種問題發生的原因,當採用嵌入式Linux、Windows CE等較為複雜的作業系統時,一般設計一個獨立的bootrom程序,對系統進行初始化並引導嵌入式作業系統。而系統的更新僅僅考慮備份了應用層程序或是嵌入式作業系統,沒有對bootrom進行備份,所以當升級boot rom出現異常後,系統將無法再次啟動。
  • 乘蘋果「史詩級漏洞」 有人用安卓機給 iPhone7 刷了個安卓系統
    需要說明一點的是,Cydia 並沒有消失,用戶依然可以在 Cydia 上下載過去曾經購買過的軟體,只是禁止 BigBoss 源的軟體購買。行業落幕有幾個原因,第一是蘋果的努力。蘋果和越獄極客們的戰鬥從未停止,他們一方面升級系統填補漏洞,完善、豐富功能和產品體驗,另一方面也通過各種懸賞、招安黑客等方式分化這一團體。
  • iPhone曝出Bootrom漏洞 影響X及之前晶片
    安全研究人員Axi0mX近日表示,他發現蘋果晶片組上存在Bootrom漏洞,可允許駭客取得iOS設備的控制權。由於該漏洞波及A5到A11的晶片組,相當於iPhone 4S到iPhone X都受該漏洞影響,但只有通過更換硬體才能修復,否則可導致永久的越獄行為。
  • 黑客揪出蘋果iOS重大漏洞
    黑客揪出蘋果iOS重大漏洞 王昱 發表於 2020-12-04 13:33:44 來自谷歌信息安全團隊Project Zero的研究人員伊恩·比爾(Ian Beer
  • iPhone史上最大漏洞!免密碼就可取你的資料 無法修復
    不同於以往的文章,由於這次的漏洞太可怕,所以我會儘量用對「沒有技術概念的人」也可以看得懂的方式說明。首先,在幾個月前,國外的駭客發現了 checkm8 這個 bootrom 漏洞,而在最近,基於這個漏洞所實作的越獄工具 checkra1n 已經釋出。
  • 解析五個漏洞管理原則與基本的威脅向量
    公司部署的應用越多,漏洞管理的任務就越為複雜。在查找安全漏洞的時候要對潛在的黑客進行封堵,否則很容易就會丟失重要的信息。而當你是一名要判斷處理多個任務的IT管理人員時,漏洞管理顯得尤為重要。  安全人員不能保證什麼漏洞都偵察到。但是通過將漏洞管理化整為零,或許可以實現更為有效地防禦。
  • 蘋果支付漏洞縱容「免費」充值?
    ­  利用這個漏洞,一些國內的不法分子研究了一整套方法,可以多次、大筆、多帳號進行充值或消費。而一些遊戲廠商率先受到了該漏洞的影響,點券充值功能被「36技術」盯上。­  目前,這一方法已經形成產業鏈,網絡上不僅有買賣軟硬體的,還有付費教技術的,還有販賣充值所需的「黑卡」、蘋果ID等信息的。
  • iOS 13漏洞成精:可繞過蘋果安全機制訪問用戶名和密碼
    >面對各大安卓手機廠商的圍堵攔截,蘋果公司可是一刻都不能放鬆警惕。目前,開發人員還尚不清楚造成這一安全漏洞的原因為何。據猜測,這也許是iOS 13中新加入的一些功能的程序與安全機制決策程序產生衝突,才造成了這樣的鬧劇。「當然,除非蘋果方面對這件事進行研究並公之於眾,否則我們永遠無法知曉這個安全漏洞的來歷。」在這之後,開發人員將問題上報了蘋果,但並未收到回復。
  • 360向廣大政企用戶發出Win7漏洞威脅預警通告
    對此,360安全團隊建議廣大用戶及時更新軟體補丁,Win7系統用戶則儘快下載安裝360安全大腦Windows 7盾甲企業版抵禦新型IE瀏覽器0day漏洞威脅。(二)文檔信息(五)影響面評估根據數據顯示, 直至2019年10月底,國內Windows 7系統的市場份額佔比仍有近6成,而對於國內而言,存在數量驚人的政府、軍隊、企業、個人在內的 PC用戶依然使用著Win7系統。
  • 蘋果AirDrop存在漏洞 具體漏洞是什麼?
    8月2日消息,據外國媒體報導,蘋果隔空投送功能AirDrop被曝出存在漏洞,研究人員發現,AirDrop可以廣播部分加密的(SHA256)哈希,可用於獲取iPhone的電話號碼或Mac的靜態MAC地址等詳細信息。
  • KNOB藍牙漏洞真可怕?別慌!蘋果用戶可更新補丁
    8月20日消息,CISPA(IT安全、隱私和責任中心)的研究人員發現一個藍牙安全漏洞,通過這一漏洞可以監聽甚至改變藍牙連接設備之間傳輸的數據,對用戶的安全和隱私構成威脅。不過目前有許多公司,例如蘋果已經發布了修補這一漏洞的更新補丁。根據藍牙協議,設備之間的藍牙連接是需要加密的。
  • 蘋果懸賞100萬美金 邀請黑客來找手機漏洞
    如果你是一名黑客,那麼你一夜暴富的機會來了:黑進一臺蘋果產品,就能得到一百萬美金。懸賞請黑客找漏洞雖然不是蘋果的獨創,但是蘋果這次的賞金卻是最高的。隨著安全漏洞問題日益高發,蘋果公司執行長蒂姆·庫克將隱私稱為「人權」,表明了蘋果不收集個人信息以及讓全球20億用戶不受黑客威脅的嚴肅態度。'This is not something that we just started last week, when we saw something happening.
  • 無需接觸即可竊取iPhone照片,英國黑客揪出蘋果致命漏洞
    圖片來源:Pixabay今年5月,蘋果修復了有史以來最令人震驚的iPhone漏洞之一:iOS內核中的內存損壞錯誤。這個漏洞使得攻擊者可以通過Wi-Fi,無需任何接觸即可遠程訪問設備中的所有信息。通過漏洞甚至也很容易實現蠕蟲程序,病毒可以利用無線電從一個設備向其他設備傳播。
  • 盤古實驗室:蘋果FaceTime逆向分析及漏洞案例分享
    曾幾何時,人們對於蘋果產品的信任程度就好像他們經常使用的冰箱、空調、洗衣機一樣,但隨著「蘋果絕對安全」謠言的破滅,更多安全人員開始投身到蘋果產品的漏洞挖掘研究之中。今年年初,蘋果手機軟體FaceTime的一項重大漏洞被曝光,更是讓人們深知世上並無絕對的安全可言。
  • 蘋果藍牙保護框架 MagicPairing 被爆出現 10個0day漏洞...
    MagicPairing 是蘋果的一種專有協議,它能夠提供無縫的配對功能,例如在用戶的 Airpods 和他們所有的蘋果設備之間是通過通過蘋果的雲服務 iCloud 同步鍵來實現的。MagicPair 協議的最終目標是派生一個藍牙鏈路密鑰 (LK) ,用於單個設備和 Airpods 之間。
  • 研究人員發現蘋果帳號安全漏洞,蘋果獎勵10萬美元
    一直以來蘋果的自家系統就因為其封閉性所以在安全性方面也是要比同樣開放的安卓系統,Windows系統來得更加的安全,病毒有害程序也更加的少。但是這也並不意味著蘋果的系統就是絕對安全的,總會因為一些自身原因而出現一些意想不到的漏洞和Bug,甚至於有時候會出現嚴重的安全漏洞。
  • 蘋果再現安全漏洞:超 5 億用戶或被黑客利用八...
    ,蘋果的安全性都是被用戶推崇的,但最近,蘋果卻被接連曝出重大安全漏洞。並且這個漏洞不需要用戶任何點擊,只要給用戶發送一封電子郵件,甚至郵件還在下載過程中,就能觸發漏洞攻擊。目前蘋果已經承認了這一漏洞的存在,並表示正在努力修復相關的漏洞。