자동차 시스템에서 발생한 침해 사례 분석

Changyeop·2024년 5월 31일
0

자동차 보안 기초

목록 보기
2/2
post-thumbnail

이번 글에서는 네트워크 기반 자동차 시스템에서 발생한 과거 침해 사례들을 분석하여 어떠한 형태의 공격이 있었는지, 어떻게 이루어졌는지에 대해 알아보겠다. (이번 글에서는 실제 공격 기법에 대해 설명하여 저번 글에 비해 재밌지 않을까 싶다 제발..) 여기서 이야기 하는 침해 사례에 대한 해결 방안은 내 개인적은 생각이니 절대적으로 받아들이지 않았으면 좋겠다.

Jeep Cherokee 해킹 사건

과정

  1. 기본 게이트웨이 Port Scanning
    Jeep Cherokee의 Uconnect 인포테인먼트 시스템이 인터넷에 연결되어 있는 것을 발견함(Uconnect 인포테인먼트 시스템은 차량에 탑재된 멀티미디어 및 연결 시스템). 포트 스캐닝 도구를 사용하여 이 시스템은 6667번 포트를 통해 외부와 통신하고 있었으며, 해커들은 이 포트가 열려 있는 것을 확인함.

  2. 펨토셀을 사용해 차량을 공격자 네트워크에 연결
    펨토셀은 소형 기지국 장치로, 공격자들은 이를 이용해 차량의 셀룰러 통신을 가로채고, 차량을 공격자의 네트워크에 연결.펨토셀을 통해 차량의 통신을 중간에서 가로채고, 이를 통해 차량과 직접적인 네트워크 연결.

  3. 별도의 인증과정 없이 공격자 네트워크와 연결 성공
    공격자들은 차량의 Uconnect 시스템이 별도의 인증 과정 없이 공격자의 네트워크와 연결될 수 있음을 발견. 이는 보안 취약점으로, 통신 과정에서 인증 절차가 없기 때문에 공격자들이 쉽게 네트워크에 접근할 수 있었음.

  4. 악성코드 주입
    공격자들은 Uconnect 시스템을 통해 CAN 버스에 악성코드를 주입. CAN 버스를 통해 악성코드는 ECU에 전달. ECU는 CAN 버스를 통해 들어오는 데이터를 처리하며, 이 과정에서 악성코드를 받아들이게 되었음.

  5. ECU 제어 권한 탈취
    원래는 수신 전용이었던 ECU를 발신도 가능하도록 펌웨어를 수정하여 제어 권한을 탈취. 펌웨어 수정은 보통 별도의 확인이나 승인 없이 수행될 수 있었던 보안 취약점을 이용.

해결 방안

  1. 6667번 포트 차단
    해킹에 사용된 6667번 포트를 차단하여, 이 포트를 통해 외부에서 Uconnect 시스템에 접근할 수 없도록 조치.

  2. 서명된 펌웨어 업데이트
    펌웨어 업데이트 시 디지털 서명을 요구하여, 승인된 업데이트만 설치.

Tesla Model S/X 해킹 사건

Webkit 534.34 취약점이란

CVE-2011-3928는으로 등록되어 있는 해당 취약점은 WebKit 534.34 버전에서 발견된 Use-After-Free 취약점이다. Use-After-Free 취약점은 메모리 할당 해제 후에도 해당 메모리 공간을 참조하는 코드가 있을 때 발생한다. 이로 인해 공격자는 해제된 메모리 공간을 악의적으로 사용할 수 있다. 해당 취약점은 DOM 요소를 잘못 처리하는 과정에서 발생한다.

Use-After-Free 취약점에 대한 시나리오에 대해 알아보겠다.

  1. 어떤 특정 DOM 요소가 더 이상 필요 없다고 판단되어 해제.
  2. 그러나 코드의 다른 부분에서 해제된 요소를 참조하려고 시도. 이는 여전히 유효한 객체처럼 참조하려고 하지만, 메모리는 이미 반환된 상태.
  3. 해제된 메모리 공간이 다른 객체 또는 데이터에 의해 재사용될 수 있음.
  4. 공격자는 이 상황을 악용하여 해제된 메모리 영역을 제어하고, 악성 코드를 삽입하거나 실행할 수 있음.

과정

  1. Webkit 534.34 취약점 사용
    Webkit 534.34는 웹 브라우저 엔진으로, Tesla 차량의 인포테인먼트 시스템의 브라우저에서 사용. 공격자들은 CVE-2011-3928로 지정된 Use-After-Free 취약점을 악용하여 차량의 웹 브라우저에서 임의의 코드를 실행할 수 있음.

  2. 권한 획득
    Use-After-Free 취약점을 성공적으로 악용한 공격자는 차량의 인포테인먼트 시스템에서 임의 코드를 실행할 수 있게 되었음. 이 코드를 통해 인포테인먼트 시스템의 권한을 획득하고, 시스템 내부의 여러 기능에 접근 가능.

  3. Tesla의 CID Shell 획득
    CID(Central Information Display) Shell은 Tesla 인포테인먼트 시스템의 명령 셸로, 차량의 다양한 기능을 제어할 수 있음. 공격자들은 인포테인먼트 시스템의 루트 접근 권한을 획득하여 CID Shell을 통해 차량의 시스템을 제어 가능.

해결 방안

  1. 메모리 해제 시 메모리 영역 무효화
    해제된 메모리를 다시 참조할 수 없도록 하기 위해, 메모리를 해제할 때 해당 메모리 영역을 무효화하거나 안전하게 초기화하는 방법을 도입

혼다의 키리스 엔트리 시스템 취약점

키리스 엔트리 시스템은 무선 주파수 신호를 사용하여 자동차를 물리적 열쇠 없이도 열고 시동을 걸 수 있도록 하는 시스템이다(스마트 키를 생각하면 편할 듯). CVE-2022-27254로 등록되어 있는 이 취약점은 혼다의 키리스 엔트리 시스템이 문을 열기 위한 요청에 동일한 무선 주파수 신호를 보내기 때문에 발생한 취약점이다.

과정

  1. 원격 신호 탈취
    공격자들은 키가 보내는 무선 신호를 차량에 전달하는 과정에서 신호를 가로챔. 키가 보내는 신호는 암호화되지 않았고, 동일한 코드를 반복적으로 사용하였음.

  2. 신호 재전송
    공격자들은 원격 키가 보낸 신호를 재전송. 차량은 이 신호를 정상적인 키 신호로 인식하고, 공격자의 명령을 수락하여 문을 열거나 시동을 걸 수 있음.

해결 방안

  1. 롤링 코드 사용
    스마트키는 버튼이 눌릴 때마다 새로운 코드를 생성. 이 코드는 스마트키와 수신기에만 알려진 비밀 키를 기반으로 생성. 사용자가 스마트키의 버튼을 누르면, 그 순간 생성된 새로운 코드가 차량의 수신기로 전송. 수신기는 해당 코드를 수신한 후 스마트키와 동일한 알고리즘을 사용해 생성된 코드인지 확인.

Reference

profile
성창엽(26)/???

0개의 댓글