解读:SpaceX Starlink 星链破解

xiannv  686天前

Starlink 是伊隆·马斯克(Elon Musk)旗下私人航天公司 SpaceX 推出的卫星互联网业务,主要为全球偏远地区和网络信号无法覆盖的地区提供网络服务。目前该业务已经发展到 3000 多颗卫星。


八月,在拉斯维加斯召开的 Black Hat 安全大会上,比利时鲁汶大学(KU Leuven)的安全研究员Lennert Wouters现场演示成功破解了SpaceX的星链终端,获取了设备的ROOT权限,可在设备执行任意指令操作。

星链系统主要由空中卫星群、地面网关、用户终端三部分组成:

1.png

Lennert的本次议题主要是围绕用户终端部分。

拆盖部分,列出了油管、推特上对Starlink同样感兴趣的极客同行,对拆盖感兴趣的可自行查找、参考相关视频:

2.png

初步拆开盖板,发现以太网、电源以及UART调试接口:


3.png

接入UART调试口,发现在启动过程中输入“falcon”  (SpaceX的猎鹰运载火箭) 可终止启动过程,从而进入UBoot界面:

4.png5.jpg

UART调试口还打印出了Development login是否启用:

6.png

拆开后的PCB全貌大致如下:

7.png

SOC、安全芯片、内存 固态存储芯片:

8.png

将SD卡读卡器接入eMMC测试点,拷贝固件内容,并对固件进行解压、提取系统文件:

9.png10.png

有意思的是:如果设备检测到在某些坐标地点会启用开发者登录模式:

11.png12.png

因为芯片封装的一些问题,芯片背面是暴露出来的,Lennert考虑到可以使用侧信道攻击,如激光故障注入(Laser Fault Injection)、BBI(Body Bias Injectio) 电磁故障注入(Electromagnetic Fault Injection)

13.png14.png15.png

最终,实现了对终端的ROOT破解:

16.png

鲁汶大学分析了STM ARM TFA-A的工作流

17.png

SoC 根信任:

1.BL1从EMMC加载BL2证书;

2.BL1校验证书的签名;

3.BL1从eMMC加载BL2固件;

4.BL1校验SHA512(BL2)是否与证书中包含的哈希匹配。

18.png

尝试使用有效签名、hash、固件启动:

19.png

尝试排除有效证书:

20.png

在审计固件中提取的文件时,发现SpaceX通过 Yubikey接入SSH,Lennert意识到自己使用侧信道已经南辕北辙偏离地有点远了 (But I was already too far down the rabbit hole …)

21.png22.png

考虑到实验室的设备比较笨重,不便于移动,价格也过于高昂。Lennert决定自己设计一个便携的小工具,取代树莓派、示波器,以及用于实施侧信道攻击的工具。

在扫描了终端PCB面板后,Modchip被设计了出来:

23.png

有趣的是,在设计这块终端电路板时,星链工程师们在其上印制上了“人类制造于地球”(Made on Earth by humans)的字样:

24.png

Wouters则在自己的modchip上幽默了一把,印上了“人类在地球上制造的故障”(Glitched on Earth by humans)。不愧是理工男另类的交流,颇有惺惺相惜的味道。

25.png

Modchip可以很合适地贴合在终端设备PCB上面:

26.png

Lennert伪造了一个固件升级,通过modchip替代掉原有的固件:

27.png

Starlink终端破解难度不小,分析固件快吐了;

28.png

29.png

来源:MGClouds蘑菇云

最新评论

昵称
邮箱
提交评论