2026년 7월 8일, 호주 멜버른에 있는 텔스트라(Telstra)의 Stratum-1 타임 서버에 탑재된 GPS 카드가 리셋되면서 2006년이라는 날짜를 전송하기 시작했다.
감사 결과에 따르면 텔스트라 이동통신 코어망의 모든 사용 가능한 NTP 소스가 2006년으로 일치했고, 이로 인해 일부 사용자는 긴급 통화를 포함해 전화 통화를 할 수 없었다.
이는 펌웨어 버그 때문이었다. 하지만 냉정한 현실은 이러한 문제를 재현하는 데 굳이 버그까지 필요하지 않다는 점이다. GPS 스푸핑이 의도적으로 똑같은 현상을 일으킬 수 있다.
이 글에서는 시간 오차가 타임 서버로부터 어떻게 전파되는지, 이것이 왜 위험하며 공격을 막기 위해 무엇을 할 수 있는지 설명한다.

민간용 GPS 신호에는 인증 메커니즘이 없다.
유럽의 갈릴레오(Galileo)는 2025년 7월부터 서명된 민간 신호를 정식 서비스로 제공하고 있는 반면, GPS는 여전히 요구사항 검토 단계에 머물러 있다.
2016년 치후360(Qihoo360) 연구진은 저가 부품으로 GPS 및 JJY 시간 신호를 위조하여 자체 NTP 서버의 시계를 한 번에 1,000초씩 이동시켰다. 시계가 조작되었을 때 어떤 문제가 발생하는지는 이전 NTP 관련 글에서 다루고 있다.
공격 방어 방안
- 타임 서버가 자체 발진기와 GPS 신호를 비교·검증할 수 있다. 마인베르크(Meinberg)의 알고리즘은 예기치 않은 시간 급변(time step)이나 완만한 변동(slow ramp)을 감지해 경보를 울리고, 루비듐 발진기를 사용하는 홀드오버(holdover) 모드로 전환한다.
- 클라이언트는 잘못된 서버 1곳의 의견을 다수결로 무시할 수 있다. 이러한 NTP “다수결 원칙”이 작동하려면 서로 독립된 소스들이 필요하다.
텔스트라의 소스들은 피어링 루프를 통해 모두 단 하나의 GPS 카드로 귀결되어 있었다. 이것이 바로 버그가 다수결에서 승리하여 시간을 2006년으로 결정하게 된 이유다.

사용 중인 시간 소스 확인 방법
리눅스에서는 timedatectl timesync-status(chrony를 사용하는 경우 chronyc tracking), 윈도우에서는 w32tm /query /status 명령어를 실행하면 동기화 대상의 계층(Stratum)과 참조 소스(Reference)를 확인할 수 있다.
2026년 10월 3일, 한국 내부에서 한국의 공개 NTP 서버들을 조회해보았다. 결과는 다음과 같다.
한국표준과학연구원(KRISS)의 서버인 time.kriss.re.kr과 ntp.kriss.re.kr은 사설 주소 refid와 함께 Stratum 3을 반환했으므로 상위 서버(Upstream) 정보가 숨겨져 있다.
LG유플러스의 time.bora.net은 Stratum 2를 반환했다. 이 서버의 상위 서버는 Stratum 1이었으며 refid는 초당 펄스 참조인 pps로 반환되어 출처 명칭이 나와 있지 않았다.

참고 자료
- Technology Audit Partners — 7월 8일 텔스트라 장애 조사 보고서 (2026년 8월 24일)
- EUSPA — 시험운용에서 정식 서비스로: 갈릴레오 OSNMA 서비스 사용 가능 (2025년 9월 5일)
- Hansen 및 Skalski (미국 교통부) — GPS 엔터프라이즈 대상 DOT 연락관 보고서 (2026년 4월 21일)
- SecurityWeek — 원거리 무선 공격에 노출된 NTP 서버 (2016년 5월 28일)
- Meinberg — GNSS 스푸핑과 경감 방안 (2020년 4월 14일)
- Meinberg — 무선 시간 신호 교란 공격 (2016년 6월 28일)
