硬件系统模糊测试:技术揭秘与案例剖析

978-7-115-66994-0
作者: [西]安东尼奥·纳帕(Antonio Nappa)
译者: 马鑫宇万金施伟铭
编辑: 陈灿然

图书目录:

第 1 部分 基础知识

第 1 章 本书适用读者 2

1.1 本书的读者对象 ................................ 3

1.2 先决条件 ...................................... 4

1.3 自主内容选择 .................................... 4

1.4 入门指导 ......................................... 5

1.5 现在正式开始 ..................................... 10

1.5.1 QEMU 基本插桩 ..................................... 11

1.5.2 OpenWrt 全系统仿真 ............................... 11

1.5.3 三星 Exynos 基带 ........................................................... 11

1.5.4 iOS 和 Android 系统 ...................................................... 11

1.6 小结 ............................................ 12

第 2 章 仿真的发展历史 13

2.1 什么是仿真 ...................................... 14

2.2 为何需要仿真 ..................................... 14

2.3 除 QEMU 以外的仿真工具 ................................. 22

2.3.1 MAME ......................................... 23

2.3.2 Bochs ...................................... 24

2.3.3 RetroPie ................................... 24

2.4 仿真与虚拟化在网络安全历史中的作用 ............................. 24

2.4.1 Anubis ..................................... 25

2.4.2 TEMU ..................................... 25

2.4.3 Ether ......................................... 26

2.4.4 Cuckoo 沙箱 ........................... 26

2.4.5 商业化解决方案—VirusTotal 和 Joe Sandbox ..................... 26

2.5 小结 .................................................. 27

第 3 章 深入探究 QEMU 28

3.1 使用仿真方法研究物联网(IoT)设备 .............................. 28

3.2 代码结构 ............................................. 29

3.3 QEMU 仿真 ........................................ 31

3.3.1 QEMU IR ................................ 31

3.3.2 深入了解 QEMU 架构 ................................. 35

3.4 QEMU 的扩展和修改 .............................................. 38

3.4.1 Avatar2简要示例 ......................................... 39

3.4.2 PANDA .................................... 41

3.5 小结 ................................................... 41

第 2 部分 仿真和模糊测试

第 4 章 QEMU 执行模式和模糊测试 44

4.1 QEMU 用户模式 ................................. 44

4.2 QEMU 全系统模式 ........................... 50

4.3 模糊测试和分析技术 ........................................ 52

4.3.1 程序语义的罗塞塔石碑 ........................................ 53

4.3.2 模糊测试技术 ............................................ 63

4.4 American Fuzzy Lop 和 American Fuzzy Lop++ ...................... 65

4.4.1 AFL 和 AFL++相较于自研模糊测试工具的优势 .................... 65

4.4.2 使用 AFL 和 AFL++进行模糊测试 ............................. 66

4.4.3 对 ARM 二进制文件进行模糊测试 .................................. 69

4.5 总结 ..................................................... 72

第 5 章 一个广为人知的组合:AFL + QEMU = CVE 73

5.1 发现漏洞真的那么容易吗 ...................................... 74

5.1.1 下载和安装 AFL++ ............................................. 75

5.1.2 准备一个易受攻击的 VLC 实例 .................................... 75

5.1.3 VLC 漏洞利用 .................................................... 80

5.2 全系统模糊测试—引入 TriforceAFL ....................... 92

5.3 总结 .................................................... 97

5.4 延伸阅读 ........................................... 97

5.5 附录—修改 Triforce 以实现测试用例的隔............................ 98

第 6 章 修改 QEMU 以进行基本的插桩 101

6.1 添加新的 CPU ................................. 102

6.2 仿真嵌入式固件 ............................... 103

6.3 对 DMA 外设进行逆向工程 ............................... 106

6.4 使用 Avatar2仿真 UART 以进行固件调试—可视化输出 ............ 108

6.5 总结 ............................................... 110

第 3 部分 高级概念

第 7 章 真实案例研究—三星 Exynos 基带 112

7.1 手机架构的速成课程 ........................ 112

7.1.1 基带 ....................................... 113

7.1.2 基带 CPU 家族 ...................... 114

7.1.3 应用处理器和基带接口 .................................... 116

7.1.4 深入了解 Shannon 系统 ................................. 116

