书籍详情

数据库黑客大曝光:数据库服务器防护术

数据库黑客大曝光:数据库服务器防护术

作者:(美)里奇费尔德 等著,闫雷鸣,邢苏霄 译

出版社:清华大学出版社

出版时间:2006-12-01

ISBN:9787302140788

定价:¥48.00

购买这本书可以去
内容简介
  用主动防护对抗入侵.数据库是经济的控制中心。您的各种个人信息都存储在数据库中——病历档案、银行账户、工作经历、养老金、汽车登记,甚至子女的上学信息和您购买的食品。数据库攻击是残酷无情的。本书是继The Shellcoder's Handbook之后的又一本精品图书,4名世界顶级安全专家将手把手教您如何入侵和防御7种当今最流行的数据库服务器。本书详细介绍了如何识别漏洞、攻击是如何发生的,以及如何停止对数据库的残酷攻击。“坏人”是知道所有这一切的,您也应该知道。本书主要内容..·标识和向Oracle及Microsoft SQL Server中插入新的漏洞。·学习对IBM的DB2、PostgreSQL、Sybase ASE及MySQL服务器的最佳防护。·揭露黑客如何利用这几种方式来访问数据库:缓冲区溢出、通过SQL的特权提升、存储过程或触发器滥用,以及SQL注入等。·识别每种数据库特有的漏洞。·查明攻击者已经知道了哪些内容。...
作者简介
  本书提供作译者介绍David Litchfield专门研究数据库系统及Web应用程序所面临的新威胁,保持着发现主要安全缺陷的非官方世界纪录。曾就数据库安全问题到英国和美国政府安全机构演讲,是Blackhat Security Briefings的正式发言人。他是The Shellcoder’s Handbook、SQL Server Security和Special Ops的合著者。业余时间在Next Generation Security Software Ltd.公司任管理董事。.Chris Anley是最畅销的有关安全漏洞研究的书The Shellcoder’s Handbook的合著者。发表了针对大量数据库系统,包括SQL Se...
目录
第I部分  引    言
第1章  关注数据库安全的原因    3
1.1  最安全的数据库    3
1.2  数据库安全研究现状    4
1.3  讨论数据库安全研究现状
    的意义    10
1.4  寻找数据库服务器的漏洞    10
     1.4.1  不要相信文献    11
     1.4.2  实现自己的客户程序    11
1.4.3  调试系统,理解它是
如何运行的    11
     1.4.4  标识通信协议    11
     1.4.5  理解任意代码执行bug    12
     1.4.6  写下自己的“fuzzer”    12
1.5  小结    12
第Ⅱ部分  Oracle
第2章  Oracle体系结构    15
2.1  分析Oracle体系结构    15
2.2  Oracle RDBMS    21
2.3  Oracle Intelligent Agent    22
2.4  Oracle的身份验证和授权    27
2.5  数据库身份验证    28
     2.5.1  授权    30
     2.5.2  关键系统特权    30
     2.5.3  Oracle审计    31
第3章  攻击Oracle    33
3.1  扫描Oracle服务器    33
     3.1.1  常用端口    33
     3.1.2  TNS Listener    34
3.2  Oracle中的PL/SQL    42
3.3  PL/SQL Injection    46
3.4  注入DELETE、INSERT
     及UPDATE语句    52
     3.4.1  注入INSETRT语句    52
     3.4.2  实际示例    53
3.5  注入匿名的PL/SQL代码块    54
3.6  用DBMS_SQL执行用户
  自定义查询    56
3.7  实际示例    59
3.8  PL/SQL和Oracle Application
  Server(Oracle应用程序
  服务器)    62
3.9  小结    65
第4章  Oracle:深入网络    67
4.1  运行操作系统命令    67
4.1.1  通过PL/SQL运行
OS命令    67
4.1.2  通过DBMS_SCHEDULER
运行OS命令    69
     4.1.3  通过Java运行OS命令    70
4.2  访问文件系统    70
4.3  访问网络    72
4.4  PL/SQL和网络    73
     4.4.1  UTL_TCP    73
     4.4.2  UTL_HTTP    75
     4.4.3  UTL_SMTP    75
4.5  小结    76
第5章  保护Oracle    77
5.1  Oracle安全建议    77
5.2  Oracle数据库服务器    79
     5.2.1  账户    79
     5.2.2  角色    80
     5.2.3  DBA角色    81
第Ⅲ部分  DB2
第6章  IBM DB2通用数据库    87
6.1  引言    87
6.2  DB2部署场景    87
6.3  DB2进程    93
6.4  DB2物理数据库布局    95
     6.4.1  Windows上的DB2    95
     6.4.2  Linux上的DB2    95
6.5  DB2逻辑数据库布局    95
6.6  DB2身份验证和授权    96
6.7  授权    105
     6.7.1  DBAUTH视图    105
     6.7.2  TABAUTH视图    106
     6.7.3  ROUTINEAUTH视图    107
6.8  小结    108
第7章  DB2:发现、攻击和防御    109
第8章  攻击DB2    119
8.1  DB2过程和函数的
  缓冲区溢出    119
