图书目录

目    录 

第1章  软件安全基础 1

1.1  软件安全基本概念 1

1.1.1  软件安全概述 1

1.1.2  软件安全知识体系 4

1.1.3  软件安全的相关领域 4

1.1.4  软件安全常用名称及定义 8

1.1.5  软件安全调试工具 10

1.2  软件安全问题的现状 11

1.2.1  当前的软件安全问题 12

1.2.2  造成软件不安全的原因 13

1.2.3  软件缺陷和漏洞 15

1.2.4  针对软件安全问题的测试 17

1.3  软件安全相关标准 21

1.3.1  安全规则与规章 22

1.3.2  软件安全的原则 24

1.3.3  软件安全相关的国际标准 26

1.4  本章小结 26

第2章  软件安全设计与编程 27

2.1  安全的软件开发周期 27

2.1.1  将安全测试融入整个软件开发生命周期中 28

2.1.2  安全原则、规则及规章 29

2.1.3  安全需求:攻击用例 29

2.1.4  架构、设计评审和威胁建模 31

2.1.5  安全编码原则 31

2.1.6  白盒、灰盒与黑盒测试 32

2.1.7  判定可利用性 33

2.1.8  安全地部署应用程序 36

2.1.9  角色和职责 37

2.2  软件安全编程 37

2.2.1  内存安全 37

2.2.2  进程与线程安全 38

2.2.3  异常与错误处理中的安全 41

2.2.4  输入安全 42

2.2.5  面向对象中的安全编程 46

2.2.6  Web编程安全 48

2.2.7  远程过程调用安全 56

2.3  本章小结 57

第3章  软件安全技术 59

3.1  加密技术 59

3.1.1  加密概述 59

3.1.2  加密方法及技术 60

3.1.3  密钥安全 62

3.2  认证及身份验证技术 63

3.2.1  身份与认证 63

3.2.2  身份验证技术 64

3.3  访问控制技术 69

3.3.1  访问控制和安全机制的设计原则 69

3.3.2  访问控制列表 71

3.3.3  能力表 72

3.3.4  锁与钥匙 73

3.3.5  基于环的访问控制方法 74

3.4  安全保障 74

3.4.1  保障模型和方法 74

3.4.2  审计 79

3.4.3  系统评估 81

3.5  网络安全 83

3.5.1  网络威胁模型 83

3.5.2  网络协议安全 85

3.5.3  防火墙技术 89

3.5.4  入侵检测 91

3.5.5  安全扫描 93

3.6  本章小结 98

第4章  代码安全静态分析 99

4.1  静态分析 99

4.1.1  静态分析的概念 99

4.1.2  静态分析的局限性 99

4.1.3  静态分析方法 100

4.2  代码审查中的静态分析 103

4.2.1  执行代码审查 103

4.2.2  开发过程中的安全审查 106

4.2.3  静态分析度量标准 109

4.3  静态分析的过程 111

4.3.1  建模 112

4.3.2  分析算法 114

4.3.3  规则 115

4.3.4  报告结果 117

4.4  静态分析中的常见问题 119

4.4.1  处理输入 119

4.4.2  缓冲区溢出 124

4.4.3  缓冲区溢出伴随的问题 128

4.4.4  错误和异常 130

4.5  本章小结 132

第5章  软件安全动态渗透测试 135

5.1  软件安全动态渗透测试的概念 135

5.1.1  渗透测试概述 135

5.1.2  渗透测试阶段 136

5.2  建立测试计划 137

5.2.1  分步骤的测试计划 137

5.2.2  开源安全测试方法指南 137

5.2.3  文档 137

5.3  主机侦察 138

5.3.1  被动主机侦察 138

5.3.2  主动主机侦察 138

5.3.3  端口扫描 138

5.3.4  扫描检测 139

5.4  Web服务器攻击 140

5.4.1  Web语言简介 140

5.4.2  网站结构 144

5.4.3  电子商务架构 145

5.4.4  Web页面欺骗(钓鱼网站) 146

5.4.5  Cookie猜测与隐藏字段 147

5.4.6  暴力攻击 147

5.4.7  获取网站信息 148

5.4.8  Web攻击的检测与防止 149

5.5  数据库攻击 150

5.5.1  常用数据库简介 151

5.5.2  攻击SQL Server数据库 153

5.5.3  攻击Oracle数据库 153

5.5.4  保护SQL Server的安全 154

5.5.5  保护Oracle的安全 155

5.5.6  检测数据库攻击 156

5.5.7  防止数据库攻击 157

5.6  口令破解 158

5.6.1  口令散列方法 159

5.6.2  Web口令破解技术 160

5.6.3  口令破解工具 162

5.6.4  检测口令破解 164

5.6.5  避免或减轻口令破解风险 165

5.7  会话劫持 167

5.7.1  什么是会话劫持 167

5.7.2  ACK洪流问题 168

5.7.3  检测会话劫持 168

5.7.4  阻止会话劫持 169

5.8  木马和后门的运用 169

5.8.1  木马和后门程序概念 169

5.8.2  木马与后门程序的检测及预防 170

5.9  常见服务器的渗透 171

5.9.1  UNIX权限和根访问 171

5.9.2  Windows安全模型和漏洞利用 172

5.9.3  检测服务器攻击与预防服务器攻击 172

5.10  理解和应用缓冲区溢出 172

5.10.1  缓冲区溢出的概念 173

5.10.2  防止缓冲区溢出 173

5.11  拒绝服务攻击 174

5.11.1  检测DoS攻击 175

