보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

CAN 통신 기반 커넥티드 카 침해 위협 및 대응방안 연구

2024.01.02

2,798

01. 커넥티드 카의 개념 및 네트워크 기반 침해사례 분석

1) 커넥티드 카의 정의 및 개념

이동 수단으로 치부되던 자동차 영역은 자율주행이나 소프트웨어 기술 성숙도 향상 등의 IT 기술 혁신에 따라 이동 수단(Mode)을 넘어 이동성(Mobility)으로 서비스 영역이 확대되었다. 이동수단의 기본이자 본질인 자동차의 안전성과 편안함을 제공하는 동시에 의료 서비스, 화물 운송, 레저 등 개인 공간으로 확장되면서 새로운 차세대 모빌리티 시대가 도래하고 있다. 차세대 모빌리티 시대의 동인에는 여러 요소가 있지만 그중에서도 네트워크를 통해 외부와 연계하여 서로 다른 기종이 상호 호환성을 향상시킬 수 있는 연결성(Connectivity)이 변화의 트리거로 작용하고 있다. 단순히 외부에서 모바일로 네트워크 연결을 하는 것에 그치지 않고, 차량 생태계와 IT 기술 생태계 전반이 융합되어 연결성을 중심으로 하는 ‘커넥티드 카(Connected Car)’가 발전하게 되었다.

한국정보통신학회에서 발표한 ‘커넥티드 카의 기술(The Technology of Connected Car, Vol. 20, No. 3 : 590~598 Mar. 2016, 심현보)’에 따르면 커넥티드 카를 일컬어 자동차가 주변과 실시간으로 소통하며 운전자에게 안전과 편의를 제공하는 ‘차량 연결성(Connectivity)’을 강조하고 차량에 사물인터넷을 채택하여 실시간 내비게이션, 주차 보조기능, 멀티미디어 스트리밍, SNS 등의 서비스를 지원하는 플랫폼이라고 정의하고 있다. CORE에서 발표한 ‘A Structured Approach to Securing the Connected Car(2012, Pierre Kleberger)’에서는 하나 이상의 외부 무선 네트워크 통신 기능을 갖추어 원격 진단, 소프트웨어 다운로드 등의 서비스 제공이 가능한 차량이라고 지칭하고 있다.

이처럼 커넥티드 카에 대한 해석은 목적이나 기능 등에 따라 일부 상이할 수는 있으나, 자동차(Vehicle)라는 주체가 네트워크 통신을 통한 연결성에 기반하여 사용자의 편의성 및 안전성 등 효과를 극대화하는 기술이라는 공통점을 갖고 있다. 따라서 본 문서에서는 네트워크 기술에 기반한 연결성을 극대화하는 커넥티드 카의 특성을 고려한 기술요소와 이에 따른 보안 위협 대응 방안에 대해 살펴보고자 한다.

2) 커넥티드 카의 네트워크 통신 기반 침해 사례 분석

커넥티드 카에서 사용하는 네트워크 통신은 커넥티드 카의 연결성을 제공하는 네트워크 통신 주체와 객체에 따라서 차량-다른 차량 간(V2V, Vehicle to Vehicle), 차량-인프라 간(V2I, Vehicle to Infrastructure), 차량-보행자 간(V2P, Vehicle to Pedestrian) 통신 등으로 분류하고 있으며, 이와 같이 차량(Vehicle)과 연계되는 모든 기술을 V2X(Vehicle to Something)로 총칭하고 있다. 차량에서 유선 또는 무선망을 통해 다른 차량, 인프라, 보행자, 네트워크 등과 정보나 전력을 주고받는 기술들은 [그림 1]과 같이 차량인 주체와 네트워크로 연결된 객체 간의 기술요소들로 구성되어 있다.

[그림 1] V2X 구성도 (출처 : researchgate. 2019. V2X communication scenario involving V2V, V2I, and V2P communications)

커넥티드 카의 네트워크 공격이라고 해서 커넥티드 카에서만 발생하는 새로운 기술은 아니다. 공격의 근본적인 메커니즘은 유무선 통신 네트워크를 이용한 네트워크 무결성 저해 행위라고 생각하면 좀 더 이해하기 쉽다. 따라서 본 문서에서 다루고자 하는 커넥티드 카의 공격요소도 네트워크 영역에서 발생하는 공격요소를 중점적으로 살펴볼 예정이며, 커넥티드 카의 네트워크 공격사례를 보다 구체화해보고자 한다.

