freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

从“黑掉卫星”挑战赛分析美太空安全攻击手段
2023-12-04 22:24:17

国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显[1]。而在信息化时代,太空安全与信息安全紧密地结合在一起。2020年9月4日,美国白宫发布了首份针对太空网络空间安全的指令——《航天政策第5号令》,其为美国首个关于卫星和相关系统网络安全的综合性政策,标志着美国对太空网络安全的重视程度达到新的高度。在此背景下,美国自2020年起,连续三年举办太空信息安全大赛“黑掉卫星(Hack-A-Sat)”,虽然是公开的黑客夺旗赛,但由于美国天军和空军作为联合主办方,因此通过题目背景设置可以窥见美军方对太空信息安全的关注点、对未来太空信息安全作战样式的想定,本文通过分析连续三年“黑掉卫星”挑战赛的典型赛题,编辑成Hack-A-Sat太空信息安全挑战赛深度解析》一书,从中提炼出美未来可能的太空安全攻击手段,对加强我太空信息安全防御具有一定的启示作用。

1 美“黑掉卫星”太空信息安全挑战赛基本情况

DEFCON极客大会是全球顶级的安全会议,诞生于1993年,被称为极客界的“奥斯卡”,每年7月在美国的拉斯维加斯举行,近万名参会者除来自世界各地的极客、安全领域研究者、爱好者,还有全球许多大公司的代表以及美国国防部、联邦调查局、国家安全局等政府机构的官员。在2019年举办的DEFCON 27会议上,主办方宣布要举行太空信息安全挑战赛,正式名称是Hack-A-Sat(以下简称HAS)。比赛分为两个阶段,资格赛和决赛,采用积分制,资格赛中积分靠前的8支参赛队将进入决赛。参赛团队的规模可以不限,可以是独立的团队,也可以是由学术机构或公司赞助的,由来自不同公司或大学的人组成,只要其中包括一名美国公民,而且不在美国财政部的“特别指定国民”名单上。

在2020年5月22日至24日,举行了Hack-A-Sat 2020(以下简称HAS2020)资格赛,共34道赛题,有6298人参赛,组成2213支队伍。这次比赛引起美国空军的注意,所以2020年8月7日至8日HAS2020的决赛由美国空军组织。

第二届太空信息安全挑战赛,即Hack-A-Sat 2021(以下简称HAS2021),则由美国空军与美国天军联合组织,于2021年6月26日至27日举行了资格赛,共24道赛题,有2962人参赛,组成了1088支队伍,决赛于2021年12月11日至12日举行。

第三届太空信息安全挑战赛,即Hack-A-Sat 2022(以下简称HAS2022),继续由美国空军与美国天军联合组织,于2022年5月21日至22日举行了资格赛,共27道赛题,有2528人参赛,组成了803支队伍,决赛于2022年10月22日至23日举行。

HAS是结合了航天与信息安全两个领域的比赛,在其题目设置上也体现了这一点,有别于传统的信息安全夺旗赛。一般的卫星运行都包括三部分:地面站、星地链路、卫星。HAS的挑战题也是围绕这几个部分进行的。在题目中除了传统的密码破解、逆向工程、信号截获分析等信息安全知识,还结合了天体物理学、天文学的相关知识,体现太空信息安全的特殊性。涉及的技术也是相当广泛,既有嵌入式操作系统相关的,也有处理器相关的,还有信号处理相关的,对参赛者提出了极高的要求。本文也是区分卫星段、链路段、地面段三个方面,从“黑掉卫星”的赛题提炼美军未来典型太空攻击手段。

2 卫星段攻击手段

2.1 平台数据劫持

数据劫持,指的是在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果。在HAS2020中有一道名为filter的赛题,其中给出了一个在轨卫星姿态控制环路的仿真代码,根据仿真代码可以画出姿态控制环路的运行控制流程,如图1所示。姿态控制环路在卫星的X、Y、Z三个轴向上分别运行了一个卡尔曼滤波器,根据目标姿态值target.q_att和卡尔曼滤波器输出的当前时刻最优估计姿态值q_est之间的误差err,control模块会产生一个控制量u来控制每个轴向的角加速度,进而控制角速度和姿态角的变化。陀螺仪gyro模块将当前测得的角速度q_rate和角加速度q_acc输出给卡尔曼滤波器Kalman_step,星跟踪器把测得的姿态角输出给卡尔曼滤波器,卡尔曼滤波器运行滤波算法计算得到下一时刻最优估计姿态值q_est。如此不断循环往复,形成一个环路控制系统。攻击者进入到了控制回路中,会得到每次迭代中星跟踪器的实际姿态值,并可返回一个“假的”姿态值给星跟踪器,从而导致卡尔曼滤波器产生一个不太准的估计值,进而增大err误差值,并使控制器去调整实际姿态。经过上千次“数据劫持”“欺骗”,最后会使得目标姿态与实际姿态相差越来越远,卫星姿态失控。

