新一代的越獄方法已經普及開來,它就是rootless越獄,該方法適用於iOS 11和iOS 12(包括iOS 12.1.2),與傳統越獄相比,rootless越獄具備了更多的優勢。本文我會詳細向你介紹rootless越獄與傳統越獄的不同,為什麼它們更適合取證工作,以及利用該越獄方法取證後所留下了的痕跡。
權限升級
如果你關注我們的博客,你可能已經看過關於iOS越獄的文章,這些文章分別是:
1.iOS 12設備的物理提取和文件系統映像(https://blog.elcomsoft.com/2019/02/physical-extraction-and-file-system-imaging-of-ios-12-devices/);
2.使用iOS 11.2-11.3.1 Electra Jailbreak進行iPhone物理採集(https://blog.elcomsoft.com/2018/07/electra-jailbreak-ios-11-2-11-3-1-iphone-physical-acquisition/);
3.iPhone物理採集:iOS 11.4和11.4.1(https://blog.elcomsoft.com/2019/02/physical-acquisition-ios-11-4-and-11-4-1/);
從iPhone 5s開始,Apple首次採用64位SoC和Secure Enclave來保護設備數據,至此,「物理採集」一詞的含義就和原來不一樣了。在早期(32位)設備中,物理採集表示的是創建用戶加密數據分區的bit-precise映像。通過提取加密密鑰,執行物理獲取的工具能夠解密數據分區的內容。
在蘋果使用了Secure Enclave後,對於64位iOS設備來說,物理採集意味著文件系統映像,與獲取數據分區相比,是一種更高級別的進程。此外,可以在獲取過程中獲取和提取iOS鑰匙串。
對文件系統的低級訪問需要提升權限,這具體取決於你使用的工具或服務,可以通過直接利用iOS中的漏洞來繞過系統的安全措施來執行權限提升,這就是GrayKey等工具和Cellebrite等服務所做的。如果你選擇這種方法,你就無法控制使用的漏洞。在提取過程中,你無法確切知道設備上哪些數據正在被修改,以及提取後會留下什麼樣的痕跡。
在iOS Forensic Toolkit中,我們使用的是公共越獄來繞過iOS安全措施。與使用漏洞繞過不同,使用公共越獄也有其優點和缺點。顯而易見的好處是整個解決方案的成本較低,另一方面,傳統的越獄會留下太多的痕跡,破壞文件系統映像。傳統越獄必須禁用籤名檢查以允許運行未籤名的代碼。一個傳統的越獄案例就是使用Cydia,這是一個第三方應用程式商店,需要額外的開發程序才能在越獄設備上運行。換句話說,傳統越獄如Electra,Meridian或unc0ver越獄痕跡太明顯,很多功能都是冗餘的。
傳統越獄還有另一個問題,為了獲得超級用戶權限,這些越獄會重新安裝文件系統並修改系統分區。即使在你刪除越獄後進行提取,你正在調查的設備將永遠不會相同,因為它可能會也可能不會採用OTA iOS更新,並且在運行中可能(經常會)變得不穩定。通常需要通過iTunes進行完整的系統還原,然後進行工廠模式重置,才能使設備恢復正常。
rootless越獄
隨著傳統越獄的缺點越來越多,取證人員逐漸研發出了rootless越獄。與傳統越獄相比,rootless越獄的大小要小得多。在提供文件系統提取所需的所有內容(包括SSH shell)時,它們不會捆綁不需要的額外內容,例如Cydia商店。最重要的是,rootless越獄不會改變系統分區的內容,這使得取證專家可以刪除越獄並將系統返回到越獄前的狀態。與使用傳統越獄相比,所有這些都使得rootless越獄更加受到人們的青睞。
那麼rootles越獄與傳統越獄到底有何不同?讓我們仔細看看。
越獄的一個常見定義是「為了解除蘋果強加的軟體限制而進行的特權升級」。此外,「越獄允許root訪問」 ,root訪問意味著能夠讀取和寫入文件系統的根目錄。完全越獄授予對「/」的訪問權限,以便用戶能夠在繞過Apple限制的同時運行未籤名的軟體包。訪問文件系統的根目錄需要文件系統重新安裝,然後越獄會將一些文件寫入系統分區,從而修改設備並有效地破壞OTA功能。
為什麼傳統越獄需要在系統分區上進行寫入操作呢?這是因為,kppless越獄無法在用戶分區中執行二進位文件,這種越獄因「不允許操作」而出錯。顯然,從App Store安裝的應用程式位於用戶分區上,可以毫無問題的運行,但前提是要運行未籤名的二進位文件。實現此任務的最快方式是將二進位文件放入系統分區並從那裡開始越獄。
而rootless越獄呢? Rootless並不意味著沒有root,這意味著該方法沒有能力在root分區中寫入(redmondpie )。顧名思義,rootless越獄不授予對文件系統根目錄(「/」)的訪問權限。提供訪問的最低級別是/ var目錄。這被認為是更安全的取證方法,因為沒有任何東西可以修改或更改系統文件以導致無法修復的損壞。
rootless越獄的安全性
這是一個我們經常被問的問題,如果你閱讀了iOS 12設備的物理提取和文件系統映像(https://blog.elcomsoft.com/2019/02/physical-extraction-and-file-system-imaging-of-ios-12-devices/)一文,你可以看到安裝rootless越獄涉及使用第三方網站。這意味著,將正在進行取證的iPhone暴露在網際網路連接中可能會有風險,尤其是如果你沒有權限讓蘋果阻止所有通過Find My iPhone服務發起的遠程鎖定或遠程擦除請求的話,風險會更大,我們目前正在研究離線安裝越獄的可能性。
如果你需要確保安裝過程的完全透明,可以通過原始碼編譯自己的IPA文件:https://github.com/jakeajames/rootlessJB3
然後,你必須籤署IPA文件並將其加載到你要提取的iOS設備上,此時設備仍需要通過連接到Apple伺服器來驗證證書的有效性。
有關rootless越獄發展的更多信息,請參閱文章《如何在沒有文件系統重新安裝為r/w的情況下越獄》(https://github.com/jakeajames/rootlessJB/blob/master/writeup.pdf)
rootless越獄後,數據如何提取?
根據rootless越獄中的原始碼,我們可以分析設備上確切修改的數據。至少,rootless越獄修改設備上的以下數據:
· /var/containers/Bundle/Application/rootlessJB:越獄本身
· /var/containers/Bundle/iosbinpack64:其他二進位文件和實用程序
· /var/containers/Bundle/iosbinpack64/LaunchDaemons:啟動守護進程;
· /var/containers/Bundle/tweaksupport:文件系統模擬,其中安裝了調整和其他內容;
· 符號連結包括:/var/LIB、/var/ulb、/var/bin、/var/sbin、/var/Apps、/var/libexec
此外,我們可在各種系統日誌中看到一些越獄的痕跡。對於任何越獄的提取方法來說,留下越獄痕跡是不可避免的,只是多少的問題。而完全避免iOS系統日誌中越獄痕跡的唯一方法是通過DFU對設備進行映像,然後解密數據分區,但這在任何現代iOS設備上都是不可能實現的。
總結
rootless越獄允許我們在運行iOS 12.0到12.1.2的所有iOS版本的Apple設備上鏡像文件系統的基礎,從本質上說,rootless越獄滿足了取證專家所需要的一切要求。rootless越獄允許訪問/ var而不是/,這使得它更安全,更容易被刪除。一言以蔽之,rootless越獄更接近於無痕提取。