커넥티드 카의 네트워크 영역을 악용한 차량공격 사례로는 크게 3가지가 있다. [CASE1]은 2013~2015년식 미국산 차량에 탑재된 인포시스템(Infotainment System)의 취약점으로 촉발된 대규모 리콜 사례, [CASE2]는 2016~2018년 중국 보안 연구원들이 Tesla Model S/X를 해킹해 CAN(Controller Area Network) BUS에 접속하여 와이퍼 및 브레이크 작동 유도 등을 유도한 공격 시연 사례, [CASE3]는 2020년 도요타, 현대, 기아 등 다수의 완성차 제조업체 리모트 키 암호화 시스템 취약점으로 인한 리모트 키 복제 사례 등이 있다. 공격 케이스별 공격방식은 [표 1]에서 설명하고 있으며, [CASE1]의 Jeep Cherokee 해킹사건과 [CASE2]의 Tesla Model S/X 해킹사고의 2가지 공격사례는 [그림 2]와 [그림 3]의 공격시나리오를 통해 보다 자세하게 설명하고자 한다.

[표 1] 네트워크를 통한 커넥티드 카 공격사례 목록
[그림 2] Uconnect 시스템 취약점을 악용한 커넥티드 카 침투 절차 구성도

[그림 2]의 공격 절차를 살펴보면 먼저 공격자는 차량 셀룰러 네트워크에 Port Scanning을 진행하였고 Uconnect 시스템에 액세스 가능한 6667 포트가 열린 것을 확인하였다.
공격자는 펨토셀을 사용하여 해당 포트 접근 후 차량에 액세스 함으로써 인증 과정 없이 공격자 네트워크와 연결을 성공시켰고, 연결한 차량의 제어 유닛(ECU)에 악성 코드를 삽입함으로써 차량의 강제 조작을 유발할 수 있었다.

[그림 3] Tesla Model S/X 차량의 네트워크 기반 침투 과정

커넥티드 카에서 발생하는 보안 이슈는 단일 차량의 문제(Security)를 넘어 안전(Safety)에도 영향을 미치기 때문에 공격을 유발하는 원인을 정확히 이해하고 대응 방안을 수립해야 한다. 앞서 커넥티드 카에서 발생하는 네트워크 기반의 사고사례 분석을 통해서 네트워크 보안 강화의 중요성에 대해서 살펴보았다.

차량 내에는 다수의 네트워크 통신 기술이 사용되고 있어 상호 통신을 위한 표준화된 통신 규격의 악용사례는 차량 전체에 영향을 미칠 수 있다. 따라서 차량 내에서 호스트 컴퓨터 없이 마이크로 컨트롤러나 ECU(Electronic control unit)들이 통신하는 데 사용되는 CAN(Controller Area Network)은 네트워크 공격벡터 중에서도 가장 중추적인 역할을 하는 요소다. 이에 따라 세부적인 네트워크 기반의 공격에서는 CAN 통신을 기반으로 하는 커넥티드 카의 공격벡터와 대응 방안에 대해 살펴보고자 한다.

02. CAN 네트워크 기반 커넥티드 카 기술 요소 분석

1) 커넥티드 카 기술 요소 및 침해 요소 분석

커넥티드 카의 공격벡터를 분석하기 위해서는 적용된 기술 스택에 대한 분류가 필요하다. 커넥티드 카는 일반적으로 [표 2]와 같이 H/W, S/W, 펌웨어 등으로 분류할 수 있으며, 각 단계별로 센서, 액츄에이터, 악성 소프트웨어, 펌웨어 해킹 등의 공격벡터가 존재한다. 차량 내 통신을 위한 통신 프로토콜인 CAN과의 관계에서도 상당수의 공격이 CAN과 연관되어 있다는 사실을 알 수 있다.

[표 2] 커넥티드 카 기술 요소별 공격 벡터 분석

[표 2]에서 나열된 공격벡터는 커넥티드 카를 구성하고 있는 다수의 기술요소 중 CAN을 사용한 네트워크 기반의 통신 공격 벡터이기 때문에 커넥티드 카 전반의 공격벡터는 [그림 4]와 같이 매핑될 수 있다. CAN기반의 네트워크 공격벡터는 [표 2]를 확인하면 된다.

[그림 4] 커넥티드 카 요소 별 공격 벡터 (출처 : hackinglab. 2020. Car Hacking Introduction)

