2018年至今,马斯克发起的星链计划(Starlink)已把3000多颗小型卫星送入轨道。据媒体报道,星链在俄乌冲突期间已经成为乌方的重要联网方式。目前,SpaceX已获准发射12000星链卫星,并申请批准在此基础上再发射30000颗。不过,万物皆可被破解,“星链”也不例外。
当地时间周四,在拉斯维加斯举行的Black Hat 大会上,来自比利时鲁汶大学(KU Leuven)的安全研究员Lennert Wouters 在现场演示成功破解了 SpaceX其中一个 Starlink 用户终端,也就是位于住宅和建筑物上的星链卫星天线。
整个破解过程利用了一系列硬件漏洞侵入Starlink卫星天线终端,并获得系统访问权限,最终可以让用户终端无法正常使用,且可以在设备上执行任意代码。
破解过程中用到的破解设备是一种叫modchip的定制电路板,经过定制后可以连接到Wouters自己购买并改造过的星链天线,成本只有25美元。连接到星链天线后,这个自制工具就能够发起故障注入攻击,使系统短暂短路进而绕过星链的安全保护,进入被锁定的星链系统。作为攻击者,常规思路是尝试制作自己的系统来与卫星通信,进而黑掉卫星。不过通过用户终端入侵相比之下更简单一些。
2021年,Wouter曾向Starlink通报了相关漏洞,并收到了漏洞赏金。Wouters表示,虽然SpaceX已发布更新让攻击不那么容易成功,但是只有 Starlink 开发新版本的主芯片,才能从根源上解决问题。目前来看,星链用户终端仍然容易受到攻击,Wouter调整 modchip 还是能成功入侵。
8月11日,Starlink官方表示 Wouters 的高水平研究的确令人印象深刻,这类攻击也是系统中首次出现,让他们意识到存在的安全问题,他们将采用“最低权限”设计原则来减轻这类攻击造成的影响。Starlink同时表示,因为攻击需要对用户终端进行物理访问,因此普通用户不必担心漏洞的影响,也欢迎更多安全研究人员研究星链的安全问题。
Starlink的互联网系统由三个主要部分组成。
卫星在距地表约340英里的近地轨道上运行;
卫星与地球通信:将互联网连接发送到卫星的网关
卫星与地球通信:将互联网连接发送到用户购买安装的Dishy McFlatface卫星天线
Wouters的研究目标就是用户终端(Dishy McFlatface卫星天线),这些天线最初是圆形的,新的型号已经改为矩形。Wouters对星链用户终端的攻击涉及多个阶段、不同的技术措施,最终他完成了目前开源的星链天线破解工具。破解过程就是使用定制电路板绕过系统启动时的签名验证,让系统以为已经正确启动且没有被篡改。定制电路板的能用于精确计算注入故障的时机。
从2021年5月开始,Wouters就开始测试星链系统,他购买了一个星链天线,在鲁汶大学的楼顶上测试天线的功能(268 Mbps的下载速度和49 Mbps的上传速度)。然后,他用“热风枪、撬棒、异丙醇”等工具,耐心尝试,最终成功从天线上取下大金属盖,开始拆解分析内部组件。
星链天线直径59厘米的金属盖下是一个大型PCB板。其中一个片上系统使用了一个定制的四核ARM Cortex-A53处理器。这个处理器的架构没有公开过,因此很难破解。板上还有射频设备、以太网供电系统和GPS接收器等组件。拆解之后,Wouters了解星链终端启动和下载固件的过程。
设计modchip前,Wouters扫描了星链天线并针对现有星链PCB板进行了最合适的设计。用于攻击的modchip由树莓派微控制器、闪存、电子开关和稳压器组成,需要用几根导线焊接到现有的星链PCB板上。在制作用户终端电路板时,星链工程师在板子上印制了“产自地球、人类制造”的字样。Wouters在自制的modchip上写的是:“坏在地球、人类制造”,这也成了他演讲的主题。
为了访问星链的终端软件,Wouters使用自定义系统,通过电压故障注入攻击绕过安全保护。当星链天线开启时,会启动一系列不同的引导加载程序。其中,第一个引导加载程序(也就是ROM引导加载程序)被刻录到片上系统并且无法更新。因此,Wouters 的攻击就先利用了这个程序的故障,成功后会在后续的引导加载程序上修改固件,进而获取系统控制权。
Wouters认为:“总体来看,签名验证或哈希验证是最明显的攻击切入点。”这次的故障注入攻击针对的是签名验证过程,故意让系统短路。
最初,Wouters打算在引导周期结束时(即Linux操作系统加载完成)再向芯片注入故障,但最终发现在引导开始时更容易注入故障。Wouters认为这种方式更可靠。为了注入故障,他必须让用于平滑电源的去耦电容器停止运行。攻击会首先禁用去耦电容器,再运行故障以绕过安全保护,最后再次启用去耦电容器。
通过这一系列操作,就可以在启动周期内篡改、运行星链固件,最终得以访问其底层系统。Wouters说,研究期间,Starlink曾向他提供了研究人员级别的访问权限,但Wouters拒绝了。他不想在这方面钻研太深,想把主要精力放在modchip的制作上。(在测试期间,他把改装过的天线挂在实验室的窗户外面,还套了个塑料袋临时防水。)
针对星链的更新和回应,Wouters认为:虽然这次攻击不像破坏卫星系统或卫星通信那样具有破坏性,但可以更深入了解星链网络的运作方式。
“我现在的重点工作是与后端服务器通信。”Wouters 原本开源在Github上的详细信息已经隐藏,也并不打算出售modchip成品或提供修改后的用户终端固件以及漏洞利用细节。
目前,亚马逊、OneWeb、波音、Telesat和SpaceX都在打造自己的“星链”,随着越来越多的卫星发射,卫星的安全性将受到更严格的审查。除了为家庭提供互联网连接外,卫星系统在关键基础设施中也发挥着作用。评估卫星系统及终端系统的安全性,将越来越重要。
参考来源:
https://www.wired.com/story/starlink-internet-dish-hack/
https://github.com/KULeuven-COSIC/Starlink-FI
https://api.starlink.com/public-files/StarlinkWelcomesSecurityResearchersBringOnTheBugs.pdf