软件剖析:代码攻防之道
分類: 图书,计算机与互联网,安全与加密,加密与解密,
品牌: 霍格兰德
基本信息·出版社:清华大学出版社
·页码:339 页
·出版日期:2005年
·ISBN:730210445X
·条形码:9787302104452
·包装版本:1
·装帧:平装
·开本:16开
产品信息有问题吗?请帮我们更新产品信息。
内容简介本书深入探讨了现实世界中的软件破解问题,解释了它们是如何以及为什么被破解的,介绍了相关的攻击模式,以及它们是如何被发现的。本书还展示了如何发现新软件的脆弱点以及如何利用这个脆弱点去攻破机器。
第1章介绍了软件是计算机系统安全问题的根本原因。引入了“问题三组合”——复杂性、可扩展性以及连通性——并描述了为什么软件安全问题是不断成长的。还介绍了软件的一些特征以及它们在软件攻击中的含义。
第2章介绍了实现bug和体系结构缺陷之间的区别,讨论了开放式系统的安全问题,并解释了为什么冒险管理是最明智的办法。介绍了现实世界中的两个攻击案例:一个比较简单,另一个在技术上比较复杂。本章的核心是讨论攻击模式,给出了攻击模式是如何适应不同网络安全特征的,并在本书的其他部分也介绍了攻击模式。
第3章的主题是逆向工程。攻击者反汇编、反编译以及解构程序来理解程序是如何工作的,以及如何阻止程序这样工作。在这一章里还介绍了常用的灰箱分析技术,包括利用安全补丁作为攻击地图的思想等。介绍了交互式反汇编程序(Interactive Disassembler,IDA),它是黑客用于理解程序行为的工具。我们还仔细介绍了实用的黑客工具是如何被开发及使用的。
第4~7章讨论了攻击模式在实际中的使用案例。
第4章和第5章介绍了双端的客户机-服务器模型。第4章从Hacking Exposed一书[McCluYe等著,1999]中遗留下的部分开始谈起,介绍了可信任的输入、权限提升、代码注入、路径追踪、破解可信任以及其他专用于服务端软件的攻击技术。第5章介绍了如何利用混合信号、跨网站脚本以及移动代码来攻击客户端软件。同时本章还介绍了逆向攻击的问题。这两章都讨论了攻击模式和实际的攻击案例。
第6章介绍了有关恶意代码输入的问题。该问题已超出了我们所讨论的分割分析、代码追踪以及反向分析程序代码的问题。解决该问题需要有较好的编码技术。再次说明,不管是现实世界中的攻击案例还是攻击模式,本书都做了比较全面的介绍。
正如需要受到鞭笞的坏小子一样,致命性的缓冲区溢出是第7章的主题。本章高度关注在其他一些技术资料里已谈到的缓冲区攻击技术。讨论了嵌入式系统中的缓冲区溢出、数据库中的缓冲区溢出、Java环境下的缓冲区溢出以及基于内容的缓冲区溢出。本章讨论了如何发现潜在的各种类型的缓冲区溢出,包括栈溢出、运算错误、格式字符串的脆弱点、堆溢出, C++虚函数表,以及多阶段跳跃。详细介绍了一些特定操作平台上的攻击代码结构,例如x86、MIPS、SPARC和PA-RISC平台。同时,还介绍了一些攻破脆弱的安全系统的高级攻击代码结构技术,例如active armor和跳跃技术。本章还给出了大量的攻击模式。
第8章介绍了软件攻击中的顶尖技术——rootkit。利用该技术,攻击者可以完全控制整个系统。第8章的主要部分就是介绍基于Windows XP的一个实际rootkit。主要包括钩子调用技术、可执行重定向技术、隐藏进程及文件技术、网络支持技术和二进制代码的补丁技术。同时,本章还详细讨论了部分硬件技术,包括利用EEPROM隐藏rootkit的技术。当然除本章介绍的之外还有很多其他rootkit技术。
读者对象
本书适用于网络管理员、安全顾问、信息人士、开发人员以及希望编写安全代码的程序员。
作者简介Greg Hoglund博士十几年来一直是软件安全领域的领军人物。他创建并记录了第一个基于Windows NT的rootkit,可以通过站点www.rootkit.com找到相关内容。
编辑推荐软件是如何被破解的?攻击者是如何有目的地破解软件的?当安全领域的专家意识到计算机系统的安全事实上就是软件行为的安全时,软件安全得到了推动性的发展。本书描述如何破解代码。其目的是提供安全专家们需要直接面对的实际中的技术问题。本书也直接与软件安全和网络安全相关。相信那些抱怨缺乏软件安全技能的人们,包括开发团队和黑客们,会对此书有极大的兴趣,因为本书是至今以来最好的图书之一!
目录
第1章 软件——问题根源/1
第2章 攻击模式/24
第3章 逆向工程和程序理解/47
第4章 攻击服务器软件/110
第5章 攻击客户端软件/148
第6章 构造恶意输入/172
……[看更多目录]