卫星渗透测试:针对星载固件的安全分析
2023-7-12 04:36:8 Author: www.freebuf.com(查看原文) 阅读量:37 收藏

随着新太空时代的到来,卫星的部署数量呈爆炸式增长。 尽管卫星安全至关重要,但是关于星载固件安全的研究却很少。 本文提供了针对卫星固件的威胁分类,并对三个现实中的卫星固件映像进行安全分析,并在固件映像中发现了几个关键漏洞。评估结果表明,现代的在轨卫星存在着不同的软件安全漏洞,且缺乏适当的访问保护机制。

0x01 简介

卫星是复杂的技术设备,放置在外太空用于研究目的或为地面应用提供服务,覆盖范围为地球表面。虽然第一颗卫星 Sputnik 的历史可以追溯到1957年,但人类正处于被称为“新太空时代”的航天复兴之中,特别是近年来地球轨道卫星数量的巨大增长。根据联合国外层空间事务办公室(UNOOSA)的数据,其数量几乎翻了一番,从2019年的4,867个增加到2022年的9,350个。这些卫星中的绝大多数形成了像
Starlink 这样的人造巨型星座,预计在未来几年将发射超过40,000颗卫星。

小型卫星是新太空时代的核心,商用现成品或技术(COTS, Commercial off-the-shelf)组件使得它们甚至对于小型机构来说也负担得起。此外,它们涵盖了广泛的领域,从商业应用(如地球观测、机对机通信和互联网服务)到研究应用,例如技术测试、天气和地震预报,甚至星际任务。

尽管小型卫星的应用差异很大,但它们通常由无线电设备和微控制器板组成。从最广泛的意义上来说,它们是连接到地球地面站的计算机系统,有时甚至连接到其他卫星。由于它们依靠无线连接进行命令和控制,并使用微控制器,因此它们可能与地球上任何其他互联IT 平台一样容易受到攻击。

在过去,这个问题并不是很重要,因为接入地面站的费用昂贵,且仅限于大型卫星运营商。然而,近年来情况发生了根本性变化。如今,地面站甚至对个人来说也可以负担得起,并且随着地面站即服务(GSaaS,Ground Station as a Service)模型的出现,例如由Amazon Web Services和Microsoft Azure提供的模型,这使得行业准入门槛变得更低。过去在移动网络安全领域,供应商综述认为相关攻击成本太高且攻击者无法触及设备,但这个假设已被证明是错误的。同样,经济实惠的地面站创造了一个新颖的攻击面,攻击者可以在其中与卫星通信并利用软件漏洞。如果成功破坏了卫星的固件,那就可以访问卫星并有可能完全控制系统。

虽然缺乏卫星安全标准和复杂的供应链使情况变得复杂,但主要原因是卫星固件的不可访问性。从历史上看,卫星开发商一直通过隐匿来实现安全,即所谓的隐蔽式安全性(security by obscurity)。铱星网络的开发人员甚至提到他们的系统对于攻击者来说过于复杂。由于固件的不可访问性,围绕单个卫星的讨论通常缺乏卫星和现实世界基础的技术细节。

0x02 背景知识

人造卫星是放置在外太空并绕另一个天体(例如地球)运行的物体。卫星设计用于在恶劣的太空条件下运行,其中包括每天发生十多次的约200°C的极端温度变化、接近真空和宇宙辐射。然而,为了向地球提供源自太空的服务,通常需要将它们部署到太空中。常见的卫星应用包括通信、地球观测和科学研究。虽然大多数卫星部署在低地球轨道(250-2000公里),但根据卫星的用途,可能需要选择其他轨道,例如地球静止轨道(GEO)(距离地球约35,786公里)。

A. 卫星运维

如下图所示,卫星的运维围绕三个主要组成部分展开:地面部分(运营基于卫星的服务)、太空部分(由所有太空资产组成)以及用户部分(接收全球定位系统等卫星服务) (GPS) 或通信。

image

(1)地面部分

地面部分是卫星整个生命周期中的运行中心。运营商团队使用地面站 (GS,Ground Station) 与卫星进行通信,向卫星发送新的指令,称为远程命令(TC,Telecommand)。反过来,卫星将遥测数据 (TM,Telemetry) 发送回地面站,提供有关卫星状态、错误和其他指标的信息。远程命令和遥测数据的组合被称为TC/TM流量,使用太空协议进行传输。

(2)太空部分

