????????我發(fā)現(xiàn)了一個(gè)影響似乎所有谷歌Pixel手機(jī)的漏洞,如果你把任何鎖定的Pixel設(shè)備給我,我可以把它解鎖還給你。這個(gè)漏洞剛剛在2022年11月5日的安全更新中得到修復(fù)。
????????該問題允許有物理權(quán)限的攻擊者繞過鎖屏保護(hù)(指紋、PIN等),并獲得對(duì)用戶設(shè)備的完全訪問權(quán)。該漏洞被追蹤為CVE-2022-20465,它也可能影響其他安卓供應(yīng)商。你可以在feed.bug.xdavidhu.me找到我的補(bǔ)丁公告和我發(fā)給谷歌的原始漏洞報(bào)告。
????????????????????????????????????????????????????????????????第一章
????????忘記我的SIM卡密碼
????????我真的很高興這個(gè)漏洞現(xiàn)在得到了修復(fù)。這是我目前發(fā)現(xiàn)的最有影響的漏洞,對(duì)我來說,它越過了一條線,我真的開始擔(dān)心修復(fù)的時(shí)間表,甚至只是擔(dān)心自己把它作為一個(gè) "秘密"。我可能反應(yīng)過激了,但我的意思是不久前聯(lián)邦調(diào)查局還在為幾乎同樣的事情與蘋果公司爭(zhēng)吵。
????????我在旅行24小時(shí)后發(fā)現(xiàn)了這個(gè)錯(cuò)誤。回到家時(shí),我的Pixel 6只有1%的電量。我正在發(fā)送一系列短信的時(shí)候,它就死了。我想這是某種玩笑,我無法正常完成,所以感覺相當(dāng)尷尬。我急忙跑到充電器旁,把手機(jī)重新啟動(dòng)。
????????Pixel啟動(dòng)后要求輸入SIM卡的PIN碼。我通常知道這個(gè)密碼,但這次我沒能正確記住。我希望自己能搞清楚,所以我嘗試了幾種組合,但最后我輸入了3個(gè)錯(cuò)誤的PIN碼,SIM卡自己鎖住了?,F(xiàn)在它需要PUK碼來解鎖并再次工作。
????????我跳進(jìn)衣柜,不知怎么找到了SIM卡的原始包裝,我刮開了背面,得到了PUK碼。我在Pixel上輸入PUK碼,它要求我設(shè)置一個(gè)新的PIN。我照做了,成功完成這一過程后,我進(jìn)入了鎖屏狀態(tài)。但有一點(diǎn)不對(duì)勁。
????????這是一次新的啟動(dòng),顯示的不是通常的鎖屏圖標(biāo),而是指紋圖標(biāo)。它接受了我的手指,這不應(yīng)該發(fā)生,因?yàn)樵谥貑⒑?,你必須至少輸入一次鎖屏密碼才能解密設(shè)備。
??????? 在接受我的手指后,它卡在一個(gè)奇怪的 "Pixel正在啟動(dòng)...... "信息上,并停留在那里,直到我再次重啟它。
????????我在心里指出,這很奇怪,這可能有一些安全方面的影響,所以我以后應(yīng)該看看。說實(shí)話,我不太喜歡在我沒有明確尋找的時(shí)候發(fā)現(xiàn)這樣的行為,因?yàn)楫?dāng)這種情況發(fā)生時(shí),我很容易感到有強(qiáng)迫性的責(zé)任去調(diào)查。我開始覺得我必須確保在引擎蓋下沒有別人漏掉的嚴(yán)重問題。在這種情況下,嗯,有的。
????????????????????????????????????????????????????????????????? 第二章
????????剛剛發(fā)生了什么?
????????正如我向自己承諾的那樣,第二天我又開始關(guān)注這一行為。在重啟手機(jī),三次輸入錯(cuò)誤的PIN碼,輸入PUK,并選擇新的PIN碼后,我得到了同樣的 "Pixel正在啟動(dòng)...... "狀態(tài)。
????????我在這個(gè)過程中玩了多次,有一次我忘了重啟手機(jī),只是從正常的解鎖狀態(tài)開始,鎖定設(shè)備,熱插拔SIM卡托盤,并進(jìn)行SIM卡密碼重置過程。我甚至沒有意識(shí)到我在做什么。
????????像以前一樣,我輸入了PUK碼并選擇了一個(gè)新的PIN碼。這一次,手機(jī)閃了一下,我進(jìn)入了我的個(gè)人主屏幕。什么,它之前是被鎖住的,對(duì)嗎?
????????這真是令人不安的怪事。我又做了一次。鎖定手機(jī),重新插入SIM卡盤,重置PIN碼......而我又一次出現(xiàn)在主屏幕上。什么?
????????這時(shí)我的手開始發(fā)抖。這他媽是怎么回事?它自己解鎖了?
????????在我冷靜下來后,我意識(shí)到,這確實(shí)是一個(gè)該死的全鎖屏繞過,在完全打過補(bǔ)丁的Pixel 6上。我拿起我的舊Pixel 5,也試圖在那里重現(xiàn)這個(gè)錯(cuò)誤。它也成功了。
????????下面是解鎖過程的實(shí)際情況。
????????由于攻擊者可以只帶他/她自己的PIN鎖的SIM卡,所以除了物理訪問外,不需要其他的東西來進(jìn)行利用。攻擊者只需調(diào)換受害者設(shè)備中的SIM卡,然后用一張有PIN鎖的SIM卡進(jìn)行攻擊,而攻擊者知道正確的PUK碼。
????????????????????????????????????????????????????????????????????????第三章
????????谷歌的回應(yīng)
????????我提交了報(bào)告。我認(rèn)為這是我目前最短的報(bào)告。只花了5個(gè)簡(jiǎn)單的步驟。
???????? 谷歌(更確切地說,是安卓的VRP)在37分鐘內(nèi)就分流并提交了一個(gè)內(nèi)部錯(cuò)誤。這真是令人印象深刻。不幸的是,在這之后,回復(fù)的質(zhì)量和頻率開始下降。
在這個(gè)bug的有效期內(nèi),由于官方bug ticket的反應(yīng)不是很好,我有時(shí)會(huì)從Googlers那里得到一些半官方的信息。其實(shí)我更愿意只在官方渠道獲得更新,也就是bug ticket,我可以公開,但是因?yàn)槲液鸵恍﹩T工聊天,所以我撿到了一些零碎的東西。
?????????? 另外,這里值得一提的是,在報(bào)告之前,我查看了安卓VRP獎(jiǎng)勵(lì)表,其中指出,如果你報(bào)告的鎖屏繞過會(huì)影響多個(gè)或所有[Pixel]設(shè)備,你最多可以獲得10萬美元的賞金。由于我勾選了所有必要的方框,所以我認(rèn)為這個(gè)漏洞很有可能真的獲得10萬美元的獎(jiǎng)勵(lì)。
????????在它被分流后,基本上有一個(gè)月的時(shí)間是沉默的。我聽說它實(shí)際上可能作為一個(gè)重復(fù)的問題被關(guān)閉。顯然,有人已經(jīng)事先報(bào)告了它,盡管是我的報(bào)告使他們真正采取了行動(dòng)。在處理最初的報(bào)告時(shí)似乎出了問題。事實(shí)上,在報(bào)告31天后,我醒來時(shí)看到了一封自動(dòng)郵件,說 "安卓安全團(tuán)隊(duì)認(rèn)為這是一個(gè)重復(fù)的問題,之前是由另一個(gè)外部研究人員報(bào)告的。" 這有點(diǎn)像簽名式的Bug賞金時(shí)刻,一個(gè)Bug從10萬美元變成了0美元。我真的不能做什么,只能接受這個(gè)Bug現(xiàn)在是重復(fù)的事實(shí),不會(huì)支付。
????????在我的報(bào)告之后,差不多兩個(gè)月過去了,只是一片寂靜。在第59天,我呼喚該票,要求更新狀態(tài)。我得到了一個(gè)模板回復(fù),說他們?nèi)栽谶M(jìn)行修復(fù)工作。
????????快進(jìn)到九月,我的報(bào)告三個(gè)月后。我當(dāng)時(shí)在倫敦,參加谷歌的錯(cuò)誤獵手活動(dòng),名為ESCAL8。2022年9月的補(bǔ)丁剛剛出來,我更新了我的手機(jī),有一天晚上我在酒店房間里試圖重現(xiàn)這個(gè)錯(cuò)誤。我希望他們可能已經(jīng)修復(fù)了它。沒有,我仍然能夠解鎖手機(jī)。
????????這次酒店房間事件真的把我嚇壞了。我覺得我對(duì)這個(gè)問題的擔(dān)心和關(guān)心程度遠(yuǎn)遠(yuǎn)超過了谷歌本身。這不應(yīng)該是這樣的。即使我是反應(yīng)過度。因此,那天晚上我開始聯(lián)系和我們一起參加活動(dòng)的其他谷歌員工。
????????第二天,我向許多人解釋了我的情況,我甚至在谷歌的辦公室里用一些Pixels做了一個(gè)現(xiàn)場(chǎng)演示。那是一種體驗(yàn)。我們沒有SIM卡彈出工具。首先,我們?cè)噲D使用針頭,不知怎的,我的手指被割傷了多處,我的手開始流血。我讓谷歌的工程師給我的手指貼了創(chuàng)可貼。(還有誰能這么說呢?)由于針頭不起作用,我們開始四處打聽,一位非常好心的女士把她的耳環(huán)給了我們,讓我們用它試試。它起作用了! 我們交換了SIM卡,并設(shè)法在一些困難中解鎖了設(shè)備?,F(xiàn)在我感覺好多了,人們似乎在關(guān)心這個(gè)問題。
????????我把披露的最后期限定在10月15日,但安卓的VRP團(tuán)隊(duì)回應(yīng)說,這個(gè)錯(cuò)誤在10月還不會(huì)被修補(bǔ)。他們的目標(biāo)是12月??紤]到影響,這對(duì)我來說似乎太遠(yuǎn)了。我決定堅(jiān)持我的十月最后期限。
????????在與一些Googlers討論了這個(gè)10月的最后期限后,Android VRP團(tuán)隊(duì)的一名成員親自評(píng)論了這個(gè)bug ticket,并要求我建立一個(gè)電話來討論這個(gè)bug,并分享反饋。我們和多人進(jìn)行了一次見面電話,他們非常好,聽了我的整個(gè)故事,說我被蒙在鼓里好幾個(gè)月,只得到模板回復(fù)(即使是10萬美元->0美元的重復(fù)),總體感覺我比谷歌更關(guān)心這個(gè)錯(cuò)誤。他們說,現(xiàn)在計(jì)劃在11月而不是12月進(jìn)行修復(fù)。不過,我的最后期限還是定在了10月。
????????在我們通話的兩周后,我收到了一條新消息,證實(shí)了我原來的信息。他們說,盡管我的報(bào)告是重復(fù)的,但只是因?yàn)槲业膱?bào)告,他們才開始進(jìn)行修復(fù)工作。由于這個(gè)原因,他們決定破例,對(duì)鎖屏繞過的人獎(jiǎng)勵(lì)7萬美元。我也決定(甚至在懸賞之前),我太害怕了,不敢真正放出活的bug,而且由于修復(fù)的時(shí)間不到一個(gè)月,反正也不值得。我決定等待修復(fù)的到來。
????????你可以在feed.bug.xdavidhu.me上閱讀完整的對(duì)話。
????????總而言之,盡管這個(gè)bug一開始對(duì)我這個(gè)黑客來說是一個(gè)不太好的經(jīng)歷,但在我開始足夠大聲地 "尖叫 "之后,他們注意到了,并且真的想糾正出錯(cuò)的地方。希望他們也能公平地對(duì)待原始報(bào)告人。最后,我認(rèn)為谷歌做得很好,雖然修復(fù)的時(shí)間對(duì)我來說仍然很長(zhǎng)。
????????但我會(huì)讓你來評(píng)判它。
??????????????????????????????????????????????????????????? 第四章
????????是什么導(dǎo)致了這個(gè)錯(cuò)誤?
????????由于Android是開源的,修復(fù)這個(gè)問題的提交以及所有的代碼修改都是公開可見的。
????????當(dāng)我第一次看到這個(gè)提交時(shí),首先讓我感到驚訝的是改變的文件數(shù)量。我之前以為這個(gè)錯(cuò)誤只會(huì)有一個(gè)簡(jiǎn)單的修正,即刪除負(fù)責(zé)觸發(fā)解鎖的錯(cuò)誤的一行代碼。但事實(shí)并非如此簡(jiǎn)單。
????????在閱讀了提交信息和代碼修改之后,我想我能夠大致了解在引擎蓋下發(fā)生了什么。請(qǐng)記住,我不是一個(gè)安卓工程師,所以我想保持這個(gè)高水準(zhǔn)。
????????看起來,在安卓系統(tǒng)中,有一個(gè) "安全屏幕 "的概念。一個(gè)安全屏幕可以是多種東西。PIN輸入屏幕,指紋掃描屏幕,密碼輸入屏幕,或者,在我們的案例中,SIM PIN和SIM PUK輸入屏幕。
????????這些安全屏幕可以相互 "疊加"。因此,舉例來說,當(dāng)手機(jī)被鎖定,并且SIM PIN輸入是可見的,它有一個(gè)SIM PIN安全屏幕在一個(gè) "指紋安全屏幕 "之上。
????????當(dāng)SIM PUK被成功重置時(shí),一個(gè).dismiss()函數(shù)被 "安全屏幕堆棧 "上的PUK重置組件調(diào)用,導(dǎo)致設(shè)備取消當(dāng)前的安全屏幕,并顯示堆棧中 "在其之下 "的安全屏幕。在我們的例子中,這是一個(gè)指紋安全屏幕。
????????由于.dismiss()函數(shù)只是解除了當(dāng)前的安全屏幕,它很容易受到競(jìng)賽條件的影響。想象一下,如果在PUK重置組件進(jìn)入.dismiss()調(diào)用之前,后臺(tái)有什么東西改變了當(dāng)前的安全屏幕,會(huì)發(fā)生什么?當(dāng)PUK組件最終調(diào)用.dismiss()時(shí),它是否會(huì)解雇一個(gè)不相關(guān)的安全屏幕?
????????這似乎正是所發(fā)生的事情。系統(tǒng)的某些其他部分在后臺(tái)監(jiān)控SIM卡的狀態(tài),當(dāng)它檢測(cè)到一個(gè)變化時(shí),它就會(huì)更新哪個(gè)安全屏幕是當(dāng)前激活的。似乎這個(gè)后臺(tái)組件將正常的例如指紋屏幕設(shè)置為激活的安全屏幕,甚至在PUK組件能夠進(jìn)入自己的.dismiss()函數(shù)調(diào)用之前。當(dāng)PUK組件調(diào)用.dismiss()函數(shù)時(shí),它實(shí)際上是在解雇指紋安全屏幕,而不是像它最初設(shè)想的那樣,只解雇PUK安全屏幕。而在指紋安全屏幕上調(diào)用.dismiss()則會(huì)導(dǎo)致手機(jī)解鎖。
????????安卓工程師似乎決定重構(gòu).dismiss()函數(shù),并使其需要一個(gè)額外的參數(shù),調(diào)用者可以指定它想解雇的安全屏幕類型。在我們的例子中,PUK組件現(xiàn)在明確地調(diào)用.dismiss(SecurityMode.SimPuk),以只解除類型為SimPuk的安全屏幕。如果當(dāng)前激活的安全屏幕不是一個(gè)SimPuk屏幕(因?yàn)榭赡苡幸恍┖笈_(tái)組件改變了它,就像我們的例子一樣),那么解雇函數(shù)就不會(huì)做任何事情。
????????在我看來,這似乎是一個(gè)相當(dāng)優(yōu)雅和穩(wěn)健的解決方案,可以抵御這種情況,以及未來的競(jìng)賽條件。我沒有想到會(huì)因?yàn)檫@個(gè)bug在安卓系統(tǒng)中引起這么大的代碼變化。文章來源:http://www.zghlxwxcb.cn/news/detail-501351.html
原文:Accidental $70k Google Pixel Lock Screen Bypass - bugs.xdavidhu.me文章來源地址http://www.zghlxwxcb.cn/news/detail-501351.html
到了這里,關(guān)于安卓手機(jī)丟了,危險(xiǎn)了!意外的7萬美元的谷歌Pixel繞過鎖屏的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!