图书介绍

软件安全开发生命周期【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

软件安全开发生命周期
  • (美)霍华德等著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7121052946
  • 出版时间:2008
  • 标注页数:329页
  • 文件大小:109MB
  • 文件页数:355页
  • 主题词:软件开发-安全技术

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

软件安全开发生命周期PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1部分 对SDL的需求3

第1章 适可而止:威胁正在悄然改变3

1.1 遍布安全和隐私冲突的世界5

1.2 影响安全的另一因素:可靠性8

1.3 事关质量10

1.4 主要的软件开发商为什么需要开发更安全的软件11

1.5 内部软件开发人员为什么需要开发更安全的软件12

1.6 小型软件开发者为什么需要开发更安全的软件12

1.7 总结13

参考文献13

第2章 当前软件开发方法不足以生成安全的软件17

2.1 “只要给予足够的关注,所有的缺陷都将无处遁形”18

2.1.1 审核代码的动力18

2.1.2 理解安全bug19

2.1.3 人员数量19

2.1.4 “关注越多”越容易失去要点20

2.2 专利软件开发模式21

2.3 敏捷开发模式22

2.4 通用评估准则22

2.5 总结23

参考文献24

第3章 微软SDL简史27

3.1 前奏27

3.2 新威胁,新对策29

3.3 Windows 2000和Secure Windows Initiative30

3.4 追求可度量性:贯穿Windows XP32

3.5 安全推进和最终安全评审(FSR)33

3.6 形成软件安全开发生命周期36

3.7 持续的挑战37

参考文献38

第4章 管理层的SDL41

4.1 成功的承诺41

4.1.1 微软的承诺41

4.1.2 你是否需要SDL?43

4.1.3 有效承诺45

4.2 管理SDL48

4.2.1 资源48

4.2.2 项目是否步入正轨?50

4.3 总结51

参考文献51

第2部分 软件安全开发生命周期过程55

第5章 第0阶段:教育和意识55

5.1 微软安全教育简史56

5.2 持续教育58

5.3 培训交付类型60

5.4 练习与实验61

5.5 追踪参与度与合规度62

5.6 度量知识63

5.7 实现自助培训63

5.8 关键成功因子与量化指标64

5.9 总结65

参考文献65

第6章 第1阶段:项目启动67

6.1 判断软件安全开发生命周期是否覆盖应用67

6.2 任命安全顾问68

6.2.1 担任开发团队与安全团队之间沟通的桥梁69

6.2.2 召集开发团队举行SDL启动会议70

6.2.3 对开发团队的设计与威胁模型进行评审70

6.2.4 分析并对bug进行分类,如安全类和隐私类70

6.2.5 担任开发团队的安全传声筒71

6.2.6 协助开发团队准备最终安全审核71

6.2.7 与相应安全团队协同工作71

6.3 组建安全领导团队71

6.4 确保在bug跟踪管理过程中包含有安全与隐私类bug72

6.5 建立“bug标准”74

6.6 总结74

参考文献74

第7章 第2阶段:定义并遵从设计最佳实践75

7.1 常见安全设计原则76

7.2 受攻击面分析与降低78

7.2.1 第一步:该特性真的有那么重要么?81

7.2.2 第二步:究竟谁需要从哪里访问这些功能?82

7.2.3 第三步:降低特权83

7.2.4 其他受攻击面组成部分85

7.3 总结89

参考文献90

第8章 第3阶段:产品风险评估93

8.1 安全风险评估94

8.1.1 安装问题94

8.1.2 受攻击面问题94

8.1.3 移动代码问题95

8.1.4 安全特性相关问题95

8.1.5 常规问题95

8.1.6 分析问卷96

8.2 隐私影响分级96

8.2.1 隐私分级198

8.2.2 隐私分级298

8.2.3 隐私分级398

8.3 统一各种因素(Pulling It All Together)98

8.4 总结99

参考文献99

第9章 第4阶段:风险分析101

9.1 威胁建模产物(Artifact)103

9.2 对什么进行建模104

9.3 创建威胁模型104

9.4 威胁建模过程105

9.4.1 定义应用场景105

9.4.2 收集外部依赖列表106

9.4.3 定义安全假设106

9.4.4 创建外部安全备注107

9.4.5 绘制待建模应用的一个或多个数据流图(DFD)110

9.4.6 确定威胁类型114

9.4.7 识别系统威胁116

9.4.8 判断风险121

9.4.9 规划消减措施124

9.5 利用威胁模型辅助代码评审128

9.6 利用威胁模型辅助测试129

9.7 关键成功因子和指标129

9.8 总结130

参考文献130

第10章 第5阶段:创建安全文档、工具以及客户最佳实践133

10.1 为什么需要文档和工具?135

10.2 创建指导性安全最佳实践文档135

10.2.1 安装文档136

10.2.2 主线产品使用文档136

10.2.3 帮助文档138

10.2.4 开发人员文档138

10.3 创建工具139

10.4 总结140

参考文献140

第11章 第6阶段:安全编码策略143

11.1 使用最新版本编译器与支持工具143

11.2 使用编译器内置防御特性144

11.2.1 缓冲区安全检查:/GS144

11.2.2 安全异常处理:/SAFESEH144

11.2.3 数据执行防护兼容性:/NXCOMPAT145

11.3 使用源代码分析工具145

