
Симуляция PoC критической уязвимости повторного воспроизведения телекоманд CCSDS в спутниковых командных системах, демонстрирующая отсутствие проверки порядковых номеров и дублирующее выполнение команд.
# satellite_sim.py - Spacecraft that executes telecommands without checking sequence number
class Satellite:
def __init__(self):
self.executed = set()
def receive_tc(self, cmd_id, seq_num):
# Vulnerability: ignores seq_num, allowing replay of same command
self.execute(cmd_id)
def execute(cmd_id):
print(f"Executing command {cmd_id}")
sat = Satellite()
# Legitimate command
sat.receive_tc("ORBIT_CORRECTION", 1001)
# Attacker replays the same command
sat.receive_tc("ORBIT_CORRECTION", 1001)
Спутниковая система команд принимает пакеты телекоманд CCSDS, но не проверяет номер последовательности для предотвращения воспроизведения. Злоумышленник, перехвативший команду, может воспроизвести её, что приведёт к повторным включениям двигателей или другим вредоносным операциям.
Запустите симуляцию:
python satellite_sim.py
Одна и та же команда выполняется дважды.