7.1.5 关于 GSM/3GPP/LTE 协议规范的说明 ............................ 117

7.2 配置 FirmWire 以验证漏洞 ........................................ 118

7.2.1 CVE-2020-25279—仿真器模糊测试 ................................ 120

7.2.2 CVE-2020-25279—OTA 漏洞利用 .......................... 126

7.3 总结 .................................................. 132

第 8 章 案例研究—OpenWrt 全系统模糊测试 133

8.1 OpenWrt ........................................... 133

8.2 构建固件 ........................................... 134

8.2.1 在 QEMU 中测试固件 .................................... 136

8.2.2 提取并准备内核 ........................................... 137

8.3 对内核进行模糊测试 ............................................ 139

8.4 崩溃后的核心转储分析实验 .......................... 141

8.5 总结 ................................................... 142

第 9 章 案例研究—针对 ARM 架构的 OpenWrt 系统模糊测试 144

9.1 仿真 ARM 架构以运行 OpenWrt 系统 ....................... 144

9.2 为 ARM 架构安装 TriforceAFL .................................. 147

9.3 在基于 ARM 架构的 OpenWrt 中运行 TriforceAFL .................. 152

9.4 复现崩溃情况 ................................... 154

9.5 总结 ................................................... 156

第 10 章 终至此处—iOS 全系统模糊测试 158

10.1 iOS 仿真的简要历史 ................................. 159

10.2 iOS 基础 .......................................... 160

10.2.1 启动 iOS 所需的条件 ................................. 161

10.2.2 代码签名 ............................. 161

10.2.3 属性列表文件和权限 .............................. 162

10.2.4 二进制文件编译 ...................................... 162

10.2.5 IPSW 格式和内核用研究 ................................ 163

10.3 设置 iOS 仿真器 ................................ 163

10.3.1 准备环境 ............................ 164

10.3.2 构建仿真器 ........................ 165

10.3.3 启动准备工作 ...................... 165

10.3.4 在 QEMU 中启动 iOS ......................... 168

10.4 准备用于启动模糊测试的测试框架 ............................... 169

10.5 Triforce 针对 iOS 的驱动程序修改 ................................. 173

10.6 总结 ................................................... 179

第 11 章 意外转机—对 Android 库的模糊测试 181

11.1 Android OS 和架构介绍 ....................................... 182

11.2 使用 Sloth 对 Android 库进行模糊测试 .......................... 184

11.2.1 介绍 Sloth 的机制 .......................................... 185

11.2.2 AFL 覆盖能力介绍 ...................................... 186

11.2.3 运行 ELF 链接器 ............................... 188

11.2.4 运行 LibFuzzer .......................................... 190

11.2.5 解决 Sloth 模糊测试方法的问题 ............................... 191

11.2.6 运行 Sloth ........................... 191

11.3 总结 ............................................... 198

第 12 章 总结与结语 199

详情

在网络安全领域,仿真和模糊测试是提升安全性的核心技术,但有效应用它们颇具 挑战。本书借助真实案例和实操示例,助力读者掌握仿真与模糊测试的基础概念,开展漏洞研究,提升发现软件潜在安全漏洞的能力。 本书共 12 章,开篇明确适用读者与所需预备知识,介绍后续使用工具,接着阐述仿 真发展历史、QEMU 系统仿真器及其执行模式与模糊测试等基础内容。随后,通过多个 案例,如结合 QEMU 与 AFL 识别 VLC 安全漏洞、三星 Exynos 基带漏洞分析、OpenWrt全系统模糊测试及针对 ARM 架构的模糊测试,以及 iOS、Android 系统的相关测试等,深入讲解仿真与模糊测试的实际应用。最后,总结了模糊测试的研究发现、影响及未来方向。

图书摘要

相关图书

深入浅出Kali Linux渗透测试
深入浅出Kali Linux渗透测试
内网渗透技术
内网渗透技术
CTF快速上手:PicoCTF真题解析(Web篇)
CTF快速上手:PicoCTF真题解析(Web篇)
应用密码学原理、分析与Python实现
应用密码学原理、分析与Python实现
网络安全应急响应实战
网络安全应急响应实战
数字银行安全体系构建
数字银行安全体系构建

相关文章

相关课程