图1 filter赛题的在轨卫星姿态控制环路的运行控制流程

2.2 恶意篡改代码

通过非法渠道篡改卫星平台代码,一个很小的修改,往往会造成大的灾难。在HAS2021中有一道名为mars的赛题,这道题来自1999年美国NASA的火星勘测98计划的真实案例。按照计划,1999年12月3日,火星极地着陆器到达火星附近,但在准备进入火星大气前6min与地面失去联系,随后坠毁在火星表面。调查表明,着陆器在降落期间打开着陆架时发送了错误信号,导致着陆器下降速度过快而坠毁[2]

本题目依据该计划制作了火星极地着陆器的模拟器,要求参赛者找出控制程序中的问题,并进行紧急修复,以实现成功着陆。我们可以理解为着陆器被攻击者恶意篡改了代码,导致任务失败。通过模拟器的反复模拟,可以发现还在下降过程中,着陆器的引擎提前关闭,因此着陆器最终撞向火星表面。对着陆器固件的二进制逆向分析,可以发现当前是通过A、B、C三个状态判断是否要关闭引擎,原代码是只要有一个条件满足,就会关闭引擎。

if (((prev_A && A) || (prev_B && B) || (prev_C && C)) && D) {

eject_engine = 1;

}

修改为只有三个条件都满足,才关闭引擎,即可解决该问题,可见仅仅是一处简单的代码篡改,就会导致完全不一样的结果。

if (prev_A && A && prev_B && B && prev_C && C && D) {

eject_engine = 1;

}

2.3 利用代码编写漏洞

各系统软件编写过程中,由于编写者水平能力有差距、交付方软件验证不彻底,难免会产生设计缺陷,造成可以利用的漏洞。其中比较多的是缓冲区溢出漏洞。缓冲区溢出是一种常见的编程错误,也是一种牵扯到复杂因素的错误。开发人员经常预先分配一定量的临时内存空间,称为一个缓冲区,用以保存特殊信息。如果代码没有仔细地把要存放的数据大小同应该保存它的空间大小进行对照检查,那么靠近该分配空间的内存就有被覆盖的风险。熟练的攻击者输入仔细组织过的数据就能导致程序崩溃,更糟糕的话能执行代码。在HAS2020中有一道名为rfmagic的赛题,提供了一个MIPS处理器的模拟器vmips,作为卫星载荷平台处理器的模拟器,还提供了在模拟器上运行的二进制代码challenge.rom,作为载荷程序。通过二进制逆向分析该载荷程序,发现该程序有一个典型的缓冲区溢出漏洞,就是内存复制函数memcpy没有检查目的地址、源地址的空间大小,容易导致复制到目的地址的数据过多,造成内存中有效数据被覆盖,有可能执行任意指令,通过精心编写shellcode、payload即可以完全控制该卫星载荷平台。

2.4 篡改运行配置文件

卫星载荷任务调度就是将有限的资源按时间分配给不同活动的过程。根据卫星任务调度的不同,有多种约束条件,包括时间窗口约束、存储约束、电量约束等等。攻击者可以非法篡改任务调度配置文件,从而打乱卫星载荷任务调度规划,甚至执行计划外任务。在HAS2020中有一道名为monroe的赛题,就是要攻击者控制卫星载荷任务调度。攻击者被告知卫星上应用到了OpenSatKit(简称OSK)。OSK提供了一个程序KIT_SCH。通过对KIT_SCH源代码分析可以发现这是一个任务调度程序,这个程序一旦启动就会不断循环,每次循环都会调用配置文件中规定的任务。攻击者需要做的就是将希望执行的任务插入到这个配置文件中,伪装成合法任务,就会被卫星调度执行。

2.5 狼群战术

狼群战术是第二次世界大战中德军对大西洋上的盟军商船和美国对太平洋上的日本运输船所使用的潜艇战术,战术是以多艘潜艇集结攻击,使得通商破坏战的成果大幅提升。在HAS2021中有一道名为trash的赛题,题目背景是一团太空垃圾在你的星座轨道面上,需要用你卫星上的太空激光消灭它,需要销毁至少51件太空垃圾才能保证卫星的安全,此外,还提供了激光的射程为100公里。这里不仅有攻还有防。攻就是狼群战术,利用大堆的太空垃圾。现实中,这些太空垃圾可以是地面反卫武器攻击产生的,也可以是预置卫星受控解体产生的,还可以是大量微纳卫星,甚至是多颗星链卫星临时变轨,自杀攻击。防就是激光武器,可见美军已经有将激光武器用作太空平台的计划了。在HAS2022中也有一道名为Red Alert的题目,与trash的背景很像,但是在Red Alert中,武器升级了,trash的激光武器发射前需要根据目标调整姿态、瞄准,而Red Alert中的激光武器是雷达驱动的,雷达发现并定位目标,自动引导激光武器瞄准攻击。

