安卓重大鎖屏密碼漏洞,國(guó)產(chǎn)手機(jī)有幾個(gè)中招了?

2022-11-21 07:58:28來(lái)源:36kr

但還是希望谷歌未來(lái)上上心吧,這么簡(jiǎn)單的漏洞,還能活到了2022......

上周,一條新聞吸引了托尼注意。

只用一張 SIM 卡,1 分鐘不到就能解鎖你的安卓手機(jī)?


(資料圖片僅供參考)

一個(gè)國(guó)外小哥發(fā)現(xiàn),不要刷機(jī),不要電腦連線折騰,也不要 999 的 AK 火麒麟,只需要一張自己準(zhǔn)備的 SIM 卡,就可以解鎖別人的手機(jī)。

要知道這就意味著,如果你的手機(jī)丟了被人撿到,那陌生人可以用它自己的隨便一張 SIM 卡就破解你們鎖屏,數(shù)據(jù)安全形同虛設(shè)。

而且這個(gè) BUG 會(huì)影響到的設(shè)備除了谷歌自家的 Piexl 以外,還包括開(kāi)源的 LineageOS。

刑啊老哥,這空手套白狼的辦法,讓我有了一絲絲犯罪的念頭。。。

咳咳打住,咱們還是先來(lái)看看這哥們是咋操作的吧。

因?yàn)槭謾C(jī)沒(méi)電而發(fā)現(xiàn)的 BUG

整件事情的起因非常簡(jiǎn)單,在小哥經(jīng)過(guò)了長(zhǎng)途跋涉的旅行之后,他的手機(jī)因?yàn)槿彪姸P(guān)機(jī)了,于是就順理成章的充電重啟。

恰巧他的手機(jī)開(kāi)了 SIM 卡鎖,每次重啟手機(jī)或者插拔 SIM 卡后都需要驗(yàn)證。

需要輸入自己設(shè)置的 PIN 碼解鎖,只有三次機(jī)會(huì)▼

更不巧的是,他忘了自己設(shè)置的 PIN 碼,三次機(jī)會(huì)都浪費(fèi)了。

這時(shí)候 SIM 卡就進(jìn)入了一個(gè)“安全鎖定”模式,需要輸入一個(gè)八位的PUK 碼才能解鎖。

同時(shí)它還要求你重新設(shè)置這張 SIM 卡的 PIN 碼。

而如果輸入錯(cuò)了 10 次 PUK 碼,那這張 SIM 卡就會(huì)銷毀。

所以在小哥找到自己的 SIM 卡包裝,輸入 PUK 碼,重置了新的 PIN 碼之后,他終于成功的進(jìn)入了自己手機(jī)的系統(tǒng)。

PUK 碼一般寫在 SIM 卡的包裝卡套上

或者可以打電話或者向營(yíng)業(yè)廳查詢▼

進(jìn)入了自己手機(jī)的系統(tǒng)。。。

發(fā)現(xiàn)問(wèn)題了嘛,在整個(gè)過(guò)程中,他不需要輸入自己手機(jī)鎖屏密碼,就可以解鎖手機(jī)。

但是一般來(lái)說(shuō),手機(jī)在插拔 SIM 卡或者重啟之后,都是要強(qiáng)制你手動(dòng)輸入一次密碼才行的。

一張自己的 SIM 卡,這么簡(jiǎn)單就可以繞過(guò)別人手機(jī)的安全防線?托尼也找出了自己柜子底的 pixel 4a 試了試,按照小哥的教程一頓操作,結(jié)果真的打開(kāi)了。。。

安卓的鎖屏,就這???

此時(shí)已經(jīng)輸入了 PUK 碼,重置 PIN 碼中▼

谷歌的反應(yīng)

按這 BUG 來(lái)說(shuō),那豈不是所有人的安卓設(shè)備都有安全性風(fēng)險(xiǎn)?

認(rèn)識(shí)到這件事嚴(yán)重性的小哥也是第一時(shí)間把漏洞發(fā)給了 Google。

