首页»版块 更多荣耀手机 荣耀X40系列 浅谈底层固件安全性——强解BL,隐藏ID机等背后的真相( ...

浅谈底层固件安全性——强解BL,隐藏ID机等背后的真相(二)

[复制帖子标题和链接]

9252

荣耀粉丝212674382  LV7  发表于 2022-10-16 13:25:02 安徽 来自:浏览器
首先他利用了BootROM漏洞获取了U-Boot加密密钥,禁用了BL2的的ARB(Anti-rollback防回滚)检查,禁用了BL33的镜像验证,最后利用获取的密钥加密了修改好的U-boot镜像,最后重启,再次利用BootROM漏洞加载修改后的BL2,然后通过USB加载处理好的U-boot镜像,最后成功启动了Ubuntu系统。
另一个人利用了这个BootROM漏洞,开发了Chromecast with Google TV解锁BL工具,这是项目地址

[链接]查看链接

原理是修改env分区对应的比特位。

图文中还有一些名词没有解释清楚,还有一些厂商的应对措施,安全建议和现状,在以下做出补充。

eFuse和QFUSE:除了高通的EFUSE,都是指SoC内部的电子熔丝,一旦烧写就无法变更或擦除,一个SoC内有多个熔丝,高通的EFUSE基于RPMB实现,可以在TEE内更改,是非永久性的。QFUSE等同于eFuse,只不过QFUSE是高通的叫法。

RPMB:具体解释可以利用搜索引擎,我在某个帖子的热评里有详细的解释

[链接]查看链接

简单来说,RPMB具有防篡改,防伪造,防重放功能,外界无法写入数据到RPMB,只有本机SoC可以写入,SoC可以确保从RPMB里读取的数据不是攻击者伪造的,也不是之前读取过的数据,可以保证时效性,具有防重放特性。像各种序列号,各种证书,各种加密文件系统的元数据,BL锁状态,自定义信任根(刷入第三方ROM后锁定BL,只有部分机型支持),查找手机相关数据(激活锁)等会放入RPMB。

KeyMaster:安卓系统上用于存储和验证各种凭据的服务,如锁屏密码,帐户凭据等。可以运行在TEE或者SE中。

SE(Secure Element):安全组件的统称,指有自己独立的安全运算器,安全存储器,独立的TRNG等组件的芯片,不与其他部分共用资源,相比TEE减少了许多攻击面,可以集成入SoC(如高通骁龙888及更新的SoC,麒麟的部分SoC,苹果A7及之后的SoC等等),也可以做成独立的芯片,如Pixel手机搭载的Titan M,电脑上常见的dTPM等。

厂商后续的缓解措施:Fire TV在后续生产的批次直接禁用了Download模式,使得外界无法与BootROM进行交互,自然也就间接地缓解了这个漏洞,这个禁用策略是烧写入eFuse的;Chromecast with Google TV则是在2020年1
2月以后生产的批次和2021年2月的固件更新启用了burn-mode password,这意味着没有密码将无法与BootROM进行交互,自然也就无法利用BootROM漏洞了,为了使这个密码不被破解,我估计谷歌是使用了由SoC内部的TRNG(真随机数发生器)生成的高熵密码,写入了eFuse,这样子就没有任何人可以与BootROM进行交互了,包括谷歌自己[受虐滑稽]。好在电视盒子类的硬件非常便宜,如果有问题无法刷机还不如直接换新了,可以这么搞。

安全建议以及现状:
防降级:
大部分SoC是支持利用eFuse/QFUSE实现底层固件防降级的,启用了这个功能,可以实现BL33及之前的部分防降级,如果强刷降级,会导致设备进入到EDL/Download模式。三星和moto开启了这个功能,其它OEM则大都没有开启,有一定的安全隐患,这也和谷歌的要求有一定的联系,目前谷歌只要求ABL之后的组件实现防降级,这是基于RPMB实现的,将版本信息写入RPMB,如果低于规定的版本,则不得解密data分区,但是如果漏洞出现在ABL及之前,这个限制将毫无作用,一样会有泄露隐私数据的风险,谷歌对于ABL及之前的组件防降级只是建议,毕竟连谷歌自己的手机都没有做到[cos滑稽]。但是谷歌另辟蹊径,将KeyMaster从TEE搬到了外置SE(Titan M芯片),来平衡安全性以及易用性(使用Pixel的开发者有降级刷机的需求),Titan M可以将用户数据与版本号绑定,如果在没有输入正确密码的情况下,强制升级或者降级都会导致无法解密用户数据。

号称最难刷机的ViVO/iQOO:蓝厂的联发科机型同样受到BootROM漏洞的影响,同样可以秒解BL,但是蓝厂的ABL是魔改过的,虽然会检测BL锁状态并作出相应提示,但是无论BL是否解锁,一律不会禁用AVB,刷入非官方ROM会拒绝启动,解了个寂寞[受虐滑稽]。虽然说BootROM漏洞可以无视系统更新,但是这个漏洞的利用是临时的,要是改动了系统相关分区,重启之后就会变砖,需要重新连接电脑再次利用漏洞,使用起来非常不方便。再说了蓝厂不开源,就算能刷进去第三方ROM,适配是个大问题。

隐藏ID机:上面说到,一些手机的Programmer或DA能力过于强大,授权又没做好,或者BootROM有无法修复的漏洞导致任意代码以EL3权限执行,这时就可以利用这些漏洞,篡改存储在RPMB里的查找手机相关数据,关闭激活锁,一些系统还会在使用时联网验证,如果没有处理好会导致激活锁回锁,强解BL后刷入非官方ROM是ID机常见的处理方式。还有一种隐藏ID机是纯手撕的,原理是利用系统UI层面的漏洞导致激活锁界面被跳过,这种漏洞真是多如牛毛,网上一搜一大把[受虐滑稽],最离谱的是Android自带的FRP(中国大陆地区的ROM也有FRP的底层代码,但是不会呈现在UI上,原因是FRP依赖于GMS,GMS在中国大陆地区的ROM默认隐藏了),没有一款手机的FRP是没有漏洞的,油管上搜手机品牌+FRP就能搜出一堆教程,而FRP一旦成功绕过,可以随便恢复出厂设置,随便刷机都不用担心回锁,因为FRP相关信息只会保存在手机本地。在UI层面防护做的最好的应该是MIUI了,强制显示特定的Activity,一旦检测到有其它Activity覆盖了窗口,立马强制启动特定的Activity将非法Activity弹下去,基本上没有手撕成功的例子[受虐滑稽]。这方面我就得夸一下苹果了,激活锁信息保存在云端,刷机后想要正常使用必须强制联网激活,联网就会触发激活锁,不是主人无法激活使用,可惜Checkm8漏洞(A11及之前的SoC有BootROM级别的漏洞,无法通过软件更新修复,可以用于越狱跳过激活锁页面)影响范围实在太广,旧手机的防盗不给力了。不过在iPhone 12和13这代苹果在防盗方面上升到一个全新高度,想要防止被查找只能拔电池或者放入信号屏蔽袋,有激活锁的12和13拆配件也没人要,因为苹果将几乎所有带芯片的组件都做了加密绑定,放在其它机器上无法正常使用让脏机的价值大大降低,这是业界首次将手机防盗做到如此极致。

底层固件开发的安全建议:
虽然理论上不泄露Programmer,DA,用于SLA的.auth文件可以避免通过底层固件进行攻击(前提是BootROM没有漏洞,或者具有缓解措施,在上面的例子里有提到。联发科可以抬走了,从19年发现到现在的天玑1200还没完全修复这么严重的BootROM级别漏洞,秒解BL影响了多少手机[受虐滑稽]),但是这是不太可能的,因为这些东西售后会广泛使用,全世界那么多售后网点不可能完全保密的,总有机会会被泄露出来,一种较好的做法是限制Programmer和DA的能力,让其只能读写普通分区,不要给其编辑RPMB区的能力,就像三星,只通过Programmer写入S-Boot(三星对于BL2和BL33的称呼)来救死砖,可以进入ODIN模式后再刷写剩下的分区。或者将Programmer和DA做成苹果DFU那种动态加载模式,在云端进行权限的控制和身份验证,这是最佳做法,可以保证安全性和易用性,又无需担心Programmer和DA甚至是.auth文件的泄露,但是目前没一个OEM这样做,只停留在我的理论当中。

结语:码字一整天,查阅了许多资料,难免会有些许错误,如果有知道的朋友可以指出来,让我们多交流交流[受虐滑稽]
#信息安全# #玩机技巧#
@酷安小编 @alexkillers 烧脑码字[py交易]一下[受虐滑稽]
浅谈底层固件安全性——强解BL,隐藏ID机等背后的真相(二) 浅谈底层固件安全性——强解BL,隐藏ID机等背后的真相(二)
浅谈底层固件安全性——强解BL,隐藏ID机等背后的真相(二) 浅谈底层固件安全性——强解BL,隐藏ID机等背后的真相(二)
评论2
子耀同学 版主  发表于 2022-10-16 23:37 河南 来自:荣耀X20
专业专业
荣耀粉丝214482037  LV3  发表于 2023-1-9 20:19 河北 来自:荣耀Play5T Pro
[受虐滑稽]都整过来了,肯定是酷安找的 浅谈底层固件安全性——强解BL,隐藏ID机等背后的真相(二)
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表