2) 네트워크 기반 CAN 통신 요소 분석

[표 2]에서 분석한 커넥티드 카의 기술 요소들은 CAN 통신을 통해 서로 통신하고 상호작용함으로써 운전자에게 안전과 편의를 제공해 준다. [그림 5]에서 커넥티드 카의 각종 기술 요소가 차량 내부 네트워크에서 어떤 방식으로 상호작용하는지에 대한 구조도를 볼 수 있다.

[그림 5] 커넥티드 카 기술요소와 네트워크 간의 상호작용 구성도
(출처 : Trend Micro Research. 2020. Driving Security Into Connected Cars)

[그림 5]에서 커넥티드 카는 위성, Wi-Fi, 통신센터 등 외부의 요소와 정보를 주고받아 Powertrain, Body Control 등 차량의 각종 기술 요소에 적용, 동작하는 것을 볼 수 있다. 이러한 과정에서 내부 네트워크에서는 CAN BUS, 이더넷, FlexRay, LIN(Local Interconnect Network), MOST(Media Oriented System) 등의 프로토콜을 통해 정보를 주고받는데, 각각의 통신 프로토콜의 사용 용도 및 특징은 [표 3]에서 확인할 수 있다.

[표 3] 커넥티드 카에 사용되는 통신 프로토콜 별 차이점

프로토콜 간 특징을 구별하였을 때 CAN은 네트워크 충돌 방지 및 효율적 데이터 전송을 신속하게 지원하는 CSMA/CA 방식을 채택함으로써 안전을 위해 빠른 통신이 요구되는 차량 특성상 가장 효율적이다. 복잡한 전선 배선과 구성이 필요하지 않은 bus Topology 방식을 채택함으로써 물리배선 공간이 협소한 차량을 효율적으로 사용할 수 있으며, 실시간 통신을 위한 비동기식 방식을 사용하여 낮은 전력을 소모한다.

물리적 제약을 고려할 수 있는 1Mbps의 충분한 대역폭을 제공하며, 차량 내부의 노이즈 및 간섭에 대비한 전기 이중 와이어를 사용함으로써 타 네트워크 프로토콜에 비해 차량의 메인 기능인 엔진이나 동력전달에 적합한 구조다. 이러한 특징들을 기반으로 다른 네트워크 통신 프로토콜에 비해 CAN이 주요 기술로 자리잡을 수 있던 것이다. [그림 6]의 네트워크 통신 프로토콜간의 통신 과정을 도식화한 구성도에 따르면 CAN이 얼마나 많은 영역에서 사용되고 있는지를 보다 직관적으로 알 수 있다.

[그림 6] 커넥티드 카 통신 과정 구조도

CAN 프로토콜 메시지는 주솟값이 존재하지 않고 우선순위 값으로 전달되며 엔진, 브레이크 등 에어컨 시스템 보다 우선순위가 높기 때문에 상대적으로 가장 먼저 처리되는 메시지 정보이다. 범용성을 가장 중시하는 타 네트워크 프로토콜과 유사하게 보안성이 일부 낮다는 단점이 있다.

[그림 7] 커넥티드 카 H/W 아키텍처에서 CAN 통신 적용 Point
(출처 : Trend Micro Research. 2020. Driving Security Into Connected Cars)

[그림 7]과 같이 커넥티드 카 내부 H/W 아키텍처를 분석하면 DCM to MainBoard, MEU to MainBoard 등 USB(이더넷)로 연결된 부분을 제외한 대부분의 ECU 요소에서 Central Gateway ECU를 기준으로 Main Body ECU나 T-Box/DCM, AVN Unit등과 메시지를 구조 받기 위한 프로토콜로 CAN이 사용되고 있는 것을 알 수 있다. CAN BUS를 통해 엔진, 트렁크 개방, 인포테인먼트 시스템 등의 ECU 요소와 상호작용하게 된다.

커넥티드 카에서 주로 사용되는 CAN 통신에 관한 보안 위협의 원인은 커넥티드 카 전체의 보안성과 연관될 수 있어 CAN 네트워크 통신 기반 커넥티드 카 해킹 공격에 대해 상세하게 분석함으로써 네트워크 기반 공격의 근본적인 메커니즘을 이해하고 대응하는 것이 가장 중요하다.

03. CAN통신 기반 공격 상세 분석

1) 시뮬레이션 환경을 통한 CAN 통신 모의 해킹

