本书深入探讨了现实世界中的软件破解问题,解释了它们是如何以及为什么被破解的,介绍了相关的攻击模式,以及它们是如何被发现的。本书还展示了如何发现新软件的脆弱点以及如何利用这个脆弱点去攻破机器。
第1章介绍了软件是计算机系统安全问题的根本原因。引入了“问题三组合”——复杂性、可扩展性以及连通性——并描述了为什么软件安全问题是不断成长的。还介绍了软件的一些特征以及它们在软件攻击中的含义。
第2章介绍了实现bug和体系结构缺陷之间的区别,讨论了开放式系统的安全问题,并解释了为什么冒险管理是最明智的办法。介绍了现实世界中的两个攻击案例:一个比较简单,另一个在技术上比较复杂。本章的核心是讨论攻击模式,给出了攻击模式是如何适应不同网络安全特征的,并在本书的其他部分也介绍了攻击模式。
第3章的主题是逆向工程。攻击者反汇编、反编译以及解构程序来理解程序是如何工作的,以及如何阻止程序这样工作。在这一章里还介绍了常用的灰箱分析技术,包括利用安全补丁作为攻击地图的思想等。介绍了交互式反汇编程序(Interactive Disassembler,IDA),它是黑客用于理解程序行为的工具。我们还仔细介绍了实用的黑客工具是如何被开发及使用的。
1