照到他自己的說(shuō)法,這是他迄今為止最簡(jiǎn)單的一次報(bào)告了。。。一共就五個(gè)步驟,兩分鐘不到的時(shí)間就可以復(fù)現(xiàn)。

于是也順便去查了一下谷歌的 “賞金榜單”,依據(jù)谷歌的說(shuō)法,這種高危漏洞能拿到最高 10w 美元的獎(jiǎng)勵(lì)。

果然,比起一個(gè)大膽的想法。。。還是走正規(guī)路子來(lái)錢快。

但谷歌就不一樣了,雖然收到這個(gè)堪稱 “十萬(wàn)火急” 的 Bug ,但它的表現(xiàn)還是一如既往的風(fēng)輕云淡。

開(kāi)口就是 :你這個(gè) Bug 以前有人已經(jīng)匯報(bào)過(guò)了( 雖然我們還沒(méi)修 ),我們不鼓勵(lì)重復(fù)的 Bug 匯報(bào) ”( 10W 美元?jiǎng)e想了!)

除了態(tài)度以外,行動(dòng)也在擺爛,小哥提交 Bug 三個(gè)月后,谷歌依舊沒(méi)有修好這個(gè)問(wèn)題,一直到 9 月的安全補(bǔ)丁更新,小哥發(fā)現(xiàn)自己的問(wèn)題還是能觸發(fā)。。。

期間他自己還跑到谷歌辦公室去了一趟,當(dāng)場(chǎng)給員工當(dāng)場(chǎng)演示此 Bug ,但依舊沒(méi)說(shuō)好什么時(shí)候可以修復(fù)。。。

最后忍無(wú)可忍的小哥給谷歌下了 “ 最后通牒 ”。

你再不修,我就準(zhǔn)備在 10 月 15 號(hào)公布這個(gè)問(wèn)題辣!

從這句話開(kāi)始,谷歌的態(tài)度突然變了,不但改口說(shuō)可以給小哥7w 美元的獎(jiǎng)勵(lì)( 雖然你不是第一個(gè)發(fā)現(xiàn)的人,但是感謝有你我們才開(kāi)始修理這個(gè) Bug ),也開(kāi)始積極溝通修 Bug 的時(shí)間。

最后,終于在 11 月 5 日的安全更新中這個(gè)問(wèn)題得到了修復(fù),漏洞編號(hào) CVE-2022-20465。

我們的手機(jī),大抵可能應(yīng)該也許是更加安全了。

BUG 從哪里來(lái)?

手機(jī)看上去是告一段落了,那這 Bug 到底是個(gè)咋回事呢?

托尼自己也不是非常專業(yè)的程序員,在看了小哥總結(jié) + 谷歌修改的 AOSP 源碼之后,

試著稍微那么理解了一下下,拋磚引玉將給大家看看,感覺(jué)講的不太好的差友,也歡迎在評(píng)論區(qū)補(bǔ)充。

這次谷歌改動(dòng)的地方還挺多的▼

簡(jiǎn)單來(lái)說(shuō)就是在安卓上有個(gè)叫做 “ 安全屏幕 ” 的概念,它包括了我們的鎖屏密碼,我們的指紋數(shù)據(jù)或者是面部數(shù)據(jù),也包括今天的 “ 罪魁禍?zhǔn)?” —— SIM 卡 PIN 碼以及 SIM 卡的 PUK 碼

這些安全屏幕呢,是實(shí)時(shí)更新,覆蓋顯示,就像下圖一樣,雖然我的手機(jī)鎖屏了,但是在插入加了鎖的 SIM 卡之后,SIM 卡 PIN 碼鎖就覆蓋了手機(jī)的密碼鎖。

反應(yīng)有點(diǎn)慢,中間剪了一段加速▼

而當(dāng)一個(gè) “ 安全屏幕 ” 完成了它的歷史使命之后就要被銷毀,就比如說(shuō)我們輸入密碼解鎖屏幕,輸入 SIM 卡的 PIN 碼解鎖手機(jī)SIM 卡鎖。

