内核漏洞的利用与防范(样章) 信息安全技术 中文PDF高清扫描版

  • 书籍大小:7.29MB
  • 书籍语言:简体中文
  • 书籍类型:国产软件
  • 书籍授权:免费软件
  • 书籍类别:网络安全
  • 应用平台:PDF
  • 更新时间:2012-05-28
  • 购买链接:
  • 网友评分:
360通过 腾讯通过 金山通过

情介绍

信息安全技术丛书
内核漏洞的利用与防范
A Guide to Kernel Exploitation:Attacking the Core
(美)Enrico Perla
Massimiliano Oldani 著
吴世忠 郁莲 郭涛 董国伟 译
本书系统地讲解内核级别漏洞利用所需的理论技术和方法,并将其应用于主流操作系统——UNIX家族、Mac OS X和 Windows。本书分4个部分:第一部分介绍漏洞利用的目标、内核以及理论基础;第二部分深入介绍了目前主流操作系统的细节,并针对不同错误类别分别编写了漏洞利用程序。第三部分将关注点从本地场景转移到远程利用的情景;第四部分介绍未来内核的攻防模式。本书不仅从软件安全研究人员的角度谈论如何发现软件漏洞,也从软件开发者的角度给出了防止软件出现漏洞的方法,以帮助软件编程人员开发出安全的软件系统。
本书内容详实,实例丰富,可操作性强,涉及主流操作系统内核漏洞利用的各个方面,适合软件开发人员、测试人员、安全工程师等阅读。
A Guide to Kernel Exploitation: Attacking the Core
Enrico Perla and Massimiliano Oldani
ISBN: 978-1-59749-486-1
Copyright 2011 by Elsevier Inc. All rights reserved.
Authorized Simplified Chinese translation edition published by the Proprietor.
ISBN: 978-981-272-926-2
Copyright 2011 by Elsevier (Singapore) Pte Ltd.. All rights reserved.
Printed in China by China Machine Press under special arrangement with Elsevier (Singapore) Pte Ltd.. This edition is authorized for sale in China only, excluding Hong Kong SAR and Taiwan. Unauthorized export of this edition is a violation of the Copyright Act. Violation of this Law is subject to Civil and Criminal Penalties.
本书简体中文版由机械工业出版社与Elsevier(Singapore)Pte Ltd.在中国大陆境内合作出版。本版仅限在中国境内(不包括中国香港特别行政区及中国台湾地区)出版及标价销售。未经许可之出口,视为违反著作权法,将受法律之制裁。
封底无防伪标均为盗版
版权所有,侵权必究
本书法律顾问 北京市展达律师事务所
本书版权登记号:图字:01-2011-2875
图书在版编目(CIP)数据
内核漏洞的利用与防范/(美)佩拉(Perla,E.)等著;吴世忠等译. —北京:机械工业出版社,2012.3
(信息安全技术丛书)
书名原文:A Guide to Kernel Exploitation:Attacking the Core
ISBN 978-7-111-37429-9
I.内… II.①佩… ②吴… III.操作系统-程序设计 IV. TP316.2
中国版本图书馆CIP数据核字(2012)第020500号
机械工业出版社(北京市西城区百万庄大街22号 邮政编码 100037)
责任编辑:秦 健
印刷
2012年3 月第 1 版第 1 次印刷
186mm×240mm 23印张
标准书号:ISBN 978-7-111-37429-9
定价:79.00元
凡购本书,如有缺页、倒页、脱页,由本社发行部调换
客服热线:(010)88378991;88361066
购书热线:(010)68326294;88379649;68995259
投稿热线:(010)88379604
读者信箱:hzjsj@hzbook.com
译 者 序
随着信息技术的飞速发展,互联网日益成为人们生活中不可缺少的一部分,社交网络、微博、移动互联网、云计算、物联网等各种新技术、新应用层出不穷。但不管是Facebook、twitter等新兴互联网公司的迅速崛起,还是Android日益成为智能手机市场的主流操作系统,信息安全一直都是永恒的话题。“震网病毒”事件凸显网络武器的实战破坏能力,关键信息基础设施和政府网络保护已成为网络空间防御的新重点;“维基泄密”事件彰显网络空间攻防双方的不对称性,百密难免一疏成为保密防范永远的痛;这些信息安全事件存在一个共同点,那就是信息系统或软件存在的漏洞是问题的根源。因而,漏洞分析日益成为信息安全领域理论研究和实践工作的焦点,越来越引起世界各国的关注与重视。
随着操作系统安全性逐步提高,安全防护软件日臻完善,攻击者利用用户态漏洞实施攻击变得越来越困难,因此,内核漏洞日益成为攻击的焦点。内核漏洞的利用将给系统的安全带来巨大的威胁,甚至会彻底瓦解安全防护措施。因此,内核漏洞的挖掘与利用已成为研究热点。
为推动国内的漏洞分析和风险评估工作,提高国家信息安全保障能力和防御水平,中国信息安全测评中心长期跟踪和关注相关领域的理论进展和技术进步,有针对性地精选一些优秀书籍译成中文,供国内参考借鉴。
本书内容涵盖了开发内核级漏洞利用手段所需的主要理论和方法,包括:内核和内核漏洞利用的基本概念、内核漏洞的分类方法及主要类别、成功利用内核漏洞所需经历的三个阶段等,并在研究UNIX家族、Mac OS X和Windows等不同类型操作系统自身特性的基础上,深入探讨了针对它们的利用代码编写方法,并建立了一套面向操作系统内核漏洞利用开发的行之有效的方法论,从攻防双方不同的视角,介绍了内核漏洞远程利用的方法以及防御措施。书中大量的实际漏洞利用技术及案例,不但能够帮助读者更好地理解那些深奥的理论,还可以帮助安全研究人员更加深入地了解内核攻击的方式和方法,为防御系统级的攻击,降低安全隐患提供了重要的理论支撑和技术保障。
在本书翻译过程中,译者得到中国信息安全测评中心的张普含、王嘉捷、柳本金、王欣等同志,以及北京大学软件与微电子学院的何建杉、余天天、王斌、万成铖、沈阳、张开元、张任伟、李金诺、彭磊、汤云杰等师生的支持和帮助,在此深表感谢。
本书得到中国信息安全测评中心“漏洞分析与风险评估”专项工程的支持。
序  言
最初邀请我写本书序言时,我拒绝了,因为我觉得我不应该出现在他们的光芒中,这些光芒是他们辛勤工作应得的。然而,在阅读了这本书的一些章节之后,我认识到,如果错过这个机会将会非常遗憾,能为世界上最著名的两位内核漏洞利用者的书写序,我感到无比荣幸。
我很少阅读关于漏洞利用技术的书籍,因为很多书只提供了很少或是过时的知识,或者只是简单地枚举出其他人完成的攻击。另外,书籍并不能提供动手进行漏洞利用开发的学习,或是带来在数天努力工作之后一个“#”命令行提示的乐趣,特别是一个内核漏洞被利用后所带来的快感。是时候将这种感觉写在纸上了,它将节省其他开发人员的时间,减少令人崩溃和头痛的处境。
除了需要漏洞利用重要的技巧和艺术之外,编写漏洞利用特别是内核漏洞利用需要对操作系统原理具有深层次理解。这本书绝对有助于实现上述目的,并且还能丰富我书架上内核和驱动编程方面的书籍。
我当然知道这本书适合的读者,希望大量的内核和驱动开发人员也来读这本书。我的下个内核代码审查的工作就要开始了,希望这本书在那之前就可以出版。
Sebastian Krahmer
系统程序员与漏洞利用工程师
前  言
本书概览
目前针对用户态漏洞利用的安全措施较以往有所增加,同时,内核态的漏洞利用也变得越来越流行。本书覆盖了开发可靠和有效的内核态攻击所需的理论技术和方法,并将它们应用于不同的操作系统—UNIX家族、Mac OS X和Windows。
内核利用既是艺术也是科学。每个操作系统都有其自身的特点,所以必须建立攻击模型以便充分分析其目标。本书讨论了最流行的操作系统并介绍如何控制它们。
本书介绍了主流操作系统的概念和安全策略,可以帮助信息安全研究人员更加深入了解内核攻击的方式和方法,为抵制系统级内核攻击,降低安全隐患提供了重要的理论支撑和技术保障。
本书的组织结构
本书分4个部分,共9章。
第一部分 内核态 介绍了本书的目标—内核,并讨论了本书后续内容所依赖的理论基础。这一部分包括:
第1章 从用户态利用到内核态利用 这一章介绍了漏洞利用的世界,并分析了致使安全研究人员和攻击者将漏洞利用的焦点从用户态应用程序转到系统内核上来的原因。
第2章 内核漏洞分类 这一章讨论了不同类型漏洞(错误类别)的分类,并阐述了它们的共同特性和利用方法。越是能够描述多种错误类型的模型,我们越是能够针对其设计出可靠有效的利用技术。这个分类也便于我们从另一方面看待问题:防御。越多地理解错误类型,越是能够创造出更好的保护和防御手段。
第3章 成功内核利用进阶 这一章剖析了内核利用的各个阶段,并描述了针对第2章中每个错误类型的最佳利用方法和技术。鉴于操作系统实现子系统的方法不一样,本章致力于提供能够应用于不同内核和体系结构的利用方法。
第二部分 UNIX家族、Mac OS X和Windows 在这一部分中我们将深入探讨不同操作系统的自身特性,并编写针对不同错误类型的利用代码。对于每种操作系统,我们介绍了相应的调试工具和方法,这在编写漏洞利用代码时非常实用。在本部分中,我们介绍了对真实漏洞的利用,而不是人为设计的例子。这一部分包括:
第4章 UNIX家族 这一章分析了UNIX类系统,主要讨论了Linux并简单讨论了(开源)Solaris操作系统。部分章节也涉及这些操作系统提供的主要工具(如动态追踪、内核调试器等)的调试技术。
第5章 Mac OS X 这一章覆盖了目前非常流行的Mac OS X操作系统,主要讨论了其Leopard版本。同时分析了主要的错误类型(如栈和堆的利用),在查找漏洞时,我们介绍了如何利用闭源内核部分进行逆向工程分析。
第6章 Windows 这一章覆盖了当今最流行的操作系统—微软Windows。和之前的内容不同,在这一章中,我们没有涉及内核的源代码;相反,我们对内部(以及漏洞/攻击方法)的理解来自对不同内核部分的逆向工程。本章着重介绍了逆向分析工具的调试方法,这是非常重要的。
第三部分 远程内核漏洞利用 这一部分将我们的关注点从本地场景(对于内核攻击来说这是常见的场景)转移到远程情况。实际上,我们进入了更加复杂的境地,我们学到的在本地攻击中使用的许多技术已经不适用了。虽然错误类型仍然一样,但是我们需要为我们的“武器库”增加新的“武器”。第三部分共两章,重温了本书之前的部分(第一部分偏向理论,第二部分偏向实践)。这一部分的主要内容包括:
第7章 远程内核漏洞利用面临的挑战 这一章从理论开始介绍,分析了为什么以及在多大程度上远程情境会影响我们的方法,并给出新的技术来解决远程利用问题。虽然这一章更偏向理论,但是也给出了一些实际例子,特别关注于Windows操作系统,而UNIX(Linux)的情景将在第8章阐述。
第8章 一个Linux案例 这一章依次分析了针对一个真实漏洞的可靠利用、一次性利用和远程利用的开发—在Linux内核中发现的一个影响SCTP子系统(//cve.mitre.org/cgi-bi/cvename.cgi?name=CVE-2009-0065)的bug。
第四部分 展望 这一部分总结全书,结束我们对内核安全的分析,由单独的一章组成:
第9章 内核演变:未来内核攻防模式 在这一章中,基于我们所学的内核利用知识对未来进行展望。为了深入探讨攻击和防御技术,在这一章中我们讨论了计算机安全的基础:信息流控制。然后,我们将其作为标准来检查和理解一些bug和漏洞利用的基本特点,这样我们才能够更好地展望未来。
本书中介绍的利用实例和工具的代码在网站www.attackingthecoe.com上可以找到,它也是报告错误的主要参考;您也可以联系我们获得更多的资料。
小结
编写一本书是一个繁琐但很有趣的过程。它给了作者一个将大脑中浮现的感兴趣的概念表达出来的机会。编写这本书对我们来说是一个挑战。我们力争用准确而清晰的陈述来传递那种发现新的防御方法和提供有价值的攻防信息时的激情和乐趣。我们希望读者能够喜欢我们的成果,如同我们乐于将它奉献出来那样。
致  谢
本书献给所有那些相信,就安全而论,代码编辑器(和shell)的功能比邮件客户端的功能更重要的人。
本书得到许多人的帮助、支持和耐心指点。我们要特别感谢:
Matthew Cater、Rachel Roumeliotis、Graham Speake、Audrey Doyle和 Julie Ochs,感谢他们为我们提供的编排。
Nemo,感谢他为第5章提供的宝贵资料,以及持续的反馈。
Ruggiero Piazzolla,感谢他帮助建设网站,尤其是,让它更易于使用。
Marco Desiati和Michele Mastrosimone,感谢他们的艺术设计。我们之前的尝试和他们设计后的结果相比简直是小孩子的涂鸦。
Abh,感谢他不知疲倦地花费大量时间修改本书的内容和代码示例。
Sebastian Krahmer,感谢他为本书写了序言,并审读了多个章节,感谢他参与技术和观点的探讨。
(排名不分先后)Andrea Lelli、Scott Rotondo、xorl(精彩的博客,顺便提一下)、Brad Spengler、Window Snyder、Julien Vanegue、Josh Hall、Ryan Austin、Bas Albert、Igor Falcomata’、clint、Reina Alessandro、Giorgio Fedon、Matteo Meucci、Stefano Di Paola、Antonio Parata、Francesco Perna、Alfredo Pesoli、Gilad Bakas、David Jacoby和Ceresoni Andrea,感谢他们对本书的反馈和意见,并帮助提升了本书的总体质量。我们知道肯定还有人在这里没有提及(再也没有比“你知道你是谁”这句话更合适的了)……对此感到抱歉。
最后,但同样重要的是,还有一些需要特别感谢的人没有在这里列出。
Enrico要感谢Mike Pogue和Jan Setje-Eilers以及作为一家人的Lalla、Franco和Michela做的所有事。上午9点和晚上10点半的电话,使得离家千里之外的人感到家的温暖。
Massimiliano要感谢:
halfdead(笔名—译者注),让我看到了美妙的安全世界仍然有很多乐趣。
我的家人:Noemi、Manuela、Giuseppe、Stefano(Bruce),以及Irene,在我编写本书的数月之中,他们放弃了许多周末来支持我;我真的很爱他们。
作 者 简 介
Enrico Perla 目前是Oracle公司的内核开发人员。他于2007年获得Torino大学学士学位,并于2008年获得Trinity Dublin大学计算机科学硕士学位。他的兴趣范围包括底层系统编程、底层系统攻击、漏洞利用和漏洞利用对策等。
Massimiliano Oldani 目前担任Emaze网络的安全顾问。他主要的研究课题包括操作系统安全和内核漏洞。
技术编辑简介
Graham Speake 是Yokogawa电气公司首席系统架构师,该公司是一个工业自动化供应商。他目前为内核开发人员,并为多个国家的客户提供安全咨询和解决方案。他擅长工业自动化和过程控制安全、渗透测试、网络安全和网络设计。Graham经常在安全会议上发表演讲,并经常给世界各地的客户进行安全培训。Graham的背景包括:BP和ATOS/Origin的安全顾问,以及福特汽车公司的工程师。
Graham拥有位于威尔士的Swanseada大学学士学位,并且是ISA的成员之一。
译者序
序言
前言
致谢
作者简介
第一部分 内核态
第1章 从用户态利用到内核态利用2
引言2
内核和内核漏洞利用的世界2
漏洞利用的艺术4
为什么用户态漏洞利用不再有效7
内核态漏洞利用和用户态漏洞利用8
一个漏洞利用者的内核观10
用户态进程和调度10
虚拟内存11
开源操作系统和闭源操作系统14
小结14
相关阅读15
尾注15
第2章 内核漏洞分类16
引言16
未初始化的/未验证的/已损坏的指针解引用17
内存破坏漏洞20
内核栈漏洞20
内核堆漏洞21
整数误用22
算术/整数溢出23
符号转换错误24
竞态条件26
逻辑bug31
引用计数器溢出31
物理设备输入验证32
内核生成的用户态漏洞33
小结35
尾注36
第3章 成功内核利用进阶37
引言37
架构级概览38
基本概念38
x86和x86-6443
执行阶段46
放置shellcode46
伪造shellcode52
触发阶段55
内存破坏55
竞态条件66
信息收集阶段69
环境告诉我们什么70
环境不想告诉我们的:信息泄露74
小结75
相关阅读76
第二部分 UNIX家族、Mac OS X和Windows
第4章 UNIX家族78
引言78
UNIX家族成员79
Linux79
Solaris/OpenSolaris87
BSD衍生操作系统97
执行步骤97
滥用Linux的权限模型98
实战UNIX108
内核堆利用108
利用OpenSolaris的slab分配器109
利用Linux 2.6 SLAB^H^HUB 分配器127
Linux的栈溢出利用142
重拾 CVE-2009-3234148
小结156
尾注157
第5章 Mac OS X158
引言158
XNU概述159
Mach160
BSD160
IOKit160
系统调用表161
内核调试162
内核扩展 (kext)169
IOKit174
内核扩展审计174
执行步骤185
利用注释186
随意的内存重写186
基于栈的缓冲区溢出195
内存分配符利用208
竞态条件219
Snow Leopard利用219
小结219
尾注220
第6章 Windows221
引言221
Windows内核概述223
内核信息收集 223
DVWD介绍227
内核内部组织攻略228
内核调试232
执行阶段234
Windows验证模型234
编写shellcode242
Windows 漏洞利用实践253
重写任意内存253
栈缓冲区溢出261
小结278
尾注278
第三部分 远程内核漏洞利用
第7章 远程内核漏洞利用面临的挑战280
引言280
利用远程漏洞281
缺少公开信息281
缺少对远程目标的控制283
执行第一条指令284
直接执行流程重定向284
内核内存的任意写294
远程payload296
payload迁移297
KEP上下文297
多级shellcode306
小结311
尾注312
第8章 一个Linux案例313
引言313
SCTP的转发块堆内存损坏313
SCTP简要概述314
漏洞路径316
远程漏洞利用:总体分析319
获得任意内存重写原语320
远程调整堆布局320
创建SCTP消息:从相对到绝对内存的重写323
安装shellcode327
从中断上下文直接跳到用户态327
执行shellcode333
检查当前进程,模拟gettimeofday()函数333
执行反向连接334
恢复Vsyscall336
小结337
相关阅读337
尾注337
第四部分 展望
第9章 内核演变:未来内核攻防模式340
引言340
内核攻击341
保密性341
完整性342
可用性344
内核防御344
内核威胁的分析与建模345
内核防御机制346
内核保证机制347
超越内核bug:虚拟化350
虚拟层安全350
客户机内核安全351
小结351

载地址

下载错误?【投诉报错】

内核漏洞的利用与防范(样章) 信息安全技术 中文PDF高清扫描版

      气书籍

      载声明

      ☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
      ☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
      ☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
      ☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
      ☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
      ☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
      ☉ 本站提供的内核漏洞的利用与防范(样章) 信息安全技术 中文PDF高清扫描版资源来源互联网,版权归该下载资源的合法拥有者所有。