11.3.1 源代码分析工具陷阱145

11.3.2 源代码分析工具的益处146

11.4 切勿使用违禁函数148

11.5 减少潜在可被利用的编码结构或设计149

11.6 使用安全编码检查清单150

11.7 总结150

参考文献150

第12章 第7阶段:安全测试策略153

12.1 模糊测试153

12.1.1 模糊操作文件格式154

12.1.2 网络协议模糊操作160

12.1.3 零散模糊测试163

12.1.4 通过模糊测试修复发现的bug163

12.2 渗透测试164

12.3 运行时验证165

12.4 必要时审核并更新威胁模型165

12.5 重估软件的受攻击面166

12.6 总结166

参考文献166

第13章 第8阶段:安全推进活动169

13.1 准备安全推进活动170

13.2 培训171

13.3 代码评审172

13.4 威胁模型更新174

13.5 安全测试175

13.6 受攻击面Scrub175

13.7 文档Scrub176

13.8 是否已足够?177

13.9 总结178

参考文献179

第14章 第9阶段:最终安全评审181

14.1 产品团队协调182

14.2 威胁模型评审182

14.3 未修复的安全bug评审183

14.4 工具有效性验证184

14.5 在最终安全评审完成之后184

14.6 总结185

第15章 第10阶段:安全响应规划187

15.1 为什么准备响应?187

15.1.1 你的开发团队一定会出错187

15.1.2 新漏洞一定会出现188

15.1.3 规则一定会发生变化189

15.2 准备响应190

15.3 安全响应与开发团队208

15.3.1 组建你的响应团队208

15.3.2 支持你的全线产品209

15.3.3 支持你的所有客户210

15.3.4 使你的产品具备更新能力211

15.3.5 在研究人员之前找到漏洞212

15.4 总结213

参考文献213

第16章 第11阶段:产品发布215

参考文献215

第17章 第12阶段:安全响应执行217

17.1 遵从你的计划217

17.1.1 保持冷静217

17.1.2 欲速则不达218

17.1.3 留意可能改变计划的事件219

17.1.4 遵从你的计划220

17.2 尽你所能补救220

17.2.1 知道该联络何人220

17.2.2 能创建更新220

17.2.3 能安装更新221

17.2.4 明确轻重缓急221

17.3 深谙取舍之道221

17.4 总结222

参考文献222

第3部分 SDL参考资料225

第18章 在敏捷模式中集成SDL225

18.1 在敏捷模式中进行SDL实践活动226

18.1.1 安全教育226

18.1.2 项目开始226

18.1.3 建立并遵从设计最佳实践227

18.1.4 风险分析227

18.1.5 创建安全文档、工具以及客户最佳实践229

18.1.6 安全编码与测试策略229

18.1.7 安全推进231

18.1.8 最终安全评审232

18.1.9 产品发布233

18.1.10 安全响应执行233

18.2 利用SDL实践增强敏捷模式234

18.2.1 用户story235

18.2.2 小发布与迭代236

18.2.3 人员轮换236

18.2.4 简化236

18.2.5 冲刺(Spike)解决方案236

18.2.6 重构237

18.2.7 常规客户可用性237

18.2.8 依据标准编码237

18.2.9 优先编写单元测试238

18.2.10 配对编程238

18.2.11 多次集成238

18.2.12 将优化留到最后238

18.2.13 一旦发现一个bug,就创建一个测试239

18.3 总结239

参考文献239

第19章 SDL违禁函数调用241

19.1 违禁API242

19.2 为什么“n”函数会被禁止245

19.3 重要告诫246

19.4 选择StrSafe vs.Safe CRT246

19.5 使用StrSafe246

19.6 使用Safe CRT247

19.7 其他替代函数248

19.8 工具支持248

19.9 ROI和成本影响249

19.10 度量和目标249

参考文献249

第20章 SDL最低加密标准251

20.1 高级加密需求251

20.1.1 加密技术vs低级加密算法251

20.1.2 使用加密库252

20.1.3 加密敏捷度252

20.1.4 默认安全加密算法253

20.2 加密算法的用法253

20.2.1 对称块密码与密钥长度254

20.2.2 对称流密码与密钥长度254

20.2.3 对称算法模式255

20.2.4 非对称算法与密钥长度255

20.2.5 哈希函数255

20.2.6 消息认证码256

20.3 数据存储以及随机数生成256

20.3.1 存储私钥以及敏感数据256

20.3.2 生成随机数与密钥257

20.3.3 使用密码或者其他密钥来生成随机数和加密密钥257

参考文献257

第21章 SDL必备工具以及编译器选项259

21.1 必备工具259

21.1.1 PREfast259

21.1.2 FxCop263

21.1.3 应用验证器(Application Verifier)265

21.1.4 最小编译器与Build工具版本267

参考文献268

第22章 威胁树模式269

22.1 假冒一个外部实体或过程271

22.2 篡改一个过程273

22.3 篡改一个数据流274

22.4 篡改一个数据存储276

22.5 抵赖278

22.6 过程信息泄露280

22.7 数据流信息泄露281

22.8 数据存储的信息泄露282

22.9 针对过程的拒绝服务284

22.10 针对数据流的拒绝服务285

22.11 针对数据存储的拒绝服务286

22.12 特权提升287

参考文献288

热门推荐