Magisk開發者曝安卓系統重大漏洞:可致 - 手機討論

Table of Contents

Magisk開發者曝安卓系統重大漏洞:可致手機進程被監視

https://www.ithome.com/0/396/548.htm

IT之家11月23日消息 稍早之前,Magisk的開發者topjohnwu宣佈推出了新版的Magisk工具
,繞過一些安卓的SafetyNet Attestation API,讓手機在獲取Root的情況下也能玩具有該A
PI的手游(如《FGO》)。

但是在這之後他發現,這一解決方案對自己的一加6手機無效。之後,他在一則Medium帖子
中表示發現了一個安全漏洞,《Fate/Grand Order》(通常稱《FGO》)似乎在濫用這一漏
洞,用來監測他一加手機上的Root訪問權。

https://i.imgur.com/ZvUWorm.jpg

XDA發佈了一篇文章,根據他的發現梳理了這一漏洞的信息。以下為該文主要內容翻譯。

Procfs和安卓

在基於Unix的操作系統上,有一個名為「procfs」的特殊文件系統,其中包含有關進程(可
以聯想應用程序)的信息,例如內存使用情況(可以聯想RAM)、狀態(進程是否正在運行
,休眠等)。在大多數基於Unix的操作系統上,用戶和應用程序可以輕鬆訪問procfs,來查
看系統上正在運行的應用程序和服務類型(參考Windows的任務管理器)。然而從安卓7.0「
牛軋糖」系統開始,Google鎖定了對procfs的訪問權限。在Android Nougat(安卓7.x)系
統之前,像SystemPanel這樣的應用程序能夠收集有關正在運行的應用程序的數據,而無需
任何特殊權限。安卓7.x系統之後,應用程序需要通過UsageStats或AccessibilityService
等API才可以做到這一點,這兩個API都由必須通過用戶授予的權限來把關。

Google通過使用「hidepid = 2」標誌掛載/proc,來阻止應用程序通過procfs讀取其他應用
程序的狀態。通過這一手段,應用程序只能看到自己進程的狀態。因此,應用程序需要通過
可被接受的API(如UsageStats或AccessibilityService)來獲取當前設備上正在運行的應
用程序和服務的信息。

漏洞

如果procfs沒有用「hidepid = 2」掛載怎麼辦?那麼,應用程序可以自由地讀取系統上運
行的其他應用程序(和掛載點)的狀態,而無需任何額外的權限(注)。Google在自家的設
備上通過「hidepid = 2」掛載了的procfs,但並未強制其他OEM對設備強制執行此要求。來
自LG、一加、華為/榮耀、小米等公司的幾款設備尚未通過「hidepid = 2」掛載procfs。由
此,《Fate/Grand Order》等應用程序就能利用它來檢測設備上是否存在Magisk(或是否Ro
ot)。

注:安卓9 Pie中的一個安全性改動會阻止應用程序在自己的「SELinux上下文(context,
可大致理解為「環境」)」之外讀取信息,因為每個應用程序現在都是單獨隔離的。SELinu
x是一個內核模塊,充當各種「守衛」,阻止應用程序和服務訪問它們不應該訪問的文件。S
ELinux上下文如同一個文件的標籤,其中包含用戶和角色等信息。如果沒有為procfs啓用「
hidepid = 2」標誌,則處於相同SELinux上下文的應用程序可以讀取同一上下文中有關其他
應用程序的信息。在運行安卓9 Pie的設備上,只有針對安卓9 Pie構建的應用才會將這一新
的SELinux更改應用在它們身上。只要安裝時沒有通過「hidepid = 2」掛載procfs,針對An
droid 8.1 Oreo或更低版本的應用程序將仍使用舊的SELinux規則,也就可以訪問相同SELin
ux上下文中的進程信息。應Google Play的新要求,你的設備上運行多數應用程序目標API應
對應安卓8.0「奧利奧」,但是,很多應用程序尚未針對安卓Pie進行更新。

procfs漏洞演示:

