惡意軟件分析與檢測工程
阿比吉特?莫漢塔(Abhijit Mohanta)阿努普?薩爾達尼亞(Anoop Saldanha)
- 出版商: 人民郵電
- 出版日期: 2026-09-01
- 定價: $893
- 售價: $892
- 語言: 簡體中文
- 頁數: 470
- ISBN: 7115700311
- ISBN-13: 9787115700315
-
相關分類:
資訊安全
- 此書翻譯自: Malware Analysis and Detection Engineering: A Comprehensive Approach to Detect and Analyze Modern Malware (Paperback)
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書是惡意軟件分析與檢測領域的系統性實戰指南,全面講解惡意軟件內部原理、分析方法與檢測技術,不僅系統介紹惡意軟件分析與逆向工程技能,還深入介紹惡意軟件分類、研判方法及業內尚未公開的實用技巧,幫助讀者深入理解攻擊意圖,從容應對各類惡意軟件挑戰。
本書分為6個部分,共25章。第一部分介紹惡意軟件基礎、類型、行業術語及分析實驗室的搭建等知識;第二部分講解操作系統與系統的基礎知識,涵蓋文件格式、虛擬內存、Windows內核原理等;第三部分深入剖析惡意軟件的組成部分,包括加殼、持久化機制、代碼註入與進程掏空等;第四部分聚焦惡意軟件分析與歸類,詳述靜態分析、動態分析、內存取證及家族歸類等方法;第五部分介紹惡意軟件逆向工程核心內容,涵蓋調試器、匯編語言、脫殼技巧及代碼註入調試等;第六部分聚焦檢測工程,解析殺毒引擎、IDS、IPS和Suricata規則編寫、沙箱的工作原理及二進制插樁技術等。全書配有大量實操練習,幫助讀者掌握從拆解、分析到防禦惡意軟件的全流程技能。
本書適合網絡安全從業者及網絡工程師閱讀,也可作為高校網絡安全相關專業的教學參考書或者企業安全培訓的實操教材。
作者簡介
阿比吉特·莫漢塔:獨立網絡安全顧問與企業培訓師,深耕惡意軟件逆向工程、漏洞研究、防病毒引擎開發、反惡意軟件特征碼編寫與沙箱開發等領域。他曾任職於賽門鐵克(Symantec)、邁克菲(McAfee)、瞻博網絡(Juniper Networks)反惡意軟件實驗室,並擁有多項專利。定期撰寫博客,多次在安全會議和研討會上發表演講,其文章被包括eForensics在內的多家博客、期刊和白皮書轉載引用。另著有Preventing Ransomware: Understand, Prevent, and Remediate Ransomware Attacks。
阿努普·薩爾達尼亞:獨立安全顧問與企業安全培訓師。美國國土安全部資助的感染檢測與防禦系統Suricata的核心開發者之一。他擅長設計與開發各種基於主機和網絡的安全檢測技術,涵蓋IDS/IPS等網絡安全工具、惡意軟件沙箱、惡意軟件分析工具、防火墻、終端與物聯網安全工具。擁有多項安全領域專利,多次在安全會議和研討會上發表演講。曾任職於RSA Security、Juniper Networks、Cyphort Cybersecurity及多家網絡安全初創公司的威脅研究實驗室與檢測工程團隊。
目錄大綱
第 一部分 緒論
第 1 章 導論 ...................................................... 3
1.1 惡意軟件類型 ...................................... 4
1.1.1 平臺多樣性 .................................. 5
1.1.2 目標多樣性 .................................. 5
1.2 網絡殺傷鏈 .......................................... 6
1.3 惡意軟件生命周期 ............................. 7
1.3.1 開發階段 ...................................... 7
1.3.2 分發階段:多樣化的傳輸系統.............................................. 8
1.3.3 感染階段 ...................................... 8
1.3.4 感染後階段 .................................. 8
1.4 惡意軟件的商業模式 ........................ 9
1.5 對抗惡意軟件的戰爭 ........................ 9
1.5.1 作戰團隊 ...................................... 9
1.5.2 反惡意軟件產品 ........................ 11
1.6 術語 ...................................................... 11
1.7 小結 ...................................................... 13
第 2 章 搭建惡意軟件分析實驗室 ............ 14
2.1 對主機系統的要求 ........................... 14
2.2 對網絡的要求 .................................... 15
2.3 創建分析虛擬機 ............................... 15
2.4 調整分析虛擬機 ............................... 16
2.4.1 顯示文件擴展名 ........................ 16
2.4.2 顯示隱藏的文件和文件夾 ........ 17
2.4.3 禁用 ASLR ................................ 17
2.4.4 禁用 Windows 防火墻 ............... 18
2.4.5 禁用 Windows Defender (和其他殺毒軟件) ................................ 18
2.4.6 模擬終端用戶系統 .................... 19
2.5 快照 ...................................................... 19
2.6 分析工具 ............................................. 20
2.6.1 HashMyFiles 等哈希工具 ......... 21
2.6.2 APIMiner ................................... 21
2.6.3 CFF Explorer 和 PEView ........... 21
2.6.4 文件類型識別工具 .................... 21
2.6.5 Process Hacker Process Explorer 和 CurrProcess ........................... 22
2.6.6 ProcMon ..................................... 22
2.6.7 Autoruns ..................................... 22
2.6.8 Regshot ....................................... 22
2.6.9 NTTrace ..................................... 22
2.6.10 FakeNet .................................... 23
2.6.11 BinText ..................................... 23
2.6.12 YARA ....................................... 23
2.6.13 Wireshark ................................. 24
2.6.14 Microsoft Network Monitor ..... 24
2.6.15 OllyDbg 2.0 .............................. 24
2.6.16 Notepad++ ................................ 24
2.6.17 Malzilla .................................... 24
2.6.18 PEiD ......................................... 25
2.6.19 FTK Imager Lite ....................... 25
2.6.20 Volatility Standalone ................ 25
2.6.21 Ring3 API Hook Scanner ......... 25
2.6.22 GMER ...................................... 25
2.6.23 SSDTView ................................ 25
2.6.24 DriverView ............................... 25
2.6.25 Strings ...................................... 25
2.6.26 SimpleWMIView ...................... 26
2.6.27 Registry Viewer ........................ 26
2.6.28 Bulk Extractor .......................... 26
2.6.29 Suricata ..................................... 26
2.6.30 Cuckoo Sandbox ....................... 26
2.6.31 rundll32.exe .............................. 26
2.6.32 oledump.py ............................... 27
2.6.33 OllyDumpEx ............................ 27
2.6.34 DocFileViewer .......................... 27
2.6.35 Fiddler ...................................... 27
2.6.36 IDA Pro .................................... 27
2.6.37 x64dbg 和 Immunity Debugger .................................. 27
2.7 小結 ...................................................... 28
第二部分 操作系統與系統基礎
第 3 章 文件與文件格式 .............................. 31
3.1 以原生十六進制形式顯示文件 ... 31
3.2 哈希值:獨特的文件指紋 ............. 32
3.3 識別文件類型 .................................... 33
3.3.1 文件擴展名 ................................ 33
3.3.2 文件格式:識別文件類型的可靠方法 .................................... 36
3.3.3 手動識別文件格式 .................... 38
3.4 小結 ...................................................... 39
第 4 章 虛擬內存與 PE 文件 ...................... 40
4.1 進程的創建 ........................................ 40
4.1.1 執行程序 .................................... 40
4.1.2 使用 Process Hacker 探究進程 .................................... 41
4.2 虛擬內存 ............................................. 43
4.2.1 可尋址性 .................................... 44
4.2.2 內存頁........................................ 44
4.2.3 請求分頁 .................................... 45
4.2.4 頁表 ........................................... 46
4.2.5 虛擬內存地址空間劃分 ............ 46
4.2.6 使用 Process Hacker 查看頁面 ........................................... 47
4.2.7 虛擬內存中的字符串 ................ 49
4.2.8 使用虛擬內存檢測惡意軟件 ...... 50
4.3 可移植可執行 (PE) 文件 ............ 51
4.3.1 探究 Windows 可執行文件 ....... 52
4.3.2 PE 文件中重要的頭和字段 ...... 56
4.3.3 動態鏈接庫 ................................ 60
4.3.4 導入地址表 ................................ 64
4.4 小結 ...................................................... 65
第 5 章 Windows 內核原理 ........................ 66
5.1 Win32 API ........................................... 66
5.1.1 獲取 API 日誌 ........................... 66
5.1.2 Win32 DLL ................................ 67
5.1.3 研究 Win32 API 與 MSDN 文檔 ............................................ 68
5.1.4 通過 API 識別行為 .................... 72
5.2 Windows 註冊表 ............................... 73
5.2.1 註冊表的邏輯視圖 .................... 73
5.2.2 註冊表中的數據存儲 ................ 74
5.2.3 向註冊表添加數據 .................... 74
5.2.4 惡意軟件與註冊表 .................... 75
5.3 Windows 系統中的重要目錄 ........ 75
5.3.1 System32 目錄 ........................... 76
5.3.2 Program Files 目錄 .................... 76
5.3.3 用戶文檔和設置目錄 ................ 76
5.3.4 惡意軟件分析人員的關註點 .... 76
5.4 Windows 進程 .................................... 77
5.5 Windows 服務 .................................... 80
5.5.1 services.exe 下的可執行文件型服務 ............................................ 81
5.5.2 svchost 下的 DLL 型服務 ......... 82
5.5.3 冒充 Windows 服務的惡意軟件 .................................... 83
5.6 系統調用 ............................................. 85
5.7 互斥體 .................................................. 85
5.8 小結 ...................................................... 86
第三部分 惡意軟件的組成部分
第 6 章 惡意軟件的組成部分和傳播方式 ... 89
6.1 惡意軟件的組成部分 ...................... 89
6.1.1 載荷 ........................................... 89
6.1.2 加殼器........................................ 90
6.1.3 持久化模塊 ................................ 90
6.1.4 防護機制 .................................... 91
6.1.5 隱身模塊 .................................... 91
6.1.6 通信模塊 .................................... 91
6.1.7 傳播模塊 .................................... 91
6.2 傳播方式 ............................................. 92
6.2.1 漏洞利用程序與漏洞利用工具包 ........................................ 92
6.2.2 垃圾郵件 .................................... 98
6.2.3 受感染的存儲設備 .................... 99
6.2.4 惡意廣告 .................................... 99
6.2.5 無交互下載 .............................. 100
6.2.6 下載器 ...................................... 100
6.2.7 通過弱認證直接登錄 .............. 100
6.2.8 共享文件夾 .............................. 100
6.3 小結 .................................................... 101
第 7 章 惡意軟件加殼器 ............................ 102
7.1 加密與壓縮 ...................................... 102
7.2 加殼器 ................................................ 103
7.2.1 加殼器的工作原理 .................. 103
7.2.2 加密器和保護器 ...................... 104
7.2.3 安裝程序 .................................. 104
7.3 加殼示例 ........................................... 104
7.4 識別經過加殼的樣本 .................... 106
7.4.1 熵值.......................................... 106
7.4.2 字符串 ...................................... 107
7.5 識別加殼器 ....................................... 111
7.5.1 PEiD 工具 ................................. 111
7.5.2 入口點代碼 .............................. 112
7.5.3 節名.......................................... 113
7.5.4 自行開發的加殼器 .................. 113
7.6 對加殼器的誤解 ............................. 114
7.7 小結 .................................................... 114
第 8 章 持久化機制 ..................................... 115
8.1 用於持久化的資源 ......................... 115
8.2 分析工具 ........................................... 115
8.2.1 Autoruns ................................... 115
8.2.2 ProcMon ................................... 116
8.3 啟動目錄 ........................................... 117
8.4 註冊表 Run 項 ................................. 119
8.5 服務 .................................................... 121
8.6 文件感染 ........................................... 123
8.7 DLL 劫持 .......................................... 123
8.8 Winlogon ........................................... 124
8.9 任務計劃程序 .................................. 124
8.10 調試器 ............................................. 125
8.10.1 Image File Execution Options ................................. 125
8.10.2 SilentProcessExit .................. 126
8.11 小結 .................................................. 127
第 9 章 網絡通信 ......................................... 128
9.1 為何進行通信 .................................. 128
9.2 CnC 服務器 中繼器 代理和惡意軟件網絡 ........................................... 129
9.3 解析 CnC 服務器的 IP 地址 ....... 130
9.3.1 固定 IP 地址 ............................ 130
9.3.2 固定域名 .................................. 131
9.3.3 域名通量和域名生成算法 ...... 131
9.4 CnC / 數據竊取方法 ........................ 133
9.4.1 HTTP ........................................ 133
9.4.2 IRC ........................................... 135
9.4.3 其他方法 .................................. 136
9.5 橫向移動 ........................................... 136
9.5.1 偵查 .......................................... 137
9.5.2 憑證竊取或漏洞利用準備 ...... 137
9.5.3 獲取訪問權限 .......................... 139
9.5.4 SMB PsExec 等滲透方法 ..... 139
9.6 檢測網絡通信 .................................. 139
9.6.1 網絡 API 與 API 日誌工具 APIMiner .................................. 139
9.6.2 字符串分析 .............................. 141
9.6.3 IP 聲譽和域名聲譽 ................. 141
9.6.4 靜態特征碼:IDS 和防火墻 .... 141
9.6.5 異常基線 .................................. 142
9.7 小結 .................................................... 143
第 10 章 代碼註入 進程掏空與 API 掛鉤 ............................................... 144
10.1 何為代碼註入 ................................ 144
10.2 代碼註入的動機 ........................... 144
10.2.1 隱身 ...................................... 144
10.2.2 進程搭載 .............................. 145
10.2.3 篡改功能 .............................. 146
10.3 代碼註入的目標 ........................... 146
10.4 常見的代碼註入技術 .................. 147
10.5 代碼註入步驟 ................................ 147
10.6 傳統 DLL 註入 .............................. 157
10.7 進程掏空 ......................................... 159
10.8 傳統 shellcode 註入 ..................... 161
10.9 反射型 DLL 註入 ......................... 162
10.10 需要記住的重要 API ................ 162
10.11 為何提供這些惡意 API ............ 163
10.12 代碼 / API 掛鉤 ............................. 163
10.12.1 確定掛鉤點 / 目標 ............. 164
10.12.2 在用戶空間中設置掛鉤 .... 165
10.12.3 惡意軟件為何要設置掛鉤 ................................. 167
10.12.4 掛鉤技術在安全軟件中的應用 ................................. 169
10.12.5 掛鉤掃描工具 .................. 170
10.12.6 案例研究:針對 DeleteFile () 的掛鉤 ............................. 171
10.12.7 案例研究:在 Internet Explorer 中設置掛鉤 ....... 172
10.12.8 APIMiner ......................... 174
10.13 小結 ................................................ 175
第 11 章 隱身技術與根工具包 ................ 176
11.1 為何要隱身 .................................... 176
11.2 簡單的隱身技術 ........................... 176
11.2.1 文件屬性與權限 .................. 177
11.2.2 圖標偽造 .............................. 180
11.2.3 文件名偽造與擴展名偽造 ...................................... 181
11.2.4 盜用系統文件名 .................. 181
11.2.5 心理語言學隱身術 .............. 181
11.2.6 隱藏進程窗口 ...................... 182
11.3 代碼註入 ......................................... 182
11.4 根工具包 ......................................... 183
11.4.1 用戶模式根工具包 .............. 183
11.4.2 內核模式根工具包 .............. 185
11.4.3 其他的根工具包創建方法 .... 197
11.5 小結 .................................................. 198
第四部分 惡意軟件分析與歸類
第 12 章 靜態分析 ...................................... 201
12.1 為何要進行靜態分析 .................. 201
12.2 用於信息交換的樣本哈希值 .... 202
12.3 互聯網 博客和分析報告 ........ 202
12.4 VirusTotal 及其他分析平臺 ...... 203
12.5 確定文件格式 ............................... 205
12.6 獲取完整的感染上下文 ............. 206
12.7 文件名偽造與擴展名偽造 ........ 206
12.8 文件圖標偽造 ............................... 207
12.9 文件類型與文件擴展名不匹配 ............................................. 208
12.10 版本信息 / 詳細信息 ................... 209
12.11 代碼簽名者信息 ......................... 209
12.12 靜態字符串分析......................... 210
12.13 YARA ............................................ 212
12.14 為動態分析做準備的靜態分析 ................................................ 214
12.15 小結 ................................................ 214
第 13 章 動態分析 ...................................... 215
13.1 備好基準快照 ............................... 215
13.2 首次運行:概覽 ........................... 215
13.2.1 樣本拒絕運行 ...................... 216
13.2.2 是否以管理員身份運行 ...... 216
13.2.3 案例研究 1 ........................... 216
13.2.4 案例研究 2 ........................... 217
13.2.5 案例研究 3 ........................... 218
13.3 APIMiner: 根據 API 日誌識別行為 ......................................... 219
13.4 動態字符串分析 ........................... 221
13.4.1 文件類型 .............................. 222
13.4.2 版本信息 / 詳細信息 ............. 222
13.4.3 是否經過了加殼 .................. 222
13.5 ProcMon: 行為事件分析 .......... 225
13.6 檢測代碼註入 ................................ 227
13.7 對進程運行 YARA 規則 ............ 228
13.8 其他惡意行為 ................................ 228
13.8.1 為隱身盜用系統文件的名稱 ...................................... 228
13.8.2 怪異的文件名和進程名 ...... 228
13.8.3 消失的可執行文件 .............. 229
13.8.4 進程實例數 .......................... 229
13.8.5 進程會話 ID ......................... 229
13.9 小結 .................................................. 229
第 14 章 使用 Volatility 進行內存取證 ... 230
14.1 何為內存取證 ................................ 230
14.2 為何要進行內存取證 .................. 231
14.3 內存取證的步驟 ........................... 231
14.4 內存獲取 ......................................... 231
14.4.1 Sample-14-1.mem ................ 232
14.4.2 Sample-14-2.mem ................ 233
14.4.3 Sample-14-3.mem ................ 233
14.5 內存分析 / 取證 .............................. 233
14.5.1 Volatility 命令的格式 .......... 235
14.5.2 映像信息 .............................. 235
14.5.3 列出進程和服務 .................. 236
14.5.4 檢查虛擬內存 ...................... 238
14.5.5 列出進程模塊 ...................... 240
14.5.6 列出句柄 .............................. 242
14.5.7 掃描註冊表 .......................... 244
14.5.8 識別代碼註入和 API 掛鉤 ...................................... 247
14.5.9 檢查內核 .............................. 249
14.5.10 網絡通信 ............................ 250
14.6 小結 .................................................. 251
第 15 章 惡意軟件載荷剖析與歸類 ........ 253
15.1 惡意軟件類型 家族 變種與聚集 .................................................. 253
15.2 命名規則 ......................................... 254
15.3 歸類的重要性 ............................... 255
15.3.1 主動檢測 .............................. 255
15.3.2 正確處置 .............................. 255
15.3.3 情報收集 .............................. 256
15.3.4 攻擊的意圖與範圍 .............. 256
15.4 歸類依據 ......................................... 256
15.4.1 API 調用 .............................. 257
15.4.2 惡意軟件開發者信息 .......... 257
15.4.3 API 掛鉤 .............................. 257
15.4.4 調試信息 .............................. 257
15.4.5 復用的代碼 .......................... 258
15.4.6 庫依賴項 .............................. 258
15.4.7 格式字符串 .......................... 258
15.4.8 互斥體名稱 .......................... 258
15.4.9 IP 地址 域名和 URL ........ 259
15.4.10 文件名 ................................ 259
15.4.11 獨特字符串 ........................ 259
15.5 鍵盤記錄器 .................................... 259
15.5.1 攔截鍵盤消息 ...................... 260
15.5.2 獲取鍵狀態 .......................... 260
15.6 信息竊取器 .................................... 262
15.6.1 動態事件與 API 日誌 .......... 262
15.6.2 對信息竊取器進行字符串分析 ...................................... 263
15.7 銀行惡意軟件 ................................ 264
15.7.1 API 日誌與掛鉤掃描工具 .... 264
15.7.2 對銀行木馬進行字符串分析 ...................................... 265
15.8 POS 惡意軟件 ............................... 267
15.8.1 POS 設備的工作原理 .......... 267
15.8.2 POS 惡意軟件的工作原理 ..... 268
15.8.3 POS 惡意軟件的識別與歸類 ...................................... 268
15.8.4 POS 惡意軟件中的字符串 ..... 269
15.9 ATM 惡意軟件 .............................. 270
15.10 RAT ................................................ 271
15.10.1 識別 RAT ......................... 272
15.10.2 RAT 中的字符串 ............. 272
15.11 勒索軟件 ....................................... 273
15.11.1 識別勒索軟件 .................. 273
15.11.2 勒索軟件中的字符串 ...... 275
15.12 加密貨幣挖礦惡意軟件 ........... 276
15.13 病毒 ................................................ 277
15.14 小結 ................................................ 278
第五部分 惡意軟件逆向工程
第 16 章 調試器與匯編語言 ..................... 281
16.1 逆向工程與反匯編器 .................. 281
16.2 PE 與機器碼 .................................. 282
16.3 x86 匯編語言 ................................. 283
16.3.1 指令格式 .............................. 283
16.3.2 寄存器 .................................. 286
16.3.3 重要的 x86 指令 .................. 289
16.4 調試器與反匯編 ........................... 297
16.4.1 調試器基礎 .......................... 297
16.4.2 比較 OllyDbg 和 IDA Pro .... 298
16.4.3 探索 OllyDbg ....................... 298
16.4.4 探索 IDA Pro ....................... 305
16.4.5 OllyDbg 和 IDA Pro 所做的美化和修改 .......................... 307
16.5 識別反匯編結果中的高級語言結構 ......................................... 309
16.5.1 識別棧幀 .............................. 309
16.5.2 識別函數序言和函數尾聲 .... 311
16.5.3 識別局部變量 ...................... 311
16.5.4 識別指針 .............................. 313
16.5.5 識別全局變量 ...................... 314
16.5.6 識別棧上的數組 .................. 315
16.5.7 識別棧上的結構體 .............. 316
16.5.8 識別函數調用參數 .............. 318
16.5.9 識別分支條件 ...................... 319
16.5.10 識別循環 ............................ 320
16.6 提高反匯編結果的可讀性 ......... 322
16.6.1 顏色標記 .............................. 322
16.6.2 標簽與註釋 .......................... 322
16.6.3 跟蹤變量 .............................. 323
16.7 提高反匯編分析的速度 ............. 324
16.7.1 跳過編譯器樁代碼 .............. 324
16.7.2 用代數方法精簡指令 .......... 324
16.7.3 使用反編譯器 ...................... 325
16.7.4 代碼塊和流程圖 .................. 325
16.7.5 交叉引用 .............................. 327
16.8 調試器的高級用法 ...................... 330
16.8.1 查看 API 調用和參數 ......... 330
16.8.2 Win32 API 開頭設置斷點 ... 331
16.8.3 調試器事件 .......................... 333
16.8.4 修改 ...................................... 333
16.8.5 調用棧 .................................. 334
16.9 小結 .................................................. 335
第 17 章 調試技巧在惡意軟件脫殼中的應用 ............................................... 337
17.1 脫殼原理 ......................................... 337
17.1.1 OEP 和載荷 ......................... 337
17.1.2 經過加殼的二進制文件的執行過程 .............................. 338
17.2 使用調試器手動脫殼 .................. 342
17.2.1 借助 APIMiner 生成的 API 日誌快速脫殼 ...................... 343
17.2.2 常見加殼器的調試技巧 ...... 344
17.2.3 其他技巧 .............................. 347
17.2.4 借助編譯器樁代碼識別 OEP ...................................... 347
17.2.5 回溯 ...................................... 348
17.2.6 是否在載荷內 ...................... 350
17.3 不同的脫殼方法 ........................... 350
17.4 小結 .................................................. 350
第 18 章 代碼註入調試 .............................. 351
18.1 API 日誌和斷點 ........................... 351
18.2 註入入口點 .................................... 351
18.3 借助 CreateRemoteThread 定位 IEP .......................................... 352
18.4 根據線程上下文定位 IEP .......... 356
18.5 EBFE 技巧 ..................................... 362
18.6 小結 .................................................. 363
第 19 章 防護與規避 .................................. 364
19.1 防護技術 ......................................... 364
19.1.1 反靜態分析 .......................... 364
19.1.2 反動態分析 .......................... 364
19.1.3 反調試 .................................. 371
19.1.4 使用垃圾代碼對抗反匯編 .... 375
19.2 規避技術 ......................................... 375
19.2.1 規避殺毒軟件 ...................... 376
19.2.2 規避網絡安全產品 .............. 376
19.2.3 規避沙箱 .............................. 377
19.2.4 對抗惡意軟件防護機制 ...... 378
19.2.5 開源的反規避項目 .............. 379
19.3 小結 .................................................. 379
第 20 章 無文件 宏及其他惡意軟件的發展趨勢 ....................................... 380
20.1 Windows 腳本編寫環境 ............. 380
20.2 混淆 .................................................. 381
20.2.1 十六進制編碼 ...................... 381
20.2.2 字符串拆分與拼接 .............. 382
20.2.3 插入垃圾內容 ...................... 382
20.2.4 使用 eval () 執行表達式運算 ...................................... 383
20.2.5 加密算法 .............................. 384
20.3 反混淆 ............................................. 384
20.3.1 靜態反混淆 .......................... 385
20.3.2 動態反混淆 .......................... 386
20.3.3 瀏覽器內置的腳本調試器 .... 387
20.4 載荷 .................................................. 389
20.4.1 下載器與投放器 .................. 389
20.4.2 漏洞利用代碼 ...................... 390
20.5 VBScript 惡意軟件 ...................... 390
20.6 Microsoft Office 惡意軟件 ......... 392
20.6.1 OLE 文件格式 ..................... 392
20.6.2 剖析 OLE 格式 .................... 393
20.6.3 提取流 .................................. 393
20.6.4 宏 .......................................... 395
20.7 無文件惡意軟件 ........................... 399
20.7.1 Windows 管理規範 .............. 399
20.7.2 PowerShell ........................... 401
20.8 小結 .................................................. 404
第六部分 檢測工程
第 21 章 檢測工程準備 .............................. 408
21.1.2 構建 APIMiner 和 Cuckoo Monitor ................................. 409
21.2 Windows 虛擬機 ........................... 410
21.2.1 安裝 Visual Studio ............... 410
21.2.2 安裝 Cygwin ........................ 411
21.2.3 整合 Cygwin 和 Visual Studio ........................ 412
21.2.4 其他工具 .............................. 412
21.3 小結 ...................................................... 413
第 22 章 殺毒引擎 ...................................... 414
22.1 殺毒軟件的主要組件 .................. 414
22.2 特征碼和特征碼模塊 .................. 415
22.2.1 特征碼分類 .......................... 416
22.2.2 註意事項 .............................. 422
22.2.3 特征碼優化 .......................... 422
22.2.4 風險最小化 .......................... 424
22.3 文件掃描器 .................................... 425
22.4 脫殼器模塊 .................................... 426
22.5 內存掃描器 .................................... 427
22.6 鉤子和根工具包檢測模塊 ........ 428
22.7 病毒多態性和仿真器 .................. 429
22.8 修復模塊 ......................................... 429
22.9 下一代殺毒軟件 ........................... 430
22.10 小結 ................................................ 430
第 23 章 編寫 IDS IPS 和 Suricata 規則 ............................................... 431
23.1 網絡流量的流向 ........................... 431
23.1.1 南北流量 .............................. 432
23.1.2 東西流量 .............................. 432
23.2 網絡流量分析 ............................... 432
23.3 基於 IDPS 的網絡安全 ............... 432
23.3.1 IDS 和 IPS 的區別 ............... 433
23.3.2 IDS 流量饋送 ...................... 433
23.3.3 IPS 流量饋送 ....................... 434
23.3.4 偽 IPS = IDS + 偽串聯 ....... 435
23.3.5 IDPS 傳感器的部署要點 .... 435
23.4 IDPS 組件 ....................................... 436
23.4.1 數據包捕獲模塊 .................. 436
23.4.2 解碼器模塊 .......................... 437
23.4.3 TCP 流重組模塊 .................. 437
23.4.4 應用層解析 .......................... 438
23.4.5 檢測引擎 .............................. 438
23.4.6 日誌模塊 .............................. 438
23.5 Suricata ............................................ 439
23.5.1 yaml 配置文件 ..................... 439
23.5.2 使用 Suricata 分析 PCAP 文件 ...................................... 440
23.6 編寫 Suricata 規則 ....................... 441
23.6.1 規則的基本結構 .................. 441
23.6.2 IP only 規則 ......................... 443
23.6.3 關鍵字 .................................. 444
23.7 小結 .................................................. 447
第 24 章 惡意軟件沙箱的工作原理 ........ 448
24.1 什麼是惡意軟件沙箱 .................. 448
24.2 為何需要惡意軟件沙箱 ............. 449
24.3 安全架構中的沙箱 ...................... 450
24.4 沙箱設計 ......................................... 450
24.4.1 樣本分析工作流程 .............. 451
24.4.2 客戶機 .................................. 452
24.4.3 宿主機代理和客戶機代理 .... 453
24.4.4 監視代理 .............................. 455
24.4.5 誘騙代理和其他代理 .......... 456
24.4.6 宿主機代理與客戶機代理之間的通信通道 .................. 456
24.4.7 記錄技術:文件寫入和流式傳輸 .............................. 456
24.5 根據沙箱分析結果編寫檢測規則 .................................................. 456
24.6 結合使用沙箱和機器學習 ......... 457
24.7 小結 .................................................. 457
第 25 章 借助二進制插樁自動化逆向工程 ....................................... 458
25.1 何為二進制插樁 ........................... 458
25.2 DBI 涉及的術語和工作原理 .... 460
25.3 DBI 在惡意軟件分析中的應用 ....................................... 462
25.4 使用 DBI 編寫工具 ..................... 463
25.4.1 安裝 Intel PIN ...................... 463
25.4.2 工具 1: 記錄所有指令 ....... 465
25.4.3 工具 2:Win32 API 日誌記錄 ...................................... 466
25.4.4 工具 3: 修改代碼及改變執行流程 .............................. 468
25.5 小結 ...................................................... 470

