테슬라 Model 3 컴퓨터를 사고 차량 부품으로 책상 위에서 구동하기
(bugs.xdavidhu.me)- 테슬라 버그 바운티 참여를 위해 eBay에서 Model 3의 MCU와 오토파일럿 컴퓨터를 구입해 데스크탑 환경에서 구동 시도
- 12V 전원 공급기와 터치스크린 모듈을 추가 연결해 부팅에 성공했으며, 이더넷 포트를 통해 내부 네트워크 접근 가능
- MCU 내부에는 SSH 서버와 ODIN REST API(8080포트) 가 열려 있었고, SSH 접속에는 테슬라 서명 키가 필요함
- 초기에는 케이블 호환 문제와 PCB 손상으로 전원 컨트롤러 칩을 교체해야 했으나, 수리 후 시스템 복구에 성공
- 최종적으로 Dashboard Wiring Harness를 연결해 터치스크린과 차량 OS 완전 부팅을 구현, UI 조작과 펌웨어 분석이 가능해짐
테슬라 Model 3 컴퓨터를 책상 위에서 구동하기
- 테슬라 버그 바운티 프로그램 참여를 위해 실제 차량 하드웨어가 필요해 eBay에서 Model 3의 MCU(미디어 제어 유닛) 과 오토파일럿(AP) 컴퓨터 부품을 구입함
- 차량용 컴퓨터는 두 보드가 겹쳐진 구조로, 승객석 글러브박스 뒤에 위치하며 수냉식 금속 케이스로 덮여 있음
- eBay에서 200~300달러대의 부품을 확보했으며, 대부분은 사고 차량 해체업체가 판매한 제품임
- 시스템 부팅을 위해 12V DC 전원 공급기, 터치스크린 모듈, 디스플레이 케이블이 추가로 필요했음
- 전원 공급기로 0–30V 조절형 10A 모델을 사용했고, 화면은 175달러에 구입함
케이블 문제와 전기 배선 정보
- MCU와 화면을 연결하는 케이블은 대부분 커넥터 직후 절단된 상태로 판매되어 별도 케이블 제작이 필요했음
- 테슬라는 모든 차량의 Electrical Reference 문서를 공개하고 있어 각 커넥터의 핀 구성과 배선 정보를 확인할 수 있었음
- 디스플레이는 Rosenberger 99K10D-1D5A5-D 커넥터를 사용하는 6핀 케이블(12V/그라운드 2핀, 데이터 4핀)을 필요로 함
- 이 커넥터는 일반 소비자가 단품으로 구매할 수 없어, 대체품으로 BMW용 LVDS 케이블을 주문함
전원 연결 및 네트워크 접근
- 테슬라 회로도와 온라인 자료를 참고해 12V와 그라운드 핀을 찾아 전원을 연결하자 빨간 LED가 점등되며 부팅이 시작됨
- 화면이 없어 상호작용은 제한적이었으나 이더넷 포트를 통해 노트북과 연결 가능
- 네트워크에는 DHCP가 없어 수동 IP 설정이 필요하며
192.168.90.X/24대역을 사용해야 함 - Reddit에서 공개된
/etc/hosts파일을 통해 MCU, 게이트웨이, 오토파일럿 등 내부 호스트 IP를 확인함 - MCU(
192.168.90.100)에는 SSH(22포트) 와 웹서버(8080포트) 가 열려 있었음
MCU 내부 서비스와 구조
- SSH 서버는 “SSH allowed: vehicle parked” 메시지를 표시하며 테슬라 서명 키가 있어야 접속 가능
- 테슬라 버그 바운티에서 루트 취약점을 찾은 연구자에게는 영구 SSH 인증서가 발급됨
- 8080 포트에는 ODIN(On-Board Diagnostic Interface Network) 이라는 REST형 API가 열려 있으며, 이는 Toolbox 진단 도구에서 사용됨
- 금속 차폐를 제거하자 MCU와 오토파일럿 보드가 적층 구조로 배치된 내부를 확인할 수 있었음
케이블 실패와 회로 손상
- BMW LVDS 케이블은 물리적으로 호환되지 않아 직접 배선 연결을 시도함
- 얇은 선이 부서지며 PCB 쇼트가 발생했고 전원 컨트롤러 칩이 손상됨
- 손상된 칩의 식별이 어려웠으나 협력자 Yasser가 이를 MAX16932CATIS/V+T 스텝다운 컨트롤러로 확인함
- 새 칩을 주문해 PCB 수리점에서 교체, MCU 복구에 성공함
- 이후 예비용으로 두 번째 컴퓨터를 추가 확보함
최종 해결과 완전한 부팅
- Rosenberger 케이블을 구할 수 없어 결국 Dashboard Wiring Harness 전체(80달러) 를 구매함
- 실제 차량은 개별 케이블이 아닌 대형 배선 하네스(loom) 형태로 제작되어 있었음
- 하네스를 연결하자 터치스크린이 정상 작동하며 차량 운영체제가 완전히 부팅됨
- 이후 UI 조작, 네트워크 인터페이스 탐색, CAN 버스 분석, 펌웨어 추출 시도 등이 가능해짐
Hacker News 의견들
-
Tesla의 Root access 프로그램이 흥미로움
연구자가 유효한 루팅 취약점을 하나라도 찾으면 자신의 차량에 대한 영구 SSH 인증서를 받아 root로 로그인할 수 있게 됨
Apple의 Security Research Device Program과 비슷한데, 자격 요건이 명확함
root 권한을 모두에게 주면 악의적 행위자에게 취약점 탐색이 쉬워지므로 Tesla의 접근이 이해됨- 차량 소유자라면 원래 root 권한을 가져야 하는 것 아닌가 하는 생각이 듦. 제조사를 위해 무료로 연구해야만 root를 얻는 구조가 아쉬움
- 루트 취약점을 지속적으로 찾는 프로그램이라면, Tesla가 자사 플랫폼의 보안 안정성에 자신이 없는 것처럼 보임
- 쉘 접근은 추가 연구에 매우 유용함. 만약 Tesla가 버그를 패치하고 접근을 막아버린다면, 연구자들은 공개 대신 비공개로 남길 가능성이 큼
- 이 프로그램은 인포테인먼트 시스템에만 해당되고, 오토파일럿 컴퓨터에는 적용되지 않음. Tesla가 과거 연구자 차량의 인증서를 취소한 적도 있음
- root를 주지 않으면 연구자가 취약점을 비밀로 유지할 유인이 생기므로, 이 정책은 합리적으로 보임
-
예전에 서드파티 스캔 툴을 만드는 회사에서 일했음
실제 차량 대신 ECU를 랙에 연결해 테스트했고, BMW의 비표준 바이트 오프셋 문제를 찾아냄. 경쟁사 툴은 문제를 못 잡았지만, 공식 BMW 툴은 DTC를 표시했음- DTC가 Diagnostic Trouble Codes의 약자임을 설명함
- 1999년식 Mercedes E300 Turbodiesel의 스캔 툴 문제로 고생 중임. 예전 Autel 장비가 벽돌이 되어 iCarsoft로 교체했지만 ECU와는 통신이 안 됨
모델을 다르게 설정하면 ECU DTC를 지울 수는 있어서 임시로 사용 중임. 이 분야는 오픈 하드웨어/소프트웨어 접근이 절실함 - 최근 일주일간 Claude + Ghidra를 이용해 차량과 스캔 툴을 리버스 엔지니어링함
비싼 상용 소프트웨어로 만든 결과물을 공개할지 고민 중이며, 차량 통신 프로토콜 정의 같은 정보는 모두에게 열려야 한다고 생각함
-
LVDS가 자동차용 케이블로 불리는 게 재밌음. 원래는 노트북 디스플레이와 메인보드를 연결할 때 많이 봤던 것임
- Wikipedia에 따르면, 초기에 노트북 제조사들이 FPD-Link 대신 LVDS라는 용어를 잘못 사용하면서 혼동이 생겼다고 함
Low-voltage differential signaling 문서 참고 - 요즘 노트북은 LVDS 대신 eDP(embedded DisplayPort) 를 사용함. 자동차 디스플레이에는 LVDS가 남아 있지만, 스마트폰 등은 MIPI DSI로 대체됨
- SpaceWire도 LVDS 기반의 초경량 라우팅 프로토콜로, 위성에서 많이 사용됨
- Wikipedia에 따르면, 초기에 노트북 제조사들이 FPD-Link 대신 LVDS라는 용어를 잘못 사용하면서 혼동이 생겼다고 함
-
Tesla의 UI 앱인 QtCar를 QEMU에서 실행할 수 있음
펌웨어만 있으면 가능하며, 관심 있으면 DM 달라고 함
시연 영상 -
Tesla Model Y에 견인 브레이크 컨트롤러를 직접 설치한 경험을 공유함
14.4V 전압에 맞는 컨트롤러를 찾아 케이블을 제작하고, eBay에서 커넥터를 구입해 장착했음
작년 여러 번 캠핑 트레일러를 문제없이 견인했으며, 이런 DIY 해킹 정신이 멋지다고 느낌- 일반 차량도 2000rpm에서 15V까지 올라가므로, 14.4V는 특별히 높은 전압이 아님을 지적함
- 대부분의 내연기관 차량이 14.4V 근처 전압을 내므로, 표준 컨트롤러로도 충분했을 것 같다고 언급함
-
문제의 핵심이 단순한 6핀 커넥터였다는 점이 흥미로움
도면과 치수가 있었는데도 3D 프린팅으로 커넥터를 직접 만들 생각을 안 한 게 의외였음 -
이 프로젝트가 정말 멋짐
플러그 앤 플레이인지, 주행거리 정보가 어디 저장되는지 궁금함
가능하다면 적응형 서스펜션을 구형 모델에 이식해보고 싶음. Raspberry Pi로 별도 제어 시스템을 만드는 아이디어도 있음 -
차량이 예상된 주변 장치 없이도 운영체제가 완전히 부팅된다는 점이 놀라움
-
Tesla에 대해 뭐라 하든, 해킹 관점에서는 정말 멋진 프로젝트임
-
80달러에 전체 배선을 사야 했다는 말이 있었는데, 미국에서는 이를 wiring harness라고 부름. loom은 피복 재질을 뜻함
- 사실 그 케이블은 더 저렴하게 구할 수 있음. 약 15달러짜리 Violet HSD Code D 4+2 Pin Female to D Female Jack Connector가 대체 가능함
AliExpress 링크
- 사실 그 케이블은 더 저렴하게 구할 수 있음. 약 15달러짜리 Violet HSD Code D 4+2 Pin Female to D Female Jack Connector가 대체 가능함