描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302457039
内容简介
现代的汽车比以往任何时候都更加计算机化。信息娱乐和导航系统、Wi-Fi、软件自动更新,以及其他一些创新都以使驾驶更加便利为目标。然而,汽车技术尚未适应当今更加充满敌意的安全环境,令数以百万计的人受到攻击威胁。
《汽车黑客大曝光》能够深化你对现代汽车中计算机系统和嵌入式软件的理解,以脆弱性检测以及对 CAN总线上和设备/系统间通信的详解开始。理解了汽车的通信网络之后,本书接着介绍如何拦截数据并执行特定的黑客手段,以跟踪车辆、解锁车门、进行发动机时钟脉冲干扰攻击及泛洪通信攻击等。本书专注于低成本的开源黑客工具,如Metasploit、Wireshark、Kayak、can-utils和ChipWhisperer。
主要内容
● 为车辆构建精确的威胁模型
● 对CAN总线进行逆向工程,以伪造发动机信号
● 利用诊断和数据记录系统中的漏洞
● 黑掉ECU和其他固件,以及嵌入式系统
● 通过信息娱乐系统和车辆间通信系统注入漏洞利用程序
● 利用性能调校技术覆盖出厂设置
● 构建物理和虚拟的测试平台,以安全地实验漏洞利用技术
如果你对汽车安全技术有兴趣,有激情攻击两吨重的“计算机”,可将本书作为你的*站。
《汽车黑客大曝光》能够深化你对现代汽车中计算机系统和嵌入式软件的理解,以脆弱性检测以及对 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
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
评论
还没有评论。