전동 스쿠터 CAN 통신 및 펌웨어 역분석 보고서 — AI 생성 일러스트AI 일러스트
리서치 연구

전동 스쿠터 CAN 통신 및 펌웨어 역분석 보고서

Reverse engineering my e-scooter and rewriting the firmware in Rust

Hacker News9월 10일 발표 · 3분

한 개인 이동장치(e-scooter)의 작동 원리를 파악하기 위해 블루투스 통신 분석과 CAN 버스를 이용한 컨트롤러 및 디스플레이 펌웨어 역분석을 수행했습니다.

세 줄 요약Hacker News 원문 기반
  1. 스쿠터의 핵심 제어 기능(스로틀, 주행 모드 등)이 CAN 메시지로 통신하며, 가장 심각한 취약점은 인증 절차 없이 누구나 펌웨어를 업데이트할 수 있다는 점입니다.
  2. 이는 스마트 모빌리티 기기가 통신 및 펌웨어 업데이트 과정에서 근본적인 보안 취약점을 가질 수 있음을 보여주며, 개인의 안전과 데이터 보호에 대한 경각심을 높여야 합니다.
  3. 본 분석은 CAN 버스 스니핑 및 MCU 덤프 등 고도의 임베디드 시스템 지식을 요구하는 전문 작업이며, 특정 모델에 국한된 결과임을 유념해야 합니다.

작성자는 개인 이동장치(e-scooter)의 작동 원리를 파악하기 위해 먼저 모바일 앱을 통해 블루투스 핸들러를 분석했다. 이 과정에서 스쿠터가 블루투스를 통해 펌웨어 업데이트를 수행하며, 주행 모드별 시간, 온도, 배터리 전압 등 다양한 메트릭이 전송됨을 확인했다. 이후 USB-C 포트를 조사한 결과, 데이터 핀 중 두 개가 CAN 버스로 사용되고 있음을 발견하고, ESP32-C6 기반 장비를 이용해 이 CAN 트래픽을 기록 및 분석하는 데 착수했다.

CAN 버스 스니핑을 통해 주행 모드(0x300), 스로틀 위치 및 속도 제한(0x306), 모터 속도 등 핵심 제어 메시지를 식별할 수 있었다. 이후 컨트롤러를 분해하여 MCU (STM32F103 clone)에 접근했고, OpenOCD를 사용하여 플래시와 RAM 내용을 덤프하는 데 성공했다. 이 과정에서 컨트롤러에는 부트로더, '업데이트' 프로그램, 메인 애플리케이션 등 총 세 가지 응용 프로그램이 존재함을 파악할 수 있었다.

컨트롤러뿐만 아니라 디스플레이 유닛의 펌웨어 역시 역분석을 진행했으며, 두 장치 모두 CAN 버스를 통해 펌웨어 업데이트를 받을 수 있는 부트로더 구조를 가지고 있음이 확인되었다. 특히 분석 결과, 스쿠터의 제어 및 표시 시스템은 인증 절차 없이 누구나 펌웨어를 수정할 수 있는 근본적인 보안 취약점을 내포하고 있음을 밝혀냈다.

원문Hacker News · Reverse engineering my e-scooter and rewriting the firmware in Rust같은 주제 가이드 · 바로 써 보기영어 논문, 초록부터 쉽게 읽기

평일 아침 메일로 받아 보기 ›틀린 곳 알리기