国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显[1]。而在信息化时代,太空安全与信息安全紧密地结合在一起。
2020年9月4日,美国白宫发布了首份针对太空网络空间安全的指令——《航天政策第5号令》,其为美国首个关于卫星和相关系统网络安全的综合性政策,标志着美国对太空网络安全的重视程度达到新的高度。在此背景下,美国自2020年起,连续两年举办太空信息安全大赛“黑掉卫星(Hack-A-Sat)”,在《Hack-A-Sat太空信息安全挑战赛深度解析》一书中有详细介绍,本文介绍了Hack-A-Sat黑掉卫星挑战赛的利用维护接口dump内存(patch)这道赛题的解题过程。
题目介绍
We have an encrypted telemetry link from one of our satellites but we seem to have lost the encryption key. Thankfully we can still send unencrypted commands using our Cosmos interface (included). I've also included the last version of `kit_to.so` that was updated to the satellite. Can you help us restore communication with the satellite so we can see what error "flag" is being transmitted?
主办方告诉参赛者,这里有一条某颗卫星的加密遥测链路,但似乎丢失了加密密钥。幸运的是,仍然可以使用COSMOS接口发送未加密的命令。主办方还提供了该卫星使用的一个共享库文件kit_to.so,要求参赛者恢复与卫星的通信,以便可以看到正在传输什么错误的“flag”。
从题目描述中可以获取如下信息:
(1)与COSMOS有关,在下文会有这个系统的基本介绍。
(2)题目提供了两个文件,一个为kit_to.so,另一个为cosmos.tar.gz。
主办方给出了一个链接地址,使用netcat连接到题目给的链接后,会回显如下信息,从中可以发现本题目与cFS也有关,在下文也会有cFS系统的基本介绍。
Starting up CFS UDP Forwarding Service on tcp:172.17.0.1:19021
Booting...
Checking File System...
File System Check: Pass
CFE_PSP: Clearing out CFE CDS Shared memory segment.
CFE_PSP: Clearing out CFE Reset Shared memory segment.
CFE_PSP: Clearing out CFE User Reserved Shared memory segment.
2032-010-14:25:02.11734 POWER ON RESET due to Power Cycle (Power Cycle).
2032-010-14:25:02.11737 ES Startup: CFE_ES_Main in EARLY_INIT state
CFE_PSP: CFE_PSP_AttachExceptions Called
2032-010-14:25:02.11740 ES Startup: CFE_ES_Main entering CORE_STARTUP state
2032-010-14:25:02.11741 ES Startup: Starting Object Creation calls.
2032-010-14:25:02.11741 ES Startup: Calling CFE_ES_CDSEarlyInit
2032-010-14:25:02.11756 ES Startup: Calling CFE_EVS_EarlyInit
2032-010-14:25:02.11760 Event Log cleared following power-on reset
2032-010-14:25:02.11762 ES Startup: Calling CFE_SB_EarlyInit
2032-010-14:25:02.11779 SB internal message format: CCSDS Space Packet Protocol version 1
2032-010-14:25:02.11783 ES Startup: Calling CFE_TIME_EarlyInit
1980-012-14:03:20.00000 ES Startup: Calling CFE_TBL_EarlyInit
1980-012-14:03:20.00026 ES Startup: Calling CFE_FS_EarlyInit
1980-012-14:03:20.00042 ES Startup: Core App: CFE_EVS created. App ID: 0
EVS Port1 42/1/CFE_EVS 1: cFE EVS Initialized. cFE Version 6.7.1.0
EVS Port1 42/1/CFE_EVS 14: No subscribers for MsgId 0x808,sender CFE_EVS
1980-012-14:03:20.05079 ES Startup: Core App: CFE_SB created. App ID: 1
1980-012-14:03:20.05088 SB:Registered 4 events for filtering
EVS Port1 42/1/CFE_SB 1: cFE SB Initialized
EVS Port1 42/1/CFE_SB 14: No subscribers for MsgId 0x808,sender CFE_SB
1980-012-14:03:20.10107 ES Startup: Core App: CFE_ES created. App ID: 2
EVS Port1 42/1/CFE_ES 1: cFE ES Initialized
EVS Port1 42/1/CFE_SB 14: No subscribers for MsgId 0x808,sender CFE_ES
EVS Port1 42/1/CFE_ES 2: Versions:cFE 6.7.1.0, OSAL 5.0.1.0, PSP 1.4.0.0, chksm 918
EVS Port1 42/1/CFE_SB 14: No subscribers for MsgId 0x808,sender CFE_ES
EVS Port1 42/1/CFE_ES 91: Mi