《软件安全 使安全成为软件开发必需的部分》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)麦克劳著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:7121058898
  • 页数:332 页
图书介绍:本书是由软件安全领域的权威专家编著的讲授如何实施软件安全的专著。本书在论述了软件安全理论的基础上详细讲解了如何将软件安全付诸实践。本书描述的软件安全最优方法(或者称为接触点)以优秀的软件工程方法为基础,并且在整个软件开发生命周期中都明确地仔细考量安全问题,即认识和理解普通的风险(包括实现缺陷和体系结构瑕疵)、基于安全进行设计以及对所有的软件工件都进行彻底、客观的风险分析和测试。本书的目的是使接触点方法为你所用。采用本书的方法并不会从根本上改变你的工作方式,但是能够改善现有的软件开发生命周期,并能据此来创建自己的安全的开发生命周期。本书还介绍了知识管理、培训与认知,以及企业级的软件安全计划等方面的内容。本书适合与软件相关的任何机构的管理人员、商业人员、软件架构人员、软件开发人员、软件测试人员以及安全管理人员阅读,可以作为大学、研究机构和培训机构的计算机安全和软件安全课程的教材和参考书。

第1部分 软件安全基础 2

第1章 学科定义 2

1.1 安全问题 3

1.1.1 问题的三个方面:为什么问题在不断增加 4

1.1.2 基础科学 9

1.2 软件中的安全问题 11

1.2.1 缺陷和瑕疵还有缺点,哦,天哪! 12

1.2.2 缺点的范围 15

1.2.3 应用程序安全所面临的问题 16

1.2.4 软件安全和操作 20

1.3 解决问题:软件安全的三根支柱 21

1.3.1 支柱之一:应用风险管理 22

1.3.2 支柱之二:软件安全的接触点 23

1.3.3 支柱之三:知识 29

1.4 安全工程的兴起 31

软件安全人人有责 32

第2章 风险管理框架 33

2.1 实际应用风险管理 34

2.2 如何使用本章 35

2.3 活动的五个阶段 35

2.3.1 第一阶段:理解商业环境 36

2.3.2 第二阶段:确定商业和技术风险 37

2.3.3 第三阶段:综合考虑并对风险分级 37

2.3.4 第四阶段:定义降低风险的策略 38

2.3.5 第五阶段:实施修复并进行验证 38

2.3.6 风险的测量与报告 39

2.4 RMF是一种多重循环 39

2.5 应用RMF:KillerAppCo的iWare 1.0 Server 40

2.5.1 理解商业环境 41

2.5.2 确定商业和技术风险 42

2.5.3 综合考虑并对风险分级 52

2.5.4 定义降低风险的策略 55

2.5.5 实施修复并进行验证 57

2.6 测量的重要性 58

2.6.1 测量收益率 58

2.6.2 RMF中的测量和衡量参数 59

2.7 Cigital Workbench 60

2.8 风险管理是软件安全的一种框架 63

第2部分 软件安全的七个接触点 66

第3章 软件安全接触点简介 66

3.1 概述:七个极好的接触点 68

3.1.1 代码审核(工具) 68

3.1.2 体系结构风险分析 69

3.1.3 渗透测试 69

3.1.4 基于风险的安全测试 70

3.1.5 滥用案例 70

3.1.6 安全需求 70

3.1.7 安全操作 71

3.1.8 外部分析 71

3.1.9 为什么只有七个接触点 71

3.2 黑与白:紧密难分地缠绕在一起的两种思路 72

3.3 向左移动 73

3.4 接触点是最优方法 75

3.5 谁应该实施软件安全 77

建立一个软件安全组 78

3.6 软件安全是一种多学科工作 80

3.7 走向成功的接触点 82

第4章 利用工具进行代码审核 84

4.1 用工具尽早发现实现中的缺陷 85

4.2 目标是良好,而不是完美 87

4.3 老的历史 88

4.4 静态分析的方法 89

4.4.1 规则范围的历史 90

4.4.2 现代规则 92

4.5 进行研究的工具 97

4.6 商业工具供应商 99

4.6.1 商业源代码分析程序 99

4.6.2 源代码分析工具的关键特征 100

4.6.3 应该避免的三种特征 101

4.6.4 Fortify源代码分析套件 102

4.6.5 Fortify知识库 106

4.6.6 使用 Fortify 108

4.7 接触点方法:代码审核 108

4.8 利用工具查找安全缺陷 110

第5章 体系结构风险分析 111