太空部分包括所有参与卫星运行的航天器,可能是单个卫星或整个卫星星座。这些卫星最初通过运载火箭(例如火箭)被发射到轨道上,然后经历轨道部署阶段,以启动与地面部分的通信。在常规服务操作的标称运行阶段,卫星可以通过卫星间链路 (ISL, Inter-Satellite Link) 相互通信。

(3)用户部分

用户部分中的终端设备,例如甚小孔径终端 (VSAT,Very Small Aperture Terminal) 或 GPS 接收器,可以接收太空部分提供的服务。需要注意的是,某些卫星(例如地球观测卫星)只与其地面部分通信,不包括用户部分。

B. 卫星架构

image

上图展示了现代卫星中常见的组件,这些组件可以分为卫星有效载荷和卫星总线。卫星有效载荷由任务特定的设备组成,例如用于地球观测的高分辨率相机或用于电信通信的强大无线电硬件。卫星总线包含了运行和维护卫星所需的所有组件。它被设计为独立于有效载荷的运行,但相反,有效载荷依赖于总线的功能。这种分离被称为总线有效载荷分离。在安全分析中,我们特别关注卫星总线,因为与许多有效载荷不同,它使攻击者能够完全控制卫星。

(1)命令和数据处理系统

总线以命令和数据处理系统(CDHS,Command and Data Handling System)为中心,负责管理卫星并控制航天器的所有功能。 CDHS 使用星载控制器 (OBC,On-Board Controller),该控制器采用计算平台,即微控制器和存储器,类似于地面嵌入式设备。在该系统上执行的软件称为星载软件(OBSW,On-Board Software),这是研究的主要重点。 它实现远程控制服务器,通常基于实时操作系统(RTOS, Real-Time Operating System),类似于地面实时应用程序。 OBSW的主要任务是处理TC/TM流量、提供数据存储、调度命令、执行自主操作以及更新程序代码。 至关重要的是,与任何软件一样,OBSW很容易受到常见软件故障的影响,攻击者可能会利用这些故障来获得对 CDHS 的未经授权的控制。

(2)通讯模块

卫星与地面站的通信由通信模块 (COM,Communications Module) 处理,该模块由天线和无线电设备组成,有时还包括用于处理解码、协议实现和访问投影的计算设备。此外,通信模块通常专门用于处理 TC/TM流量,而高带宽流量(例如有效负载数据下行链路)通常由更强大的无线电设备处理。由于通信模块直接与命令和数据处理系统耦合以处理 TC/TM流量,因此它也是攻击者主要的入口点,从而产生了重要的攻击面。此外,通信模块中的协议实现可能与安全性相关,因为它可能是第一道防线。

(3)姿态确定和控制系统

卫星使用姿态确定和控制系统(ADCS,Attitude Determination and Control System)来确定和调整它们的姿态,以便将天线指向地球,将太阳能电池板指向太阳。此外,ADCS还执行自主翻转,以防止卫星在从运载火箭释放后旋转,这对建立初始通信链路至关重要。此外,卫星还可以使用推进器来实现姿态和轨道控制系统(AOCS,Attitude and Orbit Control System),用于进行微小的轨道变化,这尤其重要。AOCS使卫星成为网络物理系统,因为它们可以通过与其他物体碰撞来影响其物理环境,从而导致毁灭性的轨道级联反应。

(4)电力系统

电力系统(EPS,Electrical Power System)是卫星的电源,通常由太阳能电池板产生并存储在电池中,以在没有光照的情况下(例如绕地球飞行时)提供电力。此外,保持电池永不完全耗尽也至关重要,因为一旦电池耗尽,卫星将无法重新启动。因此,电源管理对于卫星的生存能力至关重要,因为攻击者可能会利用电池的深度耗尽来永久禁用卫星。

(5) 有效载荷

虽然有效载荷主要部署任务特定的设备,但通常还会部署类似于CDHS的有效载荷数据处理系统(PDHS,Payload Data Handling System)。PDHS可以接收来自有效载荷通信模块(PLCOM,Payload Communication Module,可以是有效载荷上的任何接收器)的控制流量,并处理来自有效载荷设备的一般数据处理任务。由于有效载荷的高度定制化,PDHS和PLCOM的确切术语可能在其他卫星描述中有所不同。

C. 卫星通信协议