차량에서 발생하는 보안이슈를 분석하기 위해서 본 문서에서는 시뮬레이션 기반으로 공격방법을 설명하고자 한다. 하여 실제 커넥티드 카에서 발생하는 CAN통신 기반의 공격방식은 네트워크 연결 방식에 대해서만 설명하고 자세한 공격방식을 설명하고자 한다. 시뮬레이션이 아닌 실제 차량의 네트워크를 공격하기 위해서는 OBD-II Connector나 무선 커넥터 등을 이용하여 공격자와 차량 간의 연결이 필요하다. OBD-II Connector는 차량 내에 케이블을 연결할 수 있는 포트 형태로 존재하고 있어서 케이블이 연결되면 차량 내부와 통신을 할 수 있기 때문에 차량 진단 인터페이스 등으로 활용된다. OBD-II Connector는 SAE J-1962 표준을 기반으로 사용되기 때문에 [그림 8]과 같은 핀 구성을 사용하게 된다.

[그림 8] 12/24V OBD-II 핀 구성
(출처 : 12/24V OBD-II Straight Socket, longan)

표준 핀 구성은 [그림 8]로 정의되어 있으나, 일부 제조사별로 배선구조 및 목적성에 따라서 핀 별 사용 용도가 일부 다르게 구성되게 된다. [그림 9]는 국내 완성차 제조업체인 현대 자동차와 기아 자동차의 핀 구성을 비교해 놓은 자료로 세부적인 핀 번호별 역할은 [표 4]와 같이 매핑되어 있기 때문에 실제 공격하고자 하는 차량의 벤더 및 차종에 따라서 핀 구성의 명세를 확인하고 공격을 수행해야 한다. OBD Connector를 사용하여 차량 네트워크와 단말기에 대한 연결이 확인되면 다음 Part에서 소개될 모의 해킹 작업을 진행할 수 있다.

[그림 9] OBD기준과 국내 완성차 업체의 OBD-II Connector배치 차이
[표 4] OBD기준과 국내 완성차 업체의 OBD-II Connector배치 차이(핀 구성별 세부 역할)

2) CASE 기반 CAN 통신 Simulate 환경 구성

CAN 통신 기반 커넥티드 카 모의 해킹 작업을 진행하기 위해 대표적인 차량 해킹 시뮬레이터 패키지 ‘ICSim(Instrument Cluster Simulator)’을 사용해서 환경을 구성하고 분석을 진행했다. ICSim 패키지는 속도계, 도어 잠금장치 표시, 방향 지시등이 포함된 가상 대시보드를 통해 가상의 자동차 컨트롤러 및 네트워크와 연결하여 차량 제어가 가능하다. 본 문서에서는 모의 해킹 환경 구성 시 악성 CAN Packet 송신을 통한 강제적인 가속 제어, 차량 기능 조작 등의 공격을 진행할 것이므로 Sniffer를 활용한 CAN 패킷 스니핑 및 복제, 재생 공격 방식으로 분석 작업을 진행하였다.

시뮬레이션에서는 동작 환경을 Kali Linux VM, can-utils, ICSim 등 오픈 소스 소프트웨어를 사용하였으며, [그림 10]의 CAN 통신 기반 모의 해킹 구성도를 기반으로 공격을 수행하게 된다.

[그림 10] CAN Packet Replay Attack을 통한 커넥티드 카 침투 과정

공격자는 패킷 캡처 도구를 이용해 스니핑(Sniffing) 하여 커넥티드 카의 동작에 대한 CAN Packet을 수신하고 수신한 CAN Packet을 Dump 한 후 Dump한 패킷을 CAN Player 도구를 사용해 Replay Attack을 수행하면 공격자가 송신한 악성 CAN Packet을 수신한 커넥티드 카는 그에 맞는 동작을 강제로 수행하게 된다. 모의 해킹 환경을 구성하기 위해 로컬 혹은 VM에 설치된 Kali Linux에서 종속성 설치가 선행되어야 한다. LibSDL(컴퓨터 그래픽 및 오디오용 cross platform dev library) 라이브러리와 can-utils를 설치하기 위해 아래 명령어를 입력한다.

종속성 설치 후 아래 명령어를 입력하여 Github에서 ICSim Project 파일을 설치하고 설정 스크립트 실행 후 vcan0 네트워크 인터페이스가 생성되었는지 확인하고 필요 파일을 설치한다.