負(fù)責(zé)銷毀它的函數(shù),叫做 getKeyguardSecurityCallback().dismiss() 函數(shù)( 下面簡(jiǎn)稱 dismiss( ) )

但是到這問(wèn)題出現(xiàn)了,.dismiss() 它雖然負(fù)責(zé)銷毀安全屏幕,可是它不負(fù)責(zé)消除哪一個(gè)安全屏幕。

也就是說(shuō)不論是鎖屏,還是 PUK 鎖,碰上哪個(gè)就會(huì)清理掉哪個(gè)。。。

而偏偏這個(gè)安全屏幕會(huì)處在一個(gè) “ 實(shí)時(shí)更新 ” 的狀態(tài) —— 因?yàn)槭謾C(jī)會(huì)時(shí)不時(shí)檢測(cè) SIM 卡的狀態(tài)。

所以在我們通過(guò) PUK 鎖重置完 SIM 卡 PIN 碼之后,本來(lái)要銷毀 PIN 碼鎖這個(gè)安全屏幕的.dismiss() 函數(shù)可能就會(huì)先撞上 “指紋鎖屏” 或者 “密碼鎖屏” 這個(gè)安全屏幕,然后把它先行銷毀。

啪,我們的手機(jī)就解鎖了。

這就這次漏洞的成因,而安卓后續(xù)的 Bug 修改方式呢則是很簡(jiǎn)單,準(zhǔn)備給 .dismiss() 函數(shù)增加 “ 認(rèn)識(shí)能力 ”。

讓它在銷毀安全屏幕之前能認(rèn)出來(lái)銷毀的是誰(shuí),省的亂殺無(wú)辜。

/

面對(duì) BUG,其它手機(jī)表現(xiàn)怎么樣?

海外的故事告一段落了,Bug 得到了修改,我們的設(shè)備會(huì)更加的安全,發(fā)現(xiàn)問(wèn)題的小哥也收獲了收入。

不過(guò)托尼感覺(jué)比起聽(tīng)原生安卓的故事,大家可能更關(guān)心我們手上的系統(tǒng)表現(xiàn)的怎么樣。

正巧今年新出的這幾臺(tái)手機(jī)我在柜子里吃灰,于是呢就給各位差友簡(jiǎn)單測(cè)試了一波。

手機(jī)的系統(tǒng)都展示在這里了,基本都是基于 安卓/AOSP 12 開(kāi)發(fā)的。

都是剛拿出來(lái)直接測(cè)的,沒(méi)有更新最新補(bǔ)丁▼

按照小哥的方法,托尼一頓操作猛如虎的測(cè)試下來(lái),結(jié)果有點(diǎn)出乎意料。

除了用原生系統(tǒng)的 Pixel,每一臺(tái)手機(jī)都守住了自己的 “安全底線” ,均在這個(gè)問(wèn)題面前幸存了下來(lái)。

可能。。。因?yàn)榇蠹叶际亲约褐貙懥随i屏吧。

所以,這個(gè) Bug 雖然聽(tīng)起來(lái)挺離譜和危險(xiǎn),但是其實(shí)對(duì)咱們應(yīng)該影響不大。

但還是希望谷歌未來(lái)上上心吧,這么簡(jiǎn)單的漏洞,還能活到 2022 。。。

撰文:小陳 編輯:面線

圖片、資料來(lái)源

Accidental $70k Google Pixel Lock Screen Bypasshttps://cs.android.com/android/_/android/platform/frameworks/base/+/18b88655a4d3d70733a9d12f740b6790f9061eaa:packages/SystemUI/src/com/android/keyguard/KeyguardSimPukViewController.java;l=280;drc=a9143bf7bdf0b9c8bd5535485aee802ad0ad54be;bpv=0;bpt=0

Pixel 6 Full Lockscreen Bypass POC —— David Schütz

https://news.ycombinator.com/item?id=33544883

關(guān)鍵詞: 這個(gè)問(wèn)題 什么時(shí)候

責(zé)任編輯:hnmd004