国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显[1]。而在信息化时代,太空安全与信息安全紧密地结合在一起。
2020年9月4日,美国白宫发布了首份针对太空网络空间安全的指令——《航天政策第5号令》,其为美国首个关于卫星和相关系统网络安全的综合性政策,标志着美国对太空网络安全的重视程度达到新的高度。在此背景下,美国自2020年起,连续两年举办太空信息安全大赛“黑掉卫星(Hack-A-Sat)”,在《Hack-A-Sat太空信息安全挑战赛深度解析》一书中有详细介绍,本文介绍了Hack-A-Sat黑掉卫星挑战赛的控制卫星载荷任务调度(monroe)这道赛题的解题过程。
题目介绍
Time for a really gentle introduction to cFS and Cosmos, hopefully you can schedule time to learn it!
Build instructions:
$ ./setup.sh $ source ~/.bashrc $ rm Gemfile.lock $ bundle install
Hint: You will need to enable telemetry locally on the satellite, the udp forwarder will provide it to you as TCP from there:
cosmos.tar.gz calendar_hint1.zip
Connect to the challenge on calendar.satellitesabove.me:5061.
从题目描述中可以获取如下信息:
(1)与cFS、COSMOS有关,在下文会有这两个系统的基本介绍。
(2)本题目需要先使能卫星的遥测功能。
(3)提供了两个压缩包,其中cosmos.tar.gz是定制的COSMOS,并且给出了安装操作的指令;calendar_hint1.zip解压缩后有三个文件,如下所示,都是JSON格式的文件,具体含义还不知道,后文会分析。
-
cpu1_kit_sch_msg_tbl.json
-
cpu1_kit_sch_sch_tbl.json
-
cpu1_kit_to_pkt_tbl.json
以上就是题目的全部信息,可能需要安装COSMOS后可以获得更全面的信息。
编译及测试
为了检验下载的源代码是正确的,可以先编译并测试一下。进入hackasat2020的monroe目录下,直接编译,还是比较顺利的,就是时间可能比较长。
sudo make build
使用如下命令进行测试,测试结果如图6-1所示。从图6-1中可以发现正确地获取到了flag值。
sudo make test
图6-1 monroe测试结果
相关背景知识
1.COSMOS
COSMOS(Command and Control of Embedded Systems)是一套应用程序,可用于控制一组嵌入式系统,包括测试设备(电源、示波器、开关电源板、UPS设备等)、开发板(Arduinos、Raspberry Pi、Beaglebone等)、卫星等。本书编写时COSMOS最新的是V5版本,这是一个Web页面版本,但是本挑战题提供了一个定制的COSMOS,采用的是V4版本,所以本书以COSMOS V4进行介绍。
COSMOS V4是一个客户端/服务器(Client/Server,C/S)架构,不是Web页面方式。其架构在本书第3章有介绍,为便于读者阅读,此处再简单说明一下,COSMOS V4架构如图6-2所示。
(1)最中间的是测控指令服务端(Command & Telemetry Server),可以通过TCP、UDP、串口等方式与各类目标(包括卫星、飞行器等)进行交互。
(2)左上角是实时指令和脚本工具(Realtime Commanding and Scripting Tools)。
(3)右上角是实时遥测可视化工具(Realtime Telemetry Visualization Tools)。
(4)左下角是辅助工具,包括配置编辑器(Config Editor)等。