★ 이 책에서 다루는 내용 ★
■ 차량에 대한 위협 모델링 수립
■ CAN bus 리버스엔지니어링(Reverse Engineering) 기술을 통한 엔진 신호 조작
■ 진단 및 데이터 로깅 시스템의 익스플로잇(Exploit) 공격
■ ECU, 펌웨어, 임베디드 시스템 해킹
■ 인포테인먼트(Infotainment)와 V-to-V 통신 시스템들에 익스플로잇 공격
■ 성능 튜닝 기법을 이용한 차량 출하 시 설정 변경
■ 물리적/가상적 테스트 벤치를 구성하여 익스플로잇 공격 테스트
★ 이 책의 대상 독자 ★
자동차 산업 관련 전문가, 보안전문가 또는 자동차 튜닝에 관심 있는 일반인에게 추천한다. 차량 보안에 호기심이 있고 2톤짜리 컴퓨터를 해킹하고 싶은 충동이 있다면, 이 책을 펼치길 추천한다.
★ 이 책의 구성 ★
1장, ‘위협 모델의 이해’에서는 차량을 평가하는 방법을 배우며, 고위험 영역을 식별하는 방법을 알게 될 것이다. 자동차 산업에서 종사하고 있다면 내부의 위협 모델링 시스템을 구축하는 데 유용한 가이드 역할을 하게 될 수 있다.
2장, ‘버스 프로토콜’에서는 차량을 평가할 때나 버스 프로토콜, 전압, 전선을 분석할 때 접하게 되는 다양한 버스 네트워크의 종류를 자세히 다룬다.
3장, ‘SocketCAN을 이용한 차량 통신’에서는 리눅스 시스템에서 SocketCAN을 이용해 다양한 CAN 하드웨어 툴을 구현하는 방법을 소개하며, 어떤 진단 대상이든 사용할 수 있는 툴을 스스로 만들 수 있도록 설명한다.
4장, ‘고장 진단과 로깅’에서는 엔진의 코드, 범용 진단 서비스, ISO-TP 프로토콜을 읽는 방법을 다룬다. 각 서비스 모듈이 어떻게 동작 방식이 다르고, 공통적으로 갖고 있는 취약점은 무엇인지, 저장되는 로그 정보가 무엇이고 어디에 존재하는지에 대해 알게 된다.
5장, ‘CAN 버스 리버스엔지니어링’에서는 가상 CAN 네트워크를 구성하는 방법과, CAN 보안 관련 툴과 퍼저(Fuzzer)를 이용해 CAN 네트워크를 분석하는 방법을 다룬다.
6장, ‘ECU 해킹’에서는 ECU에서 동작하는 펌웨어에 초점을 맞춘다. 펌웨어를 얻는 방법과 수정하는 방법, 그리고 펌웨어의 바이너리 데이터를 분석하는 방법을 다룬다.
7장, ‘ECU 테스트 벤치 구축과 활용’에서는 안전한 테스트 환경을 구축하기 위해 차량의 부품을 제거하는 방법을 설명한다. ECU 간 배선도를 읽고 엔진의 ECU 구성 요소인 온도 센서들과 크랭크축의 동작 등을 시뮬레이션하는 방법을 다룬다.
8장, ‘ECU와 기타 임베디드 시스템 공격’에서는 집적회로의 디버깅 핀을 연결하는 방법을 다룬다. 또한 전압 차 분석(Differential Power Analysis)이나 클록 글리칭(Clock Glitching)과 같은 부채널 공격(Side Channel Analysis Attacks)을 다룬다.
9장, ‘차량 내 인포테인먼트 시스템’에서는 차량 내부의 인포테인먼트 시스템이 가장 많은 공격 지점을 갖고 있는 중요한 포인트이기 때문에 인포테인먼트 시스템의 동작 원리를 자세히 다룬다. 펌웨어를 획득하는 여러 접근법과 펌웨어를 시스템상에서 실행하는 방법을 중점적으로 다룰 것이며, 테스트를 위해 일부 오픈소스 인포테인먼트 시스템을 활용한다.
10장, ‘V2V 통신’에서는 차량과 차량 사이 네트워크가 어떻게 동작하도록 설계됐는지 설명하고, 암호 방식과 여러 나라에서 제안된 여러 프로토콜 방식을 다룬다. 그리고 일부 잠재적인 문제점도 언급한다.
11장, ‘CAN 결과의 활용’에서는 CAN 분석의 결과들을 어떻게 사용 가능한 익스플로잇으로 만드는지 설명한다. PoCProof-of-Concept, 개념 증명 코드를 어셈블리 코드(Assembly Code)와 궁극적인 셸코드(Shellcode)로 변환하는 방법을 배우고, 특정 목표 차량만을 익스플로잇하는 방법과, 취약점이 발견되지 않은 차량을 분석하는 방법도 테스트한다.
12장, ‘SDR을 이용한 무선 시스템 공격’에서는 무선 통신을 분석하기 위해 SDR(Software-Defined Radio)을 사용하는 방법을 다루며, TPMS, Key fobs, 이모빌라이저 시스템(Immobilizer Systems)들을 분석하는 데 활용한다. 예제로 이모빌나이저 시스템이 동작할 때 사용하는 암호 구조나 기타 알려진 무선통신의 문제점을 분석해 본다.
13장, ‘성능 튜닝’에서는 차량의 성능을 향상시키고 변화시키는 기술을 다룬다. 칩 튜닝이나 일반적인 튜닝 툴, 그리고 엔진을 원하는 상태로 변경하는데 필요한 기술을 다룬다.
부록 A, ‘차량 해킹 툴 모음’에서는 차량 보안 연구실을 구축할 때 유용한 하드웨어, 소프트웨어 툴의 목록을 제공한다.
부록 B, ‘진단 코드 모드와 PID’에서는 일반적인 진단 모드와 사용하기 쉬운 PID의 목록을 제공한다.
부록 C, ‘자신만의 Open Garage 만들기’에서는 차량 해킹 커뮤니티에 참가하는 방법과 자신만의 Open Garage를 시작하는 방법을 다룬다.
★ 지은이의 말 ★
2014년 차량 보안에 대한 정보를 공유하던 Open Garages 그룹이 강의 교재로 활용하기 위해 첫 번째로 『Car Hacker’s Manual』 책을 배포했다. 원본은 차량의 글로브박스에 관한 내용과 하루 이틀 정도의 차량 보안 수업을 위한 기본적인 차량 해킹 내용을 다뤘다. 이 책이 얼마나 많은 관심을 받았는지 알 수 있었던 작은 일화로, 인터넷 배포 첫 주에 30만 다운로드가 발생했다는 점과 이로 인해 배포를 위해 사용하던 인터넷 서비스 제공(ISP) 회사가 두 번 다운되는 일이 발생해 그들을 힘들게 했었던 일이 있다(인터넷 서비스 제공 회사에서는 그 사건에 대해 이해해줬고, 우린 이 작은 ISP 회사를 사랑한다. 헬로우 SpeedSpan.net!).
독자들의 반응은 전반적으로 환상적이었지만, 비평가들 대부분은 책의 설명이 너무 짧고 다루는 내용이 자세하지 못하다는 점을 지적했다. 이번 개정판은 부족한 부분을 보완하는 것을 목표로 했다. 이 책은 차량 해킹에 대한 자세한 내용과 차량 성능 튜닝, 차량 동작 원리를 이해하는 데 유용한 툴들과 함께 일부 보안과 직접적인 관련이 없는 부분까지도 다룬다.
★ 옮긴이의 말 ★
우리는 현재 급변하고 있는 자동차 기술의 발전을 직접 보고 느끼며 살아가고 있다. 자동차는 IT 기술과의 융합을 통해 점점 더 스마트해질 것이고 우리의 삶은 ‘스마트한 자동차’로 인해 더욱 편리하고 멋진 삶을 누릴 수 있게 될 것이다.
하지만 이러한 이면에는 그동안 수없이 겪어왔던 해킹 사고와는 비교도 되지 않을 정도로 큰 위협과 우리가 동행하고 있다는 점을 명심해야 한다. 이제는 해킹의 수준이 단순히 사람의 정보를 유출하고 악용하고 폭로하는 정도가 아니라, 자동차 해킹을 통해 인명 사고가 발생할 수도 있는 시대가 됐다. 자동차 기술과 IT 기술의 접목으로 IT 분야 고유의 해킹 위협이 자동차로 전이되고, 이로 인해 생명과 직결되는 자동차라는 특성상 더 큰 피해가 발생할 가능성이 커졌다.
자동차 해킹은 자동차 출력 튜닝 같은 고유 기술 분야에서 시작해 우리의 생각보다 오래된 분야다. 최근 기존 자동차 해킹 기술을 기반으로 IT 기술이 적용된 영역에서 자동차 원격 제어로 생명을 위태롭게 할 가능성을 입증하는 다양한 연구 결과와 국내외의 발표가 있었다. 이로부터 자동차 해킹이 얼마나 위험한지 많은 사람이 인지하고, 점차 보안 영역으로 구분되었다.
이러한 흐름은 자율주행, 전기차 분야에 선도적인 자동차 기업이 제품의 보안 문제점을 제보 받고 포상하는 버그바운티 제도를 도입해 자동차에 존재하는 보안 문제를 적극적으로 개선하려는 활동과 각자 내부적으로 자동차 보안 전문가를 양성하고 있는 노력에서도 알 수 있다.
2012년부터 자동차 해킹 관련 업무를 수행하면서 자동차 내 IT 기술이 적용된 부분에 대한 보안 문제점을 분석하는 업무를 시작했다. 하지만 시간이 갈수록 IT 영역을 통한 자동차 해킹으로 확장해 나가면서 자동차 기술에 대한 기반 지식이 필요하다는 것을 느꼈다. 하지만 자동차 공학을 처음부터 다시 배우기에는 시간이 촉박했다. 그때 마침, 자동차 해킹과 튜닝을 연구하는 모임인 오픈 게라지스에서 자동차 해킹에 관한 책을 출간했다.
이 보안 전문 그룹은 2014년 『Car Hacker`s Handbook』을 통해 최초로 자동차 해킹에 대한 포괄적인 개념을 정리했지만, 디테일이 부족했다는 평가에 따라 2년 만에 더 자세한 내용과 실제 실습 가능한 내용을 보강해 2016년 버전을 출간했다.
독자로서 2014년 출간된 책에서 실망했지만 이후 2016년 개정판을 읽으면서 저자들이 2년간 얼마나 많은 노력을 기울였는지 느꼈다. 현재와 미래에 영향을 끼칠 자동차 보안 위협과 기반이 될 지식, 개별적인 해킹 기술에 대해 자세히 설명하려는 노력을 엿볼 수 있었다. 이 책이 실무에 얼마나 도움이 되는지 누구보다 잘 알기에 책을 읽자마자 바로 번역을 결심했고, 자동차 관련 종사자나 보안 전문가 또는 자동차 튜닝에 관심이 있는 분들께 도움이 될 것이라 확신한다.
작은 바람이 있다면 이 책이 필요한 곳에 도움이 되어 자동차 보안 기술의 발전과 국내 자동차 보안전문가가 더 많아지는 계기가 되었으면 한다. 그리고 다양한 기술 연구 활동이 이뤄지고, 훗날 더 좋은 책이 우리 손에서 출간되기를 희망해본다.
★ 감수의 글 ★
수십 년간 자동차는 인간의 이동 수단으로 안전을 중심으로 개발됐다. 하지만 자동차 부품이 하나둘씩 전장화되면서 자동차는 어느덧 컴퓨터 또는 전자제품으로 탈바꿈하고 있다. 불과 수년 전 구글, 애플과 같은 IT 공룡기업이 자동차를 만든다고 선언했을 때 모두 믿지 않았다. 하지만, 이제는 자율 주행이라는 기술을 장착한 자동차의 시범 운행을 미디어를 통해 쉽게 찾아볼 수 있다. 세상은 우리가 생각하는 것 이상으로 빠르게 변하고 있다.
지프 제로키 원격 조정 해킹 사건으로 크라이슬러는 140만대가 넘는 자동차에 대한 리콜 조치를 했다. 영화에서만 보던 자동차 해킹이 이제 우리에게 닥친 현실이 된 것이다. 여러 유명 해외 컨퍼런스에서는 안전 위주의 자동차 부품 개발 프로세스에 보안 개발 프로세스를 접목하는 사례를 앞다투어 발표하고 있다. 자동차 보안이 안전을 위협하고 있다는 방증인 셈이다.
자동차 보안 분야에서 수년간 업무를 수행해오며 아쉬웠던 부분은 학계나 미디어에서 자동차 보안 위협이나 해킹 사고를 자주 발표하지만, 어디에도 그 원리 및 방법에 대해 체계적으로 설명하는 곳은 없었다. 이 책은 자동차 해킹을 선망의 대상으로만 바라보고 있는 독자들에게 한 줄기 빛이자 사막의 오아시스와 같은 역할을 해줄 것을 믿어 의심치 않는다.
자동차 해킹은 매우 다양한 지식과 기술이 필요하므로 책 한 권으로 모든 것을 설명하는 것은 불가능하다. 이 책은 자동차 해킹 분야의 필요한 사항을 간략하게 설명하고 필요할 때에 적절한 내용을 즉시 확인할 수 있는 핸드북이다. 소프트웨어뿐만 아니라 하드웨어 보안까지 다양한 각도에서 자동차 해킹을 체계적으로 다루고 있기에 자동차 해킹을 시작하는 독자들에게 충분한 길잡이 역할을 해 줄 것이다.
자동차 해킹 서적 번역을 통해 국내에 차량 보안을 소개한다는 사명감으로 용어 하나, 문장 하나를 두고 번역자 신현진 군과 밤낮없이 벌인 논쟁과 토론의 수고가 결실을 보게 되어 매우 기쁘다. 이 책을 시작으로 국내에서 자동차 해킹에 대해 더 많은 서적이 출간되고 번역되기를 기대한다.