描述
开 本: 32开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302457039丛书名: 安全技术经典译丛
《汽车黑客大曝光》能够深化你对现代汽车中计算机系统和嵌入式软件的理解,以脆弱性检测以及对 CAN总线上和设备/系统间通信的详解开始。理解了汽车的通信网络之后,本书接着介绍如何拦截数据并执行特定的黑客手段,以跟踪车辆、解锁车门、进行发动机时钟脉冲干扰攻击及泛洪通信攻击等。本书专注于低成本的开源黑客工具,如Metasploit、Wireshark、Kayak、can-utils和ChipWhisperer。
主要内容
● 为车辆构建精确的威胁模型
● 对CAN总线进行逆向工程,以伪造发动机信号
● 利用诊断和数据记录系统中的漏洞
● 黑掉ECU和其他固件,以及嵌入式系统
● 通过信息娱乐系统和车辆间通信系统注入漏洞利用程序
● 利用性能调校技术覆盖出厂设置
● 构建物理和虚拟的测试平台,以安全地实验漏洞利用技术
如果你对汽车安全技术有兴趣,有激情攻击两吨重的“计算机”,可将本书作为你的*站。
目 录
第1章 理解威胁模型 1
1.1 寻找攻击面 2
1.2 威胁建模 2
1.2.1
Level 0级:鸟瞰视图 3
1.2.2
Level 1级:接收端 3
1.2.3
Level 2级:接收端分解 4
1.3 威胁识别 6
1.3.1
Level 0级:鸟瞰视图 6
1.3.2
Level 1:接收端 7
1.3.3
Level 2级:接收端分解 9
1.4 威胁分级体系 10
1.4.1
DREAD分级体系 10
1.4.2
CVSS:DREAD之外的
另一选择 12
1.5 应用威胁建模结果 12
1.6 本章小结 13
第2章 总线协议 15
2.1
CAN总线 16
2.1.1
OBD-II连接器 17
2.1.2
找到CAN连接器 18
2.1.3
CAN总线的数据包格式 18
2.1.4
ISO-TP协议 20
2.1.5
CANopen协议 20
2.1.6
GMLAN总线 20
2.2 SAE
J1850协议 20
2.2.1
PWM协议 21
2.2.2
VPW协议 21
2.3 关键字协议和ISO
9141-2 22
2.4 局域互联网协议 23
2.5
MOST协议 24
2.5.1
MOST网络层 25
2.5.2
MOST控制块 25
2.5.3
破解MOST 26
2.6
FlexRay总线 26
2.6.1
硬件 26
2.6.2
网络拓扑 26
2.6.3
实现方法 27
2.6.4
FlexRay循环 27
2.6.5
数据包结构 28
2.6.6
嗅探FlexRay网络 29
2.7 汽车以太网 29
2.8
OBD-II连接器引脚图 30
2.9
OBD-III标准 32
2.10
本章小结 33
第3章 使用SocketCAN与
车辆通信 35
3.1 设置can-utils以连接
CAN设备 37
3.1.1
安装can-utils 37
3.1.2
配置内置芯片组 37
3.1.3
配置串行CAN设备 39
3.3.4
设置虚拟CAN网络 40
3.2
CAN实用工具套件 41
3.2.1
安装附加的内核模块 42
3.2.2
can-isotp.ko模块 43
3.3
SocketCAN应用程序编程 43
3.3.1
连接到CAN套接字 44
3.3.2
设置CAN数据帧 44
3.3.3
procfs接口 45
3.4
socketcand守护进程 45
3.5
Kayak 46
3.6 本章小结 48
第4章 诊断和日志 49
4.1 故障诊断代码 50
4.1.1
DTC格式 51
4.1.2
用扫描工具读取DTC 52
4.1.3
清除DTC 52
4.2 统一诊断服务 52
4.2.1
利用ISO-TP和CAN
发送数据 53
4.2.2
深入理解模式和PID 55
4.2.3
暴力破解诊断模式 56
4.2.4
保持车辆处于诊断状态 58
4.3 事件数据记录器日志 59
4.3.1
读取EDR中的数据 60
4.3.2
SAE J1698标准 60
4.3.3
其他数据获取方法 60
4.4 自动事告呼救系统 61
4.5 恶意意图 61
4.6 本章小结 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总线数据流 66
5.2.4
使用录制/回放 69
5.2.5
创造性数据包分析 72
5.2.6
获得转速表读数 74
5.3 使用仪器总成仿真器
创建背景噪声 76
5.3.1
设置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.5
CAN总线模糊测试 83
5.6 排除问题 83
5.7 本章小结 84
第6章 ECU黑客 85
6.1 前门攻击 86
6.1.1
J2534:标准化
车辆通信API 86
6.1.2
使用J2534工具 87
6.1.3
KWP2000及其他
早期协议 87
6.1.4
应用前门攻击:
种子-密钥算法 88
6.2 后门攻击 88
6.3 漏洞利用 89
6.4 逆向汽车固件 89
6.4.1
自诊断系统 90
6.4.2
库函数 90
6.4.3
通过字节比较进行
参数识别 94
6.4.4
使用WinOLS识别
ROM数据 95
6.5 代码分析 96
6.5.1
基础反汇编工具实战 98
6.5.2
交互式反汇编器 100
6.6 本章小结 102
第7章 ECU测试平台的
构建与使用 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
仿真传感器信号 108
7.2.2
霍尔效应传感器 108
7.3 仿真车速 110
7.4 本章小结 114
第8章 攻击ECU与其他
嵌入式系统 115
8.1 分析电路板 116
8.1.1
识别型号编码 116
8.2.2
解剖并识别芯片 116
8.2 使用JTAG和串行线缆
调试功能调试硬件 118
8.2.1
串行线调试 119
8.2.2
高级用户调试器 120
8.2.3
Nexus 121
8.3 利用ChipWhisperer进行
旁路分析 121
8.3.1
安装软件 122
8.3.2
设置Victim Board 124
8.4 使用功率分析攻击方法
暴力破解安全引导程序 125
8.4.1
使用AVRDUDESS
进行测试准备 126
8.4.2
设置ChipWhisperer
以进行串行通信 126
8.4.3
设置自定义密码 128
8.4.4
复位AVR 130
8.4.5
设置ChipWhisperer ADC 130
8.4.6
监视密码输入时的功耗 130
8.4.7
ChipWhisperer Python
脚本编程 133
8.5 故障注入 134
8.5.1
时钟干扰 134
8.5.2
设置触发线路 139
8.5.3
电源干扰 141
8.5.4
有损故障注入 141
8.6 本章小结 142
第9章 车载信息娱乐系统 143
9.1 攻击面 144
9.2 利用系统更新进行攻击
145
9.2.1
识别系统 145
9.2.2
确定更新文件类型 146
9.2.3
改造系统 147
9.2.4
App和插件 149
9.2.5
识别脆弱性 149
9.3 攻击IVI硬件 151
9.3.1
分解IVI单元的连接 151
9.3.2
拆解IVI单元 153
9.4 信息娱乐系统测试平台
154
9.4.1
GENIVI Meta-IVI 154
9.4.2
Automotive Grade Linux 157
9.5 获取实验用OEM IVI
158
9.6 本章小结 159
第10章 车间通信 161
10.1
V2V通信方法 162
10.2
DSRC协议
163
10.2.1
特征及用途 164
10.2.2
路旁DSRC系统 165
10.2.3
WAVE标准 167
10.2.4
使用DSRC进行
车辆跟踪 169
10.3
安全问题 170
10.4
基于PKI的安全措施 171
10.4.1
车辆证书 171
10.4.2
匿名证书 172
10.4.3
证书供应 172
10.4.4
更新证书吊销列表 173
10.4.5
不端行为报告 174
10.5
本章小结 175
第11章 武器化CAN研究成果 177
11.1
用C语言编写漏洞
利用程序 178
11.1.1
改写为汇编代码 180
11.1.2
将汇编代码转换为
shellcode 183
11.1.3
删除NULL 184
11.1.4
创建Metasploit载荷 184
11.2
确定目标种类 187
11.2.1
交互式探测 187
11.2.2
被动式CAN总线
指纹识别 189
11.3
负责任的漏洞利用 192
11.4
本章小结 192
第12章 使用软件无线电
攻击无线系统 193
12.1
无线系统和软件无线电 194
12.2
TPMS黑客技术 195
12.2.1
使用射频接收器监听 196
12.2.2
TPMS数据包 197
12.2.3
激活信号 197
12.2.4
跟踪车辆 198
12.2.5
触发事件 198
12.2.6
发送构造的数据包 198
12.3
攻击遥控钥匙和
防盗系统 198
12.3.1
遥控钥匙黑客技术 199
12.3.2
攻击PKES系统 201
12.3.3
防盗器密码学 202
12.3.4
对防盗器系统的
物理攻击 208
12.3.5
闪回:搭线攻击 211
12.4
本章小结 211
第13章 性能调校 213
13.1
性能调校的取舍 215
13.2
ECU调校 215
13.2.1
芯片调校 216
13.2.2
闪存调校 218
13.2.3
独立发动机管理工具 219
13.3
本章小结 219
附录A 专业工具 221
附录B 诊断代码的模式和PID
233
附录C 创建自己的
Open Garages 237
术语表 243
2014年,Open Garages——对汽车安全技术的共享与协作感兴趣的一群人,发布了本Car Hacker’s Manual(《汽车黑客手册》),作为汽车黑客培训班的教材。原书被设计为可放入汽车手套箱的小开本,在一两天的汽车安全课程中涵盖汽车黑客技术的基础内容。我们几乎没有预料到它会引起读者如此浓厚的兴趣:在周它就被下载了超过30万次。实际上,该书如此热门,甚至让我们的Internet服务提供商瘫痪两次!,让他们对我们颇有微词(还好,后他们原谅了我们,这好极了,因为本人很喜欢这家小的Internet服务提供商HiSpeedSpan.net!)读者反馈基本上也是好评如潮;主要的批评集中在于该手册篇幅太短,没有足够多的细节。本书就是应这些批评而生的。这本《汽车黑客大曝光》深入到汽车黑客技术的大量细节,甚至涵盖了与安全并不直接相关的内容,例如性能调校以及理解与操作汽车的有用工具。为何汽车黑客活动能令所有人受益?尽管买下本书意味着你可能已经明白自己为什么想要黑掉汽车,但为保险起见,这里还是给出一份详述汽车黑客活动益处的列表。● 理解车辆如何工作:汽车产业推出了一些具有复杂电子和计算机系统的优秀车型,但他们很少公开这些系统如何工作的信息。理解车辆网络如何工作,及其如何与汽车自身系统和外部通信,将有助于更好地诊断和排除问题。● 玩转电子系统:随着车辆技术的演进,其机械部件减少,而电子部件增加。遗憾的是,汽车电子系统通常对除了代理商的机械师之外的所有人都是封闭的。虽然代理商相对于个人能接触到更多信息,但汽车制造商自己也进行部件外包,并且需要用于诊断问题的专用工具。搞清楚车辆电子设备如何工作能帮助突破上述壁垒。● 改装车辆:通晓汽车如何通信可以提高改装效果,例如降低油耗以及使用第三方替换件。理解了通信系统原理,就能将其他系统——如显示性能的附加屏幕,或集成性与原厂件同样良好的第三方部件——无缝集成到车上。● 发现未公开的功能:有时车辆拥有未公开或只是单纯被禁用的功能特性。发现这些未公开/禁用的功能特性并利用它们,能够充分发挥车辆的潜力。例如,某种车可能有一个未公开的“停车员”模式,可在交钥匙给停车员前,将车辆置于受限制的该模式下。● 验证车辆的安全性:截至本书成文时,车辆安全性导则中对恶意电子威胁没有应对措施。虽然车辆和桌面计算机易受同样恶意软件的攻击,汽车厂商并不被要求审计车辆的电子系统的安全性。该状况显然无法令人接受:乘坐这些车东奔西跑的是我们的家人和朋友,人人都希望能尽量安全。如果学会如何黑客汽车,就能知道车辆哪里易受攻击,从而做出相应预防措施,并成为更称职的更高安全标准的推动者。● 帮助汽车工业:汽车工业也能从本书涵盖的知识中受益。本书介绍了识别威胁的指南,以及可规避当前防护措施的技术。除了帮助设计安全实践,本书还向研究者就如何交流成果提供了指导。今天的汽车比以往任何时候都更加电子化。在一份发表于IEEE Spectrum期刊上的名为“这辆车运行在代码之上”的报告中,作者Robert N. Charette指出,2009年时,典型的汽车包含超过100个以上的处理器、50个以上的电子控制单元、5千米以上的布线和100万行以上的代码(http://spectrum.ieee.org/transportation/systems/this-car-runs-on-code)。丰田公司的工程师曾开玩笑说,他们给汽车安装车轮的原因就是防止计算机与地面擦撞。随着计算机系统与车辆的集成日趋紧密,进行安全审计也变得日益重要和复杂。 警告:汽车黑客活动不能等闲视之。折腾车辆的网络、无线连接、车用电脑或其他电子系统时可能会损坏或禁用它们。在实验本书中的任何技术时,都必须小心翼翼,并将安全作为压倒一切的重点,本书作者和出版社都不会为对你的车辆的任何损害负责。本书内容本书将介绍黑掉一辆汽车所需要的方方面面知识。本书从纵览车辆安全相关策略开始,继而深入讲解如何检查车辆是否安全,以及如何寻找复杂硬件系统中的脆弱性。各章内容提要如下:第1章:理解威胁模型 教你如何评估一辆汽车,你会学到如何识别具备风险的部件所在的区域。对于从事汽车工业工作的读者而言,该章可作为建立自己的威胁模型系统的有用指南。第2章:总线协议 详细说明在对车辆进行安全审计时可能遇到的不同总线网络,并分析了各种总线使用的布线、电压和协议。第3章:使用SocketCAN与车辆通信 展示如何使用Linux系统中的SocketCAN接口集成多种CAN硬件,以便编写或使用与设备无关的工具。第4章:诊断和日志 涵盖如何读取发动机代码、统一诊断服务(Unified Diagnostic Services,UDS)和ISOTP协议。该章说明了不同的模块服务如何工作,它们的共同弱点,以及何种信息将被日志记录以及日志信息的存储位置。第5章:CAN总线逆向工程 详解如何分析CAN网络,包括如何设置虚拟CAN测试环境,以及如何使用CAN安全相关的工具和模糊测试器。第6章:ECU黑客 聚焦于在ECU上运行的固件。你会学到如何访问、修改固件以及分析其二进制数据。第7章:ECU测试平台的构建与使用 说明如何从车上拆卸部件以搭建安全的测试环境。此外,该章还介绍了如何阅读布线图,以及如何为ECU仿真发动机部件,如温度传感器或曲轴。第8章:攻击ECU与其他嵌入式系统 涵盖集成电路调试针脚和方法学。该章还解析了旁路分析攻击方法,例如差分功耗分析和时钟错误注入攻击,并附以循序渐进的示例。第9章:车载信息娱乐系统 详解车载信息娱乐系统的工作原理。由于车载信息娱乐系统很可能具有全车的攻击面,该章聚焦于进入其固件并在系统中执行攻击代码的不同方法。此外,该章还介绍了一些可用于测试的开源车载信息娱乐系统。第10章:车间通信 介绍拟议中的车间网络工作机制如何设计。该章涵盖了密码学知识以及多个国家提出的不同协议草案。此外,还分析了车间系统的潜在弱点。第11章:武器化CAN研究成果 详解如何将研究成果变为实用的利用代码。该章阐明了如何将概念验证代码转换为汇编代码,终形成shell代码。此外,该章还讨论了如何只精确攻击特定目标车辆的方法,以及探测车辆而不被发觉的方法。第12章:使用软件无线电攻击无线系统 涵盖如何使用软件无线电工具分析无线通信,例如胎压监测系统、遥控钥匙以及防盗系统。该章回顾了攻击防盗系统时可能会遇到的加密方案,以及相关无线系统的所有已知弱点。第13章:性能调校 讨论用于增强和修改车辆性能的技术。该章涵盖了芯片优化以及用于微调发动机,令其按期望方式工作的通用工具和技术。附录A:专业工具 提供了一份在构建汽车安全实验室时有用的软硬件工具列表。附录B:诊断代码模式和PID 列出了一些通用模式和有用的PID。附录C:建立自己的Open Garage 介绍了如何加入汽车黑客社区,并组建自己的Open Garage兴趣小组。读完本书,将会大大加深你对汽车计算机系统如何工作,它们什么地方脆弱,这些脆弱性如何利用的理解。
评论
还没有评论。