ICSim 설치 후 아래의 명령어를 입력하여 가상 대시보드 IC Simulator와 Controller를 실행한다.

IC Simulator와 Controller를 실행하면 [그림 11]과 같이 가상 대시보드와 Controller 창이 실행되는 것을 확인할 수 있다.

[그림 11] IC Simulator, CANBUS Controller

CANBUS Controller를 조작하면 IC Simulator의 계기판이 CAN 통신을 수신하여 가상의 차량이 동작하게 되며 Controller는 조이스틱을 연결해 사용하거나 키보드의 키 조합을 통해 조작이 가능하다. Controller에서 사용할 수 있는 키보드의 키 조합은 [표 5]에서 확인할 수 있다.

[표 5] CANBUS Controller 키보드 키 조합

3) Simulate 환경 기반 CAN Replay Attack

GUI 기반 커넥티드 카 모의 해킹 환경이 구축되면 본격적으로 Sniffing 작업을 진행한다. WireShark와 같은 도구를 사용해도 좋으나 본 기술 문서에서는 can-utils 패키지에 포함된 cansniffer 도구를 사용하겠다.
아래의 명령어를 입력하면 cansniffer를 실행할 수 있다. 명령어에 –c 옵션을 사용하면 변경되는 bytes를 색상화 함으로써 가독성을 높일 수 있다.

[그림 12]를 확인하면 WireShark, Tcpdump와 비슷한 형태로 CAN 패킷을 Sniffing 하여 분석이 가능한 것을 확인할 수 있으며 열을 기준으로 1열은 Interface, 2열은 ID, 3열은 CAN Message(8 Bytes 제한), 4열은 CAN Data를 의미한다.

[그림 12] CAN Sniffer Packet 구조

ICSim 계기판은 CAN Packet 수신 시 2열의 ID 값을 점검하여 계기판에 송신된 Message인지 점검하고 맞을 경우 CAN Message에 해당하는 값의 데이터를 가져와 동작하게 되는 방식으로 운용된다. 예를 들면 계기판이 수신한 CAN 데이터가 ‘3000’일 경우 계기판 RPM이 3000으로 증가하는 방식이다.

이제 본격적으로 캡처한 CAN 메시지를 저장하기 위해 candump 툴을 사용할 것이다. 아래의 명령어를 입력하여 candump를 시작한 뒤 Controller의 조작을 통해 가속, 방향 지시등 활성화 등의 행위를 진행한 후 Ctrl+C 키를 입력하여 패킷 dump를 중지한다. –l 옵션을 추가하여 CAN Packet 로그를 저장하도록 한다.

Dump한 CAN Packet 데이터가 로그 파일로 저장되면 canplayer를 사용해 해당 데이터를 재생하여 차량에 송신하는 공격 행위를 수행할 수 있다. 아래의 명령어를 입력함으로써 수행할 수 있으며 그 결과 [그림 13]과 같이 사용자의 별다른 조작이 없어도 차량이 Dump했던 CAN Packet을 수신하게 되어 강제적으로 가속, 문이 개방되는 등의 행위가 수행되는 것을 확인할 수 있다.

[그림 13] CAN Replay Attack을 통한 커넥티드 카 강제 조작 성공

[그림 13]에서 이용한 재생 공격 방식은 저장한 CAN Packet Log를 그대로 재생한 형태의 공격이지만 필요한 Log Data만 추출하여 변조하면 원하는 시점에 가속 및 방향 지시등을 동작시키는 형태의 공격이 이루어질 수 있어 각별한 주의가 필요하다. 해당 공격 패턴을 이해하기 위해서는 대시보드가 어떤 ID 값에서 데이터를 받는지 확인할 수 있어야 한다.

Cansniffer의 ID Filtering 기능을 사용하여 어떤 ID 값에서 차량 동작 행위가 일어나는지 확인해 보겠다. Cansniffer에서 ‘-’ 를 입력 후 ‘000000’을 입력하고 Enter를 누르면 모든 프레임이 삭제되며 이 상태에서 ‘+’를 입력 후 원하는 ID 값을 입력하고 Enter를 누르면 해당 ID 값 프레임만 확인할 수 있다. 예를 들어 차량이 동작할 때 가장 변화가 많은 “40C” 프레임을 발견하였다면 이를 ID Filtering을 이용하여 정리할 수 있으며 이는 [그림 14]에서 확인할 수 있다.

