인공위성 펌웨어 해킹을 위한 인공위성관련 용어정리
Satellite Operations Components 관련 용어
ground segment
- satellite operation의 센터. operators 팀이 GroundStation(GS, 기지국)을 이용해 위성에게 instruction(TC)을 보냄
- TC(Telecommand) : GS → 위성 보내는 instruction
- TM(Telemetry) : 위성 → GS로 보내는 응답 information (about the satellite’s status, errors, and other metrics)
- TC는 space protocol(우주 프로토콜)을 사용하며 TC와 TM 데이터의 조합을 TC/TM traffic이라함
space segment
- satellite operation에 필요한 모든 spacecraft가 포함됨 (하나의 위성일수도 있고 여러개의 위성 별자리 일수도있음 물론 로켓도 포함)
- 로켓 같은 발사체를 이용해서 궤도로 간 후, 궤도 배치 단계를 거쳐서 ground segment와 initiate communications을 수행함
user segment
- Very Small Aperture Terminal (VSAT)이나 GPS receiver 같은 터미널이며 space segment에서 제공하는 service를 받는 곳이다.
- 지구 관측 위성 같은 경우는 별도로 user segment로 서비스를 제공하지않고 ground segment와만 통신할 수있다.
Inter-Satellite Link(ISL)
- 위성간의 데이터 통신이 필요하거나, 초기 위성 발사후 ground segment와 통신을 맺기이전에 위성간의 통신을 수행하는 경우가 있는데, 이러한 위성간의 통신을 Inter-Satellite Link 라고한다.
Very-small-aperture terminal
- https://en.wikipedia.org/wiki/Very-small-aperture_terminal
- 접시모양의 3.8m 이하 작은 기지국이다. 양방향 통신이 가능하다.
Satellite Architecture
- 위성은 크게 satellite payload와 satellite bus로 구분이 되어있다.
- 기존의 컴퓨터 공학에서 payload와 bus의 의미와 다르니 주의가 필요하다.
bus-payload separation
⇒ attacker의 메인 타겟 : satellite bus
- 버스는 패이로드와 독립적으로 작동하도록 설계되었음.
- 하지만 패이로드는 버스에 의존적임
satellite payload
- 위성 작동과 유지와는 별개로 필요한 임무용 장비 (ex. 지구 관측용 고해상도 카메라 / 통신을 위한 강력한 무선 하드웨어)
satellite bus
- 위성 작동과 유지에 필요한 모든 component들
- ADCS / EPS / CDHS / COM가 포함되며 bus가 payload를 control함
CDHS(Command and Data Handling System)
- satellite bus는 CDHS를 중심으로 위성과 spacecraft의 모든 기능을 관리한다.
- CDHS는 On-Board Controller를 사용한다. (CDHS == On-Board Controller)
- OBC는 임베디드 장비에 마이크로 컨트롤러와 메모리가 함께있는 컴퓨팅 플랫폼
- 이 OBC 위에 OBSW(On-Board Software)를 올려서 사용하고 이게 펌웨어 해킹의 메인이 되는 부분이다.
- OBSW는 Real-Time Operating System(RTOS) 기반으로 remote-control server를 구현하고 아래와 같은 동작을 수행한다.
- TC/TM traffic
- providing data storage
- scheduling comands
- performing autonomous actions
- updating the program code
PDHS(Payload Data Handling System)
- CDHS와 유사하지만 Payload 관련 데이터를 받아서 처리하는 컴포넌트. 이때 PLCOM을 통해 기지국에서 보낸 TC를 처리한 이후의 데이터를 받음
- COM과 유사한 PLCOM(Payload Communication Module) 을 통해 control traffic을 받을 수 있고 패이로드 장비에서 받은 general data processing 도 가능함
- payload는 customization 정도가 매우 높은 부분이기 때문에 다른 위성에서는 PDHS와 PLCOM 설명이 다를 수 있음
UDHS(Untrusted Data Handling System)
- CDHS와 PDHS와 데이터를 처리한다는 점에서는 비슷하지만 약속된 커맨드라기보다는 주로 사용자의 코드(실험용 코드.. 등등 사용자가 직접 짠 코드)를 실행
- ex. 서비스 제공자의 서비스 / scientific experiment applications
- 참고 : https://opssat1.esoc.esa.int/attachments/download/868/Publication_IAA Symposium.pdf
- OPS-SAT : 대중이 소프트웨어/펌웨어를 로드하고 테스트할 수 있는 최초 의 궤도 내 실험실
COM(Communications Module)
- GS와의 통신을 담당하는 부분 주로 TC/TM traffic 만 담당
- 하드웨어 : 안테나, 라디오등으로 구성
- 소프트웨어(computing setup) : 디코딩, 프로토콜 구현, 엑세스 관련 기능들이 포함가능
- 더 큰 bandwidth traffic이 필요한 패이로드 데이터 다운링크는 COM에서 처리X ⇒ 별도로 더 강력한 무선 통신 setup이 필요함. COM은 satellite bus의 구성요소로, TC/TM traffic만 담당함
- COM은 CDHS와 직접적으로 엮여있기때문에 공격자의 주된 entry point이자 attack surface가 됨
- 추가적으로 COM에서의 프로토콜 구현이 첫번째 방어선의 관점에서 보안과 관련있음
ADCS(Attitude Determination and Control System)
- 안테나는 지구, 태양전지판은 태양을 향하게 위성의 각도를 조절해주는 시스템
- 처음 발사되고 발사체에서 떨어져 나왔을때 자율적인 detumbling을 수행해서 각도회전을 멈춰주기도함 (초기 연결 수립에 중요한 부분)
- AOCS(Attitude and Orbit Control System) ⇒ 위성에 추진기를 다는 경우
- 미세한 궤도 조절을 위해 추진기(thruster)를 다는 경우가 있는데, 이때 위성을 cyber-physical systems으로 만들기 때문에 해킹이 발생하면 물리적인 피해가 생길 수 있음 (궤도 연쇄반응)
Power Supply(EPS)
- Electrical Power System (EPS). 주로 태양전지판과 태양이 안통하면 배터리 이용
- 완전히 방전되면 위성을 다시 킬 수 없기때문에 전원관리가 중요하다.
CCSDS(Consultative Committe for Space Data Systems)
- 우주 프로토콜을 publish 하는 조직. 프로토콜에 동의하는 다양한 우주 관련 조직들이 모인 컨소시엄
- 여기서 만든 프로토콜을 CCSDS protocol 이라고 부름
Satellite Firmware Threats
Satellite Frimware Threat Taxonomy
- 탑다운 방식으로 구성되어있으며 세가지 계층이 있음
- 아래그림에서, control layer(파랑) - components layer(청록 및 회색) - interface layer(주황 및 초록)
control layer
- 가장 높은 레이어이고 공격자의 궁극적인 목표지점 (Satellite / Bus / Payload)
components layer
- 기능적 위성 구성요소들(ADHS / ADCS / EPS / Payload / CDHS / COM)이 포함되며 추가로 Bus-Payload link와 UDHS(Untrusted Data Handling System)도 포함
- 공격자입장에서, control layer에 도달하기위해서 이 component를 타겟해야함
Bus-Payload link
- 버스와 패이로드가 상호작용할 수 있게 해주는 다리 역할
- 패이로드는 버스의 제어를 받아 동작해야하기때문에 버스의 모니터링 및 제어기능에 인터페이스를 이용해 접근함
interface layer
- component와 의사소통하기위해서 반드시 가장먼저 interface에 access해야하고 컴포넌트와 external actors(ex. GS)간의 interaction을 관리해야함
external interface(RX)
- 작동 환경: External Rx는 위성의 외부 인터페이스로, 위성 외부에서 데이터를 수신
- 이때 주로 라디오나 광학 수신기와 같은 하드웨어를 이용
- 목적: 지구에서 보낸 명령이나 데이터를 위성이 수신하기위함
- 직면하는 위협: external interface는 인터페이스는 순수하게 하드웨어 기반 작업만을 수행(단순히 전자기 및 라디오 신호 forwarding)하기 때문에 소프트웨어 관련 위협은 고려하지 않고, 주로 전자기 및 라디오 주파수 위협만 고려
- 외부 신호 수신을 위해 소프트웨어(예: 펌웨어)를 사용하는 경우, COM(통신) 부분의 일부로 간주되어 접근 제어 우회 가능성이 있는 공격에 대한 고려가 이루어짐 -> 소프트웨어가 개입되면 external interface로 보지않음
internal interface (Fetcher)
- 작동 환경: Fetcher는 내부 인터페이스로, 위성 내부의 두 컴포넌트 간의 상호작용을 관리
- 목적: 내부적으로 한 컴포넌트로부터 데이터를 가져와(수신하여) 상위 컴포넌트에 제공
- internal interface는 반드시 부모 컴포넌트가 존재함
- 단순히 데이터를 가져오고 (receive) 부모 컴포넌트에 전달(forward)만 하기때문에 Fetcher로 불림
- 직면하는 위협: Data Fetcher는 주로 (1) 무결성(데이터 조작)과 (3) 가용성 위협(데이터 버퍼 과부하)에 직면
기타 용어
mega constellations
- 인공위성 별자리. 수백 수천개의 위성들이 모여 별자리같은 그룹
Kessler Syndrome (케슬러 증후군)
- 인공위성이 충돌에 의해 잔해가 발생하고 그 다른 인공위성에 충돌을 일으켜 연쇄적으로 새로운 잔해를 방출해 연쇄적인 결과를 내는 효과.
- 이런 잔해들로 인해서 해당 우주 공간에 수십년간 접근하기 어려울 수도있다.
spacecraft vs satellite
- 공통점 : 우주에 있는 인공 물체
- 차이점 :
- spacecraft : 우주를 항해하거나 우주로 향하기위한 기계
- satellite : 지구의 궤도를 도는 물체
- A spacecraft is a vehicle or device designed for travel or operation outside the Earth's atmosphere
- A satellite is an object that orbits the Earth, the moon, or another celestial body.
LEO(Low Earth Orbit)
- 낮은 궤도를 뜻함. (250-2000km)
GEO(Geostationary Orbit)
- 상대적으로 높은 궤도를 뜻함 (35,786km)
- 왜 하필 35,786km? 이 궤도에 있으면 궤도를 도는 주기가 지구의 자전주기(1일)과 동일해지기 때문에 지구에서 관측했을때 하늘에 동일한 위치에 고정된 것으로보임
- 추가설명
- An object in such an orbit has an orbital period equal to Earth's rotational period, one sidereal day, and so to ground observers it appears motionless, in a fixed position in the sky. The concept of a geostationary orbit was popularised by the science fiction writer Arthur C. Clarke in the 1940s as a way to revolutionise telecommunications, and the first satellite to be placed in this kind of orbit was launched in 1963.
FPGA (Field-Programmable Gate Array)
FPGA는 사용자가 필드(즉, 설계 후)에서 프로그래밍할 수 있는 반도체 장치입니다. FPGA는 매우 유연하며, 다양한 유형의 디지털 회로를 구현하는 데 사용될 수 있습니다. 복잡한 디지털 계산, 신호 처리, 논리 연산, 데이터 흐름 제어 등을 위한 맞춤형 로직 회로를 만드는 데 사용됩니다. FPGA는 여러 번 재구성 가능하여, 하나의 장치로 다양한 기능을 수행할 수 있습니다. 이러한 특성으로 인해 FPGA는 통신, 우주 탐사, 군사, 의료 기기 및 기타 많은 분야에서 광범위하게 사용됩니다.
SDR (Software-Defined Radio)
SDR은 무선 통신 기능의 대부분을 소프트웨어로 구현한 라디오 시스템입니다. 전통적인 하드웨어 기반 라디오와 달리, SDR은 안테나를 통해 수신한 아날로그 신호를 디지털 신호로 변환한 후, 필요한 신호 처리 작업(예: 변조, 데모듈레이션, 필터링, 앰프 등)을 소프트웨어로 수행합니다. 이는 SDR을 매우 유연하게 만들어, 소프트웨어만 변경함으로써 다양한 무선 통신 표준과 주파수 대역에 대응할 수 있게 합니다. SDR은 군사 통신, 휴대폰, 방송, 위성 통신 등 다양한 분야에서 사용됩니다.
FPGA와 SDR의 결합
FPGA와 SDR은 각각의 강점을 가지고 있으며, 이 둘을 결합하면 매우 강력한 통신 장치를 만들 수 있습니다. FPGA는 고속의 데이터 처리와 복잡한 알고리즘 실행에 적합하며, SDR의 유연성과 결합하여 맞춤형, 고성능, 다목적 통신 시스템을 구현할 수 있습니다. 예를 들어, FPGA를 사용하여 SDR의 핵심 신호 처리 알고리즘을 가속화할 수 있으며, 이를 통해 실시간으로 대량의 데이터를 처리하고 다양한 무선 통신 표준을 지원하는 고성능 SDR 시스템을 구현할 수 있습니다.