서머타임이 끝나 자동차 시계를 한 시간 늦추려는데 설정 항목이 보이지 않았다. 지도는 휴대전화로 보면 되지만, 차의 시계는 그대로 남았다. 2026년 11월 2일 보안 연구자 라스무스 모오라츠(Rasmus Moorats)가 공개한 글은 2014년식 르노 래티튜드에서 시간을 고치려고 내비게이션 내부 소프트웨어를 분석한 이야기다.
이 차에 들어간 카미나트 톰톰 라이브(Carminat TomTom LIVE)는 지도용 SD 카드가 없으면 시간 설정 화면으로 들어갈 수 없었다. 오래된 지도가 필요 없어 카드를 받지 않았던 선택이, 나중에는 시계 조정까지 막았다. 연구자는 결국 기기에서 관리자 권한으로 코드를 실행해 내부 설정값을 바꿨다.
지도 없이도 시계는 보이는데, 설정은 열리지 않았다
처음부터 시계가 사라진 것은 아니었다. 화면 오른쪽 위에는 시간이 나오고, 가운데에는 에스토니아어로 지도를 찾지 못했다는 안내가 떠 있었다. 에스토니아의 시간이 여름철 UTC+3에서 겨울철 UTC+2로 바뀌자 차량 표시가 한 시간 어긋났다.

대시보드에는 설정 버튼이 두 개 있었다. 하나는 블루투스와 전화번호부 설정만 열었고, 다른 하나는 지도가 없다는 안내만 띄웠다. 펌웨어를 분석하고 나서야 원인이 드러났다. 시간 설정 기능으로 연결하는 메뉴 정의 자체를 SD 카드에서 읽었다. 지도 데이터만 빠진 것이 아니라, 사용자가 설정으로 들어가는 경로도 함께 빠져 있었다.
파일을 빈 SD 카드에 복사하는 것으로 해결되지도 않았다. 원문에 따르면 기기는 카드 고유 식별자인 CID와 그 식별자에 연결된 파일 서명을 확인했다. 연구자가 찾은 대체 카드의 가격은 에스토니아 배송비를 포함해 약 60유로였다.
오래된 리눅스라도 곧바로 고칠 수는 없었다
기기는 삼성 S5P6440 칩과 리눅스 2.6.28.10 기반 운영체제를 사용했다. 연구자는 업데이트 파일에서 시스템 파일을 꺼낸 뒤, 컴퓨터 안에서 기기의 동작을 시험할 수 있도록 QEMU 에뮬레이터와 간단한 차량 통신 모형을 구성했다.
업데이트 이미지를 수정해 설치하는 시도는 실패했다. 정상 이미지는 설치 확인창까지 갔지만 수정본은 받아들이지 않았다. 연구자는 복구 영역에 별도 검증이 있을 것으로 추정했으며, 해당 영역의 검증 코드는 확보하지 못했다.
저장장치의 접근 제한도 걸림돌이었다. 주요 시스템 파일은 읽기 전용이었고, SD 카드 등에는 파일의 직접 실행을 막는 noexec 설정이 붙어 있었다. 카드를 꽂고 프로그램을 넣는 것만으로 관리자 권한을 얻는 구조는 아니었다.
각각 막혔던 기능이 연결되자 실행 경로가 생겼다
다른 단서는 SD 카드의 master.script였다. 기기가 부팅 때 읽는 화면 조작용 스크립트로, 실행 여부를 묻는 창도 띄웠다. 연구자는 이 파일을 해석하는 프로그램을 분석했지만, 시간 설정 메뉴를 직접 여는 방법은 찾지 못했다.

대신 두 가지 기능을 확인했다. 프로그램 실행 명령은 내부에 이미 있는 실행 파일을 부를 수 있었지만 추가 인자를 넘기지 못했다. 로그 명령은 출력 경로를 지정할 수 있었고, 상위 폴더로 이동하는 경로 표현을 허용해 의도한 폴더 밖에도 글을 쓸 수 있었다. 이 스크립트 해석기는 관리자 권한으로 동작했다.
연구자는 로그 출력 대상을 리눅스의 충돌 처리 설정인 core_pattern으로 바꿨다. 이 설정은 프로그램이 비정상 종료할 때 실행할 처리 프로그램과 인자를 지정할 수 있다. 이어 기기에서 인자 없이 실행하면 비정상 종료하는 프로그램을 찾아 충돌을 일으켰다. 커널이 그 충돌을 처리하면서, SD 카드의 스크립트를 내부 셸로 읽어 실행하게 했다.
noexec는 카드에 있는 파일의 직접 실행을 막지만, 내부에 있는 셸이 그 파일을 읽는 것까지 막지는 않는다. 실행 인자를 못 넘긴다는 제약도 충돌 처리 기능을 거치면서 피해 갔다. 커널의 새 메모리 취약점을 발견한 것이 아니라, 관리자 권한의 경로 검사 결함과 기존 시스템 기능을 연결한 결과다. 이 과정은 차량에 SD 카드를 넣고 실행 확인에 응답하는 접근을 전제로 하며, 원격에서 차량을 장악한 사례가 아니다.
마지막에 바꾼 값은 180에서 120이었다
코드 실행을 확인한 뒤 연구자는 먼저 내부 저장장치 전체를 백업했다. 이후 시간 관련 값이 /mnt/flash/settings.dat에 들어 있다는 사실을 찾아냈다. 이 기기는 GPS에서 시간을 받고, 현지 시각과의 차이를 분 단위로 저장했다. 연구자의 차량에 있던 값 180을 120으로 바꾸자 원하던 한 시간 조정이 끝났다.

사용자가 원한 변경은 작았지만, 그 값을 찾으려면 펌웨어 분석과 에뮬레이터 구성, 실행 경로 확보가 필요했다. 지도 카드가 없어도 GPS 시각을 받고 표시할 수 있는 기기에서, 시차를 고치는 사용자 메뉴만 지도 카드에 묶인 셈이다.
기본 설정을 부가 콘텐츠와 분리해야 하는 이유
이 사례에서 드러난 유지보수 문제는 지도 사용 여부와 시계 설정 권한이 함께 움직였다는 점이다. 내비게이션을 더 쓰지 않는 소유자도 차 안의 시계를 계속 봐야 한다. 지도 파일이나 전용 카드가 없어졌을 때 기본 설정까지 사라지면, 정상적으로 쓸 수 있는 하드웨어를 유지하는 데 불필요한 비용과 전문 지식이 든다.
지도 이용 권한 확인과 시스템 파일 보호는 서로 다른 목적을 가진다. 시간 설정 메뉴를 기기 안에 남겼다면 지도 카드가 없는 소유자도 시차를 고칠 수 있었을 것이다. 오래 쓸 내장형 기기를 고를 때에는 업데이트 제공 기간과 함께, 전용 저장매체나 서비스 없이 조정할 수 있는 기본 기능도 살펴야 한다. 차량 화면에서 스마트폰 연동 앱을 빼는 선택도 내장 시스템에 남길 기능과 외부 서비스에 맡길 기능의 경계를 보여 준다.
출처: Jailbreaking my car’s navigation system just so I can change the time, Linux core(5)
