
Simulazione PoC di una vulnerabilità critica di replay dei telecomandi CCSDS nei sistemi di comando satellitari, che dimostra la mancata convalida del numero di sequenza e l'esecuzione di comandi duplicati.
# 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)
Un sistema di comando satellitare accetta pacchetti di telecomando CCSDS ma non valida il numero di sequenza per prevenire il replay. Un attaccante che intercetta un comando può riprodurlo, causando accensioni duplicate dei propulsori o altre operazioni dannose.
Esegui la simulazione:
python satellite_sim.py
Lo stesso comando viene eseguito due volte.