前情回顾·卫星网络安全
安全内参消息,自2018年以来,马斯克的星链计划已经先后将3000多颗小型卫星送入轨道。星链卫星网络成功将互联网连接覆盖到地球上原本难以触及的位置,并成为俄乌战争期间重要的信息传输资源。面对蓬勃的行业发展态势,马斯克决定再进一步发射数千颗卫星。但与其他新兴技术一样,黑客们也很快盯上了这些卫星组件。
近日,来自比利时研究型综合高校鲁汶大学的安全研究人员Lennert Wouters,揭示了星链用户终端的首批安全缺陷之一。星链终端,指的是安装在用户住宅和建筑物顶部的卫星天线(绰号为“Dishy McFlatface”的相控阵碟形天线)。
在本届拉斯维加斯Black Hat安全大会上,Wouters将详细介绍攻击者如何通过一系列漏洞访问星链系统,并在设备上运行自定义代码。
自制黑客工具并开源,成本仅25美元
为了研究如何访问天线软件,Wouters买下一副天线并拆解研究,设计出一款可以接入星链天线的定制化黑客工具。而这款工具的基础,是一种名为modchip的定制电路板。因为完全由现成的零部件组成,所以这款电路板售价仅为25美元。
在接入星链天线之后,Wouters的自制印刷电路板(PCB)就能发起故障注入攻击,导致系统暂时短路以绕开星链安全保护机制。在此之后,Wouters就能成功侵入星链系统中原本锁定的部分。
Wouters已经在GitHub上开源了自己的黑客工具,并分享了关于攻击方式的一些细节。他解释道,“站在攻击者的角度,首先想到的自然是攻击卫星本体,也就是构建自有系统与卫星通信。但这显然非常困难。所以要想成功攻击,最好能借助于用户终端,这样很多难题就迎刃而解了。”
去年,这位研究人员已经向星链项目方通报了这些缺陷,SpaceX公司也通过漏洞奖励计划向Wouters支付了相应的奖金。Wouters坦言,虽然SpaceX发布的更新加大了实施攻击的难度,但除非该公司开发出全新版本的主芯片,否则无法从根本上解决问题。Wouters通过调整modchip再次成功实现入侵,并表示这一隐患正在威胁所有星链用户终端。
星链项目方则表示,计划在Wouters的Black Hat演讲之后发布“公开更新”,但拒绝在实际发布前向媒体透露任何更新细节。
绕过保护机制,成功破解天线固件
星链互联网系统由三大主要部分组成。首先,星链卫星在距地面约340英里的近地轨道上运行,负责实现信号覆盖。而地面系统又分为两种:将互联网连接发送至卫星的网关,以及用户购买安装的Dishy McFlatface天线。
Wouters的关注重点正是其中的用户终端,这些天线最早采用圆形设计,目前最新型号已经改为矩形外观。
自从这款用户终端开放销售以来,星链天线已经被多次拆解。在YouTube上,工程师们亲手拆开设备,展示其中的组件并介绍其如何运转。Reddit论坛上也有不少关于星链终端的技术规格讨论。但Wouters明显更为专业,曾经用自制硬件在90秒内解锁特斯拉汽车的他,认真研究了星链终端及其芯片的安全性设计。在他看来,“这款用户终端绝对是高手设计出来的。”
他对星链终端的攻击分为多个阶段、对应不同技术措施,最终才摸索出这块能突破碟形天线安全壁垒的开源电路板。总的来说,攻击的基本思路就是使用定制电路板绕过签名验证检查,用欺骗的方式让系统误以为启动过程正确、并不存在篡改。Wouters表示,“只有这样,我们才能精确计划和控制何时注入故障。”
自2021年5月开始,Wouters就已经着手测试星链系统。他在鲁汶大学的楼顶获得了268 Mbps的下载速度和49 Mbps的上传速度。之后,他开始用“热风枪、撬棒、异丙醇再加上极大的耐心”取下天线上的金属盖,逐一分析星链终端的内部组件。
在直径达59厘米的金属盖下,隐藏着一个大型PCB。其中的片上系统包括一枚定制化四核ARM Cortex-A53处理器,由于架构未经公开所以破解难度极大。板上的其他元件还包括射频设备、以太网供电系统和GPS接收器。亲手拆解之后,Wouters逐渐弄清了星链终端是如何启动、又是怎样下载固件的。
为了设计modchip,Wouters扫描了星链天线并找到了最适合当前星链电路板的设计方案。他的modchip需要通过几根线缆被焊接到星链PCB上,modchip本体则由Raspberry Pi微控制器、闪存、电子开关和稳压器组成。在设计这块终端电路板时,星链工程师们打上了“产于地球,人类制造”(Made on Earth by humans)字样。Wouters则在自己的modchip上幽默了一把,打上“坏于地球,人类制造”(Glitched on Earth by humans)。
为了接入终端软件,Wouters的定制系统会通过电压故障注入攻击绕过安全保护机制。在星链天线开启时,会经历多个不同的引导程序加载阶段。Wouters的攻击指向第一个引导加载程序(即ROM引导加载程序),此程序是被刻录到片上系统的,因此无法更新。攻击成功后,他会在接下来的其他引导加载程序上修改固件,从而夺取对终端天线的控制权。
Wouters解释道,“总体来看,最理想的攻击切入点就只有两个:签名验证,或者哈希验证。”他的方法指向的正是签名验证过程。“工程师在设计的时候会努力避免短路,但我们的攻击方法却是在刻意利用短路。”
最初,Wouters本打算在启动周期结束时(即Linux操作系统全部加载完成)再向芯片注入故障,但最终发现抢在启动开始时注入才是正确思路。Wouters表示,这种方式的可靠性更高。为了注入故障,他必须让负责平滑电源的去耦电容停止工作。所以,Wouters攻击方案的实质就是先禁用去耦电容,再运行故障以绕过安全保护,最后重新启用去耦电容。
经此过程,Wouters就能在启动周期之内篡改并运行星链固件,最终获得底层系统访问权限。Wouters指出,期间星链方面也做出过回应,表示愿意向他提供研究员级别的设备软件访问权限,但他拒绝了。他想更进一步,尝试设计modchip。(在测试期间,他把改装后的终端挂在实验室窗外,还套了个塑料袋防止设备被水打湿。)
星链项目方随后发布了固件更新,但也只是拉高了攻击难度,并没能彻底根除隐患。不过Wouters也承认,现在对星链终端的入侵需要投入大量时间和精力。虽然他的尝试没法彻底摧毁卫星系统或者破坏网络连接,但可以让人们更深入地理解星链网络的运作方式。
Wouters解释称,“我现在的目标,是尝试跟后端服务器建立通信。”虽然他的modchip详尽设计已经公布在GitHub上,但Wouters完全没有出售modchi成品的打算,也从未向他人提供过篡改后的用户终端固件,或者利用此漏洞的确切细节。
卫星网安全应比照关基重视程度
除了为家庭用户提供网络连接之外,这些系统还能帮助船舶等设施接入网络,发挥重要的关键基础设施作用。在另一边,恶意黑客已经将卫星互联网视为攻击目标。随着俄乌战争爆发,据称已经有俄罗斯军方黑客将矛头指向Via-Sat卫星系统,向其中部署Wiper恶意软件,并致使用户路由器“变砖”和系统离线。攻击共导致欧洲约30000条互联网连接中断,其中涉及5000多台联网风力涡轮机。
Wouters强调,“我认为很有必要对这类系统开展安全评估,它们也是关键基础设施的一部分。考虑到星链终端这类设备的获取难度并不高,肯定会有恶意黑客在考虑实施攻击。”
2022年8月10日更新:
在Wouters的Black Hat会上演讲结束后,星链方面发布了一份六页的PDF,解释了其系统保护思路。文章提到,“我们意识到这是一种令人印象深刻的高水平攻击思路,也是我们在系统中发现的首例此类攻击。这让我们意识到,能够物理侵入星链终端的攻击者可以借此夺取访问权限、实施恶意活动。因此,我们将依靠「最低权限」设计原则限制这类攻击对广泛系统造成的影响。”
星链项目方重申,此攻击需要对用户终端进行物理访问,并强调对安全启动系统注入故障只会影响到当前设备。整个星链系统的其余部分不会因此受到影响。“普通星链用户无需担心受此攻击影响,也无需采取任何应对措施。”
参考资料:https://www.wired.com/story/starlink-internet-dish-hack/
声明:本文来自安全内参,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。