https://i.imgur.com/q66NPsJ.jpg
▲左為通過「hidepid = 2」掛載了procfs的Google Pixel 3 XL,右為未通過「hidepid =
2」掛載procfs的華為Mate 20 X

https://i.imgur.com/nvbhpRk.jpg
▲在Google Pixel 3 XL上,「Material Terminal」應用程序只能看到自己的進程;在華為
Mate 20 X上,「Material Terminal」應用程序可以看到其他進程。

我的設備是否受影響?

以下是XDA發現的未使用「hidepid = 2」掛載procfs的設備(項目從左至右對應為:OEM廠
商、設備、安卓版本、是否存在procfs洩密)。

https://i.imgur.com/O2CB7FN.jpg

後果有多糟糕?

如果我們將這個系統漏洞與FuséeGelée、Blueborne、KRACK、Meltdown(熔斷)Spectre
(幽靈)等漏洞進行比較,這個bug就相形見絀了。應用無法通過這一漏洞獲取root權限,
或竊取你的密碼。你的銀行賬戶、信用卡都是安全的。最壞的情況是,應用程序可以判斷你
的設備上是否有另一個應用程序正在運行,因此用途非常有限。請記住,這是許多GNU / Li
nux發行版的規範行為,另外,Google最近才開始通過安卓7.x系統阻止procfs訪問。這一bu
g能讓應用程序繞過所需的某些權限來監視其他進程,但無法破壞安卓系統的沙箱並從其他
應用程序中竊取數據。可無論如何,這是非預期的行為,且已經打破了安卓的隱私功能,因
此bug必須得到修復。

如何檢測設備是否受影響

若要檢查設備是否會向其他應用程序洩漏進程信息(即procfs未使用「hidepid = 2」掛載
),你可以使用shell命令(參考上文對比圖),也可以使用topjohnwu開發的應用程序(點
此從GitHub獲取)進行檢查。如果你的手機已經獲取Root權限,topjohnwu的應用還能讓你
使用「hidepid = 2」重新掛載procfs。

https://i.imgur.com/jHlgKpO.jpg

會有修復嗎?

是的,這一定會得到修復。谷歌現在會要求所有設備使用「hidepid = 2」掛載procfs。谷
歌將通過更新兼容性測試套件(CTS)來強制執行。這裡的CTS是一組測試,所有設備必須通
過測試,才能使用Google Play應用和服務。想要銷售預裝了Google Play商店的所有OEM,
最後都必須推出更新,以便在不久的將來使用「hidepid = 2」重新掛載procfs。這一問題
最先在一加設備上發現,一加方面已經知悉此問題並正在進行修復。如果其他OEM對此錯誤
發表評論,我們將就在此文進行更新。但是,你大可不必懷疑所使用的設備的OEM是否會發
佈更新,如果他們希望更新通過CTS測試,就必須修復此bug。

是的,相比之前Android爆出的漏洞來看,這個漏洞已經算很弱(?)了,只能透過規定以
外的方法來看其他程式的程序。

來自台北的topjohnwu大大又發現了一個漏洞,果然是台灣之光!

