恶意软件分析与检测工程

978-7-115-70031-5
作者: 阿比吉特・莫汉塔(Abhijit Mohanta)阿努普・萨尔达尼亚(Anoop Saldanha)
译者: 周剑勇黄祖任张喃毛星星钟智勇
编辑: 单瑞婷
分类: 其他

图书目录:

第 一部分 绪论

第 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

详情

本书是恶意软件分析与检测领域的系统性实战指南,全面讲解恶意软件内部原理、分析方法与检测技术,不仅系统介绍恶意软件分析与逆向工程技能,还深入介绍恶意软件分类、研判方法及业内尚未公开的实用技巧,帮助读者深入理解攻击意图,从容应对各类恶意软件挑战。 本书分为6个部分,共25章。第一部分介绍恶意软件基础、类型、行业术语及分析实验室的搭建等知识;第二部分讲解操作系统与系统的基础知识,涵盖文件格式、虚拟内存、Windows内核原理等;第三部分深入剖析恶意软件的组成部分,包括加壳、持久化机制、代码注入与进程掏空等;第四部分聚焦恶意软件分析与归类,详述静态分析、动态分析、内存取证及家族归类等方法;第五部分介绍恶意软件逆向工程核心内容,涵盖调试器、汇编语言、脱壳技巧及代码注入调试等;第六部分聚焦检测工程,解析杀毒引擎、IDS、IPS和Suricata规则编写、沙箱的工作原理及二进制插桩技术等。全书配有大量实操练习,帮助读者掌握从拆解、分析到防御恶意软件的全流程技能。 本书适合网络安全从业者及网络工程师阅读,也可作为高校网络安全相关专业的教学参考书或者企业安全培训的实操教材。

图书摘要

相关图书

SDD实战:规范驱动开发之道
SDD实战:规范驱动开发之道
Agent Skills开发实战像搭积木一样构建智能体
Agent Skills开发实战像搭积木一样构建智能体
Harness工程实战:从零开始驾驭AI软件工程
Harness工程实战:从零开始驾驭AI软件工程
Codex快速入门:Harness工程落地
Codex快速入门:Harness工程落地
Agent设计模式 图解可复用智能体架构
Agent设计模式 图解可复用智能体架构
构建之法——现代软件工程(第四版)
构建之法——现代软件工程(第四版)

相关文章

相关课程