新書推薦:

《
帝国痼疾:殖民主义、奴隶制和战争如何改变医学
》
售價:HK$
79.2

《
理智与疯狂
》
售價:HK$
74.8

《
明代一条鞭法(精)--梁方仲著作集
》
售價:HK$
85.8

《
自我与本我:弗洛伊德经典心理学著作(精装典藏版)
》
售價:HK$
74.8

《
消费是什么 : 关于消费主义的社会学研究(一本书告诉你为什么买买买之后也有巨大空虚感)
》
售價:HK$
64.9

《
人类简史系列(白金纪念版)(套装共4册)
》
售價:HK$
347.6

《
深度学习推荐系统2.0
》
售價:HK$
140.8

《
小欢喜2:南京爱情故事
》
售價:HK$
75.9
|
編輯推薦: |
本书为战略性新兴领域“十四五”高等教育教材体系建设团队——新一代信息技术(网络空间安全)建设项目。本书可作为“软件安全”课程的配套实验教材,也可以作为软件安全方向的实训教材。主要包括软件安全基础、恶意代码、软件漏洞等方多个领域,相关实验具体覆盖到:磁盘结构与数据恢复、可执行文件结构剖析、恶意代码感染与传播、恶意代码样本分析、栈溢出漏洞分析、堆溢出漏洞分析、系统漏洞防护机制分析、高级漏洞利用技术、软件自我保护与破解等知识。特色:对抗博弈、攻防兼备,读者对象:信息安全专业本科生及研究生,软件安全从业者及爱好者。
|
內容簡介: |
本书共25章,覆盖了软件安全基础、恶意代码机理分析、恶意代码样本分析与检测、软件漏洞分析,以及软件安全智能化分析5个领域。
软件安全基础部分的相关实验具体涉及磁盘结构与数据恢复、程序链接与执行过程分析、PE及ELF可执行文件结构剖析,旨在加强读者的软件安全基础,这对于读者后续理解恶意代码和软件漏洞的机理、分析与防护技术具有重要作用。
恶意代码机理分析部分具体包括Windows PE病毒、宏病毒与脚本病毒、网络木马机理分析、网络蠕虫、勒索病毒分析等,旨在加强读者对典型恶意代码机理的理解。
恶意代码样本分析与检测部分具体包括软件加壳与脱壳、样本静态分析、样本动态分析、样本溯源分析、样本特征检测引擎(ClamAV)、样本行为在线分析等,旨在加强读者对恶意代码样本的处理、分析与检测方法的理解,提升读者的恶意代码分析与检测能力。
软件漏洞分析部分具体包括漏洞测试框架、栈溢出漏洞、堆溢出漏洞、格式化字符串/整型溢出漏洞、IoT漏洞、软件漏洞防御、GS/DEP与ALSR绕过等,旨在加强读者对软件漏洞测试框架、漏洞机理、挖掘与防护机制的理解,提升读者的漏洞攻防实践能力。
软件安全智能化分析部分具体包括机器学习与恶意代码检测、机器学习与恶意代码家族聚类,以及Fuzzing与漏洞挖掘等,旨在帮助读者掌握智能化分析的基本方法,并将这些方法用于恶意代码检测与软件漏洞分析挖掘。
本书可作为高等院校软件安全、恶意代码、软件漏洞及相关课程的配套实验教材,也可以作为软件安全方向的实训教材。
|
目錄:
|
第一部分软件安全基础
第1章磁盘格式与数据恢复2
1.1实验概述2
1.2实验预备知识与基础2
1.2.1磁盘编辑工具与基本用法2
1.2.2MBR与GPT磁盘分区格式2
1.2.3FAT32与NTFS文件系统4
1.2.4数据删除与恢复技术8
1.3磁盘编辑工具的基本使用8
1.3.1实验目的8
1.3.2实验内容及实验环境9
1.3.3实验步骤9
1.4MBR磁盘主引导区分析11
1.4.1实验目的11
1.4.2实验内容及实验环境11
1.4.3实验步骤11
1.5GPT分区格式分析15
1.5.1实验目的15
1.5.2实验内容及实验环境15
1.5.3实验步骤15
1.6FAT32文件系统格式分析18
1.6.1实验目的18
1.6.2实验内容及实验环境18
1.6.3实验步骤19
1.7NTFS文件系统格式分析22
1.7.1实验目的22
1.7.2实验内容及实验环境22
1.7.3实验步骤22
1.8数据删除与恢复28
1.8.1实验目的28
1.8.2实验内容及实验环境28
1.8.3实验步骤28
1.9本章小结33
1.10问题讨论与课后提升33
1.10.1问题讨论33
1.10.2课后提升33
第2章程序链接和执行34
2.1实验概述34
2.2实验预备知识与基础34
2.3程序的静态链接36
2.3.1实验目的36
2.3.2实验内容及实验环境36
2.3.3实验步骤36
2.4进一步控制程序的链接39
2.4.1实验目的40
2.4.2实验内容及实验环境40
2.4.3实验步骤40
2.5程序的装载与启动流程43
2.5.1实验目的43
2.5.2实验内容及实验环境43
2.5.3实验步骤43
2.6本章小结46
2.7问题讨论与课后提升46
2.7.1问题讨论46
2.7.2课后提升46
第3章PE文件结构分析48
3.1实验概述48
3.2实验预备知识与基础48
3.2.1PE查看、编辑与调试工具介绍48
3.2.2函数引入机制49
3.2.3函数引出机制50
3.2.4资源节机制51
3.2.5重定位机制52
3.3PE查看、编辑与调试工具的用法54
3.3.1实验目的54
3.3.2实验内容及实验环境54
3.3.3实验步骤 54
3.4函数的引入/引出机制分析与修改59
3.4.1实验目的59
3.4.2实验内容及实验环境59
3.4.3实验步骤59
3.5资源节资源操作64
3.5.1实验目的64
3.5.2实验内容及实验环境64
3.5.3实验步骤64
3.6手工重定位66
3.6.1实验目的66
3.6.2实验内容及实验环境66
3.6.3实验步骤67
3.7PE文件缩减68
3.7.1实验目的68
3.7.2实验内容及实验环境68
3.7.3实验步骤68
3.8本章小结71
3.9问题讨论与课后提升71
3.9.1问题讨论71
3.9.2课后提升72
第4章ELF文件结构分析73
4.1实验概述73
4.2实验预备知识与基础73
4.2.1ELF分析工具介绍73
4.2.2ELF文件格式74
4.2.3ELF中的指令与数据77
4.2.4函数引入与引出机制78
4.2.5延迟绑定机制80
4.2.6程序初始化过程81
4.3ELF查看、编辑与调试工具的用法83
4.3.1实验目的83
4.3.2实验内容及实验环境83
4.3.3实验步骤83
4.4函数引入引出机制的分析与修改87
4.4.1实验目的87
4.4.2实验内容及实验环境87
4.4.3实验步骤87
4.5延迟绑定机制的分析与修改93
4.5.1实验目的93
4.5.2实验内容及实验环境93
4.5.3实验步骤93
4.6ELF初始化过程的分析与修改97
4.6.1实验目的97
4.6.2实验内容及实验环境97
4.6.3实验步骤98
4.7本章小结101
4.8问题讨论与课后提升101
4.8.1问题讨论101
4.8.2课后提升101
第二部分恶意代码机理分析
第5章PE病毒104
5.1实验概述104
5.2实验预备知识与基础105
5.2.1反汇编和反编译105
5.2.2反汇编的原理105
5.2.3病毒重定位的原理105
5.2.4获取kernel32基地址的方法106
5.2.5PE病毒感染文件恢复106
5.2.6修复过程总结106
5.3熟悉masm32107
5.3.1实验目的107
5.3.2实验内容及实验环境107
5.3.3实验步骤107
5.4病毒重定位110
5.4.1实验目的110
5.4.2实验内容及实验环境110
5.4.3实验步骤111
5.5kernel32基地址定位及搜索API函数地址114
5.5.1实验目的114
5.5.2实验内容及实验环境115
5.5.3实验步骤115
5.6病毒感染过程119
5.6.1实验目的119
5.6.2实验内容及实验环境120
5.6.3实验步骤120
5.7本章小结124
5.8问题讨论与课后提升124
5.8.1问题讨论124
5.8.2课后提升124
第6章宏病毒与脚本病毒125
6.1实验概述125
6.2实验预备知识与基础125
6.2.1宏的使用与宏病毒125
6.2.2VBS脚本病毒分析126
6.2.3PowerShell脚本病毒分析127
6.3宏的使用与宏病毒128
6.3.1实验目的128
6.3.2实验内容及实验环境128
6.3.3实验步骤128
6.4VBS脚本病毒分析133
6.4.1实验目的133
6.4.2实验内容及实验环境133
6.4.3实验步骤133
6.5PowerShell脚本病毒分析136
6.5.1实验目的136
6.5.2实验内容及实验环境136
6.5.3实验步骤136
6.6本章小结139
6.7问题讨论与课后提升140
6.7.1问题讨论140
6.7.2课后提升140
第7章网络木马机理分析141
7.1实验概述141
7.2实验预备知识与基础141
7.2.1文件与注册表活动监测141
7.2.2网络活动监测141
7.3文件与注册表监控工具的基本使用141
7.3.1实验目的141
7.3.2实验内容及实验环境142
7.3.3实验步骤142
7.4网络抓包工具的基本使用144
7.4.1实验目的144
7.4.2实验内容及实验环境144
7.4.3实验步骤144
7.5虚拟机样本调试环境的配置148
7.5.1实验目的148
7.5.2实验内容及实验环境148
7.5.3实验步骤148
7.6灰鸽子木马的使用与机理分析152
7.6.1实验目的152
7.6.2实验内容及实验环境152
7.6.3实验步骤152
7.7本章小结158
7.8问题讨论与课后提升158
7.8.1问题讨论158
7.8.2课后提升159
第8章网络蠕虫160
8.1实验概述160
8.2实验预备知识与基础160
8.2.1网络蠕虫简介160
8.2.2WannaCry蠕虫背景介绍161
8.2.3Slammer蠕虫背景介绍162
8.2.4蠕虫传播机制分析及实验注意事项163
8.3WannaCry传播机制分析之初始化操作163
8.3.1实验目的163
8.3.2实验内容及实验环境163
8.3.3实验步骤163
8.4本章小结174
8.5问题讨论与课后提升174
8.5.1问题讨论174
8.5.2课后提升175
第9章勒索病毒分析176
9.1实验概述176
9.2实验预备知识与基础176
9.2.1WannaCry 勒索病毒177
9.2.2GandCrab勒索病毒177
9.3WannaCry 勒索机制复现及机理分析178
9.3.1实验目的178
9.3.2实验内容及实验环境178
9.3.3实验步骤178
9.4GandCrab复现及机理分析187
9.4.1实验目的187
9.4.2实验内容及实验环境187
9.4.3实验步骤187
9.5本章小结189
9.6问题讨论与课后提升189
9.6.1问题讨论189
9.6.2课后提升189
第三部分恶意代码样本分析与检测
第10章软件加壳与脱壳192
10.1实验概述192
10.2实验预备知识与基础192
10.2.1加壳原理192
10.2.2手工脱壳方法与原理193
10.2.3实验工具193
10.3加壳与查壳工具的基本使用实验194
10.3.1实验目的194
10.3.2实验内容及实验环境194
10.3.3实验步骤194
10.4手工脱壳196
10.4.1实验目的196
10.4.2实验内容及实验环境196
10.4.3实验步骤196
10.5本章小结199
10.6问题讨论与课后提升199
10.6.1问题讨论199
10.6.2课后提升200
第11章样本静态分析201
11.1实验概述201
11.2实验预备知识与基础201
11.2.1加壳与恶意代码混淆201
11.2.2PE文件格式201
11.2.3ASCII与Unicode202
11.2.4Strings工具202
11.2.5PE Tools203
11.3PEiD的基本使用实验203
11.3.1实验目的203
11.3.2实验内容及实验环境203
11.3.3实验步骤203
11.4Strings的基本使用实验205
11.4.1实验目的205
11.4.2实验内容及实验环境205
11.4.3实验步骤205
11.5PE Tools的基本使用实验207
11.5.1实验目的207
11.5.2实验内容及实验环境207
11.5.3实验步骤207
11.6IDA Pro的基本使用实验208
11.6.1实验目的208
11.6.2实验内容及实验环境209
11.6.3实验步骤209
11.7本章小结213
11.8问题讨论与课后提升214
11.8.1问题讨论214
11.8.2课后提升214
第12章样本动态分析215
12.1实验概述215
12.2实验预备知识与基础215
12.2.1病毒分析流程215
12.2.2病毒分析所需要的基础215
12.3在线平台分析216
12.3.1实验目的216
12.3.2实验内容及实验环境216
12.3.3实验步骤216
12.4样本概况分析218
12.4.1实验目的218
12.4.2实验内容及实验环境218
12.4.3实验步骤218
12.5利用IDA和OD进行深度分析223
12.5.1实验目的223
12.5.2实验内容及实验环境223
12.5.3实验步骤223
12.6本章小结235
12.7问题讨论与课后提升235
12.7.1问题讨论235
12.7.2课后提升236
第13章样本溯源分析237
13.1实验概述237
13.2实验预备知识与基础237
13.2.1恶意软件溯源概述237
13.2.2pefile模块237
13.2.3溯源特征及关联分析237
13.2.4样本相似性分析238
13.3简单静态溯源特征提取及静态域名关联分析238
13.3.1实验目的238
13.3.2实验内容及实验环境238
13.3.3实验步骤238
13.4简单样本功能相似性分析241
13.4.1实验目的241
13.4.2实验内容及实验环境241
13.4.3实验步骤241
13.5本章小结242
13.6问题讨论与课后提升242
13.6.1问题讨论242
13.6.2课后提升242
第14章样本特征检测引擎243
14.1实验概述243
14.2实验预备知识与基础243
14.2.1Linux系统常用防病毒检测工具243
14.2.2ClamAV244
14.3ClamAV的环境搭建与安装配置244
14.3.1实验目的244
14.3.2实验内容及实验环境244
14.3.3实验步骤244
14.4ClamAV的基础使用247
14.4.1实验目的247
14.4.2实验内容及实验环境247
14.4.3实验步骤247
14.5本章小结250
14.6问题讨论与课后提升250
14.6.1问题讨论250
14.6.2课后提升250
第15章样本行为在线分析251
15.1实验概述251
15.2实验预备知识与基础251
15.2.1VirusTotal251
15.2.2Cuckoo Sandbox253
15.2.3Any.Run254
15.2.4腾讯哈勃分析系统255
15.3Cuckoo Sandbox安装使用256
15.3.1实验目的256
15.3.2实验内容及实验环境256
15.3.3实验步骤257
15.4本章小结263
15.5问题讨论与课后提升264
15.5.1问题讨论264
15.5.2课后提升264
第四部分软件漏洞分析
第16章漏洞测试框架266
16.1实验概述266
16.2实验预备知识与基础266
16.2.1渗透测试基础266
16.2.2Metasploit用户接口269
16.2.3Metasploit模块271
16.2.4shellcode基础273
16.2.5模糊测试介绍274
16.3Metasploit安装与初次使用275
16.3.1实验目的275
16.3.2实验内容及实验环境275
16.3.3实验步骤275
16.4模糊测试与漏洞利用279
16.4.1实验目的279
16.4.2实验内容及实验环境279
16.4.3实验步骤279
16.5攻破无线路由器284
16.5.1实验目的284
16.5.2实验内容及环境284
16.5.3实验步骤284
16.6本章小结287
16.7问题讨论与课后提升287
16.7.1问题讨论287
16.7.2课后提升288
第17章栈溢出漏洞289
17.1实验概述289
17.2实验预备知识与基础289
17.2.1栈溢出原理289
17.2.2DEP机制及绕开DEP的方法291
17.3利用栈溢出实现目标代码跳转293
17.3.1实验目的293
17.3.2实验内容及实验环境293
17.3.3实验步骤293
17.4DEP防护环境下的漏洞攻击测试296
17.4.1实验目的297
17.4.2实验内容及实验环境297
17.4.3实验步骤297
17.5本章小结305
17.6问题讨论与课后提升306
17.6.1问题讨论306
17.6.2课后提升306
第18章堆溢出漏洞307
18.1实验概述307
18.2实验预备知识与基础307
18.2.1堆溢出漏洞简介307
18.2.2堆数据结构308
18.2.3堆管理策略310
18.2.4堆溢出原理311
18.2.5堆溢出利用312
18.3堆溢出实验313
18.3.1实验目的313
18.3.2实验内容及环境314
18.3.3实验步骤314
18.4本章小结321
18.5问题讨论与课后提升321
18.5.1问题讨论321
18.5.2课后提升321
第19章格式化字符串/整数溢出漏洞322
19.1实验概述322
19.2实验预备知识与基础322
19.2.1格式化字符串漏洞322
19.2.2整数溢出漏洞324
19.3格式化字符串漏洞327
19.3.1实验目的327
19.3.2实验内容及实验环境328
19.3.3实验步骤328
19.4整数溢出漏洞334
19.4.1实验目的334
19.4.2实验内容及实验环境334
19.4.3实验步骤334
19.5本章小结336
19.6问题讨论与课后提升336
19.6.1问题讨论336
19.6.2课后提升336
第20章IoT漏洞337
20.1实验概述337
20.2实验预备知识与基础337
20.2.1IoT设备及其常见漏洞简介337
20.2.2ARM/MIPS汇编340
20.3.3IoT固件345
20.3固件模拟345
20.3.1实验目的345
20.3.2实验内容及实验环境345
20.3.3实验步骤345
20.4IoT漏洞利用352
20.4.1实验目的352
20.4.2实验内容及实验环境352
20.4.3实验步骤353
20.5本章小结356
20.6问题讨论与课后提升356
20.6.1问题讨论356
20.6.2课后提升356
第21章软件漏洞防御357
21.1实验概述357
21.2实验预备知识与基础357
21.2.1栈溢出检查GS357
21.2.2数据执行保护DEP358
21.2.3地址随机化ASLR358
21.2.4漏洞防御工具359
21.3基础漏洞实验362
21.3.1实验目的362
21.3.2实验内容及实验环境362
21.3.3实验步骤362
21.4Exploit Protection防护实验364
21.4.1实验目的364
21.4.2实验内容及实验环境364
21.4.3实验步骤365
21.5Visual Studio防护实验366
21.5.1实验目的366
21.5.2实验内容及实验环境366
21.5.3实验步骤367
21.6本章小结369
21.7问题讨论与课后提升369
21.7.1问题讨论369
21.7.2课后提升369
第22章GS、DEP与ASLR绕过370
22.1实验概述370
22.2实验预备知识与基础370
22.2.1GS绕过方法370
22.2.2DEP绕过方法371
22.2.3ASLR绕过方法373
22.2.4pwntools、gdb安装与用法374
22.3利用输出函数泄露canary377
22.3.1实验目的377
22.3.2实验内容及实验环境377
22.3.3实验步骤377
22.4利用ROP绕过NX383
22.4.1实验目的383
22.4.2实验内容及实验环境383
22.4.3实验步骤383
22.5本章小结389
22.6问题讨论与课后提升389
22.6.1问题讨论389
22.6.2课后提升390
第五部分软件安全智能化分析
第23章机器学习与恶意代码检测392
23.1实验概述392
23.2实验预备知识与基础392
23.2.1机器学习概述392
23.2.2静态特征和动态特征393
23.2.3基于机器学习的恶意代码检测流程394
23.3机器学习模型构建与分类395
23.3.1实验目的395
23.3.2实验内容及实验环境395
23.3.3实验步骤395
23.4基于机器学习的恶意代码检测398
23.4.1实验目的399
23.4.2实验内容及实验环境399
23.4.3实验步骤399
23.5本章小结406
23.6问题讨论与课后提升406
23.6.1问题讨论406
23.6.2课后提升407
第24章机器学习与恶意代码家族聚类408
24.1实验概述408
24.2实验预备知识与基础408
24.3特征预处理409
24.3.1实验目的409
24.3.2实验内容及实验环境409
24.3.3实验步骤409
24.4聚类实验410
24.4.1实验目的410
24.4.2实验内容及实验环境410
24.4.3实验步骤411
24.5本章小结412
24.6问题讨论与课后提升412
24.6.1问题讨论412
24.6.2课后提升412
第25章Fuzzing与漏洞挖掘413
25.1实验概述413
25.2实验预备知识与基础413
25.2.1AFL概述413
25.2.2选择初始种子413
25.2.3编译被测试程序414
25.3AFL的配置及使用实验414
25.3.1实验目的414
25.3.2实验内容及环境414
25.3.3实验步骤415
25.4本章小结419
25.5问题讨论与课后提升420
25.5.1问题讨论420
25.5.2课后提升420
参考文献421
|
內容試閱:
|
2001年,在张焕国教授带领下,武汉大学信息安全团队创建了全国第一个信息安全本科专业,截至2023年年底,我国有320余所高校开设了网络空间安全类专业点386个。另外,全国高校设立了80余所网络空间安全学院和37个网络空间安全博士点,我国网络空间安全学科和人才培养得到了迅速发展。“软件安全”课程是信息安全和网络空间安全专业的一门核心课程,其系统性及实践性强,对学生实践能力的培养尤为迫切,但目前配套实验教材非常欠缺。
作者所在的课程组在2004年、2009年出版了《计算机病毒分析与对抗》第1版、第2版,并于2015年出版了《软件安全》教材,为推动学生实践能力培养,课程组自主设计了系列实验。2020年,课程组录制了软件安全实验在线课程,在武汉大学“珞珈在线”平台上线,每年服务于武汉大学信息安全专业必修课“软件安全实验”、网络空间安全专业指定选修课“计算机病毒”,以及部分兄弟院校相关课程的实验教学工作,取得良好效果。在武汉大学规划教材建设项目支持下,本课程组正式启动了《软件安全实践》教材的编写工作,经过多年的努力,本书终于得以完稿。
本书共25章,每章均设置了多个子实验。在每章实验开始之前,我们设置了“实验预备知识与基础”一节,介绍了后续实验可能涉及的相关前置知识或技术。由于本书篇幅有限,为进一步提升学生的课后思考与能力拓展,我们在每章最后一节设置了“问题讨论与课后提升”部分,以引导学生在课后进行更多的设计性与创新性实践,我们期望通过“问题讨论”环节进一步加强学生对实验内容的理解深度;通过“课后提升”环节为学有余力的同学提供部分课后实践引导。本书实验涉及大量工具和实验样本,我们将在线提供。我们也将开设在线课程,陆续针对本书实验提供在线视频,以完整呈现实验过程,并促进交流反馈。
本书共分为5部分,由彭国军、傅建明、赵磊、陈泽茂4位老师共同策划和编写。其中,彭国军负责编写本书第1、3、6~8、10、13、16、20、22~24章,傅建明负责编写本书第4、11、14、19、21章,赵磊负责编写本书第2、18、25章,陈泽茂负责编写本书第5、9、12、15、17章。
课题组研究生杨秀璋、刘思德、王晨阳、严寒、张杰、李子川、梅润元、解梦飞、李博文、刘怿宇、张婉芝、李萌、朱云聪、蒋可洋、胡梦莹、庞宇翔、王靖尧、刘浩含、马奕然等参与了本书的部分编写工作,金国澳、吕杨琦、袁静怡等同学参与了本书的统稿工作。在此对他们的辛苦付出表示感谢。
本书编写过程中借鉴了国内大量优秀的安全类著作和教材,以及互联网上的优秀技术文献,在此对前人和同行的相关工作表示万分感谢和由衷敬意。本书最后列出了部分参考文献,但必然有所遗漏,在此我们表示万分歉意,如有遗漏,期望读者能及时指出,我们将在后续版本中进行更新补充。
另外,虽然本书的写作历经数年、过程艰辛,但因作者水平有限,难免会存在不足甚至错误,欢迎大家及时反馈便于后续勘误完善。
本书属于战略性新兴领域“十四五”高等教育教材体系建设团队项目的规划教材之一,本书的编写和出版同时得到武汉大学规划教材建设项目资助,在此表示感谢。
作者2024年12月于珞珈山
|
|