或許這個就是之前有些app偵測是否有root或是magisk的方法,這次google作法還蠻屌的,
如果不更新CTS就有可能不會過,這樣就代表很多手機都要更新了,看來有望看到ov升級手
機了(?

名單上看來就google、三星、HMD、moto、sony的系統有patch過,其他品牌要快點更新啊。

--
https://i.imgur.com/7ChJmWc.gif
INNOVATION!

--

All Comments

James avatarJames2018-11-26
嗯嗯跟我想的差不多
Madame avatarMadame2018-11-28
台灣神人
Cara avatarCara2018-12-01
這篇基本上是XDA首頁文章的翻譯版 難得沒有我能吐槽的地方
Hamiltion avatarHamiltion2018-12-03
這不是大家都預期的事
Emma avatarEmma2018-12-06
簽名檔我看一次笑一次XD
David avatarDavid2018-12-08
嗯,跟我想的一樣
Adele avatarAdele2018-12-11
FGO:......又少了一個檢查方法
Isabella avatarIsabella2018-12-14
FGO777777777777777
Puput avatarPuput2018-12-16
補充一下最新進度是 當初谷歌改動的是高通msm branch 似乎漏掉拉到常規common branch的動作 所以才出現這些二三事
Edith avatarEdith2018-12-19
標題令我吐血Orz
Robert avatarRobert2018-12-21
FGO:幹
Erin avatarErin2018-12-24
FGO的技術力www
Odelette avatarOdelette2018-12-26
這標題除了“重大”二字可爭論外 沒什麼問題啊 昨夜那篇標題問題比較大
Suhail Hany avatarSuhail Hany2018-12-29
跟我想的差不多
Frederic avatarFrederic2019-01-01
對topjohnwu來說 確實是重大(?)
Edith avatarEdith2019-01-03
wtf 那這樣全部能存取 /proc 的 OS 都超危險 der
Kristin avatarKristin2019-01-06
日系手遊很討厭,喜歡偵測root,這明明算個人隱私
Brianna avatarBrianna2019-01-08
原Po感想有點錯誤 並非不立馬更新CTS就不會過 而是CTS檢測工具已更新抓此問題 廠商在要提供下回更新時若不修好這問題 會通不過CTS測試導致谷歌不會接受該新韌體
Lydia avatarLydia2019-01-11
要修這問題忒簡單 在某文件填加 “hidepid = 2”搞定
Irma avatarIrma2019-01-13
原來是這樣 想說怎麼怪怪的 怪怪的
Edith avatarEdith2019-01-16
FGO:
Margaret avatarMargaret2019-01-18
中國品牌和中國人創立的品牌都中鏢XDD
Steve avatarSteve2019-01-21
我早就覺得是這樣了,果然沒錯!
Victoria avatarVictoria2019-01-24
在美國念書了?台大資工之光
Andrew avatarAndrew2019-01-26
fgo484那個糞game啊
Genevieve avatarGenevieve2019-01-29
樓上對啊
Tracy avatarTracy2019-01-31
看沒有,能不能再白話一點翻譯?@@
Emma avatarEmma2019-02-03
U11沒事U12+卻中標 負責團隊不一樣?
Catherine avatarCatherine2019-02-05
安卓不意外
Tom avatarTom2019-02-08
台灣之光
Mary avatarMary2019-02-10
可以看出來些廠是互抄code XD
Quintina avatarQuintina2019-02-13
仙子大概連內文都沒看吧 這不只安卓會有
Edith avatarEdith2019-02-16
為什麼S9+獵戶座版的是YES
Megan avatarMegan2019-02-18
每個字都看的懂,組合起來每個字都看不懂
Kumar avatarKumar2019-02-21
沒人理辣椒神獸,幫QQ
Regina avatarRegina2019-02-23
其實好像也不能自己remount /proc
Brianna avatarBrianna2019-02-26
FGO不改善安卓版跑狗問題 把技術用在這地方= =
Ethan avatarEthan2019-02-28
fgo:
Tracy avatarTracy2019-03-03
yo叔又調皮了
Hedy avatarHedy2019-03-05
嗯嗯我剛好也發現了
Ina avatarIna2019-03-08
可以看 proc 算啥重大 bug XD
Charlie avatarCharlie2019-03-11
樓下幫轉西恰版
Lucy avatarLucy2019-03-13
這不是 Linux procfs 預期的預設行為嗎?只是 Android 延用到現在終於控管要改更嚴格了!
Dorothy avatarDorothy2019-03-16
既不是 bug ,更無法稱的上“系統重大漏洞”XD
Suhail Hany avatarSuhail Hany2019-03-18
FGO是佛心優質休閒的好手遊啊 蠻推薦玩的 不需要花
Lucy avatarLucy2019-03-21
這bug只能說打臉Android的安全系統八畢竟Android 7.0以後就開始做禁止 可是這樣就是繞過去了