Android 中的漏洞可让您绕过屏幕锁定

Android 平台中已发现一个漏洞(CVE-2022-20465),该漏洞允许您通过重新排列 SIM 卡并输入 PUK 码来禁用屏幕锁定。 禁用锁定的功能已在 Google Pixel 设备上得到证实,但由于该修复会影响主要 Android 代码库,因此该问题很可能会影响其他制造商的固件。 该问题已在 70 月发布的 Android 安全补丁中得到解决。 引起人们注意这个问题的研究人员获得了谷歌 XNUMX 万美元的奖励。

该问题是由于输入PUK码(个人解锁密钥)后解锁处理不正确造成的,PUK码用于恢复多次错误输入PIN码后被锁定的SIM卡的操作。 要禁用屏幕锁定,只需将 SIM 卡安装到具有 PIN 码保护的手机中即可。 更换受 PIN 码保护的 SIM 卡后,屏幕上首先会显示 PIN 码请求。 如果 PIN 码输入错误 XNUMX 次,SIM 卡将被锁定,之后您将有机会输入 PUK 码解锁。 事实证明,正确输入PUK码不仅可以解锁SIM卡,而且可以绕过屏幕保护程序,直接进入主界面,而无需使用主密码或图案确认访问。

该漏洞是由 KeyguardSimPukViewController 处理程序中检查 PUK 码的逻辑错误引起的,该处理程序负责显示附加身份验证屏幕。 Android 使用多种类型的身份验证屏幕(用于 PIN、PUK、密码、图案、生物识别身份验证),并且当需要执行多项检查(例如,需要 PIN 和图案时)时,会顺序调用这些屏幕。

如果正确输入 PIN 码,则会触发第二阶段验证,要求您输入主解锁码,但当您输入 PUK 码时,将跳过此阶段,无需输入主密码或图案密钥即可授予访问权限。 下一个解锁阶段被丢弃,因为在调用 KeyguardSecurityContainerController#dismiss() 时,预期的验证方法和通过的验证方法之间没有进行比较,即处理器认为验证方式没有改变,PUK码验证完成即表示权限确认成功。

该漏洞是偶然发现的——用户的手机没电了,在充电并开机后,他在输入PIN码时多次出错,之后他用PUK码解锁,但奇怪的是系统没有询问用于解密数据的主密码,之后它冻结并显示消息“Pixel 正在启动...”。 事实证明用户很细心,决定弄清楚到底发生了什么,并开始尝试以不同的方式输入PIN和PUK码,直到他在更换SIM卡后不小心忘记重新启动设备并访问环境而不是冷冻。

特别令人感兴趣的是谷歌对漏洞公告的反应。 有关该问题的信息已于 90 月发出,但直到 XNUMX 月研究人员仍无法获得明确答案。 他认为这种行为是因为他不是第一个报告此错误的人。 XNUMX 月份就出现了对出现问题的怀疑,当时安装了 XNUMX 天后发布的固件更新后问题仍未得到纠正,而当时规定的保密期限已经到期。

由于所有试图找出有关该问题的已发送消息的状态的尝试都只会导致自动和模板回复,因此研究人员尝试亲自联系 Google 员工以澄清情况并准备修复程序,甚至在 Google 伦敦办事处展示了该漏洞。 只有在此之后,消除漏洞的工作才得以继续进行。 在分析过程中发现,之前已经有人报告了这个问题,但谷歌决定破例,并对再次报告该问题给予奖励,因为正是由于作者的坚持,这个问题才被注意到。

来源: opennet.ru

添加评论