8.2  DB2远程命令服务器    122
8.3  通过DB2运行命令    124
8.4  通过DB2访问文件系统    125
     8.4.1  加载方式    125
     8.4.2  XML函数    125
8.5  本地攻击DB2    126
8.6  小结    134
第9章  保护DB2    135
9.1  保护操作系统    135
9.2  保护DB2网络接口    135
9.3  保护DBMS    136
9.4  删除不必要组件    136
9.5  小结    136
  
第Ⅳ部分  Informix
第10章  Informix体系结构    139
10.1  分析Informix体系结构    139
     10.1.1  网络上的Informix    139
10.1.2  连接远程Informix
   服务器    139
10.2  Informix逻辑布局    140
第11章  Informix:发现、攻击
         和防御    145
11.1  攻击和防御Informix    145
     11.1.1  身份验证提交攻击    155
     11.1.2  共享内存、用户名
            和口令    157
11.2  用SPL攻击Informix    160
     11.2.1  通过SPL运行任意命令    160
     11.2.2  加载任意库    164
     11.2.3  读、写服务器上的
           任意文件    164
11.3  Informix内的SQL
缓冲区溢出    164
11.4  小结    167
第12章  保护Informix    169
12.1  为服务器持续打补丁    169
12.2  加密网络通信量    169
12.3  取消Public的Connect
特权    169
12.4  启用审计    169
12.5  取消Public对文件访问
例程的权限    169
12.6  取消Public对模块例程
的执行权限    170
12.7  阻止转储共享内存    170
12.8  阻止对基于Unix的
服务器的本地攻击    170
12.9  限制语言Usage权限    170
12.10  有用文档    170
第Ⅴ部分  Sybase ASE
第13章  Sybase体系结构    175
13.1  Sybase背景    175
13.2  历史    175
13.3  显著特性    176
     13.3.1  Java-In-ASE    176
     13.3.2  部署场景    178
     13.3.3  防火墙对Sybase
            的含意    180
     13.3.4  与Sybase通信    181
     13.3.5  特权模型    181
     13.3.6  登录账户基础    181
     13.3.7  口令和口令复杂性    182
     13.3.8  服务交互    183
第14章  Sybase:发现、攻击
         和防御    185
14.1  发现目标    185
     14.1.1  扫描Sybase    185
     14.1.2  Sybase版本号    185
     14.1.3  窥探身份验证    186
14.2  攻击Sybase    186
     14.2.1  Sybase中的SQL注入    187
     14.2.2  SQL注入基础    187
14.3  Sybase内的MS SQL Server
      注入技术    190
     14.3.1  注释    190
     14.3.2  Union Select    191
     14.3.3  错误消息    191
     14.3.4  @@version    191
     14.3.5  Having/Group By    192
     14.3.6  SQL批处理注入    192
     14.3.7  xp_cmdshell    193
     14.3.8  xp_regread    193
     14.3.9  自定义的扩展存储过程    193
14.3.10  调用CHAR函数以
绕过引号筛选器    193
     14.3.11  SHUTDOWN    194
14.3.12  通过sp_password
逃避审计    194
     14.3.13  连接服务器    194
14.3.14  利用时间延迟作
通信通道    195
14.3.15  VARBINARY字面值
编码和Exec    197
14.4  外部文件系统访问    197
14.5  防御攻击    199
14.6  过去已知的一些Sybase
ASE安全bug    199
14.6.1  CAN-2003-0327——远
   程口令数组溢出    199
     14.6.2  DBCC CHECKVERIFY
            缓冲区溢出    199
     14.6.3  DROP DATABASE
            缓冲区溢出漏洞    200
     14.6.4  xp_freedll缓冲区溢出    200
14.7  Sybase版本工具    200
第15章  Sybase:深入网络    207
15.1  访问网络    207
15.2  用Sybase连接其他服务器    207
15.3  SQL中的Java    208
     15.3.1  JSQL TDS客户端    210
     15.3.2  JSQL TCP代理    212
15.4  特洛伊(Trojanning)Sybase    213
     15.4.1  授予用户sa或sso_role
            权限    213
     15.4.2  允许直接更新系统表,
            授权访问选择的系统表    214
第16章  保护Sybase    215
16.1  Sybase安全一览表    215
     16.1.1  背景    215
     16.1.2  操作系统    215
     16.1.3  Sybase用户    215
     16.1.4  Sybase配置    216
16.2  背景    216
16.3  操作系统    216
16.4  Sybase用户    217
16.5  Sybase配置    218
第Ⅵ部分  MySQL
第17章  MySQL体系结构    223
17.1  分析物理数据库结构    223
     17.1.1  部署    224
     17.1.2  WinMySQLAdmin
           自动启动    225
     17.1.3  默认用户名和口令    225
     17.1.4  协议    226
     17.1.5  身份验证协议中的bug    226
17.2  分析逻辑数据库结构    229
     17.2.1  MySQL逻辑数据库
            结构    229
     17.2.2  存储引擎    230
     17.2.3  文件系统布局    231
     17.2.4  查询批处理    231
     17.2.5  分析用户和组    231