[그림 14] Cansniffer ID Filtering

그렇다면 정확하게 차량의 강제적인 조작을 유발한 CAN 프레임을 어떠한 방식으로 획득할 수 있을까? 이는 이진 탐색 알고리즘을 구현하면 쉽게 해결할 수 있다. [그림 15]는 커넥티드 카의 강제적인 조작을 유발한 CAN 통신 프레임을 검색하기 위한 알고리즘이다.

[그림 15] CAN 프레임 검색을 위한 이진 탐색 알고리즘
(출처 : hakin9.org. 2022. Car Hacking: The ultimate guide! - Part II by Anastasis Vasileiadis)

프레임을 반으로 분할하고 분할한 프레임을 canplay를 사용해 재생하는 과정을 반복하여 최종적으로 어떤 프레임에 차량의 동작을 유도하는 데이터가 담겨있는지 알 수 있다. 아래와 같은 명령어를 사용하여 프로그래밍으로 구현하면 손쉽게 원하는 프레임 데이터를 얻게 될 수 있을 것이다.

그렇다면 CAN 통신에 이와 같은 취약점이 발견되는 이유는 무엇일까? 그에 대한 해답은 대략 3가지의 원인을 볼 수 있는데 먼저 CAN 통신은 주로 내부 네트워크로 간주하였기 때문에 프로토콜 자체에 보안성이 고려되지 않아 쉽게 접근할 수 있다는 부분이 존재하며, 데이터 무결성 검증의 부재, 암호화 부재 등의 이유를 그 예로 들 수 있겠다.

이처럼 커넥티드 카에서 사용하는 CAN은 대형 사고를 일으킬 수 있는 공격 벡터로 이용될 수 있으므로 다음 Chapter에서 소개될 대응 방안을 적극적으로 차용하여 커넥티드 카의 보안성 향상을 위한 노력이 필요하다.

04. CAN 통신 기반 공격 대응 방안

커넥티드 카에 대한 CAN 통신 기반 공격에 대응하기 위해서 대표적으로 네트워크 단과 물리 단에서 보안 조치를 할 수 있다. 보안을 강화하기 위해서는 2가지 종류의 대응방안을 모두 적용하는 것이 효과적이나 차량 구성 및 환경에 따라 공격 벡터별로 발생할 수 있는 공격시나리오를 구성하여 우선순위가 높은 요소 순으로 대응방안을 적용하는 것이 중요하다.

1) 네트워크 기반의 CAN 통신 기반 공격 대응 방안

네트워크 통신을 기반으로 서비스를 제공하는 커넥티드 카에서 네트워크 단의 보안 조치를 필수적으로 수행하여 차량과 승객의 안전을 보장하는 것이 중요하다. 대표적인 네트워크 단 보안 조치로는 내부 및 외부 통신으로 분리하는 네트워크 격리 조치, CAN 메시지를 검증하고 암호화하는 메시지 인증 및 암호화 조치 등의 작업을 수행해야 한다.

본 문서에서는 네트워크 기반 IDS/IPS(NIDS/NIPS)를 활용한 대응 방안에 대해 상세히 설명하도록 하겠다. NIDS/NIPS를 통해 실시간으로 통신을 모니터링하고 이상 패킷 감지 및 차단이 가능하며 Signature 기반, Anomaly 기반 방식으로 구분하여 조치할 수 있다. Class 간 상세한 차이점은 [표 6]에서 확인할 수 있다.

[표 6] 탐지 Class 기반 차이점 분석

커넥티드 카에서 동작하는 IDS/IPS는 백신 프로그램과 유사하게 Signature 방식을 기반으로 동작하며, Signature 방식으로 탐지가 어려운 Anomaly 영역은 Non-Signature 방식에서 탐지하도록 한다. 이를 위해 다양한 센서, ECU 및 CAN BUS에서 데이터 수집 및 전처리 작업 후 탐지 Class를 기반으로 이상 징후를 감지하여 차단 또는 운전자에게 알람을 전달하게 된다. 차량 속도 모니터링 및 정의된 임곗값 초과 시 경고를 생성하는 간단한 IDS 예제 코드를 [그림 16]에서 확인할 수 있으며, 실제 커넥티드 카 환경에서도 이와 유사한 형태의 보안 조치들이 적용되어 있다.

[그림 16] 커넥티드 카 IDS Python 예제 코드

