이미 소장하고 있다면 판매해 보세요.
|
1장. 위협 모델의 이해
__공격 지점 식별 __위협 모델링 ____레벨 0: 데이터 흐름 파악 ____레벨 1: 데이터 처리 프로세스 분석 ____레벨 2: 데이터처리 프로세스 세분화 __위협 식별 ____레벨 0: 전반적 위협 식별 ____레벨 1: 데이터처리 프로세스별 위협 식별 ____레벨 2: 데이터처리 프로세스 위협 세분화 __위협 등급 체계 ____DREAD 등급 체계 ____CVSS: DREAD의 대안 __위협 모델 결과 활용 __요약 2장. 버스 프로토콜 __CAN 버스 ____OBD-II 커넥터 ____CAN 연결 위치 찾기 ____CAN 버스 패킷 구성 ____ISO-TP 프로토콜 ____CANopen 프로토콜 ____GMLAN 버스 __SAE J1850 프로토콜 ____PWM 프로토콜 ____VPW 프로토콜 __키워드 프로토콜과 ISO 9141-2 __LIN 프로토콜 __MOST 프로토콜 ____MOST 네트워크 계층 구조 ____MOST 제어 블록 ____MOST 해킹 __플렉스레이 버스 ____하드웨어 ____네트워크 토폴로지 ____구현 ____플렉스레이 사이클 ____패킷 구성 ____플렉스레이 네트워크 스니핑 __차량 이더넷 __OBD-II 커넥터 핀아웃 맵 __OBD-III 표준 __요약 3장. SocketCAN을 이용한 차량 통신 __CAN 디바이스 연결을 위한 can-utils 설정 ____can-utils 설치 ____내장형 칩셋 설정 ____시리얼 CAN 디바이스 설정 ____가상 CAN 네트워크 설정 __CAN 유틸리티 스위트 ____추가 커널 모듈 설치 ____can-isotp.ko 모듈 __SocketCAN 애플리케이션 코딩 ____CAN 소켓 연결 ____CAN 프레임 설정 ____Procfs 인터페이스 __socketcand 데몬 __Kayak __요약 4장. 고장 진단과 로깅 __고장 진단 코드 ____DTC 포맷 ____DTC 스캔 툴 활용 ____DTC 삭제 __통합 진단 서비스 ____ISO-TP와 CAN을 이용한 데이터 전송 ____진단 모드와 PID에 대한 이해 ____진단 모드 무작위 대입 ____차량 진단 상태 유지 __EDR 로깅 ____EDR의 데이터 읽어오기 ____SAE J1698 표준 ____기타 데이터 검색 사례 __자동 충돌 통보 시스템 __악의적 의도 __요약 5장. CAN 버스 리버스엔지니어링 __CAN 버스 연결 __can-utils와 와이어샤크를 이용한 CAN 버스 통신 리버싱 ____와이어샤크 사용 ____candump 사용 ____CAN 버스에 전송된 데이터 그룹화 ____패킷 기록과 재생 ____창조적인 패킷 분석 ____엔진 속도계 정보 읽어오기 __ICSim를 이용한 백그라운드 노이즈 생성 ____ICSim 설정 ____ICSim의 CAN 버스 트래픽 읽기 ____ICSim 난이도 변경 __OpenXC를 이용한 CAN 버스 리버싱 ____CAN 버스 메시지 변환 ____CAN 버스 데이터 전송 ____OpenXC 해킹 __CAN 버스 퍼징 __트러블슈팅 __요약 6장. ECU 해킹 __프론트 도어 공격 ____J2534: 차량 통신 API 표준 ____J2534 툴 활용 ____KWP2000과 기타 이전 프로토콜 ____프론트 도어 접근 방식의 활용: Seed-Key 알고리즘 __백도어 공격 __익스플로잇 __차량 펌웨어 리버싱 ____자체 진단 시스템 ____라이브러리 프로시저 ____파라미터 식별을 위한 바이트 비교 ____WinOLS를 이용한 ROM 데이터 식별 __코드 분석 ____전용 디스어셈블러 ____대화형 디스어셈블러 __요약 7장. ECU 테스트 벤치 구축과 활용 __기본적인 ECU 테스트 벤치 ____ECU 찾기 ____ECU 배선 분석 ____배선 연결 __고급 테스트 벤치 제작 ____센서 시그널 시뮬레이션 ____홀 이펙트 센서 __차량 속도 시뮬레이션 __요약 8장. ECU와 기타 임베디드 시스템 공격 __회로 기판 분석 ____모델 번호 식별 ____칩의 분해와 분석 __JTAG, 시리얼 와이어 디버그를 이용한 하드웨어 디버깅 ____JTAG ____시리얼 와이어 디버깅 ____고급 사용자 디버거 ____넥서스 __ChipWhisperer를 이용한 부채널 공격 ____소프트웨어 설치 ____타겟 보드 준비 __전원 분석 공격을 이용한 보안 부트 무작위 대입 시도 ____AVRDUDESS를 이용한 테스트 과정 준비 ____시리얼 통신을 위한 ChipWhisperer 설정 ____패스워드 변경 ____AVR 리셋 ____ChipWhisperer ADC 설정 ____패스워드 입력 시 전력 사용량 모니터링 ____파이썬을 이용한 ChipWhisperer 스크립트 제작 __결함 주입 ____클록 글리칭 ____트리거 라인 설정 ____전원 글리칭 ____외과적 결함 주입 __요약 9장. 차량 내 인포테인먼트 시스템 __공격 지점 __업데이트 시스템을 통한 공격 ____시스템 식별 ____업데이트 파일 타입 식별 ____시스템 변경 ____애플리케이션과 플러그인 ____취약점 식별 __IVI 하드웨어 공격 ____IVI 기기의 연결 분석 ____IVI 기기 분해 __인포테인먼트 테스트 벤치 ____GENIVI Meta-IVI ____AGL __테스트를 위한 OEM IVI 얻기 __요약 10장. V2V 통신 __V2V 통신 방식 __DSRC 프로토콜 ____특징과 용도 ____도로 주변 DSRC 시스템 ____WAVE 표준 ____DSRC를 이용한 차량 추적 __보안 문제 __PKI 기반 보안 대책 ____차량 인증서 ____익명 인증서 ____인증서 등록 ____인증서 폐지 항목 갱신 ____비정상적 행위 보고 __요약 11장. CAN 결과의 활용 __C 언어를 이용한 익스플로잇 작성 ____어셈블리어 코드로 변환 ____어셈블리 코드를 셸코드로 변환 ____NULL 제거 ____메타스플로잇 페이로드 생성 __공격 대상 차종 알아내기 ____대화형 탐색 ____수동적 CAN 버스 핑거프린팅 __책임감 있는 익스플로잇 __요약 12장. SDR을 이용한 무선 시스템 공격 __무선 시스템과 SDR ____신호 변조 __TPMS 해킹 ____라디오 수신기를 이용한 도청 ____TPMS 패킷 ____신호 활성화 ____차량 추적 ____이벤트 트리거링 ____변조된 패킷 전송 __전자 키와 이모빌라이저 공격 ____전자 키 해킹 ____PKES 시스템 공격 ____이모빌라이저 암호 기술 ____이모빌라이저 시스템상 물리적 공격 ____플래시백: 핫와이어링 __요약 13장. 성능 튜닝 __성능 튜닝의 타협 __ECU 튜닝 ____칩 튜닝 ____플래시 튜닝 __독립형 엔진 관리 __요약 부록 A. 차량 해킹 툴 모음 __하드웨어 ____보급형 CAN 디바이스 ____고급형 CAN 디바이스 __소프트웨어 ____와이어샤크 ____PyOBD Module ____리눅스 툴 ____CANiBUS 서버 ____Kayak ____SavvyCAN ____O2OO 데이터 로거 ____Caring Caribou ____c0f Fingerprinting 툴 ____UDSim ECU Simulator ____Octane CAN 버스 스니퍼 ____AVRDUDESS GUI ____RomRaider ECU Tuner ____Komodo CAN 버스 스니퍼 ____Vehicle Spy 부록 B. 진단 코드 모드와 PID __0x10 모드 __유용한 PID 부록 C. 자신만의 Open Garage 만들기 __특성 시트 작성 ____모임 일정 ____제휴와 프라이빗 멤버십 ____미팅 공간에 대한 명시 ____연락 정보 ____그룹 초기 관리자 ____장비 |
|
★ 이 책에서 다루는 내용 ★
■ 차량에 대한 위협 모델링 수립 ■ 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만대가 넘는 자동차에 대한 리콜 조치를 했다. 영화에서만 보던 자동차 해킹이 이제 우리에게 닥친 현실이 된 것이다. 여러 유명 해외 컨퍼런스에서는 안전 위주의 자동차 부품 개발 프로세스에 보안 개발 프로세스를 접목하는 사례를 앞다투어 발표하고 있다. 자동차 보안이 안전을 위협하고 있다는 방증인 셈이다. 자동차 보안 분야에서 수년간 업무를 수행해오며 아쉬웠던 부분은 학계나 미디어에서 자동차 보안 위협이나 해킹 사고를 자주 발표하지만, 어디에도 그 원리 및 방법에 대해 체계적으로 설명하는 곳은 없었다. 이 책은 자동차 해킹을 선망의 대상으로만 바라보고 있는 독자들에게 한 줄기 빛이자 사막의 오아시스와 같은 역할을 해줄 것을 믿어 의심치 않는다. 자동차 해킹은 매우 다양한 지식과 기술이 필요하므로 책 한 권으로 모든 것을 설명하는 것은 불가능하다. 이 책은 자동차 해킹 분야의 필요한 사항을 간략하게 설명하고 필요할 때에 적절한 내용을 즉시 확인할 수 있는 핸드북이다. 소프트웨어뿐만 아니라 하드웨어 보안까지 다양한 각도에서 자동차 해킹을 체계적으로 다루고 있기에 자동차 해킹을 시작하는 독자들에게 충분한 길잡이 역할을 해 줄 것이다. 자동차 해킹 서적 번역을 통해 국내에 차량 보안을 소개한다는 사명감으로 용어 하나, 문장 하나를 두고 번역자 신현진 군과 밤낮없이 벌인 논쟁과 토론의 수고가 결실을 보게 되어 매우 기쁘다. 이 책을 시작으로 국내에서 자동차 해킹에 대해 더 많은 서적이 출간되고 번역되기를 기대한다. |