| 作者 | (美)霍格兰德、(美)米哥罗|译者 |
| 出版社 | |
| 出版时间 | 2005-04-01 |
特色:
本书深入探讨了现实世界中的软件破解问题,解释了它们是如何以及为什么被破解的,介绍了相关的攻击模式,以及它们是如何被发现的。本书还展示了如何发现新软件的脆弱点以及如何利用这个脆弱点去攻破机器。 第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技术。 读者对象 本书适用于网络管理员、安全顾问、信息人士、开发人员以及希望编写安全代码的程序员。