
محاكاة 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
يتم تنفيذ نفس الأمر مرتين.