5.1 安全风险分析方法中的共同主题 112

5.2 传统风险分析的术语 116

5.3 知识要求 118

5.4 森林级视图的必要性 119

5.5 一个传统的风险计算的例子 122

5.6 传统方法的局限 123

5.7 现代风险分析 124

5.7.1 安全需求 124

5.7.2 一种基本的风险分析方法 126

5.8 接触点方法:体系结构风险分析 130

5.8.1 攻击抵抗力分析 131

5.8.2 不确定性分析 133

5.8.3 弱点分析 134

5.9 风险分析入门 136

5.10 体系结构风险分析是必需的 137

第6章 软件渗透测试 138

6.1 渗透测试的现状 140

6.2 软件渗透测试——一种更好的方法 144

6.2.1 使用工具 144

6.2.2 进行多次测试 147

6.3 在开发过程中应用反馈回来的测试结果 148

6.4 利用渗透测试来评估应用程序的状态 149

6.5 正确的渗透测试是有益的 149

第7章 基于风险的安全测试 151

7.1 安全问题为何与众不同 154

7.2 风险管理与安全测试 155

7.3 如何实现安全测试 156

7.3.1 由谁来测试 156

7.3.2 如何进行测试 157

7.4 考虑恶意的输入 164

7.5 摆脱输入 165

7.6 与渗透测试一起交替向前推进 166

第8章 滥用案例 167

8.1 安全并不是一组功能特性 170

8.2 你不能做的事情 171

8.3 创建有用的滥用案例 172

但是根本没有人会这样做! 173

8.4 接触点方法:滥用案例开发 173

8.4.1 创建反需求 175

8.4.2 创建攻击模型 176

8.5 一个滥用案例的例子 177

8.6 滥用案例很有用处 182

第9章 软件安全与安全操作相结合 184

9.1 请别站得离我太近 185

9.2 软件安全的万全之策 186

9.3 立即一起协同工作 191

9.4 未来如此光明,我必须戴墨镜了 193

第3部分 软件安全的崛起 196

第10章 企业级的软件安全计划 196

10.1 商业氛围 197

10.2 分步进行 199

10.3 制订一个改进计划 202

10.4 建立一种衡量方法 203

一种分三步进行的企业实施方法 204

10.5 持续不断地改进 205

10.6 商业现货软件(以及现有的软件应用程序)又该怎么办 206

一种企业信息体系结构 207

10.7 采用一种安全的开发生命周期 210

第11章 软件安全知识 211

11.1 经验、专业知识与安全 213

11.2 安全知识:一种统一的观点 214

11.3 安全知识与接触点 218

11.4 美国国土安全部的Build Security In门户网站 220

11.5 知识管理不断发展 223

11.6 现在开始实施软件安全 223

第12章 编码错误分类法 224

12.1 关于简化:七加二或者减二 225

12.1.1 输入确认和表示 226

12.1.2 API滥用 226

12.1.3 安全特征 227

12.1.4 时间和状态 227

12.1.5 错误处理 227

12.1.6 代码质量 228

12.1.7 封装 228

12.1.8 环境 228

12.2 门 229

需要更多门 236

12.3 一个完整的例子 236

12.4 清单、堆和集合 238

12.4.1 对应七界的十九宗罪 241

12.4.2 七界问题与OWASP的十大安全漏洞 242

12.5 与分类法一起前进并取得成功 243

第13章 附说明的参考书目和文献 245

13.1 附说明的参考书目:最近发表的作品 245

13.1.1 必读资料:最重要的五篇文献 245

13.1.2 本书中引用过的参考资料 247

13.1.3 引用过的政府出版物和标准出版物 258

13.1.4 其他的重要参考资料 258

13.2 软件安全的难题 264

基础科学:还需继续研究的领域 264

第4部分 附录 268

附录A Fortify源代码分析套件指南 268

A.1 审核工作台简介 269

A.2 手工审核源代码 271

A.3 确保一个可用的建造环境 272

A.4 运行源代码分析引擎 274

A.5 研究基本的SCA引擎命令行参数 276

A.6 理解原始分析结果 278

A.7 集成一种自动建造过程 280

A.8 使用Audit Workbench 284

A.9 审核开源应用程序 286

附录B ITS4规则 288

附录C 关于风险分析的练习:Smurfware 310

C.1 Smurfware SmurfScanner风险评估案例研究 310

C.2 Smurfware SmurfScanner安全设计 316

附录D 术语表 318

索引 320