解读:SpaceX Starlink 星链破解
Starlink 是伊隆·马斯克(Elon Musk)旗下私人航天公司 SpaceX 推出的卫星互联网业务,主要为全球偏远地区和网络信号无法覆盖的地区提供网络服务。目前该业务已经发展到 3000 多颗卫星。
八月,在拉斯维加斯召开的 Black Hat 安全大会上,比利时鲁汶大学(KU Leuven)的安全研究员Lennert Wouters现场演示成功破解了SpaceX的星链终端,获取了设备的ROOT权限,可在设备执行任意指令操作。
星链系统主要由空中卫星群、地面网关、用户终端三部分组成:
Lennert的本次议题主要是围绕用户终端部分。
拆盖部分,列出了油管、推特上对Starlink同样感兴趣的极客同行,对拆盖感兴趣的可自行查找、参考相关视频:
初步拆开盖板,发现以太网、电源以及UART调试接口:
接入UART调试口,发现在启动过程中输入“falcon” (SpaceX的猎鹰运载火箭) 可终止启动过程,从而进入UBoot界面:
UART调试口还打印出了Development login是否启用:
拆开后的PCB全貌大致如下:
SOC、安全芯片、内存 固态存储芯片:
将SD卡读卡器接入eMMC测试点,拷贝固件内容,并对固件进行解压、提取系统文件:
有意思的是:如果设备检测到在某些坐标地点会启用开发者登录模式:
因为芯片封装的一些问题,芯片背面是暴露出来的,Lennert考虑到可以使用侧信道攻击,如激光故障注入(Laser Fault Injection)、BBI(Body Bias Injectio) 电磁故障注入(Electromagnetic Fault Injection)
最终,实现了对终端的ROOT破解:
鲁汶大学分析了STM ARM TFA-A的工作流
SoC 根信任:
1.BL1从EMMC加载BL2证书;
2.BL1校验证书的签名;
3.BL1从eMMC加载BL2固件;
4.BL1校验SHA512(BL2)是否与证书中包含的哈希匹配。
尝试使用有效签名、hash、固件启动:
尝试排除有效证书:
在审计固件中提取的文件时,发现SpaceX通过 Yubikey接入SSH,Lennert意识到自己使用侧信道已经南辕北辙偏离地有点远了 (But I was already too far down the rabbit hole …)
考虑到实验室的设备比较笨重,不便于移动,价格也过于高昂。Lennert决定自己设计一个便携的小工具,取代树莓派、示波器,以及用于实施侧信道攻击的工具。
在扫描了终端PCB面板后,Modchip被设计了出来:
有趣的是,在设计这块终端电路板时,星链工程师们在其上印制上了“人类制造于地球”(Made on Earth by humans)的字样:
Wouters则在自己的modchip上幽默了一把,印上了“人类在地球上制造的故障”(Glitched on Earth by humans)。不愧是理工男另类的交流,颇有惺惺相惜的味道。
Modchip可以很合适地贴合在终端设备PCB上面:
Lennert伪造了一个固件升级,通过modchip替代掉原有的固件:
Starlink终端破解难度不小,分析固件快吐了;
来源:MGClouds蘑菇云
最新评论