书籍详情
捉虫日记
作者:(德)Tobias Klein 著 张伸 译
出版社:人民邮电出版社
出版时间:2012-08-01
ISBN:9787115290441
定价:¥39.00
购买这本书可以去
内容简介
软件的安全问题近年来颇受媒体关注,虽然软件漏洞和破解等术语已广为人知,但很多人包括信息安全专业人士,并不清楚攻击者到底是怎样发现软件安全漏洞的。《捉虫日记》作者以日记的形式,描述了自己在真实软件中找到bug的方法和技巧,旨在帮助读者形成自己的捉虫风格,从而顺利找出软件中的bug。《捉虫日记》中内容共分为8章,第1章为概述,其余7章是7篇日记,分别记录了作者近几年找到的比较典型的内存bug,涉及VLC媒体播放器、Sun Solaris操作系统、导致空指针解引用的类型转换、浏览器插件、Windows操作系统内核、苹果XNU内核、iPhone音频库。作者将静态分析和动态分析、模糊测试等一些通用的捉虫技巧穿插在漏洞发现讲解的过程中,顺便介绍了调试器、反汇编工具等专用漏洞挖掘工具的具体使用方法,可以让读者逐层建立起各种概念,全面掌握安全调试知识。
作者简介
Tobias Klein,德国著名信息安全咨询与研究公司NESO安全实验室创始人,资深软件安全研究员,职业生涯中发现的软件安全漏洞无数,更曾为苹果、微软等公司的产品找出不少漏洞。除本书外,还出版过两本信息安全方面的德文作品。译者简介:张伸,不合格码农。爱咖啡,爱葡萄酒。爱听布鲁斯,也爱吃巧克力。不小资,不文青,只是喜欢收藏图书和CD。慢生活,每天听相声才能入睡。
目录
目 录
第1章 捉虫 1
1.1 兴趣还是利益 2
1.2 通用技巧 2
1.2.1 个人技术偏好 2
1.2.2 代码中潜在的漏洞 3
1.2.3 模糊测试 3
1.2.4 延伸阅读 3
1.3 内存错误 4
1.4 专用工具 4
1.4.1 调试器 4
1.4.2 反汇编工具 5
1.5 EIP=41414141 5
1.6 结束语 6
第2章 回到90年代 7
2.1 发现漏洞 8
2.1.1 第一步:生成VLC中解复用器的清单 8
2.1.2 第二步:识别输入数据 8
2.1.3 第三步:跟踪输入数据 9
2.2 漏洞利用 11
2.2.1 第一步:找一个TiVo格式的样例电影文件 11
2.2.2 第二步:找一条代码路径执行到漏洞代码 11
2.2.3 第三步:修改这个TiVo电影文件,使VLC崩溃 14
2.2.4 第四步:修改这个TiVo电影文件,控制EIP 15
2.3 漏洞修正 16
2.4 经验和教训 20
2.5 补充 21
第3章 突破区域限制 24
3.1 发现漏洞 24
3.1.1 第一步:列出内核的IOCTL 25
3.1.2 第二步:识别输入数据 26
3.1.3 第三步:跟踪输入数据 27
3.2 漏洞利用 34
3.2.1 第一步:触发这个空指针解引用,实现拒绝服务 34
3.2.2 第二步:利用零页内存控制EIP/RIP 38
3.3 漏洞修正 47
3.4 经验和教训 48
3.5 补充 48
第4章 空指针万岁 50
4.1 发现漏洞 50
4.1.1 第一步:列出FFmpeg的解复用器 51
4.1.2 第二步:识别输入数据 51
4.1.3 第三步:跟踪输入数据 52
4.2 漏洞利用 55
4.2.1 第一步:找一个带有有效strk块的4X样例电影文件 55
4.2.2 第二步:了解这个strk块的布局 55
4.2.3 第三步:修改这个strk块以使 FFmpeg崩溃 57
4.2.4 第四步:修改这个strk块以控制EIP 60
4.3 漏洞修正 65
4.4 经验和教训 68
4.5 补充 68
第5章 浏览即遭劫持 70
5.1 探寻漏洞 70
5.1.1 第一步:列出WebEx注册的对象和导出方法 71
5.1.2 第二步:在浏览器中测试导出方法 73
5.1.3 第三步:找到二进制文件中的对象方法 74
5.1.4 第四步:找到用户控制的输入数值 76
5.1.5 第五步:逆向工程这个对象方法 78
5.2 漏洞利用 81
5.3 漏洞修正 83
5.4 经验和教训 83
5.5 补充 83
第6章 一个内核统治一切 85
6.1 发现漏洞 85
6.1.1 第一步:为内核调试准备一个VMware客户机 86
6.1.2 第二步:生成一个avast!创建的驱动和设备对象列表 86
6.1.3 第三步:检查设备的安全设置 87
6.1.4 第四步:列出IOCTL 89
6.1.5 第五步:找出用户控制的输入数据 94
6.1.6 第六步:逆向工程IOCTL处理程序 97
6.2 漏洞利用 101
6.3 漏洞修正 107
6.4 经验和教训 107
6.5 补充 108
第7章 比4.4BSD还老的BUG 110
7.1 发现漏洞 110
7.1.1 第一步:列出内核的IOCTL 111
7.1.2 第二步:识别输入数据 111
7.1.3 第三步:跟踪输入数据 113
7.2 漏洞利用 116
7.2.1 第一步:触发这个bug使系统崩溃(拒绝服务) 116
7.2.2 第二步:准备一个内核调试的环境 118
7.2.3 第三步:连接调试器和目标系统 118
7.2.4 第四步:控制EIP 120
7.3 漏洞修正 125
7.4 经验和教训 126
7.5 补充 126
第8章 铃音大屠杀 129
8.1 发现漏洞 129
8.1.1 第一步:研究iPhone的音频性能 130
8.1.2 第二步:创建一个简单的模糊测试程序对这个手机进行模糊测试 130
8.2 崩溃分析及利用 136
8.3 漏洞修正 142
8.4 经验和教训 143
8.5 补充 143
附录A 捉虫提示 145
附录B 调试 158
附录C 缓解技术 170
第1章 捉虫 1
1.1 兴趣还是利益 2
1.2 通用技巧 2
1.2.1 个人技术偏好 2
1.2.2 代码中潜在的漏洞 3
1.2.3 模糊测试 3
1.2.4 延伸阅读 3
1.3 内存错误 4
1.4 专用工具 4
1.4.1 调试器 4
1.4.2 反汇编工具 5
1.5 EIP=41414141 5
1.6 结束语 6
第2章 回到90年代 7
2.1 发现漏洞 8
2.1.1 第一步:生成VLC中解复用器的清单 8
2.1.2 第二步:识别输入数据 8
2.1.3 第三步:跟踪输入数据 9
2.2 漏洞利用 11
2.2.1 第一步:找一个TiVo格式的样例电影文件 11
2.2.2 第二步:找一条代码路径执行到漏洞代码 11
2.2.3 第三步:修改这个TiVo电影文件,使VLC崩溃 14
2.2.4 第四步:修改这个TiVo电影文件,控制EIP 15
2.3 漏洞修正 16
2.4 经验和教训 20
2.5 补充 21
第3章 突破区域限制 24
3.1 发现漏洞 24
3.1.1 第一步:列出内核的IOCTL 25
3.1.2 第二步:识别输入数据 26
3.1.3 第三步:跟踪输入数据 27
3.2 漏洞利用 34
3.2.1 第一步:触发这个空指针解引用,实现拒绝服务 34
3.2.2 第二步:利用零页内存控制EIP/RIP 38
3.3 漏洞修正 47
3.4 经验和教训 48
3.5 补充 48
第4章 空指针万岁 50
4.1 发现漏洞 50
4.1.1 第一步:列出FFmpeg的解复用器 51
4.1.2 第二步:识别输入数据 51
4.1.3 第三步:跟踪输入数据 52
4.2 漏洞利用 55
4.2.1 第一步:找一个带有有效strk块的4X样例电影文件 55
4.2.2 第二步:了解这个strk块的布局 55
4.2.3 第三步:修改这个strk块以使 FFmpeg崩溃 57
4.2.4 第四步:修改这个strk块以控制EIP 60
4.3 漏洞修正 65
4.4 经验和教训 68
4.5 补充 68
第5章 浏览即遭劫持 70
5.1 探寻漏洞 70
5.1.1 第一步:列出WebEx注册的对象和导出方法 71
5.1.2 第二步:在浏览器中测试导出方法 73
5.1.3 第三步:找到二进制文件中的对象方法 74
5.1.4 第四步:找到用户控制的输入数值 76
5.1.5 第五步:逆向工程这个对象方法 78
5.2 漏洞利用 81
5.3 漏洞修正 83
5.4 经验和教训 83
5.5 补充 83
第6章 一个内核统治一切 85
6.1 发现漏洞 85
6.1.1 第一步:为内核调试准备一个VMware客户机 86
6.1.2 第二步:生成一个avast!创建的驱动和设备对象列表 86
6.1.3 第三步:检查设备的安全设置 87
6.1.4 第四步:列出IOCTL 89
6.1.5 第五步:找出用户控制的输入数据 94
6.1.6 第六步:逆向工程IOCTL处理程序 97
6.2 漏洞利用 101
6.3 漏洞修正 107
6.4 经验和教训 107
6.5 补充 108
第7章 比4.4BSD还老的BUG 110
7.1 发现漏洞 110
7.1.1 第一步:列出内核的IOCTL 111
7.1.2 第二步:识别输入数据 111
7.1.3 第三步:跟踪输入数据 113
7.2 漏洞利用 116
7.2.1 第一步:触发这个bug使系统崩溃(拒绝服务) 116
7.2.2 第二步:准备一个内核调试的环境 118
7.2.3 第三步:连接调试器和目标系统 118
7.2.4 第四步:控制EIP 120
7.3 漏洞修正 125
7.4 经验和教训 126
7.5 补充 126
第8章 铃音大屠杀 129
8.1 发现漏洞 129
8.1.1 第一步:研究iPhone的音频性能 130
8.1.2 第二步:创建一个简单的模糊测试程序对这个手机进行模糊测试 130
8.2 崩溃分析及利用 136
8.3 漏洞修正 142
8.4 经验和教训 143
8.5 补充 143
附录A 捉虫提示 145
附录B 调试 158
附录C 缓解技术 170
猜您喜欢