# Kia 차 해킹 : 번호판만으로 차 원격 제어하기

> Clean Markdown view of GeekNews topic #16961. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16961](https://news.hada.io/topic?id=16961)
- GeekNews Markdown: [https://news.hada.io/topic/16961.md](https://news.hada.io/topic/16961.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-09-27T13:34:38+09:00
- Updated: 2024-09-27T13:34:38+09:00
- Original source: [samcurry.net](https://samcurry.net/hacking-kia)
- Points: 7
- Comments: 4

## Topic Body

- 2024년 6월 11일, Kia 차량에서 번호판만으로 차의 주요 기능을 원격 제어할 수 있는 취약점을 발견함  
- 공격자는 피해자의 이름, 전화번호, 이메일 주소, 물리적 주소 등의 개인 정보를 조용히 획득할 수 있음  
- 이 취약점을 이용하여 공격자는 차주 모르게 자신을 차량의 보이지 않는 두번째 사용자로 추가할 수 있음  
- 취약점 영향을 보여주기 위해 데모 도구를 제작했지만, 실제로 공개하거나 악용되지는 않음  
  - 이 취약점은 이후 수정되었으며, 이 도구는 출시되지 않았고, 기아 팀은 이 취약점이 악의적으로 악용된 적이 없음을 확인했음  
  
### 영향을 받은 차량  
- 2025년부터 2014년까지의 다양한 Kia 모델이 영향을 받음  
- 각 모델별로 원격 잠금/해제, 원격 시동/정지, 원격 경적/라이트, 원격 카메라 등의 기능이 가능함  
  
### 취약점 상세  
> 약 2년전, 우리는 12개 이상의 자동차 제조사의 보안 취약점을 찾아냈음. 1,500만대 이상의 차량을 원격으로 위치 추적하고, 시동을 끄고, 잠금 해제하고, 시동을 걸 수 있는 치명적인 문제점을 발견했음 - Paul Roberts  
- 시간이 많이 지나, 이전에 취약점을 발견했던 제조사들의 사이트를 다시 살펴보기로 함  
- Kia의 owners 사이트와 모바일 앱은 인터넷을 통해 차량 제어 명령을 보낼 수 있어 흥미로웠음  
- 웹사이트는 프록시 서버를 통해 명령을 백엔드 API로 전달하고, 앱은 API에 직접 접근함  
- owners 웹사이트에서 문 잠금 해제 요청을 보내는 HTTP 요청 예시:  
  ```  
  POST /apps/services/owners/apigwServlet.html HTTP/2  
  Host: owners.kia.com  
  Httpmethod: GET   
  Apiurl: /door/unlock  
  Servicetype: postLoginCustomer  
  Cookie: JSESSIONID=SESSION_TOKEN;   
  ```  
- 서버는 `JSESSIONID`를 사용해 `Sid` 세션 ID를 만들어 백엔드 API에 다음과 같이 전달함:   
  ```  
  GET /apigw/v1/rems/door/unlock HTTP/1.1  
  Host: api.owners.kia.com  
  Sid: 454817d4-b228-4103-a26f-884e362e8dee  
  Vinkey: 3ecc1a19-aefd-4188-a7fe-1723e1663d6e  
  ```  
- `Sid`는 세션 토큰, `Vinkey`는 차대번호(VIN)와 매핑되는 UUID임  
  
### 딜러 인프라 취약점   
- 우리는 Kia 딜러 웹사이트도 살펴보기로 함. 새 차를 구매할 때 Kia에서 고객 정보를 어떻게 처리하는지 궁금했기 때문  
- 딜러 사이트에서 새 차량 등록을 위해 고객에게 보내는 이메일의 URL을 확인:  
  ```  
  https://kiaconnect.kdealer.com/content/kDealer/en/kiauser.html?token=dealer_generated_access_token&vin=example_vin&scenarioType=3  
  ```  
- 한번도 본 적 없는 `kiaconnect.kdealer.com` 도메인이 흥미로움   
- 위 URL에서 `token` 파라미터는 VIN 키로, 딜러가 생성한 일회용 접근 토큰. `vin` 파라미터로 지정된 차량을 수정할 수 있음  
- URL을 로드하면 토큰 유효성을 확인하는 HTTP 요청이 전송:  
  ```  
  POST /apps/services/kdealer/apigwServlet.html HTTP/1.1   
  Host: kiaconnect.kdealer.com  
   
  {  
    "token": "985a49f0-1fe5-4d36-860e-d9b93272072b",  
    "vin": "5XYP3DHC9NG310533",   
    "scenarioType": 3,  
    "loginPref": null  
  }  
  ```  
- 딜러 사이트의 요청 URI가 owners 사이트와 동일한 `/apps/services/kdealer/apigwServlet.html`인 게 흥미로웠음  
- 딜러용 내부 API로 요청을 전달하는 프록시가 있을 것으로 예상  
- 자바스크립트 코드를 살펴보니 딜러 차량 조회, 계정 조회, 등록, 해지 등 직원 전용 기능을 하는 API 호출이 있음  
- 직접 소유한 차량의 VIN으로 API 엔드포인트에 접근해봤지만, 401 Unauthorized 오류가 발생. 딜러 토큰으로는 동작하지 않았음  
  
### 일반 계정으로 딜러 API 접근  
- 그래서 딜러 웹사이트에 일반 계정으로 가입해서 액세스 토큰을 생성한 뒤, 그걸로 API에 접근해보기로 함. owners 사이트와 API 형식이 비슷해 보였기 때문  
- 딜러 사이트에서 owners 사이트와 같은 방식으로 사용자 등록을 시도했더니 성공!  
- 로그인해서 액세스 토큰을 발급받고, 이전에 접근 불가했던 VIN 조회 API를 호출하자 응답에 차량 소유주의 이름, 전화번호, 이메일이 담겨 있었음  
- 우리가 만든 일반 계정으로 딜러 포털에 인증하고 수정된 채널 헤더를 사용하면 모든 딜러용 API에 접근할 수 있다는 걸 의미  
  
### 차량 무단 접근   
- 몇 시간 동안 자바스크립트 코드를 분석한 끝에 차량 등록, 해지, 수정 엔드포인트가 어떻게 동작하는지 파악  
- 다음 4단계를 거치면 피해자 차량에 접근할 수 있었음:  
  1. 딜러 토큰 생성 및 HTTP 응답 헤더에서 "token" 값 추출  
  2. 피해자 이메일과 전화번호 알아내기  
  3. 유출된 이메일과 VIN으로 기존 소유주 접근 권한 수정  
  4. 공격자를 차량의 새로운 소유주로 추가  
- 피해자 입장에서는 자신의 차량에 접근했다는 알림이나 권한이 변경되었다는 사실을 알 수 없음  
- 공격자는 누군가의 번호판으로 VIN을 알아낸 뒤 API를 통해 피해자를 몰래 추적하고 차 문 열기, 시동 걸기, 경적 울리기 등의 명령을 보낼 수 있음  
  
### 개념 증명 대시보드 제작  
- 우리는 이 취약점의 심각성을 보여주기 위해 공격자가 (1) Kia 차량의 번호판을 입력하고 (2) 소유주 개인정보를 가져온 뒤 (3) 차량 제어 명령을 실행할 수 있는 개념 증명용 대시보드를 만들었음  
- "Exploit" 페이지에서 차량 무단 접근을 시도하고, "Garage" 페이지에서 명령을 내리고 위치를 추적하도록 함  
- 렌트한 잠긴 Kia 자동차를 대상으로 테스트를 진행했고, 블로그 맨 위 영상에서 스마트폰으로 차량을 해킹한 뒤 원격으로 문 잠금/해제, 시동 켜기/끄기, 경적 울리기, 위치 추적 등을 수행하는 모습을 볼 수 있음  
  
### 결론  
- Meta가 개발 과정에서 실수로 누군가 여러분의 페이스북 계정을 탈취할 수 있는 코드 변경을 할 수 있는 것처럼, 자동차 제조사들도 여러분 차량에 그런 취약점을 만들어낼 수 있음  
- **앞으로도 자동차에선 취약점이 계속 발견될 것**  
  
### 타임라인  
- 06/07/24 16:40 UTC - Kia 팀에 취약점 제보 방법 문의  
- 06/10/24 13:21 UTC - Kia 팀 답변 받음  
- 06/11/24 22:41 UTC - 취약점 제보  
- 06/12/24 18:20 UTC - 심각도 때문에 티켓 알림 이메일 전송  
- 06/14/24 18:00 UTC - Kia 팀이 조사중이라 응답  
- 06/18/24 16:41 UTC - 심각도 때문에 티켓 알림 이메일과 도구 스크린샷 전송  
- 06/20/24 02:54 UTC - 티켓 알림 이메일과 번호판 입력해 접근하는 스크린샷 전송   
- 08/12/24 12:30 UTC - 티켓 알림 이메일로 업데이트 요청  
- 08/14/24 17:41 UTC - Kia 팀이 취약점 해결하고 테스트중이라 응답  
- 09/26/24 08:15 UTC - 취약점 해결 확인 후 대중에 공개  
  
### GN⁺의 의견  
- 자동차 해킹이 현실이 되고 있음을 보여주는 충격적인 사례임. 앞으로 커넥티드카가 늘어나면서 이런 취약점 문제는 더욱 심각해질 것  
- 이번 사건은 자동차 제조사들의 보안 인식 부족과 허술한 시스템 설계를 여실히 보여줌. 소프트웨어 취약점 관리와 코드 리뷰 등 보안 개발 생명주기(SSDLC) 도입이 시급해 보임  
- 자동차 원격 제어 기술은 편의성을 높여주지만 동시에 공격 표면을 넓히기도 함. 기술과 보안, 프라이버시 사이의 균형을 잡는 게 중요할 것.  
- 개인정보를 기반으로 한 인증 방식의 문제점도 드러남. 번호판을 아는 것만으로도 차량을 탈취할 수 있다는 것은 너무 허술. 생체인식이나 다중인증 등 강화된 인증 체계가 필요할 것임  
- 이용자가 자신의 차량 보안 상태를 인지하고 통제할 수 있어야 함. 누가 내 차에 접근했는지, 어떤 명령을 내렸는지 알려주는 알림 기능 등이 필요

## Comments



### Comment 29312

- Author: aer0700
- Created: 2024-09-28T10:03:42+09:00
- Points: 1

헉 끔찍하네요

### Comment 29296

- Author: unsure4000
- Created: 2024-09-27T17:10:52+09:00
- Points: 1

차량과 인터넷의 연결을 물리적으로 해제할수 있는 옵션이 차주들에게 마땅히 주어져야한다고 생각합니다.

### Comment 29515

- Author: bbulbum
- Created: 2024-09-30T13:05:38+09:00
- Points: 1
- Parent comment: 29296
- Depth: 1

요금제 체계가 궁금했는데, 기본 무료로 몇년씩 제공해주면서 가입시키는군요..

### Comment 29281

- Author: neo
- Created: 2024-09-27T13:34:38+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=41658733) 
- Kia의 미국 차량에 인터락을 생략한 결정이 전국적인 차량 도난 문제를 야기했음
  - 이로 인해 밀워키와 시카고 같은 도시에서 차량 절도가 급증했음
  - 단순히 구부러진 USB 케이블로 차량을 훔칠 수 있었음

- 취약한 Kia 차량 데이터베이스를 크롤링하여 근처 Kia 차량을 보여주고 잠금을 해제하는 "라이드 쉐어" 앱을 만들 수 있음

- 누구나 딜러로 등록할 수 있고, 딜러는 판매하지 않은 차량 정보도 조회할 수 있는 것이 문제임
  - 딜러 직원이 이를 악용하여 스토킹할 수 있음

- 기사에 따르면, 원래 Kia와 딜러만 차량을 추적할 수 있었으나 이제는 "비인가"된 사람들도 추적할 수 있게 되었음
  - 왜 기업이 차량을 추적하는 것은 괜찮고, 다른 사람이 하면 문제가 되는지 의문임

- Kia가 차량과 소유자에 대한 많은 데이터를 보유하고 있는 것이 문제임
  - 이 취약점은 이미 수정되었으나 데이터 문제는 여전히 남아 있음

- Kia 차량을 소유한 형제가 차량 절도로 인해 정신 건강에 부정적인 영향을 받고 있음

- 온라인 계정을 만들어 차량을 활성화해야 하는 차량을 구매하지 않을 것임
  - 이전에 소유한 Kia 차량이 10만 마일 전에 1천 마일마다 1쿼트의 오일을 소모했음

- 현재 시장에 연결 기능이 없는 새로운 차량은 없음
  - 비연결 차량을 만드는 것이 가능한지 궁금함

- Kia 소유자로서, 취약점이 수정되었고 악의적으로 악용되지 않았다는 점에 안도함
  - 그러나 Kia는 여전히 많은 개선이 필요함

- 차량을 인터넷에 연결하지 말아야 한다고 생각함
