DEFCON极客大会是全球顶级的安全会议,诞生于1993年,被称为极客界的“奥斯卡”,每年7月在美国的拉斯维加斯举行,近万名参会者除来自世界各地的极客、安全领域研究者、爱好者,还有全球许多大公司的代表以及美国国防部、联邦调查局、国家安全局等政府机构的官员。在2019年举办的DEFCON 27会议上,主办方宣布要举行太空信息安全挑战赛,正式名称是Hack-A-Sat(以下简称HAS)。比赛分为两个阶段,资格赛和决赛,采用积分制,资格赛中积分靠前的8支参赛队将进入决赛。参赛团队的规模可以不限,可以是独立的团队,也可以是由学术机构或公司赞助的,由来自不同公司或大学的人组成,只要其中包括一名美国公民,而且不在美国财政部的“特别指定国民”名单上。
在2020年5月22日至24日举行Hack-A-Sat 2020(以下简称HAS2020)资格赛,有6298人参赛,组成2213支队伍。这次比赛引起美国空军的注意,所以2020年8月7日至8日HAS2020的决赛由美国空军组织。
到了2021年,第二届太空信息安全挑战赛,即Hack-A-Sat 2021(以下简称HAS2021),则由美国空军与美国天军联合组织,于2021年6月26日至27日举行了资格赛,有2962人参赛,组成了1088支队伍,积分排名前7名的参赛队与HAS2020的第一名,共8支队伍进入决赛,决赛于2021年12月11日至12日举行,持续24小时。
HAS采用夺旗赛CTF(Capture The Flag)的形式,主办方会给出每个题目的部分背景信息,提供一个模拟环境,要求参赛队通过这个模拟环境,利用已知的信息获取隐藏的flag,并将flag发送给主办方,以评判结果,记录成绩。
HAS是结合了航天与信息安全两个领域的比赛,在其题目设置上也体现了这一点,有别于传统的信息安全夺旗赛。一般的卫星运行都包括三部分:地面站、星地链路、卫星。HAS的挑战题也是围绕这几个部分进行的。在题目中除了传统的密码破解、逆向工程、信号截获分析等信息安全知识,还结合了天体物理学、天文学的相关知识,体现太空网络安全的特殊性。涉及的技术也是相当广泛,既有嵌入式操作系统相关的,也有处理器相关的,还有信号处理相关的。对参赛者提出了极高的要求。
以HAS2020为例,HAS2020共有34道题,除了3道题用于熟悉比赛环境外,实际上有31道题。这31道题按照卫星运行涉及的领域分为6类,每类平均有5道题左右,且每一类的5道题目均区分了难度,从易到难,相应的分值也是从低到高。这6类具体情况分析如下。
(1)AAAA
AAAA是天文学(Astronomy)、天体物理学(Astrophysics)、天体测量学(Astrometry)和天体动力学(Astrodynamics)的简称,从类别名称就可知道这一类挑战题主要是航天专有的,涉及到卫星运行轨道分析、星体追踪器使用、卫星在空间位置确定等。比如其中的“beckley”这道题目,给出了一颗卫星的两行元素轨道报TLE(Two-Line Element),以及拍摄的一张照片,及拍摄时间,要求得出这个卫星拍摄这张照片时的坐标、摄像角度,然后通过Google Earth模拟这一个位置、角度,最后找到flag。为了解答这个题,需要掌握理解空间坐标系转换等知识,并学会使用Google采用的地理数据的交换方式KML(Keyhole Markup Language)、python的天文学包skyfield等专用工具。
(2)卫星平台(Satellite Bus)
本类别主要是针对卫星平台设置题目,除了需要掌握传统的信息安全方法,比如:逆向分析,还需要对遥测遥控等航天知识有了解。比如其中的“patch”这道题目,模拟的卫星平台使用的是NASA公布的一个独立于平台和项目的可重用软件框架cFS(core Flight Software),提供了cFS的部分固件文件,需要对该固件文件进行逆向分析,找到系统维护的缺陷,然后需要使用遥测遥控软件COSMOS(Command and Control of Embedded Systems)对卫星平台,按照CCSDS(国际空间数据系统咨询委员会,Consultative Committee for Space Data Systems)的标准格式,发送MM(内存管理,Memory Management)指令,将指定内存地址的数据读取出来,就是flag信息。
(3)地面段(Ground Segment)
本类别主要是从卫星地面站的角度设置题目,涉及到跟踪卫星、遥测遥控卫星等。比如“rbs_m2”这道题目,模拟背景是有一个非法地面站正在跟踪我们的卫星,并发出干扰信号,但是不知道跟踪的是哪些卫星,现在获取了这个地面站3条控制天线马达的电缆发出的无线电信号记录。要求使用这些记录来推断这个非法地面站正在跟踪哪些卫星。本题需要使用的知识除了前文提到的TLE、skyfield,还涉及电磁场等。
(4)通信系统(Communication System)
本类别主要针对地面站与卫星之间的星地链路设置题目,题目相对传统,涉及到软件无线电、调制解调等。比如“phasor”这道题目,给了截获的星地链路之间的一段音频文件,要求恢复该文件,并从中取出flag。本题需要分析该音频文件的调制解调方式、编码方式,并使用软件无线电工具GNURadio进行解调。
(5)载荷模块(Payload Modules)
本类别主要针对卫星载荷设置题目,涉及卫星遥测遥控、密码算法破解、逆向工程等。比如“spacedb”这道题目,模拟某颗卫星因为一次更新,导致其内部的软件出问题了,需要参赛者纠正该问题,否则卫星将永久失去作用。并给出卫星使用的是一个定制的嵌入式Linux系统kubOS。KubOS是一系列微服务的集合,通过这些微服务组成了高度容错和可恢复的操作系统,用来运行要求很高的飞行软件FSW(Flight Software),本题需要掌握kubOS中任务调度服务、遥测数据库服务等的使用方式。
(6)杂项(Space and Things)
这一类中的题目是不好归类到上面5类的太空信息安全挑战题,既有推测卫星位置的题目,也有卫星载荷任务规划的题目,比如“mission”这道题,这是一道关于侦察卫星的题目,在给定的背景下,要求给出该卫星的任务规划,实现拍摄并下传特定目标的目的。侦察卫星对应的北美防空司令部的编号是USA 224,给了当前时刻、侦察卫星的TLE、卫星要侦察的目标的经纬度(伊朗航天港),要求参赛者设计一个卫星拍照计划,从指定时间开始,在48小时内取得目标的图像信息,并回传到地面站(坐标位于美国阿拉斯加州费尔班克斯)。
HAS1决赛的题目是一个多任务组成的题目。每一支进入决赛的队伍都会有一颗训练用模拟卫星“FlatSat”,FlatSat基于Artix 7 FPGA,其中运行欧洲航天局的Leon开源处理器,不仅配备有模拟的制导导航与控制系统,还包含有效载荷系统。决赛的环境与FlatSat相似,但是主办方做了一些修改,添加了一些bug,此外,还提供了一个与之交互的树莓派。决赛的背景是假设卫星已遭攻击者入侵及破坏,目前处于失控状态。参赛队需要重新夺回对卫星的控制权。为此,各参赛队需要完成6项具体任务,这6项任务环环相扣。
任务0:获得对卫星地面站的控制权。
任务1:尝试与失控自旋的卫星取得联系。
任务2:尽快修复卫星,阻止其继续不受控制地旋转。
任务3:建立与有效载荷模块或成像设备的正常通信。
任务4:恢复有效载荷的正常运行,而后控制成像设备。
任务5:在实验室中拍下月球图像以证明成功恢复对卫星的控制。主办方将选择一支参赛队的解决方案并将其上传至太空中的真实卫星,验证能否成功拍下实际图像。
摘自《Hack-A-Sat太空信息安全挑战赛深度解析》