主要的 Android 漏洞未被修復……將近六個月!
2022 年夏天,網路安全專家戴維·舒茨 (David Schutz) 在旅途中度過了漫長的一天後回家。他的 Google Pixel 6 智能手機快沒電了:當大衛終於回到家時,電量已降至 1%。幸運的是,手機在發送消息的過程中關機了。Schutz 找到他的充電器並重新打開手機,但無法繼續發短信——他必須輸入 SIM PIN 碼。旅行結束後,大衛筋疲力盡,輸錯了 3 次 PIN 碼。這意味著輸入另一個密碼——PUK。完成後,大衛被邀請用指紋解鎖手機。但是指紋識別出來後,就卡住了。
重啟手機後,指紋解鎖通常不是一個選項。需要解鎖碼。來源。
其他人可能會將這些奇怪的事件歸結為軟體故障,然後重新啟動手機,然後繼續他們的生活。但是 David 是一位對行為異常的軟體和設備有著敏銳嗅覺的研究員,他決定弄清楚為什麼他的手機在重啟後不再需要解鎖碼。在幾次不成功的嘗試之後,David 意識到在這種情況下沒有必要重新啟動。拿一個上鎖的智能手機,取出 SIM 卡,重新插入,輸入錯誤的 PIN 碼三次,輸入 PUK 碼……會發生什麼?原來你可以完全繞過手機的鎖屏!舒茨在他的博客上詳細介紹了這一發現,但如果您認為 Google 會迅速修復它,請再想一想。這個巨大的安全漏洞威脅著大量運行 Android(版本 11 到 13)的智能手機將近半年 – 從 6 月到 11 月!
使用SIM卡繞過鎖屏的實際演示。
什麼?!
從本質上講,該漏洞可以讓某人繞過鎖定屏幕並在不知道密碼的情況下訪問手機上的所有數據。根本不需要復雜的攻擊機制。無需將任何外部設備連接到智能手機或搜索軟體中的新漏洞。你只需取出並重新插入 SIM 卡(攻擊者可以使用自己的),輸入錯誤的 PIN 三次,輸入 PUK 碼,更改 PIN——你就可以訪問手機了。唯一的條件是手機必須開機並且之前至少被機主解鎖過一次。
易受攻擊的軟體位於 Android 的自由分發部分——任何人都可以看到源代碼。這讓我們了解了這樣一個相當簡單的錯誤是如何出現的。事實上,Android 智能手機有多個鎖屏,包括輸入密碼的屏幕、掃描指紋的提示或輸入 SIM PIN 碼的窗口。成功通過其中一項驗證將觸發下一個鎖屏出現,無論是哪個。整個系統運行良好,除了 PUK 碼鎖屏。輸入 PUK 導致“關閉鎖屏”功能被調用兩次。手機沒有顯示指紋掃描屏幕,而是解鎖了。通過對 Android 代碼進行一些相當大的修改,解決了這個問題,這導致每個鎖定屏幕都被獨立控制。
官僚主義與安全
那麼,為什麼要用將近六個月的時間來消除這個嚴重的漏洞呢?舒茨通過GOOGLE的漏洞賞金服務發送了漏洞描述。根據計劃規則,如果發現繞過多個(甚至所有)設備鎖屏的漏洞,研究人員可以獲得高達 100,000 美元的收入。但大衛沒有收到現金,而是收到了數週的沉默,然後……他的提交被拒絕為重複——其他人已經將這個漏洞通知了GOOGLE。
大衛聽天由命地失去了當之無愧的回報。與此同時,9 月來了(自他的報告以來已經持續了三個月),他確信該漏洞將在下一組補丁中得到修復。但不是。安裝了 9 月更新後,他的手機仍然允許他使用 SIM 卡技巧繞過鎖定。巧合的是,在 9 月,GOOGLE為安全研究人員舉辦了一場活動。在那裡,David 親自向公司開發人員演示了該漏洞。那是他們終於靈光一閃的時刻,這個漏洞在 Android 的 11 月更新中得到了修補。
即使早先的錯誤報告已經存在,GOOGLE也沒有做出任何反應。2022 年 6 月 David 的消息也沒有任何回應。只有與開發人員面對面才能關閉漏洞。最終,舒茨因自己的努力獲得了 70,000 美元的報酬。
安全的代價
作為智能手機用戶,我們希望開發人員至少優先處理嚴重錯誤並迅速關閉。這個關於 Android 智能手機上的鎖屏繞過的故事表明,情況並非總是如此。一切都開始順利:幸運的是,該漏洞是由一位白帽研究員發現的,他沒有在暗網上出售它,因為它可能被用於邪惡目的;相反,他通知了公司。GOOGLE只需要迅速關閉這個漏洞,但這就是問題開始的地方。對於通過錯誤賞金計劃與外部安全專家合作的組織來說,它值得深思:內部是否分配了足夠的資源來及時修復錯誤?