硬件系統模糊測試:技術揭秘與案例剖析 Fuzzing Against the Machine: Automate vulnerability research with emulated IoT devices on QEMU
[西]安東尼奧·納帕(Antonio Nappa)
- 出版商: 人民郵電
- 出版日期: 2025-06-01
- 售價: $419
- 語言: 簡體中文
- 頁數: 200
- ISBN: 7115669945
- ISBN-13: 9787115669940
- 此書翻譯自: Fuzzing Against the Machine: Automate vulnerability research with emulated IoT devices on QEMU
下單後立即進貨 (約4週~6週)
相關主題
商品描述
在網絡安全領域,仿真和模糊測試是提升安全性的核心技術,但有效應用它們頗具
挑戰。本書借助真實案例和實操示例,助力讀者掌握仿真與模糊測試的基礎概念,開展漏洞研究,提升發現軟件潛在安全漏洞的能力。
本書共 12 章,開篇明確適用讀者與所需預備知識,介紹後續使用工具,接著闡述仿
真發展歷史、QEMU 系統仿真器及其執行模式與模糊測試等基礎內容。隨後,通過多個
案例,如結合 QEMU 與 AFL 識別 VLC 安全漏洞、三星 Exynos 基帶漏洞分析、OpenWrt全系統模糊測試及針對 ARM 架構的模糊測試,以及 iOS、Android 系統的相關測試等,深入講解仿真與模糊測試的實際應用。最後,總結了模糊測試的研究發現、影響及未來方向。
作者簡介
Antonio Nappa,博士,Zimperium 公司的應用分析主管。自 2008 年 DEFCON CTF
總決賽以來,他一直努力保持自己在網絡安全領域的領先地位。他是一名經驗豐富的底層 C/C++開發人員,也是一位資深的逆向工程師,擅長自動化模糊測試、固件仿真、設備仿真和符號執行。他會解決所有的段錯誤,並在多個頂級會議上發表過數篇經由同行評審的論文。在學術生涯中,他曾是加州大學伯克利分校的訪問學者;在職業領域,他曾為包括 Brave 和 Corelight 在內的多家知名初創公司工作過。努力工作之余,他最近喜歡探索側信道攻擊和量子計算。在計算機之外,他還喜歡劃船、遊泳和彈吉他。
Eduardo Blázquez,馬德裏卡洛斯三世大學的在讀博士生,同時也是該校的研究員。
自本科期間學習網絡安全知識以來,他一直專註於底層安全領域。他喜歡用多種編程語言(如 Python、C 和 C++)編寫分析工具。他的興趣主要在模糊測試、編譯器和符號執行技術的內部機制上。他曾發表過與 Android 生態系統安全與隱私、惡意軟件分析、Dalvik靜態分析工具開發相關的論文。在計算機之外,他喜歡武術、亞洲音樂,並對日本及日語的學習很有興趣。
目錄大綱
第 1 部分 基礎知識
第 1 章 本書適用讀者 2
11 本書的讀者對象 3
12 先決條件 4
13 自主內容選擇 4
14 入門指導 5
15 現在正式開始 10
151 QEMU 基本插樁 11
152 OpenWrt 全系統仿真 11
153 三星 Exynos 基帶 11
154 iOS 和 Android 系統 11
16 小結 12
第 2 章 仿真的發展歷史 13
21 什麼是仿真 14
22 為何需要仿真 14
23 除 QEMU 以外的仿真工具 22
231 MAME 23
232 Bochs 24
233 RetroPie 24
24 仿真與虛擬化在網絡安全歷史中的作用 24
241 Anubis 25
242 TEMU 25
243 Ether 26
244 Cuckoo 沙箱 26
245 商業化解決方案—VirusTotal 和 Joe Sandbox 26
25 小結 27
第 3 章 深入探究 QEMU 28
31 使用仿真方法研究物聯網(IoT)設備 28
32 代碼結構 29
33 QEMU 仿真 31
331 QEMU IR 31
332 深入了解 QEMU 架構 35
34 QEMU 的擴展和修改 38
341 Avatar2簡要示例 39
342 PANDA 41
35 小結 41
第 2 部分 仿真和模糊測試
第 4 章 QEMU 執行模式和模糊測試 44
41 QEMU 用戶模式 44
42 QEMU 全系統模式 50
43 模糊測試和分析技術 52
431 程序語義的羅塞塔石碑 53
432 模糊測試技術 63
44 American Fuzzy Lop 和 American Fuzzy Lop++ 65
441 AFL 和 AFL++相較於自研模糊測試工具的優勢 65
442 使用 AFL 和 AFL++進行模糊測試 66
443 對 ARM 二進制文件進行模糊測試 69
45 總結 72
第 5 章 一個廣為人知的組合:AFL + QEMU = CVE 73
51 發現漏洞真的那麼容易嗎 74
511 下載和安裝 AFL++ 75
512 準備一個易受攻擊的 VLC 實例 75
513 VLC 漏洞利用 80
52 全系統模糊測試—引入 TriforceAFL 92
53 總結 97
54 延伸閱讀 97
55 附錄—修改 Triforce 以實現測試用例的隔 98
第 6 章 修改 QEMU 以進行基本的插樁 101
61 添加新的 CPU 102
62 仿真嵌入式固件 103
63 對 DMA 外設進行逆向工程 106
64 使用 Avatar2仿真 UART 以進行固件調試—可視化輸出 108
65 總結 110
第 3 部分 高級概念
第 7 章 真實案例研究—三星 Exynos 基帶 112
71 手機架構的速成課程 112
711 基帶 113
712 基帶 CPU 家族 114
713 應用處理器和基帶接口 116
714 深入了解 Shannon 系統 116
715 關於 GSM/3GPP/LTE 協議規範的說明 117
72 配置 FirmWire 以驗證漏洞 118
721 CVE-2020-25279—仿真器模糊測試 120
722 CVE-2020-25279—OTA 漏洞利用 126
73 總結 132
第 8 章 案例研究—OpenWrt 全系統模糊測試 133
81 OpenWrt 133
82 構建固件 134
821 在 QEMU 中測試固件 136
822 提取並準備內核 137
83 對內核進行模糊測試 139
84 崩潰後的核心轉儲分析實驗 141
85 總結 142
第 9 章 案例研究—針對 ARM 架構的 OpenWrt 系統模糊測試 144
91 仿真 ARM 架構以運行 OpenWrt 系統 144
92 為 ARM 架構安裝 TriforceAFL 147
93 在基於 ARM 架構的 OpenWrt 中運行 TriforceAFL 152
94 復現崩潰情況 154
95 總結 156
第 10 章 終至此處—iOS 全系統模糊測試 158
101 iOS 仿真的簡要歷史 159
102 iOS 基礎 160
1021 啟動 iOS 所需的條件 161
1022 代碼簽名 161
1023 屬性列表文件和權限 162
1024 二進制文件編譯 162
1025 IPSW 格式和內核用研究 163
103 設置 iOS 仿真器 163
1031 準備環境 164
1032 構建仿真器 165
1033 啟動準備工作 165
1034 在 QEMU 中啟動 iOS 168
104 準備用於啟動模糊測試的測試框架 169
105 Triforce 針對 iOS 的驅動程序修改 173
106 總結 179
第 11 章 意外轉機—對 Android 庫的模糊測試 181
111 Android OS 和架構介紹 182
112 使用 Sloth 對 Android 庫進行模糊測試 184
1121 介紹 Sloth 的機制 185
1122 AFL 覆蓋能力介紹 186
1123 運行 ELF 鏈接器 188
1124 運行 LibFuzzer 190
1125 解決 Sloth 模糊測試方法的問題 191
1126 運行 Sloth 191
113 總結 198
第 12 章 總結與結語 199