卫星的TC/TM流量通过卫星通信协议进行通信,被称为太空协议(Space Protocal)。空间数据系统咨询委员会(CCSDS)是发布此类太空协议的主要组织,由许多航天机构共同制定标准。CCSDS提供了丰富的协议标准,用于与卫星运行中涉及的所有组件和各方进行通信。这些标准覆盖了OSI模型的所有层,并且每个层通常有多个选项。本文提到的协议包括用于数据链路层的空间数据链路安全(SDLS,Space Data Link Security),它还实现了安全扩展,以及用于网络层的空间数据包协议(SPP,Space Packet Protocol)。需要注意的是,CCSDS协议集合更像是互联网上常用的各种网络协议的集合,而不是特定协议的集合。

0x03 卫星固件威胁

A. 威胁分类

image

针对卫星的固件的威胁如上图所示,可以分为三个层次。 最高层是控制层,也是攻击者的最终目标。为了实现这些目标,攻击者必须攻击组件层中的某个卫星组件。为了与组件进行通信,攻击者必须首先访问接口层上的一个接口,并控制组件与外部参与者(如地面站)之间的交互。

图中使用实线来描述这些元素的层次结构(例如,总线是卫星的一部分,CDHS 是总线的一部分),并使用一组点线箭头来描述攻击路径(例如,攻击者必须先访问通信模块,然后才能在命令和数据处理系统中发出远程命令)。

(1)控制层

如果攻击者要实现最终目标,那么他们需要实现中间目标,并区分两个目标组件:总线和有效载荷。总线控制着有效载荷,从而允许攻击者通过控制总线来实现对有效载荷的目标,但反过来则不成立。这种总线和有效载荷的分离在卫星中非常常见,出于安全考虑,以防止有效载荷设备故障的传播。接下来,将详细说明攻击者的目标以及他们如何与总线-有效载荷分离相关。

拒绝服务/控制:拒绝服务(DoS)是当前卫星面临的最常见攻击方式,威胁着卫星的可用性。这可以通过攻击总线和有效载荷上部署卫星服务的设备来实现。然而,拒绝控制只能通过攻击总线来实现。

恶意数据交互:攻击者可能希望提取或操纵针对总线或有效载荷的卫星数据。控制数据交互涉及对关键飞行数据和总线上的访问进行保护,攻击者需要通过攻击总线来实现。另一方面,攻击者可以从有效载荷访问有效载荷数据,例如来自摄像机或其他有效载荷实验的数据。

夺取控制权:最终,攻击者可能想完全控制卫星。通常,总线提供的远程命令(TC)不足以执行任意操作,而是提供一组预定义的交互。因此,攻击者需要找到漏洞来允许在总线上执行任意代码。

失去对卫星的控制权不仅会给卫星所有者带来问题,还可能对整个太空生态系统造成毁灭性的后果。如果卫星配备了推进器,攻击者可能会试图引发凯斯勒效应(Kessler Syndrome)或碰撞级联效应。凯斯勒效应是指一颗坠毁的卫星产生的碎片与其他卫星相撞,摧毁它们并释放出新的碎片,从而导致连锁反应。这些碎片可能会在太空中形成密集的碎片场,使得太空几十年都无法安全进入。然而,业界往往忽视一次成功的卫星黑客攻击可能带来的这些潜在后果,尽管它们可能对太空飞行造成严重影响。

(2)组件层

组件层由相关的通用卫星组件、总线有效负载链路和不可信数据处理系统(UDHS,Untrusted Data Handling System)组成。实际上,这些组件可以是单独的硬件组件,也可以组合在单个固件映像中。根据安全三要素对威胁进行分类:完整性、可用性和机密性。此外,将稳定性视为完整性的一个子类别,用于描述卫星中设计存在的威胁。

a. COM/PLCCOM

COM通过远程通道(例如无线电)接收传入的远程命令(TC),而PLCOM接收有效载荷数据或用于有效载荷的远程命令。由于我们只考虑针对卫星固件的攻击,因此将针对COM和PLCOM的威胁总结为绕过访问控制。这包括一般的射频威胁(例如中间人攻击)和加密威胁(例如时序侧信道攻击),此外,还包括针对微码解调或解码远程命令的威胁。

b. CDHS

CDHS通过执行卫星固件中的相关功能来处理传入的远程命令,这些固件在卫星上直接或预定地执行操作。它存在以下威胁:

  1. 完整性:脆弱性远程命令(vulnerable TC)可能导致攻击者访问私有数据、劫持控制流或泄露信息。这还包括在处理TC时发生的各种内存损坏漏洞,例如缓冲区溢出、格式字符串漏洞或使用已释放内存的漏洞。


文章来源: https://www.freebuf.com/vuls/371804.html
如有侵权请联系:admin#unsafe.sh