Home » Blog

Starlink 用户终端初探

2025年3月26日 · 992 字 · DARKNAVY 目录

我认为如果人类不去太空,就没有未来。 —— Stephen Hawking Starlink 是由 SpaceX 提供的低地球轨道 (LEO) 卫星互联网服务。用户通过用户终端连接到近地轨道卫星,然后通过地面网关连接到互联网。 Starlink 系统基本架构 [1] 随着新一代卫星逐渐采用激光链路,一些卫星可以通过激光相互通信。这既减少了对地面站的依赖,又提高了传输效率,从而增强了全球覆盖。 乌克兰境内的 Starlink 终端通过卫星和邻国的网关访问互联网 即使在没有本地地面站的乌克兰战场上,Starlink 用户终端也可以通过星间链路间接访问邻国的网关 [1]。 在本文中,我们将简要概述 DARKNAVY 最近对 Starlink 用户终端进行的初步调查。

硬件分析#

一个完整的 Starlink 用户终端由两部分组成:路由器和天线。本文重点介绍天线组件(用户终端天线,以下简称“UTA”)。DARKNAVY 在新加坡购买了一个 Starlink Standard Actuated(也称为 Rev3 或 GenV2)用户终端,并拆解了其天线部分。

Starlink UTA Rev3 PCB(全貌)

如上图所示,拆卸后,我们发现 UTA 的 PCB 几乎与其外壳一样大。电路板的大部分被 STMicroelectronics 生产的 RF 前端芯片占据(照片左侧),而核心控制组件主要集中在 PCB 的一侧。

Starlink Rev3 PCB(核心区域)

除了 RF 天线之外,UTA 核心区域的整体设计与标准 IoT 设备的设计非常相似。主 SoC 由 ST 为 SpaceX 定制,是一个四核 Cortex-A53。目前,该芯片的硬件和数据手册是保密的,不对外公开。

在 Black Hat USA 2022 上,来自 KU Leuven 的 Lennert Wouters 博士演示了针对第一代 Starlink 天线 (GenV1) 的故障注入攻击,以获得设备的 root shell。作为回应,SpaceX 通过固件更新禁用了 PCB 上的 UART 调试接口,以增强抗故障攻击能力。然而,Wouters 随后通过改进他的方法再次成功入侵 [2]。

固件提取与分析#

为了深入分析 UTA,DARKNAVY 直接从 eMMC 芯片中转储了固件。由于 Rev3 电路板上没有明显的 eMMC 调试引脚,我们不得不从 PCB 上拆焊 eMMC 芯片,并使用编程器读取它。提取后,我们发现大部分固件内容都是未加密的,这暴露了引导链(不包括 BootROM)、内核和文件系统的未加密部分。进一步分析表明,内核启动后,它会从 eMMC 中读取大部分运行时环境,并将其解压缩到 /sx/local/runtime 目录。

UTA 的核心运行时

如上图所示,bin 目录包含 Starlink 软件堆栈所需的执行文件,而 dat 存储配置文件,revision_info 记录当前的软件和硬件版本。除了用于处理用户通信的 user_terminal_frontend(用 Go 编写)之外,大多数程序都是没有符号的静态编译 C++ 执行文件。借鉴现有的研究 [3],我们对这些程序和配置的初步分析表明,网络堆栈架构与 DPDK [4] 有些相似,主要依赖于用户空间的 C++ 程序来绕过内核以处理网络数据包。Linux 内核的主要作用是提供基本的硬件驱动程序和进程管理。

有趣的是,从 UTA 提取的核心软件还包括一些看似属于卫星或地面网关的功能。我们的初步逆向工程表明,在启动期间,系统会根据硬件外围设备识别设备类型,然后加载并执行相应的逻辑。

模拟仿真#

为了方便对 UTA 进行持续分析,DARKNAVY 为 Rev3 固件构建了一个基于 QEMU 的基本仿真环境:

在该环境中,我们成功运行并调试了部分软件,包括与外部实体交互的 httpdWebSocketgRPC 服务。

调试 user_terminal_frontend 程序

安全芯片#

除了主 SoC 之外,UTA 还配备了一个专用安全芯片 STSAFE-A110,声称具有 CC EAL5+ 安全等级 [5]。与定制 SoC 不同,该芯片可以在 NDA 下合法购买。在 UTA 固件中,一个名为 stsafe_cli 的用户空间程序处理与该芯片的交互。逆向工程表明,STSAFE 主要提供:

总的来说,该芯片充当了独立于 SoC 安全启动机制的额外信任根,这符合现代嵌入式安全设计实践。

彩蛋:Elon 在监视你吗?#

在分析过程中,DARKNAVY 偶然发现了一个名为 Ethernet Data Recorder 的程序,这自然引起了人们对后门捕获用户数据的怀疑。

Ethernet 数据记录器

该程序的名称和功能暗示了潜在的数据包日志记录。仔细检查发现,它利用类似 pcap_filter 的机制来记录某些网络数据包,捕获规则类似于:

# name      track  options        type  interfaces    pcap_filter
diagnostics    0    compress,ipcompress  telem  lo        udp and dst port 10017 and (dst host 239.26.7.131 or dst host 239.26.7.130)

根据固件中的其他线索,这些数据包与卫星遥测有关。所有捕获的流量也使用熔入 SoC 的硬件密钥进行加密。从我们目前掌握的信息来看,它似乎没有收集用户隐私数据。

在设备初始化期间,如果系统将自身识别为用户终端,则初始化脚本会自动将 41 个 SSH 公钥写入 /root/.ssh/authorized_keys。值得注意的是,UTA 上的 22 端口始终对本地网络开放。在用户产品上拥有如此大量的未知登录密钥,无疑会引起人们的关注。

随着卫星技术不断发展并在各个行业中得到应用,Starlink 和其他卫星互联网系统的每个组件都可能成为未来攻防行动的关键战场。在太空安全领域,开发者和黑客不仅在数字领域竞争,还与宇宙物理学的约束作斗争:一个错误的举动可能意味着永远失去与目标的联系。

参考资料#