数据库是经济的控制中心。您的各种个人信息都存储在数据库中——病历档案、银行账户、工作经历、养老金、汽车登记,甚至子女的上学信息和您购买的食品。数据库攻击是残酷无情的。\r\n 本书是继The Shellocoder''s Handbook之后的以一本精品图书,4名世界顶级安全专家将手把手教您如何入侵和防御7种当今最流行的数据库服务器。本书详细介绍了如何识别漏洞、攻击是如何发生的,以及停止对数据库的残酷攻击。“坏人”是知道所有这一切的,您了应该知道。\r\n 本书主要内容\r\n 标识和向Oracl及Microsoft SQL Server中插入新的漏洞。\r\n 学习对IBM的DB2、PostgreSQL、Sybase ASE及MySQL服务器的最佳防护。\r\n 揭露黑客如何利用这几种方式来访问数据库:缓冲区溢区、通过SQL的特权提升、存储过程或触发器滥用,以及SQL注入等。\r\n 识别每种数据库特有的漏洞。\r\n 查明攻击者已经知道了哪些内容。
第I部分 引 言\r\n 第1章 关注数据库安全的原因 \r\n第Ⅱ部分 Oracle\r\n 第2章 Oracle体系结构 \r\n 第3章 攻击Oracle \r\n 第4章 Oracle:深入网络 \r\n 第5章 保护Oracle\r\n第Ⅲ部分 DB2\r\n 第6章 IBM DB2通用数据库 \r\n 第7章 DB2:发现、攻击和防御 \r\n 第8章 攻击DB2 \r\n 第9章 保护DB2 \r\n第Ⅳ部分 Informix\r\n 第10章 Informix体系结构 \r\n 第11章 Informix:发现、攻击和防御 \r\n 第12章 保护Informix \r\n第Ⅴ部分 Sybase ASE\r\n 第13章 Sybase体系结构 \r\n 第14章 Sybase:发现、攻击和防御 \r\n 第15章 Sybase:深入网络 \r\n 第16章 保护Sybase \r\n第Ⅵ部分 MySQL\r\n 第17章 MySQL体系结构 \r\n 第18章 MySQL:发现、攻击和防御 \r\n 第19章 MySQL:深入网络 \r\n 第20章 保护MySQL \r\n第Ⅶ部分 SQL Server\r\n 第21章 Microsoft SQL Sever体系结构 \r\n 第22章 SQL Server:漏洞、攻击和防御 \r\n 第23章 保护SQL Server \r\n第Ⅷ部分 PostgreSQL\r\n 第24章 PostgreSQL体系结构 \r\n 第25章 PostgreSQL:发现与攻击\r\n 第26章 保护PostgreSQL\r\n附录A 时间延迟SQL注入Harness的C代码示例\r\n附录B 危险的扩展存储过程 \r\n附录C Oracle默认用户名和口令
《数据库黑客大曝光—— 数据库服务器防护术》是一本关于数据库安全的书籍,为那些试图保护网络中的数据库系统或者因安全问题而审计客户网络的人们提供了实用的参考资源。
0.1 本书读者对象
本书是为那些对数据库安全的实际问题感兴趣的人们编写的,包括数据库管理员、网络管理员、安全审计员和广大安全研究团体。本书介绍了大量技术,并假设读者熟悉一些知名的安全概念,例如缓冲区溢出、格式化字符串bug、SQL注入和基本网络结构等。在本书中,我们使用C和C++,有时也将源代码汇编,但是一般来说,无需编程技巧就可以理解本书的内容。
最重要的是,本书是为需要确保其数据库系统尽可能安全的人们编写的。
0.2 本书主要内容
本书主要涉及了7个主流数据库系统(Oracle、DB2、Informix、Sybase ASE、MySQL、SQL Server和PostgreSQL)各自实际安全问题的特定细节。我们讨论了隐藏在这些问题背后的机制,并对如何处理这些问题进行了分析,给出了具体的措施和较通用的配置准则。安全问题是不断变化的,本书中的大量内容都是专门针对具体的bug的,但是对一般类型的安全漏洞的结论和讨论在未来几年内仍将有效。
0.3 本书主要结构
本书共分为8个部分,包括26章和3个附录。在各个独立章节中讨论数据库系统。
第I部分 引言
第1章 关注数据库安全的原因
第II部分 Oracle
第2章 Oracle体系结构
第3章 攻击Oracle
第4章 Oracle:深入网络
第5章 保护Oracle
第III部分 DB2
第6章 IBM DB2 通用数据库
第7章 DB2:发现、攻击和防御
第8章 攻击DB2
第9章 保护DB2
第IV部分 Informix
第10章 Informix体系结构
第11章 Informix:发现、攻击和防御
第12章 保护Informix
第V部分 Sybase ASE
第13章 Sybase体系结构
第14章 Sybase:发现、攻击和防御
第15章 Sybase:深入网络
第16章 保护Sybase
第VI部分 MySQL
第17章 MySQL体系结构
第18章 MySQL:发现、攻击和防御
第19章 MySQL:深入网络
第20章 保护MySQL
第VII部分 SQL Server
第21章 Microsoft SQL Server体系结构
第22章 SQL Server:漏洞、攻击和防御
第23章 保护SQL Server
第VIII部分 PostgreSQL
第24章 PostgreSQL体系结构
第25章 PostgreSQL:发现和攻击
第26章 保护PostgreSQL
附录A 时间延迟SQL注入Harness的C代码示例
附录B 危险的扩展存储过程
附录C Oracle默认用户名和口令
在每个章节内,都讨论了数据库的基本体系结构—— 如何在网络中发现它、大致的构造方式以及可能具备的每个结构特性。进而描述对系统的攻击方法,讨论各种类型的安全问题,攻击者如何利用这些问题,以及防御方法。然后讨论了攻击者可以进一步访问网络和侵入数据库服务器的方法。最后,以方便快捷的参考指南形式,讨论了保护数据库的最佳方法。
0.4 使用本书的条件
因为本书是技术性书籍,所以当您阅读各个章节时,也许会发现本书对访问我们正在讨论的系统非常有用。我们所讨论的数据库系统都是最流行的,并且所有相关开发商都免费提供了测试版软件。有关开发商细节的Web站点可以在相关章节中找到。
0.5 本书合作站点
本书提供了合作站点,您可以在合作站点上找到本书的代码示例和示例程序,并可以下载。只要在浏览器内输入www.wiley.com/go/dbhackershandbook或www.tupwk.com.cn /downpage/index.asp即可。
David Litchfield 是查找重大安全漏洞的非官方世界记录保持者,包括Oracle 9i数据库服务器中的重大安全缺口。
为何要关注数据库安全呢?
如果说网络遍地是金钱,那么金钱就在数据库服务器中。当我们说现代经济依赖于计算机时,我们真正的意思是说现代经济依赖于数据库系统。数据库躲在几乎影响着我们生活的每一方面的系统背后—— 我们的银行账户、医疗记录、养老金、工作履历、电话记录、纳税记录、汽车登记明细、超市购物及子女的学习成绩—— 几乎生活中的每条重要信息都保存在现代关系数据库管理系统中。本书涵盖了7个主流关系数据库系统,您的私人信息或许碰巧正保存在某个系统中,而该系统正是本书的一个主题。
我们(本书的作者)认为数据库安全是一个最重要的信息安全问题。如果数据库系统(我们绝对相信这个系统可以保存最敏感的数据)不安全的话,这对我们的生活乃至社会的潜在影响可能是毁灭性的。
那么,我们为什么要出版一本描述数据库攻击方法的书呢?我们只是想将这个信息传递给数据库管理员、安全专家和网络审计员,以便于从事系统防御工作的人们能够更充分地了解别人是如何攻击他们的。我们正在提防着的那些人已经充分了解了如何进行攻击,他们持续的侵犯就依赖于这个事实。本书不可能教会他们一些他们尚不知道的知识。与大多数软件开发商已经使您相信的事实相反,发现安全bug并不十分困难。独立研究者每报告给开发商一个bug,就有可能存在好几个bug没有被知道它们的人告知给开发商。我们相信,防御您的网络和数据库免受这些未知bug的攻击的最佳方式是,细致地理解已知bug的技法,并尝试创建可阻止这类bug的配置,而不是简单地安装补丁和希望无人攻击您。
数据库保护常常采用试验并测试的原理,这一原理已经在网络安全中使用了几十年 —— 实施权限最小化,通过删除不必要的功能减少“攻击面”,严格限制身份验证和访问控制,将功能划分成不同区域,实施加密……惟一真正不同的是,在数据库中,这些机制作用于数据库自身的微型世界。
阅读开发商提供的关于安全的文献十分有用,并且现代数据库所实现的诸多安全措施也令人感到放心。几乎所有的数据库系统都有权限概念、访问控制、全面的审计工具和可控制的系统访问组件。数据库开发商竞相获取安全认证来证明他们已经恰当地实现了这些机制。问题是尽管这些认证很重要,但它们仅仅是问题的一部分而决不是最重要的部分。
本书所讨论的所有数据库都存在缓冲区溢出问题,而缓冲区溢出违反了几乎所有的安全机制。我们将信心建立在安全标准、评估和鉴定上是行不通的,我们应该采取实际行动来维护数据库系统的安全,这正是本书的全部内容。
无封面