5.11.2  防止DoS攻击 175

5.12  软件漏洞 175

5.12.1  设计漏洞与实现漏洞 175

5.12.2  常见的安全设计问题 176

5.12.3  编程语言的实现问题 180

5.12.4  平台的实现问题 182

5.12.5  常见的应用程序安全实现问题 182

5.12.6  开发过程中的问题及部署方面的薄弱性 182

5.12.7  漏洞根源分类 183

5.13  本章小结 183

第6章  WebInspect概述 185

6.1  WebInspect的主要特点 185

6.1.1  WebInspect介绍 185

6.1.2  WebInspect的主要特征 186

6.1.3  WebInspect新特征 188

6.2  软件安装 189

6.2.1  最低配置 189

6.2.2  下载和安装WebInspect 189

6.3  主要功能 195

6.4  本章小结 195

第7章  WebInspect应用实践 197

7.1  WebInspect 10.20的新功能和增强功能 197

7.2  使用WebInspect 199

7.2.1  基本介绍 199

7.2.2  导航窗格 200

7.2.3  信息窗格 206

7.2.4  摘要窗格 214

7.2.5  WebInspect工具栏 221

7.2.6  WebInspect菜单栏 223

7.2.7  HP应用安全中心 226

7.2.8  检查结果:向导扫描或基础扫描 226

7.2.9  检查结果:Web服务扫描 229

7.2.10  导出扫描 230

7.2.11  导出扫描详细信息 231

7.2.12  发布到软件安全中心 231

7.2.13  HP TippingPoint导出保护规则 235

7.2.14  Web应用防火墙导出保护规则 236

7.2.15  导入扫描 237

7.2.16  运行AMP或WebInspect Enterprise扫描 237

7.2.17  上传一个扫描到企业服务器 238

7.2.18  管理设置 239

7.2.19  管理扫描 240

7.2.20  管理计划扫描 240

7.2.21  生成报告 244

7.2.22  许可证管理 246

7.2.23  命令行执行 248

7.2.24  卸载WebInspect 251

7.3  扫描一个网站 251

7.3.1  向导扫描 251

7.3.2  基础扫描 255

7.3.3  Web服务扫描 269

7.3.4  企业扫描 272

7.3.5  手动扫描 276

7.3.6  审阅和重新测试漏洞 276

7.4  WebInspect工具简介 282

7.4.1  策略管理器 283

7.4.2  审计输入编辑器 283

7.4.3  Web窗体编辑器 284

7.4.4  Web Brute 284

7.4.5  网络发现 285

7.4.6  编码器/解码器 285

7.4.7  正则表达式编辑器 286

7.4.8  HTTP编辑器 286

7.4.9  Web代理 287

7.4.10  智能升级 288

7.4.11  Cookie Cruncher 288

7.4.12  网络Fuzzer 288

7.4.13  SQL注入 289

7.4.14  合规经营 289

7.4.15  日志查看器 289

7.4.16  流量模式的Web宏录制(过时) 289

7.4.17  基于事件的IE浏览器兼容的Web宏录制(隐藏) 289

7.4.18  网络宏录制(统一) 290

7.4.19  Server事件探查器 290

7.4.20  Server分析 291

7.4.21  SWFScan 291

7.4.22  报告设计器 291

7.4.23  HP支持工具 292

7.4.24  Web服务测试设计 293

7.5  本章小结 293

第8章  HP Fortify工具使用 295

8.1  HP Fortify静态代码分析器的主要特征 295

8.1.1  Fortify SCA概述 295

8.1.2  分析器概述 296

8.2  软件安装 297

8.2.1  安装组件概述 297

8.2.2  下载软件 297

8.2.3  安装Fortify SCA 297

8.2.4  后续安装任务 307

8.2.5  卸载Fortify SCA 308

8.3  静态代码分析器分析原理 309

8.3.1  分析阶段概述 309

8.3.2  分析命令示例 309

8.3.3  内存注意事项 309

8.4  静态代码分析器分析过程 309

8.5  静态代码分析器扫描的方式 311

8.6  静态代码分析器转换源代码 311

8.6.1  转换阶段 311

8.6.2  转换Java源代码 313 

8.6.3  转换.NET源代码 317

8.6.4  转换C和C++代码 320

8.6.5  转换ABAP/4 323

8.6.6  转换FLEX 328

8.6.7  转换移动平台代码 330

8.6.8  转换其他语言 331

8.6.9  故障排除与支持 332

8.7  Audit Workbench用户指南 334

8.7.1  Audit Workbench 简介 334

8.7.2  Audit Workbench特性与功能 344

8.7.3  配置/设置项目参数 350

8.7.4  审计分析结果 352

8.7.5  生成报告 355

8.7.6  编写自定义规则 360

8.7.7  故障排除与支持 369

8.8  HP Fortify实时安全分析器的主要特征 371

8.8.1  Fortify RTA概述 371

8.8.2  Fortify RTA工作原理 371

8.8.3  Fortify RTA控制台 372

8.8.4  Fortify RTA能够防御的攻击种类 372

8.8.5  Fortify RTA应用的平台 372

8.9  HP Fortify程序跟踪分析器(PTA) 373

8.9.1  Fortify PTA概述 373

8.9.2  Fortify PTA工作原理 373

8.9.3  Fortify PTA特点 374

8.9.4  Fortify PTA可以分析和防御的安全漏洞种类 374

8.9.5  Fortify PTA 应用的平台 375

8.10  本章小结 375

参考文献 377