換個SIM卡,能解鎖別人的手機嗎?

整個解鎖過程不超過兩分鐘。

國外網絡安全研究員偶然機會 David Schütz繞過安卓手機的鎖屏方法非常簡單,任何拿到手機的用戶都可以解開手機。

整個過程只需要五個簡單的步驟,大約兩分鐘。

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖

雖然谷歌這個問題已經發布了。Android 更新前,鎖屏漏洞持續了五個多月。

Schütz他是自己的Pixel 6 電池沒電,輸錯 3 次 PIN 并使用 PUK(個人解鎖密鑰)代碼恢復鎖定 SIM 卡后,發現了這個漏洞。

令他驚訝的是,解鎖了 SIM 并選擇新的 PIN 代碼后,設備不需要輸入鎖屏密碼,而只需要掃描指紋。

出于安全原因,Android 重新啟動時,設備總是需要輸入鎖屏密碼或圖案,因此直接解鎖指紋是不正常的。

Schütz當他試圖在不重啟設備的情況下重現漏洞時,他認為他也可以繞過指紋提示直接進入主屏幕。

一般來說,利用漏洞主要有五個步驟。

1.為禁止鎖定設備上的生物特征認證提供三個錯誤指紋;

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖1

2.設備中的 SIM 卡與設置了 PIN 由代碼攻擊者控制 SIM 卡熱交換;

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖2

提示輸入錯誤 SIM 三次卡密碼,鎖定 SIM 卡;

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖3

4.設備提示用戶輸入 SIM 個人解鎖密鑰 (PUK) 碼,這是唯一的 8 用于解鎖的位數 SIM 卡;

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖4

5.控制攻擊者 SIM 輸入新的 PIN 碼。

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖5

安全漏洞影響廣泛,幾乎所有未更新2022年11月補丁的補丁都在運行 Android 10、11、12 、13 手機版本受到影響,這是一個難以想象的數量。

雖然這個漏洞的使用需要得對方的手機,但它仍然會產生巨大的影響,特別是對虐待他人、調查和丟失手機的用戶。

2022年6月, Schütz 這個安全漏洞向谷歌報告,編號 CVE ID CVE-谷歌直到2022年11月7日才正式公布漏洞修復補丁。

另外,由于這個安全漏洞, Schütz 谷歌獲得了7萬美元的高額獎勵。

現在,谷歌的安卓工程師終于彌補了這個漏洞。

但令人驚訝的是,bug修復遠不止他想象的一行代碼補丁。

根據提交的修改情況,僅需要更改的文件數量就達到12份:

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖6

那么這個漏洞到底是怎么出現的呢?

簡單來說,Android有一個系統叫安全屏(security screen)概念包括兩件事,一件是PIN、各種直接解鎖密保的屏幕操作,如指紋和密碼,另一種是SIM PIN和SIM PUK解鎖手機鎖定狀態等各種操作。

這些操作被放在一個棧里(stack)中。

正常解鎖谷歌手機時,直接用PIN、指紋或密碼都可以,但不能超過3次,否則會被鎖定。

但是如果忘記了密碼,手機(輸入三次錯誤密碼后)被迫鎖定,同時SIM PIN可以看出,它將被放置在其他屏幕解鎖操作上,以解除手機的鎖定狀態。

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖7

此時,如果使用SIM卡自帶的PUK密碼可以通過一個名字PUK重置組件模塊調用.dismiss()函數,解除手機鎖定,繼續顯示棧下其他屏幕解鎖操作,在弟弟的情況下是指紋鎖屏。

這里注意,.dismiss()函數不是專人專用函數,不僅會解除SIM卡的手機鎖定屏幕,連接PIN、正常的鎖屏,如密碼和指紋,也可以解鎖……

這使得它很容易受到競爭條件的影響線程執行順序有一點誤差,可能會導致屏幕解鎖問題。

舉個栗子,如果是PUK重置組件模塊調用.dismiss()函數前,操作改變了當前的安全屏幕,所以.dismiss()函數可能會誤解鎖指紋鎖屏。

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖8

因為手機,關鍵來了SIM卡狀態隨時更新(系統一直在監控SIM卡狀態),所以如果SIM卡狀態發生變化,系統將更新當前的安全屏幕。

所以一旦“PUK重置組件成功調用.dismiss()函數會解鎖PUK直接解鎖指紋鎖屏前的屏幕!

根據谷歌公開的漏洞報告,它在Android 10到Android 可能出現在13系統中。

現在,安卓工程師已經重構了.dismiss()函數,簡單來說就是給它一個小補丁,讓它只能用SimPuk標記的安全屏幕(即只能解除手機鎖定屏幕)。

永遠不要假設任何事情bug只有一種特殊情況。如果不解決代碼的基本邏輯,災難將永遠存在。

萬能破解鎖屏圖案oppo萬能破解鎖屏圖案插圖9