現(xiàn)代的汽車比以往任何時候都更加計算機化。信息娛樂和導航系統(tǒng)、Wi-Fi、軟件自動更新,以及其他一些創(chuàng)新都以使駕駛更加便利為目標。然而,汽車技術(shù)尚未適應(yīng)當今更加充滿敵意的安全環(huán)境,令數(shù)以百萬計的人受到攻擊威脅。 《汽車黑客大曝光》能夠深化你對現(xiàn)代汽車中計算機系統(tǒng)和嵌入式軟件的理解,以脆弱性檢測以及對 CAN總線上和設(shè)備/系統(tǒng)間通信的詳解開始。理解了汽車的通信網(wǎng)絡(luò)之后,本書接著介紹如何攔截數(shù)據(jù)并執(zhí)行特定的黑客手段,以跟蹤車輛、解鎖車門、進行發(fā)動機時鐘脈沖干擾攻擊及泛洪通信攻擊等。本書專注于低成本的開源黑客工具,如Metasploit、Wireshark、Kayak、can-utils和ChipWhisperer。主要內(nèi)容● 為車輛構(gòu)建的威脅模型● 對CAN總線進行逆向工程,以偽造發(fā)動機信號● 利用診斷和數(shù)據(jù)記錄系統(tǒng)中的漏洞● 黑掉ECU和其他固件,以及嵌入式系統(tǒng)● 通過信息娛樂系統(tǒng)和車輛間通信系統(tǒng)注入漏洞利用程序● 利用性能調(diào)校技術(shù)覆蓋出廠設(shè)置● 構(gòu)建物理和虛擬的測試平臺,以安全地實驗漏洞利用技術(shù)如果你對汽車安全技術(shù)有興趣,有激情攻擊兩噸重的"計算機",可將本書作為你的站。
本書源于Open Garages社區(qū)的本汽車黑客培訓教材,涵蓋了汽車黑客技術(shù)的各個方面。作者深入淺出地介紹了多種汽車黑客技術(shù),既包括相關(guān)理論介紹,又包括利用特定工具開展汽車黑客攻擊的具體應(yīng)用實例,還列舉了實施汽車黑客技術(shù)所使用的相關(guān)硬件和軟件工具。本書既適用于學習汽車黑客技術(shù)的初學者,也適用于對汽車黑客技術(shù)有一定了解的"老手"。需要注意的是,學習汽車黑客技術(shù)的目的并不是為了攻擊車輛、搞破壞,而是為了深入理解汽車的工作原理,從而能夠更加客觀科學地對汽車進行安全性測試,以發(fā)現(xiàn)汽車中存在的漏洞和安全隱患,進而指導采取針對性的防護措施以防止汽車被惡意人員所攻擊。
Craig Smith經(jīng)營著Theia Labs,這是一家致力于安全審計和軟硬件原型構(gòu)建的安全研究公司。他曾就職于多家汽車廠商,為它們提供公開研究,他也是Hive13創(chuàng)客空間和OpenGarages.org的創(chuàng)始人之一。Craig是汽車黑客技術(shù)領(lǐng)域的活躍演講家,曾在RSA、DEF CON以及其他一些主要的安全大會上主持研討會。
目 錄
第1章 理解威脅模型 1
1.1 尋找攻擊面 2
1.2 威脅建模 2
1.2.1Level 0級:鳥瞰視圖 3
1.2.2Level 1級:接收端 3
1.2.3Level 2級:接收端分解 4
1.3 威脅識別 6
1.3.1Level 0級:鳥瞰視圖 6
1.3.2Level 1:接收端 7
1.3.3Level 2級:接收端分解 9
1.4 威脅分級體系 10
1.4.1DREAD分級體系 10
1.4.2CVSS:DREAD之外的
另一選擇 12
1.5 應(yīng)用威脅建模結(jié)果 12
1.6 本章小結(jié) 13
第2章 總線協(xié)議 15
2.1CAN總線 16
2.1.1OBD-II連接器 17
2.1.2找到CAN連接器 18
2.1.3CAN總線的數(shù)據(jù)包格式 18
2.1.4ISO-TP協(xié)議 20
2.1.5CANopen協(xié)議 20
2.1.6GMLAN總線 20
2.2 SAEJ1850協(xié)議 20
2.2.1PWM協(xié)議 21
2.2.2VPW協(xié)議 21
2.3 關(guān)鍵字協(xié)議和ISO9141-2 22
2.4 局域互聯(lián)網(wǎng)協(xié)議 23
2.5MOST協(xié)議 24
2.5.1MOST網(wǎng)絡(luò)層 25
2.5.2MOST控制塊 25
2.5.3破解MOST 26
2.6FlexRay總線 26
2.6.1硬件 26
2.6.2網(wǎng)絡(luò)拓撲 26
2.6.3實現(xiàn)方法 27
2.6.4FlexRay循環(huán) 27
2.6.5數(shù)據(jù)包結(jié)構(gòu) 28
2.6.6嗅探FlexRay網(wǎng)絡(luò) 29
2.7 汽車以太網(wǎng) 29
2.8OBD-II連接器引腳圖 30
2.9OBD-III標準 32
2.10本章小結(jié) 33
第3章 使用SocketCAN與
車輛通信 35
3.1 設(shè)置can-utils以連接
CAN設(shè)備 37
3.1.1安裝can-utils 37
3.1.2配置內(nèi)置芯片組 37
3.1.3配置串行CAN設(shè)備 39
3.3.4設(shè)置虛擬CAN網(wǎng)絡(luò) 40
3.2CAN實用工具套件 41
3.2.1安裝附加的內(nèi)核模塊 42
3.2.2can-isotp.ko模塊 43
3.3SocketCAN應(yīng)用程序編程 43
3.3.1連接到CAN套接字 44
3.3.2設(shè)置CAN數(shù)據(jù)幀 44
3.3.3procfs接口 45
3.4socketcand守護進程 45
3.5Kayak 46
3.6 本章小結(jié) 48
第4章 診斷和日志 49
4.1 故障診斷代碼 50
4.1.1DTC格式 51
4.1.2用掃描工具讀取DTC 52
4.1.3清除DTC 52
4.2 統(tǒng)一診斷服務(wù) 52
4.2.1利用ISO-TP和CAN
發(fā)送數(shù)據(jù) 53
4.2.2深入理解模式和PID 55
4.2.3暴力破解診斷模式 56
4.2.4保持車輛處于診斷狀態(tài) 58
4.3 事件數(shù)據(jù)記錄器日志 59
4.3.1讀取EDR中的數(shù)據(jù) 60
4.3.2SAE J1698標準 60
4.3.3其他數(shù)據(jù)獲取方法 60
4.4 自動事告呼救系統(tǒng) 61
4.5 惡意意圖 61
4.6 本章小結(jié) 62
第5章 CAN總線逆向工程 63
5.1 定位CAN總線 64
5.2 使用can-utils和Wireshark
逆向CAN總線通信 64
5.2.1使用Wireshark 65
5.2.2使用candump 66
5.2.3分組can總線數(shù)據(jù)流 66
5.2.4使用錄制/回放 69
5.2.5創(chuàng)造性數(shù)據(jù)包分析 72
5.2.6獲得轉(zhuǎn)速表讀數(shù) 74
5.3 使用儀器總成仿真器
創(chuàng)建背景噪聲 76
5.3.1設(shè)置ICSim 76
5.3.2讀取ICSim上的
CAN流量 78
5.3.3更改ICSim的難度 78
5.4 使用OpenXC進行CAN
總線逆向 79
5.4.1翻譯CAN總線消息 79
5.4.2寫入CAN總線 81
5.4.3改造OpenXC 81
5.5CAN總線模糊測試 83
5.6 排除問題 83
5.7 本章小結(jié) 84
第6章 ECU黑客 85
6.1 前門攻擊 86
6.1.1J2534:標準化
車輛通信API 86
6.1.2使用J2534工具 87
6.1.3KWP2000及其他
早期協(xié)議 87
6.1.4應(yīng)用前門攻擊:
種子-密鑰算法 88
6.2 后門攻擊 88
6.3 漏洞利用 89
6.4 逆向汽車固件 89
6.4.1自診斷系統(tǒng) 90
6.4.2庫函數(shù) 90
6.4.3通過字節(jié)比較進行
參數(shù)識別 94
6.4.4使用WinOLS識別
ROM數(shù)據(jù) 95
6.5 代碼分析 96
6.5.1基礎(chǔ)反匯編工具實戰(zhàn) 98
6.5.2交互式反匯編器 100
6.6 本章小結(jié) 102
第7章 ECU測試平臺的
構(gòu)建與使用 103
7.1 基本ECU測試平臺 104
7.1.1獲得ECU 104
7.1.2分解ECU線路 105
7.1.3進行連線 107
7.2 搭建高級的ECU
測試平臺 107
7.2.1仿真?zhèn)鞲衅餍盘?108
7.2.2霍爾效應(yīng)傳感器 108
7.3 仿真車速 110
7.4 本章小結(jié) 114
第8章 攻擊ECU與其他
嵌入式系統(tǒng) 115
8.1 分析電路板 116
8.1.1識別型號編碼 116
8.2.2解剖并識別芯片 116
8.2 使用JTAG和串行線纜
調(diào)試功能調(diào)試硬件 118
8.2.1串行線調(diào)試 119
8.2.2高級用戶調(diào)試器 120
8.2.3Nexus 121
8.3 利用ChipWhisperer進行
旁路分析 121
8.3.1安裝軟件 122
8.3.2設(shè)置Victim Board 124
8.4 使用功率分析攻擊方法
暴力破解安全引導程序 125
8.4.1使用AVRDUDESS
進行測試準備 126
8.4.2設(shè)置ChipWhisperer
以進行串行通信 126
8.4.3設(shè)置自定義密碼 128
8.4.4復位AVR 130
8.4.5設(shè)置ChipWhisperer ADC 130
8.4.6監(jiān)視密碼輸入時的功耗 130
8.4.7ChipWhisperer Python
腳本編程 133
8.5 故障注入 134
8.5.1時鐘干擾 134
8.5.2設(shè)置觸發(fā)線路 139
8.5.3電源干擾 141
8.5.4有損故障注入 141
8.6 本章小結(jié) 142
第9章 車載信息娛樂系統(tǒng) 143
9.1 攻擊面 144
9.2 利用系統(tǒng)更新進行攻擊145
9.2.1識別系統(tǒng) 145
9.2.2確定更新文件類型 146
9.2.3改造系統(tǒng) 147
9.2.4App和插件 149
9.2.5識別脆弱性 149
9.3 攻擊IVI硬件 151
9.3.1分解IVI單元的連接 151
9.3.2拆解IVI單元 153
9.4 信息娛樂系統(tǒng)測試平臺154
9.4.1GENIVI Meta-IVI 154
9.4.2Automotive Grade Linux 157
9.5 獲取實驗用OEM IVI158
9.6 本章小結(jié) 159
第10章 車間通信 161
10.1V2V通信方法 162
10.2DSRC協(xié)議163
10.2.1特征及用途 164
10.2.2路旁DSRC系統(tǒng) 165
10.2.3WAVE標準 167
10.2.4使用DSRC進行
車輛跟蹤 169
10.3安全問題 170
10.4基于PKI的安全措施 171
10.4.1車輛證書 171
10.4.2匿名證書 172
10.4.3證書供應(yīng) 172
10.4.4更新證書吊銷列表 173
10.4.5不端行為報告 174
10.5本章小結(jié) 175
第11章 武器化CAN研究成果 177
11.1用C語言編寫漏洞
利用程序 178
11.1.1改寫為匯編代碼 180
11.1.2將匯編代碼轉(zhuǎn)換為
shellcode 183
11.1.3刪除NULL 184
11.1.4創(chuàng)建Metasploit載荷 184
11.2確定目標種類 187
11.2.1交互式探測 187
11.2.2被動式CAN總線
指紋識別 189
11.3負責任的漏洞利用 192
11.4本章小結(jié) 192
第12章 使用軟件無線電
攻擊無線系統(tǒng) 193
12.1無線系統(tǒng)和軟件無線電 194
12.2TPMS黑客技術(shù) 195
12.2.1使用射頻接收器監(jiān)聽 196
12.2.2TPMS數(shù)據(jù)包 197
12.2.3激活信號 197
12.2.4跟蹤車輛 198
12.2.5觸發(fā)事件 198
12.2.6發(fā)送構(gòu)造的數(shù)據(jù)包 198
12.3攻擊遙控鑰匙和
防盜系統(tǒng) 198
12.3.1遙控鑰匙黑客技術(shù) 199
12.3.2攻擊PKES系統(tǒng) 201
12.3.3防盜器密碼學 202
12.3.4對防盜器系統(tǒng)的
物理攻擊 208
12.3.5閃回:搭線攻擊 211
12.4本章小結(jié) 211
第13章 性能調(diào)校 213
13.1性能調(diào)校的取舍 215
13.2ECU調(diào)校 215
13.2.1芯片調(diào)校 216
13.2.2閃存調(diào)校 218
13.2.3獨立發(fā)動機管理工具 219
13.3本章小結(jié) 219
附錄A 專業(yè)工具 221
附錄B 診斷代碼的模式和PID233
附錄C 創(chuàng)建自己的
Open Garages 237
術(shù)語表 243