目录 3
第1篇 现在就做 3
第1章 做好开门七件事 3
1.1 更改默认账号设置 5
1.1.1 更改默认口令 5
1.1.2 重命名或隐藏管理员账号 6
1.2 只为管理员任务使用管理员账号 10
1.2.1 在Microsoft Windows中使用runas命令 10
1.2.2 在Unix系统中使用su和sudo 11
1.3 识别未使用或不需要的端口 12
1.3.1 用netstat识别开放端口 13
1.3.2 利用OS特有的工具识别开放端口 17
1.4 禁止/关闭/删除未使用和不需要的服务及守护进程 18
1.4.1 禁止Windows中不必要的服务 18
1.4.2 用系统配置工具禁止预定的欺诈应用程序在启动时运行 21
1.4.3 禁止Unix中不必要的服务 22
1.5 删除欺诈连接:无线和拨号 24
1.6 为每种OS设置恶意内容过滤器 27
1.7 测试备份和恢复程序 28
第2篇 从顶层开始:系统地加固你的公司 33
第2章 为了安全,把网络划分成若干公共功能区 33
2.1 选择分段模式 34
2.1.1 根据工作职责划分网段 35
2.1.2 根据威胁等级划分网段 37
2.1.3 根据风险等级划分网段 38
2.1.4 根据服务类型划分网段 38
2.1.5 根据企业需求划分网段 39
2.2 选择适当的方式划分网段 42
2.2.1 从服务器处开始划分网段 42
2.2.2 使用网关设备划分网段 43
2.2.3 使用VLAN 50
2.2.4 使用VPN在被保护网段之间传输数据 53
第3章 用身份管理系统加固安全 54
3.1 理解身份管理驱动力 55
3.1.1 确定身份管理责任驱动力 55
3.1.2 确定身份管理节约成本和时间的驱动力 58
3.1.3 确定身份管理的安全驱动力 59
3.2 建立身份管理基础 60
3.2.1 采用基于标准的目录服务 60
3.2.2 根据企业需求选择身份管理解决方案 60
3.2.3 为实施身份管理解决方案做准备 63
3.2.4 识别内部权威来源 65
3.3 用身份管理增强公司访问控制策略 67
3.3.1 控制开始阶段 67
3.3.2 控制生成过程 69
3.3.3 控制管理过程 73
3.3.4 控制终止过程 75
3.4 通过工作流程和审计过程管理身份 76
第4章 加固跨平台认证 78
4.1 加固口令 79
4.1.1 加固用户口令 81
4.1.2 加固非用户口令 83
4.2 选择最安全的认证过程 84
4.2.1 基于个人所知的认证 85
4.2.2 基于不可变身体特征的认证 87
4.2.3 基于个人所有的认证 91
4.3 使用强认证保护敏感资源 95
4.4 加固认证资源 96
4.5 跨平台使用加固认证方法 98
第5章 加固Web服务 100
5.2 理解Web服务 102
5.1 加固Web服务环境 102
5.2.1 Web服务的处理是在机器之间的,而不是在人与机器之间 103
5.2.2 Web服务定义语言 104
5.2.3 REST和Plain-XML Web服务 104
5.2.4 RPC和基于文档的SOAP 104
5.2.5 传输独立性 105
5.3 理解和使用W3C、OASIS和WS-I等标准、概要和规范 106
5.4 实现Web服务的安全需求 107
5.4.1 为Web服务实现认证 107
5.4.2 用SAML和到网站授权的链接实现Web服务授权 111
5.4.3 保证消息完整性——XML Signature、PKCS#7 Signature、SSL/TLS和IPSec 111
5.4.4 实现保密性:XML Encryption、SSL/TLS和IPSec 114
5.4.7 保证Web服务的可用性 115
5.4.5 用XML Signature和XAdES提供Web服务审计 115
5.4.6 避免采用要求编辑XML文件来手工配置安全设置的解决方案 115
5.5 阻断“恶意XML”攻击 116
5.5.1 防止Web服务SQL注入 116
5.5.2 保护Web服务,使之免受捕获-重放攻击 117
5.5.3 确保应用服务器不处理DTD 118
5.5.4 为避免受到XML拒绝服务攻击(XDoS)而打补丁程序 119
5.5.5 不要盲目处理SOAP附件,因为其中可能藏有病毒 120
5.5.6 保证不会受到XML Signature重定向攻击 120
5.6 实现保证所在机构面向服务架构安全的策略 121
5.7 评价和实现保护Web服务的产品 122
5.6.3 保证SOA的可用性 122
5.6.2 取消安全边界 122
5.6.1 用安全令牌把安全上下文传递给服务层 122
5.7.1 Vordel——XML网关/防火墙和XML安全服务器 123
5.7.2 Teros——Web应用安全 124
5.7.3 Sarvega——XML路由器 125
第6章 加固移动环境 126
6.1 保护自身以避免在环境中移动设备的风险 127
6.1.1 制定移动设备安全策略 127
6.1.2 安全的移动认证 128
6.1.3 保护移动设备免遭恶意代码破坏 132
6.1.4 保护移动设备上存储的数据 132
6.2 保护环境以避免移动连接风险 133
6.2.1 保护环境避免近程连接威胁 134
6.2.2 保护环境避免中程连接威胁 137
6.2.3 保护环境避免远程连接威胁 137
第7章 超越访问控制:保护存储的数据 143
7.1 将加密作为一个安全层 144
7.2 精心选择密码系统 145
7.2.1 不要信赖私有加密系统 145
7.2.2 了解不同的密钥算法 145
7.2.3 加固对称密钥密码学的执行 147
7.3 了解保护数据是为了防备谁 158
7.4 确定加密什么以及为什么要加密 158
7.4.1 确定加密的法律需求 159
7.4.3 确定加密的内部商业需求 160
7.4.2 确定加密的外部商业需求 160
7.4.4 确定支持加密的良好的商业实践 161
7.5 加密数据库中的敏感数据 162
7.5.1 了解不使用数据库加密的普遍原因 163
7.5.2 为数据库选择良好的加密过程 164
7.6 提供“非”实时加密 169
7.7 在何处加密 170
7.7.1 客户端 171
7.7.2 服务器端 171
7.7.3 应用程序服务器端 171
7.7.4 网络中 172
7.7.5 数据库服务器端 172
7.8 认证 173
7.7.6 企业幕后端 173
7.9 让加密在环境中起作用 174
第8章 加固来自Web的数据库访问 177
8.1 在安装时保护DBMS 178
8.1.1 保护DBMS所在的操作系统 178
8.1.2 在只有很少的其他进程的服务器上安装DBMS 179
8.1.3 隔离DBMS使用的计算机或默认端口 179
8.1.4 为每个DBMS服务设置不同的账号 180
8.1.5 删除示例数据库和代码 181
8.2 使用许可保护数据 182
8.2.1 避免将DBMS认证用于OS登录ID 182
8.2.2 采用操作系统认证 183
8.2.3 使用应用程序角色保护程序访问 184
8.2.4 保护应用程序级安全程序中的登录 185
8.2.5 限制账号访问 185
8.2.6 保护内置账号和口令 188
8.2.7 在开发中施加保护并测试数据库 189
8.2.8 用操作系统文件许可保护DBMS 190
8.2.9 保护操作系统免遭DBMS启动的程序的威胁 191
8.3 使用应用程序分区和网络技术确保对DBMS的访问安全 192
8.3.1 使用防火墙关闭端口 192
8.3.2 隔离应用程序组件 192
8.3.3 隐藏错误信息 193
8.4.2 哈希或加密敏感数据 194
8.4.1 保护数据库连接串 194
8.4 利用良好的习惯来保护应用程序 194
8.4.3 加密客户端与服务器之间的通信 195
8.4.4 避免SQL注入攻击(SQL Injection) 196
8.5 监控和审计 197
8.5.1 DBMS监控工具 197
8.5.2 审计登录错误和成功登录 198
8.5.3 审计其他所有动作 199
8.5.4 审计检查 200
8.5.5 提前审计 201
8.5.6 策略检查 201
8.6 保护备份和存档 201
8.6.3 保护或模糊测试数据 202
8.6.1 保护数据的备份拷贝 202
8.6.2 验证远程备份的安全性 202
第9章 加固跨平台访问控制 204
9.1 了解操作系统访问控制 205
9.1.1 了解Unix的访问控制 205
9.1.2 理解Windows的访问控制 209
9.2 确定资源所需权限 218
9.3 理解基于角色的访问控制 219
9.4 加固跨平台的工具,以进行安全、无缝的访问控制 220
9.4.1 加固简单的或传统的文件共享/传输服务 220
9.4.2 理解并加固用于UNIX的Microsoft服务 221
9.4.3 理解并加固Samba 223
9.4.4 加固SMB 225
9.4.5 加固SAN 226
9.4.6 加固NFS 226
9.5 避免数据完整性问题 228
第10章 利用加密加固数据传输 229
10.1 利用加密加固数据传输 230
10.1.1 选择一个加密标准 230
10.1.2 选择一个加密协议 232
10.1.3 选择一种认证方式 237
10.2 决定是否应该使用加密 242
10.2.1 使用加密保护广域网通信 243
10.2.2 使用加密保护Internet通信 243
10.2.3 使用加密保护无线连接 244
10.2.4 使用加密保护基于局域网的主机通信 247
10.3 决定在何处使用加密 248
10.3.1 在广域网路由器之间实施加密 249
10.3.2 为VPN连接执行加密 251
10.3.3 在主机之间实施加密 253
第11章 加固远程客户端 261
11.1 选择远程访问的方式 262
11.1.1 采用基于代理的远程访问 263
11.1.2 保护直接远程访问的安全 268
11.2 保护远程客户端 270
11.2.1 加固物理安全 270
11.2.2 控制逻辑访问 271
11.2.3 采用个人防火墙 275
11.2.4 控制程序执行 279
11.2.5 保证软件完整性 280
11.3 保护远程客户端的数据 281
11.3.1 用加密手段保护数据 281
11.3.2 通过硬件限制来保护数据 284
11.3.3 通过软件限制来保护数据 284
11.4 维护远程客户端的安全策略 286
第12章 加固无线网络 288
12.1 规划安全的无线网络 289
12.2 寻找并破坏非善意无线局域网 294
12.2.1 使用无线局域网发现规程 295
12.3 设计自己的无线局域网拓扑 298
12.2.2 去除非善意无线接入点 298
12.3.1 统一的无线和有线网络 299
12.3.2 分段的无线和有线网络 300
12.3.3 无线网络以VPN方式访问有线网络 303
12.3.4 在远程/分公司办公室提供安全的无线局域网 304
12.4 加固无线广域网 304
12.4.1 CDPD(Cellular Digital Packet Data) 305
12.4.2 CDMA(Code Division Multiple Access) 305
12.4.3 GPRS(General Packet Radio Service) 305
第13章 加固混合Unix网络 306
13.1 理解混合Unix环境的基本问题 307
13.1.1 理解各种版本和支持模型 308
13.1.2 了解文化差异 309
13.2 保护Root账户 312
13.2.1 为不包括sudo的Unix平台添加sudo程序 312
13.2.2 sudo委托的配置 313
13.2.3 配置用户账户和口令 314
13.2.4 删除明文服务 316
13.2.5 减少所运行的服务的数量 317
13.2.6 打补丁 318
13.2.7 监控日志文件 319
13.2.8 从物理上保证Unix系统的安全 325
13.2.9 查看具体厂商的Unix加固资源 325
第14章 入侵检测和响应 326
14.1 设计入侵检测/防御系统 327
14.1.1 了解拓扑所需要的IDS/IPS类型 328
14.1.2 选择IDS和拓扑以满足操作需求 331
14.1.3 确定IDS的放置和监控需求 332
14.2 部署入侵检测系统 335
14.2.1 Snort:一种实用的IDS 336
14.2.2 调节IDS 337
14.3 加固入侵检测/防御系统 339
14.4 保护IDS操作 340
14.4.1 保护IDS通信 340
14.4.3 保护数据库访问权限 341
14.5 规划入侵响应过程 341
14.4.2 保护配置文件 341
14.5.1 了解入侵响应阶段 342
14.5.2 成立入侵响应小组 342
14.5.3 为入侵做准备 344
14.5.4 制定计划,测试计划,执行计划 345
第15章 管理恶意代码 346
15.1 垃圾邮件:防范1号公敌 348
15.2 防止成功的钓鱼式攻击 353
15.2.1 用反垃圾邮件软件识别并封锁钓鱼式攻击 354
15.2.2 教用户学会识别钓鱼式攻击 354
15.2.3 警惕新型的钓鱼式攻击 355
15.3.1 在所有计算机上安装并维护反病毒软件 356
15.3 防止任何系统感染病毒 356
15.3.2 在电子邮件网关处扫描病毒 357
15.3.3 对用户进行培训,增强他们防范病毒的能力 358
15.4 防范蠕虫 359
15.5 投身补丁战 359
15.6 防范间谍软件 361
15.7 防止Web应用受到基于Web的攻击 363
15.7.1 对开发人员进行培训,使之了解典型的Web攻击 363
15.7.2 对开发人员进行培训,使之不局限于已知的编程缺陷 365
15.7.3 采用应用层防火墙 365
第16章 加固湿件 368
16.1 最终用户:是朋友还是敌人 369
16.2.1 制定适用于所有用户的可接受使用策略 370
16.2 打好基础:策略和规程 370
16.2.2 防范知识产权盗窃 372
16.2.3 实施策略 373
16.3 制定培训计划:团队的构建 375
16.3.1 确定培训的具体目标 375
16.3.2 明确对培训师的要求 375
16.3.3 确定对培训的要求 377
16.4 培养沟通技能 391
16.4.1 提供跨部门的培训 391
16.4.2 让IT职员跳出IT技术之外 392
第3篇 永远没有一劳永逸 395
第17章 混合网络安全性评估与测试 395
17.1.1 了解客户的需求 397
17.1 评估前的准备 397
17.1.2 确定关键联系人 399
17.1.3 创建关于系统和信息的重要性矩阵 399
17.1.4 确定是否需要做渗透测试 400
17.1.5 获得客户的正式同意 402
17.1.6 确定要评估的系统和流程 402
17.1.7 最终确定测试计划 414
17.1.8 协调关于最终保障的任何问题 414
17.2 实施评估 415
17.2.1 离场工作 415
17.2.2 实施现场评估 416
17.3.1 完成需要做的任何后续工作 419
17.3 评估后的处理 419
17.2.3 提供最初反馈和状态 419
17.3.2 最终完成审计报告 420
第18章 变革管理 421
18.1 确定和划分变革管理场景 422
18.1.1 把规划内变革和规划外变革区分开 422
18.1.2 把被动变革减少到最低限度 423
18.1.3 管理与新业务相关的变革 424
18.1.4 管理技术变革 424
18.1.5 变革的发现与监控 425
18.2 开发变革管理框架 426
18.2.1 确定并指派角色 427
18.2.3 开发集中式变革跟踪机制 428
18.2.2 使变革管理成为安全策略的一部分 428
18.2.4 确定从头至尾的大致流程 430
18.2.5 获取管理层的支持 431
18.2.6 建立变革告知系统 431
18.2.7 提供变革请求与实施的集中式知识库 431
18.3 开发变革管理流程 432
18.3.1 记录并测度当前状态 432
18.3.2 确定变革的影响 432
18.3.3 争取使变革获得批准 433
18.3.4 对变革做充分测试 433
18.3.5 把变革记入文档 434
18.3.6 评估所提出的变革 434
18.3.9 报告成功 436
18.3.7 规划并告知受影响的群体 436
18.3.8 部署变革 436
18.3.10 完成变革流程 437
18.3.11 测试遵守安全轮廓及改进安全轮廓的情况 437
第19章 打安全补丁 438
19.1 确定需要对什么打补丁 440
19.1.1 验证软件/硬件更新和补丁许可证 440
19.1.2 找出所有技术产品 441
19.2 找出可靠的漏洞消息来源并确定补丁的可用性 444
19.2.1 使用独立新闻组或列表 444
19.2.2 搜索多个漏洞数据库和门户网站 444
19.2.3 利用厂商的安全网站和公告列表 446
19.3 获取经验证的补丁 447
19.3.1 选择无代理的“推”式补丁管理工具 448
19.3.2 选择基于代理的“拉”式补丁管理工具 448
19.4 验证补丁的可靠性 449
19.5 确定哪些系统应在何时打哪些补丁 450
19.5.1 确定必须要打哪些补丁 450
19.5.2 了解厂商的补丁发布战略 451
19.5.3 判断是否有必要安装补丁、安装修复程序、更改配置或采取规避措施 451
19.5.4 选择要打补丁的计算机系统 452
19.5.5 确定何时安装安全补丁 453
19.5.6 在规划过程中应有系统所有者的参与 453
19.5.7 做好应对业务中断的准备 453
19.6 测试补丁和测试打补丁流程 454
19.7 安装安全补丁 455
19.7.1 给远程客户端打补丁 455
19.7.2 提供不要求提升权限即可运行的打补丁软件 455
19.7.3 针对大量系统实施快速安装 456
19.7.4 使用由厂商提供的补丁-更新软件 456
19.7.5 使用来自第三方的打补丁工具 459
19.8 审计被打上补丁的系统 460
19.8.1 测试威胁或漏洞是否已经消失 460
19.8.2 使用补丁检查工具 461
19.9 进行脆弱性评估 462
第20章 安全评估 463
20.1 评估最终用户遵守和接受规定的情况 464
20.1.1 确定和使用常见违规问题列表 465
20.1.2 实施非正式评估 466
20.1.3 实施正式评估 469
20.2 实施事件后评估 475
20.2.1 在基础结构出现重大变动后实施评估 475
20.2.2 在兼并或收购之后进行评估 476
20.2.3 在发现新威胁或新漏洞后实施评估 476
20.2.4 在员工工作效率下降时实施评估 480
20.2.5 为实施新法规而进行评估 481
20.2.6 在审计发现不符合规定时进行评估 483
20.2.7 在发现有违规情况或安全事件时进行评估 483
20.2.8 在关键人员离开公司后实施评估 484
第21章 安全管理的策略 487
第4篇 如何成功完成加固 487
21.1 把同事看作“客户” 488
21.2 理解安全管理中的各种角色 489
21.2.1 从人力资源部门开始启动安全流程 489
21.2.2 让法律部搞清法规要求 491
21.2.3 与物理安全团队合作 492
21.2.4 建立一流的IT安全部门 493
21.2.5 用管理者的语言与管理层交流 497
21.2.6 鼓励最终用户遵守规定 503
21.2.7 让所有部门通力合作 503
第22章 不要对安全无动于衷 505
22.1 阐明进行安全防范的理由 506
22.2 收集支持安全防范的统计数据 507
22.3 了解对安全持冷漠态度者的想法 508
22.4 提高管理层对投资于安全的认识 509
22.5 制定安全策略 509
22.5.1 获取管理高层的支持 510
22.5.2 制定切实可行的安全规程和指导原则 511
22.6 制定提高安全意识的计划 511
22.7 吸取到的教训 512
22.7.1 了解对安全措施的抵制是否实际上是对安全措施不完善的一种关注 512
22.7.2 明确规定对不遵守安全策略的行为的惩戒措施 514
22.7.3 很多对安全持冷漠态度的人都认为自己计算机的安全应该由其他人负责保护 515
22.7.4 对安全的无动于衷可能带来惨重的教训 516