Magisk的root隱藏功能要涼了新版SafetyNet用了硬件級檢測
作為目前Android上面最為成功、便利的root框架,Magisk被大量用戶用來獲取設備的root權限。而它集成的隱藏root的功能也成功地騙過了許多應用的檢查,甚至Google官方用於檢測設備固件是否被修改的SafetyNet API也一直都被它騙過。不過這種好日子馬上就要結束了,因為最近Google對SafetyNet作出了一次大更新,讓它變得難以被繞過。
很多Android應用都會檢測設備的root狀態,比如說各種遊戲和銀行應用。其中有相當數量都使用了Google提供的SafetyNet API。它的“基本完整性”檢查會檢測設備的BootLoader是否被解鎖,刷過機的玩家應該都知道,解了鎖的BootLoader才能允許玩家刷入經過修改的各種Recovery、內核。而Magisk用來隱藏自己的方式就是直接修改內核,讓自己擁有比Google Play更高的權限,直接為檢測進程創建一個虛假的“安全環境”以欺騙它。這種手段非常有效,直到最近Google開始為SafetyNet引入新的硬件級檢測。
在之前版本的Android中,Google引入了一項名為Key Attestation的功能,它可以提供設備的安全信息,新的SafetyNet認證就用上了這個功能。它基於證書鏈認證體系,如果想要騙過它,那麼就要從設備的硬件密鑰庫中拿到相關的密鑰,而這又涉及到破解設備的可信執行環境(TEE)固件,後者異常堅固。甚至有些設備直接採用專用的硬件安全模塊,破解難度更高。
Magisk的主力開發者John Wu 在Twitter上面列舉出了種種可能的招數,並一一說明了不可行的原因。過去的幾年中,他一直在和Google交手,讓Magisk活到了今天,但這次他好像是真的沒辦法了。不過Magisk Hide也並不是完全失效了,對於一些沒有使用SafetyNet驗證的應用,它還是能夠有效地將設備偽裝成非root狀態的。