2.6 辐射攻击

2011年,俄罗斯的“福布斯——土壤”号火星探测器在升空数小时后入轨失败,最终和搭乘的中国首个火星探测器“萤火一号”一起坠毁,经查,事故有可能是星载计算机受宇宙辐射干扰失灵所致。充斥外太空的宇宙射线会引起航天器的计算机芯片发生位翻转现象(bit-flipping),造成内存丢失,代码混乱和存储器报错[3]。在HAS2021中有一道名为bitflipper的赛题,背景是攻击者拥有一项能力,就是可以通过电磁辐射修改卫星内存区域。现在有一颗卫星是攻击者的攻击目标,这颗卫星的热防护系统在检测到温度低于15度的时候,会打开加热器,温度大于35度的时候,会关闭加热器,以保持卫星温度在合适的区间。现在要求攻击者通过电磁辐射翻转热防护系统内存的3bit,使得热防护系统工作紊乱,最终使卫星温度超出0-70度这个范围。当然,航天器上内存一般都是有校验保护的,这里也一样,为更加真实的模拟实际环境,题目中给内存设计了SECDED校验,此处SECDED指的是单bit错误纠正(SEC:Single Error Correction)、双bit错误发现(DED:Double Error Detect)。因此,攻击者既要使用电磁辐射翻转3bit内存,还要通过SECDED校验。

2.7 勒索软件

勒索软件是一种流行的木马,通过骚扰、恐吓甚至采用绑架用户文件等方式,使用户数据资产或计算资源无法正常使用,并以此为条件向用户勒索钱财。在HAS2021中有两道分别名为king、king2的赛题,就与勒索软件有关。题目背景都是卫星系统感染了勒索病毒,导致其中的敏感信息被加密了,要求恢复出敏感信息。

3 链路段攻击手段

3.1 信号截获分析

卫星与地面之间的通信链路是无线的,容易被截获,进而分析破解,在“黑掉卫星”挑战赛中,每一届都有与此相关的赛题。在HAS2020中有一道名为phasor的赛题,给攻击者一段截获的通信信号记录文件,要求从中恢复出有用信息。这道题涉及到通信信号的调制调解。可以通过GNU Radio构造不同的解调电路,解调出有用的信号,也可以采用特殊软件,比如Universal Radio Hacker(URH)直接分析,图2是采用URH分析的结果。在HAS2021中有名为noise、errcorr的赛题,此时截获的信号中有噪声、误码。在HAS2022中有名为Doppler的赛题,此时又要考虑多普勒频移,难度进一步增加。

图2 URH分析phasor赛题截获的信号文件

3.2 密码攻击

关键信息通常都是加密的,解密的密钥只有必要人员才知道。密码攻击是在不知道密钥的情况下,恢复出明文。这也是在“黑掉卫星”挑战赛中很常见的类型。在HAS2020中有一道名为leaky的赛题,就涉及到了对AES(Advanced Encryption Standard;高级加密标准)的攻击破解。有一颗卫星在通信过程中,会对每个消息使用AES算法进行加密。攻击者由于不知道密钥,无法正常加密,那么当攻击者向卫星发送消息后,卫星就会发现消息不对,从而丢弃该伪造消息。攻击者已经截获了一段密文,需要破解出对应的明文,并且已知如下一些信息:

(1)知道密钥的前6个字节。

