具体描述
《捉虫日记》由克莱恩所著,《捉虫日记》从实践角度介绍安全漏洞,描述了作者在过去几年里怎样发现漏洞、怎样利用漏洞来攻击以及开发商如何修复,旨在为开发人员提醒,为漏洞研究领域的工作人员提供工作思路。
作者简介
Tobias Klein 德国著名信息安全咨询与研究公司NESO安全实验室创始人,资深软件安全研究员,职业生涯中发现的软件安全漏洞无数,更曾为苹果、微软等公司的产品找出不少漏洞。除本书外,还出版过两本信息安全方面的德文作品。
张伸 不合格码农。爱咖啡,爱葡萄酒。爱听布鲁斯,也爱吃巧克力。不小资,不文青,只是喜欢收藏图书和CD。慢生活,每天听相声才能入睡。twitter和新浪微博:@loveisbug。
目录信息
第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
· · · · · · (收起)
读后感
Mark Dowd et al The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities (Addison-Wesley, 2007) Fuzzing Michael Sutton et al Fuzzing: Brute Force Vulnerability Discovery
这本书能告诉你怎么写代码可以避免一些常见的安全漏洞,它是作者寻找各种平台与知名软件漏洞的实践日记。不要以为这些都离你很远,恰恰是开发人员造就了各种漏洞。如果有些在写代码时就可以避免,为什么不这么做呢。 这本书读起来不会觉得艰深晦涩,但还是需要掌握一些基础知...
Mark Dowd et al The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities (Addison-Wesley, 2007) Fuzzing Michael Sutton et al Fuzzing: Brute Force Vulnerability Discovery
Mark Dowd et al The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities (Addison-Wesley, 2007) Fuzzing Michael Sutton et al Fuzzing: Brute Force Vulnerability Discovery
作者简介 Tobias Klein,安全问题研究员,创办NESO安全实验室,NESO是一家位于德国海尔布伦的信息安全咨询、研究公司。身为安全漏洞研究人员,Tobias发现了许多安全漏洞,并帮助修复它们。他也出版了另外两本信息安全领域的著作,由海德堡的出版商dpunkt在德国发行。 ...
用户评价
这本《捉虫日记》真是让人耳目一新,虽然我手里拿的是一本全新的、还散发着油墨香气的书,但我读完后脑海里浮现的却是夏日午后,老旧木地板上洒落的斑驳光影,以及那种带着泥土和青草气息的,仿佛能触摸到的真实感。作者的笔触细腻得如同工笔画,每一个场景的描绘都极其考究,比如对一只蝴蝶振翅飞舞时翅膀上鳞粉飞扬的细微动态捕捉,那种轻盈与脆弱被刻画得淋漓尽致,让人屏住呼吸,生怕惊扰了那份宁静。更不用说,那种对自然界中微小生命的独特视角,它不是高高在上的俯视,而更像是一种平等的、带着好奇与敬畏的对视,读着读着,我仿佛也蹲在了草丛里,用放大镜观察着那些平时被我们忽略的“小家伙”们的生活哲学。这本书的节奏把握得非常巧妙,时而舒缓得像一首慢板小提琴曲,让人沉浸在对日常细节的品味中;时而又在不经意间抛出一个哲学性的反问,让你不得不停下来,陷入沉思。这种在松弛与紧绷之间游走的叙事张力,使得阅读体验极富层次感,绝对是近年来少有的,能让人真正静下心来体味“活着”这件事的书籍。
我必须承认,我是在一个非常喧嚣的环境下开始阅读《捉虫日记》的,一开始还有些分心,但仅仅翻过十几页,那种特有的、带着湿润泥土气息的文字香气就完全将我包裹住了。这本书的结构设计堪称鬼斧神工,它没有传统意义上的宏大叙事线索,更像是无数个被精心打磨过的“瞬间”的聚合体,每一个瞬间都独立成篇,却又通过某种无形的精神丝线紧密相连。这种碎片化的叙事方式,恰恰反映了我们日常生活中记忆和感知的散乱本质。作者的叙事声音非常具有辨识度,它既不谄媚也不高傲,带着一种历经世事后的洞悉与淡淡的幽默感,常常在你不经意间被一句精妙的总结逗笑,紧接着又被随后的深刻所震撼。这本书最大的魅力在于它的“真诚”,没有丝毫矫饰,它记录的不是一个完美的故事,而是真实生命在特定环境下艰难而又美丽的存在状态。对于那些厌倦了千篇一律都市传说的人来说,这本书无疑是一股清新的、带着生命力的湍流。
说实话,我原本对这种题材的书籍并不抱太大期望,总觉得无非是些枯燥的科普或者矫揉造作的抒情,但《捉虫日记》彻底颠覆了我的固有印象。它更像是一部充满隐喻的现代寓言,用最朴素的语言,讲述了最复杂的人性挣扎。比如书中对于“追逐”与“放手”的描绘,完全是通过观察昆虫的捕食与躲避来实现的,那份毫不留情的生存法则,与人类社会中那些微妙的权力游戏和情感拉扯形成了奇妙的对照。文字的密度极高,看似白描,实则暗藏玄机,你得反复咀嚼才能品出其中滋味。我特别喜欢作者在描述那些看似毫无意义的重复劳动时所流露出的那种近乎禅意的专注,那份对“当下”的全然投入,是现代社会中稀缺的品质。这本书读完后,不是那种看完热闹就散的快感,而是一种潜移默化的影响,你会开始留意自己走路时踩过的小路、窗台上停歇的飞鸟,世界好像瞬间变得立体而宽广了,这种由内而外的审美重塑,才是一本好书最强大的力量。
我不得不说,市面上充斥着大量试图模仿自然文学的作品,但《捉虫日记》完全避开了那些陈词滥调,它开辟了一条属于自己的、充满野性和生命力的路径。这本书的阅读体验是极其个人的,它像一面镜子,映照出读者自己与周遭环境的关系。我个人特别欣赏作者处理冲突的方式,它不是通过激烈的外部对抗来推动情节,而是着重于内在的、生物本能的驱动力,那种为了生存而产生的宿命感,被描绘得既残酷又充满美感。这本书的排版和装帧也透露出一种朴实的高级感,与内容完美契合,让人爱不释手。它不是一本可以快速翻阅的书,它需要你放慢呼吸,甚至需要你找一个安静的角落,像对待一个老朋友的倾诉一样去聆听。如果你期待的是那种快节奏的刺激或者明确的道德教条,你可能会失望;但如果你寻求的是一种深沉的、与大地连接的、关于生命本质的沉思,那么,这本《捉虫日记》绝对是不可多得的珍宝,它会让你重新审视你脚下那片土地的价值。
读完《捉虫日记》,我感受到的不仅是阅读的愉悦,更是一种知识的拓宽和情感的洗涤。这本书的语言风格变化多端,时而如同严谨的科学报告,精确到每一个物种的拉丁学名和行为模式;时而又瞬间切换到充满诗意的抒情散文,将自然界的冷硬与生命的温柔揉搓在一起。这种跨越学科边界的叙事方式,让阅读过程充满了探索的乐趣。它迫使你调动起不同领域的知识储备去理解作者试图表达的深层意图。其中关于“时间”的几段论述尤其令我印象深刻,作者似乎对时间的流逝有着独特的体验,在微小的昆虫生命周期中看到了永恒的循环,这种宏观与微观的对撞,极其震撼人心。这本书对细节的执着,已经到了偏执的程度,但正是这种偏执,构建了一个无比坚实可信的文本世界。它不要求你记住每一个情节,但它会让你铭记那些因为阅读而产生的细微的、难以言喻的感官体验。
给代码安全漏洞检测指明了大方向,也从反面对程序员提供了编写安全代码的警示。
看来这本书有点震惊,自己以前编的东西真是留了不少坑啊,以后的路上尽自己的力量少留点坑。
精巧
绝壁一本好书啊 赞 一种格蠹汇编的感觉 感觉比格蠹汇编还赞 就是太短了不够看 小人书的体积里有大智慧
给代码安全漏洞检测指明了大方向,也从反面对程序员提供了编写安全代码的警示。