
위성 명령 시스템의 심각한 CCSDS 원격명령 재생 취약점에 대한 PoC 시뮬레이션으로, 시퀀스 번호 검증 누락과 중복 명령 실행을 입증합니다.
# 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
동일한 명령이 두 번 실행됩니다.