song.3_3
하계 보안 세미나 4일차 - 자동차 보안 이해 본문
1~3일차에서는 암호나 PQC처럼 비교적 수학적인 내용이 많았다면, 이번 강의는 실제 자동차 안에 들어가는 ECU, CAN, 인포테인먼트, 키 포브, 충전기, 모바일 API 같은 현실적인 공격면을 중심으로 진행됐다.
강의를 듣고 보니 자동차는 그냥 이동수단이 아니라 수많은 컴퓨터와 네트워크가 붙어 있는 하나의 거대한 임베디드 시스템에 가까웠다.
자동차 안에는 여러 ECU가 있고, ECU끼리는 CAN, LIN, Ethernet 같은 내부 네트워크로 연결된다. 여기에 인포테인먼트, 블루투스, 모바일 앱, 텔레매틱스, EV 충전기까지 연결되면서 공격면이 점점 넓어지고 있다.
자동차 보안에서 중요한 점
자동차 보안이 일반 IT 보안과 다른 점은, 공격 결과가 단순한 데이터 유출에서 끝나지 않을 수 있다는 것이다.
웹 서비스가 뚫리면 계정 정보나 데이터가 유출될 수 있다. 물론 이것도 심각하지만, 자동차에서는 공격이 차량 제어, 운전자 혼란, 안전 기능 오작동 같은 물리적인 문제로 이어질 수 있다.
예를 들어 인포테인먼트 시스템이 공격당하면 단순히 음악이 꺼지는 정도가 아니라, 차량 내부 네트워크로 연결된 CAN 메시지를 조작하거나 운전자에게 잘못된 정보를 보여줄 수도 있다. 강의에서도 기아 Gen5 Head Unit 취약점 사례를 통해, 공격자가 M-CAN 버스로 전송되는 CAN 프레임을 생성하는 명령을 삽입할 수 있고, 이로 인해 잘못된 속도나 경고 메시지 표시, 멀티미디어 기능 조작, 시스템 재부팅 같은 문제가 생길 수 있다고 설명했다.
즉 자동차 보안은 정보 보안이면서 동시에 안전과도 연결된다.
일반 IT 보안:
정보 유출, 계정 탈취, 서비스 중단
자동차 보안:
정보 유출 + 차량 기능 조작 + 운전자 안전 문제
Tesla VCSEC 취약점: 정수 오버플로우
강의 초반에는 Tesla Model 3의 VCSEC 모듈에서 발견된 CVE-2025-2082 사례가 나왔다.
이 취약점은 정수 오버플로우(Integer Overflow)와 관련되어 있었다. 정수 오버플로우는 컴퓨터가 처리할 수 있는 정수 범위를 넘어서는 값을 계산하거나 저장하려고 할 때 생기는 문제다. 단순한 계산 오류처럼 보이지만, 실제로는 잘못된 메모리 주소 계산이나 잘못된 버퍼 크기 할당으로 이어질 수 있다.
이 사례에서는 TPMS, 즉 타이어 공기압 모니터링 시스템에서 전송되는 인증서 응답을 조작하여 특정 조건에서 정수 오버플로우를 유발할 수 있었다고 한다. 성공하면 원격 코드 실행까지 가능할 수 있었기 때문에 위험도가 높게 평가되었다.
다만 이 공격은 아무 곳에서나 인터넷으로 바로 되는 형태가 아니라, 공격자가 차량 근처의 무선 통신 범위 같은 인접 네트워크 환경에 있어야 하는 것으로 설명됐다. 그래서 위험하지만 공격 조건도 같이 봐야 한다.
이 사례를 보면서 느낀 점은, 차량 보안 취약점도 결국 기본적인 소프트웨어 취약점과 이어져 있다는 것이다.
정수 오버플로우
→ 잘못된 크기 계산
→ 메모리 처리 오류
→ 코드 실행 가능성
자동차라고 해서 완전히 다른 보안 세계가 아니라, 메모리 취약점과 입력 검증 문제가 그대로 등장한다.
EV 충전기 취약점: 버퍼 오버플로우
다음으로는 Autel MaxiCharger AC Elite Business C50 충전소 취약점인 CVE-2024-23957 사례가 나왔다.
이 취약점은 DLB, 즉 Dynamic Load Balancing 프로토콜 구현에서 발생했다. 강의에서는 AES 키를 파싱하는 과정에서 사용자 입력 데이터의 길이를 제대로 검증하지 않고 고정 길이의 스택 기반 버퍼에 복사하면서 문제가 생겼다고 설명했다.
이런 경우 공격자는 버퍼 경계를 넘어 데이터를 덮어쓸 수 있고, 성공하면 충전소 장치에서 임의 코드를 실행할 수 있다.
여기서 중요한 점은 공격 대상이 차량 자체가 아니라 EV 충전기라는 것이다. 자동차 보안이라고 하면 차량 내부만 생각하기 쉽지만, 전기차 환경에서는 충전기, 충전 네트워크, 차량과 충전기 사이의 통신도 공격면이 된다.
차량 보안 공격면:
차량 내부 ECU
인포테인먼트
모바일 앱
블루투스
키 포브
OBD 포트
EV 충전기
텔레매틱스
강의 후반의 최신 취약점 동향에서도 Pwn2Own Automotive의 주요 타깃이 EV 충전기와 IVI, 즉 인포테인먼트 쪽으로 확장되고 있다고 설명했다. 최근 자동차 공격면은 차량 내부 ECU만이 아니라 차량 주변 생태계까지 넓어지고 있다.
Kia 인포테인먼트 취약점
기아 Gen5 Head Unit 관련 CVE-2020-8539 사례도 다뤘다.
Head Unit은 쉽게 말하면 차량 안의 인포테인먼트 시스템이다. 내비게이션, 오디오, 화면 표시, 스마트폰 연결 같은 기능을 담당한다. 겉으로는 편의 기능처럼 보이지만, 차량 내부 네트워크와 이어질 수 있기 때문에 보안 관점에서는 중요한 공격면이 된다.
강의에서는 공격자가 micomd 실행 데몬을 통해 허가되지 않은 명령 삽입과 기능 작동을 허용할 수 있었다고 설명했다. micomd는 마이크로컨트롤러 관련 장치를 관리하고 제어하는 백그라운드 프로세스라고 볼 수 있다.
이 사례에서 중요한 점은 인포테인먼트가 단순한 화면 장치가 아니라, 내부 CAN 버스와 연결될 수 있다는 점이다. 공격자가 M-CAN 버스로 CAN 프레임을 생성하는 명령을 삽입할 수 있다면, 해당 버스에 연결된 장치들이 오작동하거나 운전자에게 잘못된 정보를 표시할 수 있다.
처음에는 “인포테인먼트가 해킹되어도 음악이나 내비만 문제 생기는 거 아닌가?”라고 생각할 수 있는데, 차량 내부 네트워크와 연결되어 있으면 영향 범위가 더 커질 수 있다.
Kia 딜러/포털 API 취약점
이번 강의에서 가장 현실적으로 무섭게 느껴졌던 부분은 Kia 딜러/포털 및 모바일 API 취약점이었다.
이 취약점은 차량 내부 펌웨어나 CAN 메시지를 직접 건드리는 것이 아니라, 딜러/관리 포털 API의 인증 및 권한 논리 결함과 관련된 사례였다. 공격자는 차량 번호판 같은 단순 식별자를 이용해 VIN을 확보하고, 딜러 권한을 악용해 차량 제어 권한을 탈취할 수 있었던 것으로 설명됐다.
기술적 원인은 크게 네 가지로 정리할 수 있었다.
과도한 딜러 권한
권한 경계 오류
취약한 식별자 사용
약한 계정 생성 절차
여기서 핵심은 “딜러 계정인지 아닌지만 보고, 그 딜러가 실제로 해당 차량을 관리할 권한이 있는지 엄격하게 확인하지 않았다”는 점이었다. 즉, 인증은 된 것처럼 보여도 권한 검사가 제대로 되지 않으면 문제가 생긴다.
이건 웹 보안에서 자주 나오는 IDOR나 권한 검증 오류와도 비슷하게 느껴졌다. 차량 보안이라고 해도 결국 서버 API와 권한 모델이 약하면 차량 원격 기능까지 위험해질 수 있다.
차량 번호판
→ VIN 등 차량 식별 정보
→ 딜러 권한 악용
→ 소유자 연결 조작
→ 원격 제어 기능 악용 가능
이 사례를 보면서 자동차 보안은 차량 내부만 보는 것이 아니라, 모바일 앱과 클라우드 API까지 같이 봐야 한다는 점이 확실해졌다.
키 포브와 롤링 코드
키 포브(Key Fob)는 차량 문을 잠그거나 열고, 시동을 걸거나 트렁크를 여는 데 사용하는 무선 리모컨이다. 버튼을 누르면 RF 신호를 차량의 RKE 수신 장치로 보내는 방식이다.
만약 키 포브가 항상 같은 코드를 보낸다면, 공격자는 그 신호를 한 번 가로챈 뒤 나중에 그대로 재전송해서 차량 문을 열 수 있다. 이런 공격을 막기 위해 사용하는 방식이 롤링 코드(Rolling Code)다.
롤링 코드는 매번 다른 코드를 사용한다. 키 포브와 차량은 같은 알고리즘과 카운터를 가지고 있고, 버튼을 누를 때마다 카운터가 증가하면서 새로운 코드가 만들어진다.
고정 코드:
항상 같은 코드 전송
→ 한 번 가로채면 재사용 가능
롤링 코드:
매번 다른 코드 전송
→ 이전 코드는 다시 보내도 무시됨
그런데 CVE-2022-37418과 관련된 롤백 공격은 이 롤링 코드의 재동기화 메커니즘을 악용한다. 공격자는 차량 소유자가 키 포브를 누르는 순간 신호를 가로채고 동시에 방해해서, 소유자가 다시 버튼을 누르게 만든다. 이 과정에서 연속된 유효 신호를 확보하고, 재동기화 로직을 악용해 차량의 카운터를 과거 값으로 되돌릴 수 있다는 흐름이었다.
처음에는 롤링 코드가 있으면 재사용 공격이 불가능하다고 생각했는데, 구현된 재동기화 규칙에 논리적 결함이 있으면 다시 문제가 생길 수 있다는 점이 흥미로웠다.
ECU란 무엇인가
자동차 내부 구조를 이해하려면 ECU부터 잡아야 한다.
ECU는 Electronic Control Unit, 전자제어장치다. 자동차 안에서 조향, 제동, 엔진, 좌석, 창문, 정보 표시 등 특정 기능을 제어하는 작은 컴퓨터라고 보면 된다. 차량에는 기능별로 여러 ECU가 들어가고, 이 ECU들이 내부 네트워크를 통해 서로 통신한다.
보안 관점에서 ECU는 중요한 자산이다. 전원 입력, 네트워크 버스 라인, 센서 입력, 액추에이터 출력 등이 모두 공격 표면이 될 수 있다.
ECU 내부에는 PCB, 저항, 커패시터, 다이오드, 릴레이, 솔레노이드, 전원 관리 칩, 네트워크 트랜시버, 메모리 칩, MCU나 SoC 같은 제어 장치가 들어간다.
특히 MCU 기반 ECU에서는 메모리와 디버그 인터페이스가 중요하다. ECU 제어 소프트웨어와 캘리브레이션 데이터가 MCU 메모리에 들어 있고, 공격자는 온칩 디버그 기능이나 시리얼 플래시 프로그래밍 인터페이스를 악용해 접근을 시도할 수 있다.
ECU = 차량 안의 작은 제어 컴퓨터
MCU = ECU 안에서 실제 제어를 담당하는 핵심 칩
CAN/LIN/Ethernet = ECU들이 서로 말하는 통신망
차량 내부 네트워크와 CAN
차량 안의 ECU들은 혼자 동작하지 않는다. 서로 데이터를 주고받아야 한다. 이때 사용하는 대표적인 내부 네트워크가 CAN이다.
CAN 메시지는 대략 CAN ID, DLC, Data Field, CRC 같은 요소로 구성된다. CAN ID는 메시지 식별자이고, DLC는 데이터 길이, Data Field는 실제 데이터, CRC는 오류 탐지용 값이다.
CAN은 차량 제어에 오래 사용된 중요한 프로토콜이지만, 보안 관점에서는 약점도 있다. 내부 네트워크에 일단 접근하면 정상 ECU처럼 메시지를 보내는 공격이 가능할 수 있기 때문이다. 특히 OBD 포트나 취약한 게이트웨이를 통해 내부 네트워크로 들어갈 수 있다면 문제가 커진다.
강의에서는 여러 차량 통신 프로토콜도 함께 비교했다.
CAN:
엔진, 변속기, 섀시 제어, 진단에 사용
LIN:
좌석, 창문 같은 저가 센서/액추에이터에 사용
FlexRay:
ABS, ESC, ADAS 등 안전 핵심 기능 일부에 사용
Automotive Ethernet:
ADAS, 인포테인먼트, 고속 센서 데이터에 사용
UART/I²C:
디버그나 칩 내부/근거리 센서 통신에 사용
GMSL:
카메라, 디스플레이, 오디오 같은 대용량 멀티미디어 전송에 사용
각 프로토콜마다 속도와 용도가 다르기 때문에, 공격면도 다르게 봐야 한다. 예를 들어 CAN은 OBD 악용이나 DoS 공격, Automotive Ethernet은 외부 공격 경유지와 실시간성 붕괴, GMSL은 카메라나 영상 신호 변조로 인한 ADAS 오작동이 보안 포인트가 될 수 있다.
OBD 포트는 정비용이지만 공격 진입점도 될 수 있다
OBD 포트는 원래 차량 진단과 정비를 위해 만들어진 표준 기능이다. 정비소에서 차량 상태를 확인하거나 오류 코드를 읽을 때 사용한다.
하지만 보안 관점에서는 내부 네트워크에 접근할 수 있는 물리적 진입점이 될 수 있다. 강의에서는 OBD 포트를 통해 공격자가 차량 내부 네트워크에 무단 접근하고, 게이트웨이에 보안 필터가 부족하거나 네트워크 세분화가 약하면 안전하지 않은 메시지를 내부 ECU에 전달할 수 있다고 설명했다.
즉 OBD 포트 자체가 나쁜 것은 아니다. 문제는 OBD 포트로 들어온 메시지를 어디까지 허용할 것인지, 게이트웨이가 얼마나 잘 필터링하는지다.
OBD 포트의 원래 목적:
진단, 정비, 배출가스 관련 상태 확인
보안상 위험:
내부 네트워크 접근 경로
진단 명령 악용
게이트웨이 필터 부족 시 제어 메시지 전달 가능
차량 E/E 아키텍처의 변화
강의에서는 차량 E/E 아키텍처의 변화도 다뤘다. 예전에는 기능별로 ECU가 많이 흩어져 있는 분산 구조가 일반적이었다. 그런데 차량 기능이 복잡해지면서 ECU 수가 많아지고, 배선과 관리가 어려워졌다.
그래서 점점 도메인 집중형 구조와 존 아키텍처로 발전하고 있다.
도메인 집중형 구조는 기능별 ECU들을 도메인 전용 ECU로 통합하는 방식이다. 예를 들어 파워트레인 도메인, 섀시 도메인처럼 기능별로 묶는다. 관리 효율이 좋아지고 비용을 줄일 수 있지만, 도메인 ECU가 공격당하면 영향 범위도 커진다.
존 아키텍처는 차량을 물리적인 구역, 즉 zone 단위로 나누고 각 Zone ECU가 주변 센서와 액추에이터를 모아 상위 Vehicle Computer와 연결하는 방식이다. 배선을 단순화하고 고성능 컴퓨팅을 집중시킬 수 있지만, Zone ECU와 Vehicle Computer가 핵심 공격 표면이 된다.
또 DCU, 즉 Domain Control Unit도 나왔다. DCU는 여러 소규모 ECU를 통합한 고성능 ECU로, SDV의 핵심 구성요소다. 하나의 플랫폼에서 여러 애플리케이션이 함께 실행될 수 있으므로 메모리와 자원 분리, 스케줄링 간섭 방지 같은 보안 설계가 중요하다.
분산형 ECU:
기능별 ECU가 많음
도메인 집중형:
기능별 도메인 ECU로 통합
존 아키텍처:
차량을 물리적 구역으로 나누어 Zone ECU가 담당
SDV / DCU:
소프트웨어 업데이트로 기능을 활성화하거나 변경
자동차가 점점 소프트웨어 정의 차량으로 바뀌면서, 보안도 단순한 ECU 보호에서 플랫폼 보안과 네트워크 보안으로 확장되고 있다는 느낌이었다.
블루투스와 외부 연결 공격면
요즘 차량은 스마트폰과 연결되는 기능이 많다. 핸즈프리 통화, 음악 재생, 앱 연동, 차량 초기 설정 등에서 블루투스가 사용된다. 일부 사용자는 OBD-II와 연결되는 블루투스 동글을 사용하기도 한다.
강의에서는 차량 환경에서 볼 수 있는 블루투스 위협도 정리했다. Car Whisperer, Bluesnarfing, Bluebugging, Bluejacking, BlueBorne, KNOB, BlueFrag 같은 공격 기법이 소개됐다.
이름은 많지만 핵심은 하나로 정리할 수 있다.
무선 연결은 편리하지만,
차량 바깥에서 접근 가능한 공격면이 된다.
특히 블루투스는 사용자가 가까운 거리에서 편하게 연결하기 위해 만든 기능이다. 그런데 보안이 약하면 공격자도 가까운 거리에서 접근할 수 있다. 자동차 보안에서는 이런 외부 연결 지점을 하나하나 공격면으로 봐야 한다.
최신 자동차 취약점 동향
강의 후반에는 최근 자동차 취약점 동향도 다뤘다.
특히 Pwn2Own Automotive에서는 EV 충전기와 IVI, 즉 인포테인먼트 헤드유닛, 텔레매틱스 모뎀이 주요 타깃으로 등장했다. 2024년에는 EV 충전기 카테고리가 처음 등장했고, 2025년에는 Tesla Wall Connector가 하루에 두 번 침해되는 사례도 있었다. 2026년에는 급속충전기 쪽 공개 익스플로잇도 언급됐다.
이 흐름을 보면 자동차 보안의 중심이 점점 넓어지고 있다는 것을 알 수 있다.
예전에는 차량 내부 CAN이나 ECU가 중심이었다면, 지금은 다음과 같은 영역까지 같이 봐야 한다.
EV 충전기
인포테인먼트
텔레매틱스 모뎀
모바일 앱
클라우드 API
OBD 동글
블루투스
자동차가 네트워크와 연결될수록 공격자는 꼭 차량 내부에 직접 접근하지 않아도 된다. 차량 주변 장치, 앱, 서버, 충전 인프라를 통해 우회적으로 접근할 수 있다.
자동차 보안 규정: UN R155
자동차 보안은 기술 문제이면서 동시에 규제 문제이기도 하다.
강의에서는 UN R155도 소개됐다. UN R155는 차량 사이버보안과 관련된 중요한 규정으로, 사이버보안 관리 시스템인 CSMS 구축과 차량 사이버보안 위험 관리 요구사항을 다룬다. 공급망 전반의 위험 관리와 차량 설계 단계에서의 보안 조치도 요구한다.
중요한 점은 자동차 보안이 이제 선택 사항이 아니라는 것이다. 차량을 만들 때부터 보안 위험을 식별하고, 관리하고, 대응하는 체계가 필요하다.
자동차 보안은 패치만의 문제가 아니라,
설계 단계부터 운영과 공급망까지 이어지는 관리 문제다.
핵심
자동차는 여러 ECU와 네트워크가 연결된 컴퓨터 시스템이다.
차량 보안 취약점은 메모리 오류, 권한 검증 실패, API 논리 오류, 무선 통신 문제 등에서 발생한다.
공격면은 차량 내부뿐 아니라 모바일 앱, 클라우드, 충전기, 블루투스, OBD 포트까지 확장된다.
차량 구조가 SDV와 존 아키텍처로 바뀌면서 보안 설계도 더 중요해진다.
특히 기억에 남은 건 자동차 보안이 단순히 차 문을 여는 해킹이 아니라는 점이었다.
정수 오버플로우, 버퍼 오버플로우, 명령 삽입, 권한 검증 오류, 롤링 코드 재동기화 문제처럼 우리가 일반 보안에서 배우는 개념들이 자동차 환경에 그대로 적용된다.
다만 자동차에서는 그 결과가 물리적인 안전 문제로 이어질 수 있다는 점이 다르다.
마무리
이번 강의를 통해 자동차 보안은 생각보다 훨씬 넓은 분야라는 걸 알게 되었다.
ECU와 CAN 같은 차량 내부 구조도 알아야 하고, 모바일 API와 클라우드 권한 모델도 봐야 한다. 블루투스나 키 포브 같은 무선 통신도 중요하고, 전기차 시대에는 충전기와 충전 인프라도 공격면이 된다.
자동차 보안은 차량 하나만 지키는 것이 아니라,
차량과 연결된 모든 컴퓨터, 네트워크, API, 무선 장치를 함께 지키는 일이다.
처음에는 자동차 보안이 낯설었지만, 결국 기본은 입력 검증, 권한 검증, 메모리 안전, 네트워크 분리, 안전한 업데이트, 공격면 관리라는 점에서 기존 보안과 이어져 있었다. 다만 자동차라는 특성상 보안 실패가 실제 안전 문제로 이어질 수 있기 때문에 더 조심스럽고 체계적인 접근이 필요하다고 느꼈다.
'하계 보안 세미나' 카테고리의 다른 글
| 하계 보안 세미나 6일차 - 보안적합성 검사 (0) | 2026.07.10 |
|---|---|
| 하계 보안 세미나 5일차 - 시큐어코딩 (임베디드·자동차 코딩 표준) (0) | 2026.07.10 |
| 하계 보안 세미나 3일차 - ML-KEM·ML-DSA(Module-LWE에서 크기·속도·하이브리드 PQC까지) (0) | 2026.07.06 |
| 하계 보안 세미나 2일차 - 격자 기반 암호 (SIS · LWE부터 Kyber와 ML-KEM) (0) | 2026.07.06 |
| 하계 보안 세미나 1회차 - 깨지는 암호의 해부학 (0) | 2026.07.06 |