본 문서에서 소개된 IDS/IPS를 활용한 악성 CAN 메시지를 차단하는 방식과 함께 완전한 네트워크 보안성을 위해서는 Network 내·외부망 분리 조치, 메시지 인증 및 암호화 조치 등의 대응 방안을 함께 적용하여 안전한 커넥티드 카 이용 환경을 조성하는 것이 적극 권고된다.

2) 물리 기반의 CAN 통신 기반 공격 대응 방안

CAN 통신은 특성상 별다른 물리적인 보안 조치가 존재하지 않아 차량 내부 접근이 가능할 시 손쉽게 공격받을 위험성이 존재하므로 반드시 물리 기반의 대응 방안 계획을 수립하고 이를 시행해야 한다. 물리적인 보안 조치가 취약할 경우 본 문서에서 분석했던 CAN Packet Replay Attack 모의 해킹 시나리오와 같은 CASE의 공격 행위가 실제로 일어나게 될 수 있는 이유로 물리 기반 CAN 통신의 커넥티드 카 침입 시나리오와 관련 대응 방안을 분석해 보고자 한다. [그림 17]에서는 별도의 물리적인 보안 조치가 존재하지 않는 커넥티드 카에 대한 CAN 통신 기반 공격 시나리오를 확인할 수 있다.

※ STEP1. 공격 CASE3은 [표 1]의 CASE 3(커넥티드 카 네트워크 통신 기반 침해 사례), 이모빌라이저를 사용하여 현대자동차 등의 Remote Key를 탈취한 시나리오를 의미

[그림 17] 물리 기반의 커넥티드 카 CAN 네트워크 침해 위협 시나리오

[그림 17]과 같은 공격 시나리오를 통해 커넥티드 카의 침해 행위가 발생, 운전자와 차량의 안전이 위협받을 수 있으므로 이에 대한 대응 방안을 소개하려고 한다. 차량의 무단 접근을 방지하기 위해 차량 문 잠금장치 및 경보 장치를 설정해야 하며, OBD-II 포트에 물리적 잠금장치를 적용하고 CCTV와 같은 영상정보처리기기를 이용한 물리적 침입 감시 등의 대응 방안을 고려할 수 있다. 여기서 열거한 대응 방안을 적용하였을 경우 어떠한 방식으로 보호가 될 수 있는지는 [그림 18]의 시나리오에서 확인할 수 있다.

[그림 18] 물리 기반의 커넥티드 카 CAN 네트워크 보안 조치 적용 시나리오

[그림 18] CASE와 같이 적극적인 물리 기반의 CAN 네트워크 보안 조치를 적용함으로써 공격자가 직접 접근하여 발생할 수 있는 커넥티드 카의 위협을 완화할 수 있으며 이외에도 추가적인 보안 조치를 적극적으로 고민하고 적용하면 더욱 안전한 커넥티드 카의 사용을 촉진할 수 있을 것으로 보인다.

05. 마무리

지금까지 커넥티드 카 환경에서 발생할 수 있는 네트워크 기반의 공격 벡터와 그중에서도 CAN기반의 공격사례와 대응방안에 대해서 살펴보았다. 완성차 벤더들의 공격사례들을 통해 CAN통신이 커넥티드 카에서 미치는 영향도와 보안의 필요성을 다시금 상기할 수 있었다. 본 문서의 환경적인 제약사항들로 인해 실제 차량을 통한 공격사례 분석은 포함되지 못했으나, 시뮬레이션 환경을 통한 공격사례 분석 및 대응방안 등을 통해 커넥티드 카의 공격벡터들에 대해서 보다 자세하게 확인할 수 있었다.

커넥티드 카는 새로운 모빌리티 생태계의 시작이라고 할 수 있다. 아무리 좋은 기술이라 할지라도 보안과 안전이 보장되지 않는 기술이라면 시장에서 외면받을 수밖에 없다. 전통적인 내연기관 기반의 모빌리티 생태계는 리파워(Repower)를 통해 전기차로 전환하면서 IT기술을 융합한 신생업체들의 비약적인 성장이 눈에 띄고 있다. 따라서 네트워크 연결을 통해 연결성을 강화한 커넥티드 카의 생태계에서 시장의 우위를 점하기 위해서는 이동 수단이라는 고정관념을 버리고 멀티 플레이스로서의 플랫폼으로 접근하여 네트워크 보안강화가 모빌리티 생태계의 새로운 경쟁 무기가 되기를 기대해 본다.