17.3  利用体系结构设计缺陷    237
     17.3.1  用户定义函数    237
     17.3.2  访问控制系统缺陷    239
     17.3.3  缺少安全影响特性    240
     17.3.4  缺少提高安全的特性    241
第18章  MySQL:发现、攻击
         和防御    243
18.1  发现目标    243
     18.1.1  扫描MySQL    243
     18.1.2  MySQL版本号    243
     18.1.3  窥探身份验证    244
18.2  黑掉MySQL    245
     18.2.1  MySQL中的SQL注入    245
18.2.2  已知的一些
   MySQL bug    251
     18.2.3  特洛伊(Trojanning)
            MySQL    258
18.3  本地攻击MySQL    263
     18.3.1  竞争条件    264
     18.3.2  溢出    264
18.4  再论MySQL文件结构    264
第19章  MySQL:深入网络    265
19.1  MySQL客户机散列
     身份验证补丁    265
19.2  运行外部程序:用户
      定义函数    266
19.3  Windows中的用户
      定义函数    268
19.4  小结    272
第20章  保护MySQL    273
20.1  MySQL安全一览表    273
     20.1.1  背景    273
     20.1.2  操作系统    273
     20.1.3  MySQL用户    274
     20.1.4  MySQL配置    274
     20.1.5  例行审计    274
20.2  背景    275
20.3  操作系统    275
20.4  MySQL用户    276
20.5  MySQL配置    278
20.6  例行审计    279
第Ⅶ部分  SQL Server
第21章  Microsoft SQL Sever
         体系结构    283
21.1  SQL Server背景    283
21.2  物理体系结构    284
     21.2.1  表格数据流(TDS)协议    284
     21.2.2  网络库    285
     21.2.3  SQL Server进程和端口    285
     21.2.4  身份验证和授权    287
21.3  逻辑体系结构    290
     21.3.1  存储过程    291
     21.3.2  触发器    295
21.4  用户和组    296
     21.4.1  账户信息    296
     21.4.2  口令加密    298
第22章  SQL Server:漏洞、
         攻击和防御    303
22.1  漏洞    303
22.2  利用设计错误    303
     22.2.1  SQL Slammer 溢出    303
     22.2.2  \x08前导字节溢出    304
     22.2.3  \x0A前导字节网络DoS    304
     22.2.4  客户机溢出    305
22.3  SQL 注入    305
     22.3.1  系统级别的攻击    309
     22.3.2  其他攻击向量    309
     22.3.3  时间延迟    310
     22.3.4  存储过程    311
     22.3.5  端口扫描    313
     22.3.6  批处理查询    313
     22.3.7  SQL注入的防御    313
22.4  掩盖入侵痕迹    315
     22.4.1  三字节补丁    315
     22.4.2  XSTATUS后门    317
第23章  保护SQL Server    319
23.1  安装    319
     23.1.1  步骤1:身份验证    319
     23.1.2  步骤2:口令强度    321
     23.1.3  步骤3:操作系统锁定    321
     23.1.4  步骤4:安装后的锁定    322
23.2  配置    323
     23.2.1  步骤5:配置网络库    323
23.2.2  步骤6:配置审计
   和警报    323
     23.2.3  步骤7:锁定特权    323
     23.2.4  步骤8:删除不需要
            的功能和服务    324
     23.2.5  步骤9:删除存储过程    325
     23.2.6  步骤10:安装安全补丁    326
第Ⅷ部分  PostgreSQL
第24章  PostgreSQL体系结构    329
24.1  分析物理数据库体系结构    329
     24.1.1  安全部署    329
     24.1.2  通用部署场景    330
     24.1.3  术语    330
24.2  PostgreSQL文件结构    331
     24.2.1  协议    332
     24.2.2  身份验证    333
     24.2.3  系统目录    335
     24.2.4  分析用户和组    338
     24.2.5  存储过程    339
第25章  PostgreSQL:发现与攻击    341
25.1  寻找目标    341
25.2  PostgreSQL协议    342
25.3  针对PostgreSQL的网络
      攻击    343
     25.3.1  网络嗅探    343
     25.3.2  ARP欺骗和TCP劫持    343
     25.3.3  ident欺骗    344
25.4  来自攻陷资源的信息泄露    345
25.5  已知的各种PostgreSQL
      bug    346
     25.5.1  配置漏洞    347
     25.5.2  代码执行漏洞    347
     25.5.3  PostgreSQL组件中
            的漏洞    351
25.6  PostgreSQL中的SQL注入    353
     25.6.1  有用的内置函数    356
     25.6.2  使用PostgreSQL 8.0中
            的时间延迟    357
25.6.3  存储过程中的
        SQL注入    357
     25.6.4  其他应用程序中的SQL
            注入漏洞    358
25.7  与文件系统进行交互    359
     25.7.1  大对象支持    361
     25.7.2  通过共享对象
           使用扩展    361
     25.7.3  LOAD命令    363
25.8  小结    365
第26章  保护PostgreSQL    367
附录A  时间延迟SQL注入
        Harness的C代码示例    369
附录B  危险的扩展存储过程    373
附录C  Oracle默认用户名和口令    377
  
  
  
  
猜您喜欢

读书导航