(2)知道截获密文对应明文的前几个字节是“flag{ksjkglhwsjd”。

(3)提供了100000行历史加密情况,每行包括两部分:明文、加密该明文花费的时间。

从上述可知,这是已知加解密算法、部分明文、全部密文,并且有大量明文及其加密时间的数据,要求得出加密密钥的问题。攻击者可以运用AES缓存碰撞时间攻击法破解得到秘钥,最终解密得到明文。

4 地面段攻击手段

4.1 电磁嗅探

在太空攻击研究与战术分析模型(SPARTA:Space Attack Research & Tactic Analysis)中,将太空攻击分为9步,分别是:侦察(Reconnaissance)、资源开发(Resource Development)、初始访问(Initial Access)、执行(Execution)、持久化(Persistence)、防御规避(Defense Evasion)、横向运动(Lateral Movement)、渗出(Exfiltration)、影响(Impact)[4]。其中第一步侦查,要获取多方面的信息,包括:飞行器设计信息、飞行控制软件信息、供应链信息、通信链路信息、发射信息等等。在HAS2020中有一道名为rbs_m2的赛题,就是侦查阶段要做的事情。在rbs_m2中,攻击者已经通过电磁嗅探等技术截获了对方3座卫星地面站控制天线舵机的电缆发出的无线电信号记录。每座地面站的天线的方位角和仰角舵机的控制方式是使用占空比在5%~35%变化的PWM(Pulse Width Modulation:脉冲宽度调制)信号将方位角或仰角从0°移动到180°。参赛者需要使用截获的这3个无线电信号记录文件来确定每座天线指向的位置,从而推断其跟踪的卫星。

4.2 利用协议设计漏洞

由于一些协议在设计的时候没有考虑安全问题,或者设计的时候考虑不周,会暴露出一些可以被恶意攻击者利用的漏洞,比如WinNuke攻击、Smurf攻击、Land攻击、SYN Flood攻击、Fraggle攻击等。在HAS2020中有一道名为modem的赛题,就是需要攻击者利用modem的协议设计漏洞。这道题背景是攻击者已经成功地切断了对方地面站的互联网连接。不幸的是,在这种情况下,对方地面站仍然将拨号上网作为最后手段进行互联网访问。要求参赛者使用旧式拨号上网用的调制解调器,拨入地面站的网络使其不能进行互联网访问。此处应用到了海斯命令集,也称为AT命令,原本是为了海斯调制解调器所开发的一种命令语言。该命令集是由许多短的字串组成的长的命令,用于代表拨号、挂号及改变通信参数的动作。大部分的调制解调器都遵循海斯命令集所制定的规则。海斯命令集有两个特殊的命令:

+++:从数据模式切换到命令模式

ATH0:挂机

调制解调器有数据模式、命令模式,从数据模式切换到命令模式,需要发出3个加号的转义序列字符串(“+++”)并跟随1s的暂停。转义序列结束后的1s时间间隔保护是必须的,如果3个加号接收后的1s内接收到任何其他数据,调制解调器就不认为是从数据模式切换到命令模式,而保持数据模式。

然而为了避开海斯的专利授权,一些厂商生产的调制解调器中,转义序列没有时间间隔保护。这样就带来了一个安全问题,它会导致计算机在数据模式中发送字节序列“+++ATH0”时,使调制解调器挂断连接。“+++ATH0”其实是“+++”和“ATH0”两个命令的组合,“+++”是将调制解调器从数据模式切换到命令模式命令,“ATH0”是挂机命令。当主机A在收到远端主机B发来的携带“+++ATH0”序列的ping包时,调制解调器会将其携带的“+++ATH0”序列解释为海斯命令而立即断开连接。因此,攻击者需要使用携带“+++ATH0”序列的“死亡之ping”攻击,即可实现目的。


4.3 恶意数据擦除

同前文已述的对卫星平台的恶意篡改代码一样,恶意数据擦除后果也是很严重的。2022年2月24日俄乌冲突爆发时,覆盖乌克兰地区的美国卫星运营商Viasat遭遇网络攻击,导致数千乌克兰用户、数万名欧洲其他地区用户断网,事后调查,发现攻击者利用错误配置的VPN设备入侵卫星网管理后台,向数万用户侧Modem下发管理指令覆盖掉了设备闪存,由此关闭客户家中的调制解调器并导致其无法接入网络,造成断网。这就是恶意数据擦除的典型事件。在HAS2022中有一道名为djikstar的赛题,就是以恶意数据擦除为背景的。在该题中,用户乘坐的船在太平洋中部抛锚,幸好用户可以连接全球Starlunk网络(虚构的一个卫星网络)进行对外联系,用户有一个Starlunk终端,这个终端可以根据所在坐标,计算如何通过最短路径(也就是经过最少的Starlunk网络中的卫星中转)到达最近的地面网关站。不幸的是,攻击者已经破坏擦除了用户Starlunk终端中计算最短路径的代码,要求用户自行计算到达最近的地面网关站的最短路径。

5 结语

美军方举办的“黑掉卫星”太空信息安全挑战赛,从另一个角度展示了美军方当前的能力、未来的能力、设想的战法,对我们加强太空信息安全建设具有十分有益的促进作用。我们务必保持太空大安全观,从供应链开始,到设计、研发、组装集成、运输、发射、运营、终端开发等各个环节都要有安全意识,做实安全工作,同时,保留必要手段,以备极端情况下能应急处置,恢复最低限度功能。

# CTF # 太空网络安全 # 太空安全 # 太空战
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录