Replicated

스마트카 Infotainment 시스템 해킹 본문

학부/스마트카 소프트웨어 보안

스마트카 Infotainment 시스템 해킹

라구넹 2025. 6. 7. 15:21

자동차와 이동 통신의 융합

외부 네트워크와 연결된 자동차 내부 네트워크

Before Market

- BMW: Conneted Drive

- GM: OnStar

- 현대: BlueLink

- KIA: UVO

 

After Market

- CCC (Car Connectivity Consortium)

- 스마트폰을 이용한 커넥티드 카 구축

- 스마트폰과 자동차 연결에 대한 표준

 

KIA UVO 서비스

- 진저브레드 OS (안드로이드 2.3)

- 정보 제공: Safety(도난), Info(인터넷), Assist(음성지원, 전화)

- 차량 제어: Smart Control, Car Care

 

Smart Updater

- 기아 자동차에서는 UVO 시스템의 펍웨어 업데이트를 제공

- 공격자 -> 분석 기회

 


 

배경

- CAN 사용의 증가

- 차량용 텔레메틱스 시스템 사용의 증가

 

안드로이드 어플리케이션 구조

- apk 파일 -> lib, META-INF, res디렉토리, AndroidManifast.xml, classes.dex, resources.arsc ..

 

OTA (Over The Air) Firmware Update

- 새로운 소프트웨어, 펌웨어, 설정, 암호화 키 업데이트를 장치에 무선으로 배포하기 위한 방식

- 하나의 중앙 제어소 -> 모든 사용자

- 엔트리 포인트, 공격 표면으로 악용됨

 

Firmware Modification Attack

- 임베디드 장치의 소프트웨어를 변조하여 사이버 공격을 수행하는 행위

- 펌웨어 획득, 파일 구조 분석, 펌웨어 분석, 악성 펌웨어 제작 순서..


공격 모델 및 시나리오

텔레메틱스 서비스

- 저속 CAN 관련 서비스: 원격 도어 잠금/해제 및 원격 엔진 시동/정지

- 고속 CAN 관련 서비스: 자가 진단 서비스

 

차 내부에 텔레메틱스 디바이스가 있고 폰의 앱이 있음

앱으로 명령하면 텔레메틱스 서버로 메시지가 가고, 텔레메틱스 디바이스로 메시지가 전달됨

* AVN = Audio, Video, Navigation - 이 뒤에 이동 통신 단말이 있음. 텔레메틱스 디바이스와 하나의 유닛 혹은 연결된 유닛

 

만약 텔레메틱스 유닛(디바이스)이 공격자에게 장악된다면?

- 악성 펌웨어 제작에 사용될 명령을 찾기 위해 CAN 패킷 분석

- 텔레메틱스 디바이스로 인해 발생하는 CAN 패킷 분석

- 강제제어 패킷이 아닌, 강제 제어 패킷을 발생시키는 명령을 찾음

- CAN 버스 연결, CAN 버스 리버싱..

 

네비게이션 정비 분서를 보고 CAN 연결을 파악 가능

- C-CAN은 핸들, 액셀.. B-CAN은 창문 여닫기

- 계속 모니터링해서 어떤 ID, 어떤 메시지가 뭘 하는지 파악

 

 

Attack Model, CERT(Computer Emergency Response Team)의 공격 분류 체계 바탕

1. 공격자

- 안드로이드 OTA 펌웨어 변경 가능

 

2. 도구

- 악성 OTA 펌웨어 (무기화 완료 후)

 

3. 취약점

- OTA 업데이트에 테스트용 인증서를 사용할 경우 보안 취약

- 안드로이드 앱 리패키징해서 악성코드 삽입 가능

- CAN 통신 설계 자체에 인증 기능 없음

-> Spoofing 이후 Elevation of Privilege

 

4. Action

- 원격 도어 열기 명령 전송

- GPS 추적 명령 전송

 

5. 대상

- 안드로이드 기반 텔레메틱스 디바이스가 탑재된 차량

 

6. 비인가된 결과

- 차량 도어 무단 열기 가능

- 위치 추적 가능 

 

7. 목표

- 차량 도난

- 특정 차량 추적

 

 

공격 시나리오

1. AVN 분석 (파일 시스템 분석) -> 정찰

- Door 관련 메서드 분석

- SMS 관련 메서드 분석

 

2. AVN 펌웨어 변경 및 업데이트 우회 (시스템 앱 변경 및 업데이트) -> 정찰 & 무기화

- 업데이트 루틴 분석

- 시스템 앱 변경 및 리패키징

- AVN 펌웨어 리패키징

 

3. AVN 업데이트 및 폰을 통한 제어 명령(문 열기) 전송 -> 유포, 악용, 설치, 명령 및 제어

- 리패키징된 펌웨어 업데이트 수행

- 제어 명령 전송

 

4. 차량 제어 성공

 


OTA 펌웨어 분석 및 변조

펌웨어 업데이트 루틴을 이용해서 공격 도구를 만들기

 

Analysys of OTA Firmware -> 정찰

Anaysis of system.img -> 정찰

Modification of system.img -> 무기화

Update and Experiments -> 무기화 + 유포, 악용, 설치 + 명령 및 제어 + 목적 달성

 

업데이트 파일은 그냥 공개된 상태

..../update/system 폴더에서 update.zip 압축 해제 -> system.img에서 퍼미션 체크 및 디컴파일

apk 파일로 저장되어 있으니, 소스코드 분석하고 악성 코드 삽입 후 리패키징하는 방식

 

 

5.1 Analysis of OTA Firmware

- 제어 앱 분석을 위해 update.zip을 분석 대상으로 설정

- 압축 해제 -> system.img -> ext4 unpack

- 보면 스마트 기기에 기본적으로 설치되는 시스템 앱들이 apk 형태로 저장

 

5.2 Anaysis of system.img

- AVN에 존재하는 제어 메서드 분석

- 시스템 앱들을 디컴파일 한 후, Request, Send, Packet 등의 메서드명 존재 여부 분석

- requestLockRoot -> 차량 문 개폐 메서드

- GPS 관련 메서드 안드로이드에서 제공

- app 폴더에서 SMS 관련 퍼미션이 존재하는 앱들을 분석 대상으로 설정

 

5.3 Modification of system.img 

- apk 파일을 역공학해서 .smali 파일로 만들고 자바 코드 단에서 코드 변조

- 다시 apk 파일로 만들고, 서명 다시 해서 배포 (정상적이면 이 서명이 안되어야 하는데, 테스트 인증서 쓰면 쉽게 위조 가능)

 

5.4 Update and Experiments

Update

- OS 업데이트 루틴 분석을 통한 우회 방법 모색

 

안드로이드 업데이트의 핵심 -> AVN 펌웨어의 update 폴더

- update.zip의 MD5 값 -> checksum.md5에 저장 (MD5 체크섬)

- update.zip을 서명한 인증서 otacert.zip 저장 (개발자 서명)

 

업데이트 루틴

- 서명 검증 + 해시 값 검증

 

그런데, 인증서를 테스트키를 사용

-> Zipsigner로 재서명

MD5도 생성기가 있음

리커버리 모드로 이미지 업데이트까지 하면 끝남

 

Experiments

감염된 텔레메틱스 디바이스로 SMS 보내서 차량 제어, GPS 정보 전송

 


Countermeasures

정찰 및 무기화 과정 무력화

-> 난독화

 

유포, 악용, 설치 무력화

-> 정상적인 서명키 사용