当前位置:静雅生活网 > 数码百科 >

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

导读:换个 SIM 卡,就能解锁别人的手机?!  并且整个解锁过程不超过两分钟。  一位外国小哥偶然间发现了谷歌 Pixel 手机上的这个漏洞:  能够直接绕过手机本身的指纹和密

  换个 SIM 卡,就能解锁别人的手机?!

  并且整个解锁过程不超过两分钟

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  一位外国小哥偶然间发现了谷歌 Pixel 手机上的这个漏洞:

  能够直接绕过手机本身的指纹和密码保护,切换手机卡就能更改密码解锁屏幕。

  严格来说,这个漏洞并非谷歌 Pixel 手机 " 独有 ",而是 Android 系统中的一个 bug,任何基于 Android 搭建的操作系统都可能受到影响。

  例如有网友试了试开源安卓系统LineageOS(刷机党常用系统),就发现同样 " 中招了 ":

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  还有网友在自己的 Android12 系统上试了下这种破解方式,"it works"!

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  不过这还不是最离谱的,更离谱的是这位小哥在向谷歌反馈之后,安全团队隔了近半年才修复这个漏洞。

  在说小哥和谷歌关于这个漏洞的 " 拉锯战 " 之前,我们先回过头来看看这是个什么样的漏洞?

  2 分钟内就能破解手机锁屏

  小哥 " 贴心 " 地上传了以破坏者视角破解漏洞全过程的视频,整个过程花了不到两分钟

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  话不多说,直接来看。

  首先用错误的指纹和手机密码解锁手机,直至锁定。

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  发现这个大 Bug 之后,小哥向谷歌(Android VRP)提交了这个内部漏洞报告,也是从这时开始,小哥和谷歌的 " 拉锯战 " 开始了。

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  他仔细查看了 Android 和谷歌的设备安全奖励计划,发现自己最高可以获得 10 万美金的奖励,于是便申请了。

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  不过在报告提交一个月后,小哥收到了 Android 安全团队的一份邮件:

  Android 安全团队认为,这个问题另一位外部研究人员之前已经报告过了。

  对此小哥认为,这份回邮的言外之意就是,最高十万美金的奖励他一分钱都拿不到。

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  时间又过了一个月,小哥收到安全团队的邮件,对方称漏洞还在修复中……

  又又过了一个月,九月谷歌发布了新的补丁,但这个 Bug 依旧没有修复……

  不过小哥也不是轻言放弃的人,他直接来到谷歌办公室,用谷歌 Pixel 手机演示了一下这个漏洞。

  而后他给安全团队定了个漏洞修复期限:10 月 15 日之前。而对方的回复也很干脆:10 月份这个 Bug 修不好!

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  在拉扯一番后,小哥和谷歌建立了联系,能够实时得到漏洞修复的反馈。

  谷歌方也确定了修复工作的具体时间:11 月份进行,现在这个漏洞已于 11 月 5 日谷歌的安全更新中被解决。

  值得一提的是,关于提交漏洞的奖励,小哥最终也拿到了 7 万美金,不过谷歌对此还做出了一番解释,用小哥的原话来说,就是:

  尽管我的报告是重复的,但正是因为我的报告,他们才开始着手修复。正因为如此,他们决定破例一次,并奖励给我 70000 美元。

  小哥和谷歌的完整对话链接附在文末了,感兴趣的伙伴可以自行查看。(手动狗头)

  究竟为什么会出现这样的漏洞?

  现在,谷歌的安卓工程师们终于把这个漏洞给补上了。

  然而让小哥惊讶的是,bug 修复远不止他想象的 " 一行代码补丁 " 那么简单。

  从提交的修改情况来看,光是要改动的文件数量,就达到 12 个:

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  所以这个漏洞究竟是怎么出现的?

  简单来说,Android 系统中有一个叫做 " 安全屏幕 "(security screen)的概念,其中包含两种东西,一种是 PIN、指纹、密码等各种直接解锁密保的屏幕操作,另一种是 SIM PIN 和 SIM PUK 等各种解锁手机锁定状态的操作。

  这些操作被放在一个栈(stack)中。

  正常解锁谷歌手机时,直接用 PIN、指纹或密码都可以,但不能超过 3 次,否则就会被锁定。

  但如果忘记密码,手机(在输入 3 次错误密码后)被强制锁定了,同时 SIM PIN 条目可见,它就会被放置在其他屏幕解锁操作之上,用来让你解除手机的锁定状态。

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  栈原理

  这时候,如果使用 SIM 卡自带的 PUK 密码,就能通过一个叫 "PUK 重置组件 " 的模块调用.dismiss ( ) 函数,将手机锁定解除,并继续显示栈下面的其他屏幕解锁操作,在小哥的案例中是指纹锁屏。

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  就是这个函数

  这里注意,.dismiss ( ) 函数可不是一个 " 专人专用 " 的函数,它并不只会解除 SIM 卡的手机锁定屏幕,连 PIN、密码和指纹之类的正常锁屏也能解锁……

  这就导致它极容易受到竞态条件影响,一旦两个线程执行顺序出现一点儿误差,就可能导致屏幕解锁出现问题。

  竞态条件即两个或者以上进程或者线程并发执行时,其最终的结果依赖于进程或者线程执行的精确时序

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  举个栗子,如果在 "PUK 重置组件 " 的模块调用 .dismiss ( ) 函数之前,就有操作改变了当前的安全屏幕,那么 .dismiss ( ) 函数就可能误解锁指纹锁屏。

  关键来了,由于手机 SIM 卡状态是随时更新的(系统一直在监视 SIM 卡状态),因此如果 SIM 卡状态发生变化,系统也会更新当前的安全屏幕。

  所以一旦 "PUK 重置组件 " 成功调用了 .dismiss ( ) 函数,它就会在解锁 PUK 屏幕之前,直接先解锁了指纹锁屏

  根据谷歌公开的漏洞报告,它在 Android 10 到 Android 13 系统中都可能出现:

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  当然,也有网友测试发现,Android 11 似乎不受影响,而是在 Android 12 中出现了。

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  还有网友发现三星手机也 " 逃过一劫 ":

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  现在,安卓工程师们重构了 .dismiss ( ) 函数,简单来说就是给它打个小小的补丁,让它只能解锁带有 "SimPuk" 标记的安全屏幕(也就是只能解除手机锁定屏幕)。

  小哥本人对此没有异议,但也有网友认为,这不是这次漏洞的最优解:

安卓锁屏不到 2 分钟被破解,仅需换一张 SIM 卡

  永远不要假设任何 bug 都只有一种特殊情况。如果不解决代码的根本逻辑,灾难就一直存在。

  你的安卓手机中出现了这个 bug 吗?

  对话传送门:

  feed.bugs.xdavidhu.me

  参考链接:

   [ 1 ] https://bugs.xdavidhu.me/google/2022/11/10/accidental-70k-google-pixel-lock-screen-bypass/

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

版权声明:本文部分来自互联网,由小编精心所写,本文地址:http://www.zhubian88.cn/smbk/69592.html,如需转载,请注明出处!

联系我们

在线咨询:点击这里给我发消息

微信号:weixin888

工作日:9:30-18:30,节假日休息