软件安全 从源头开始pdf

图书网 2018年8月26日16:41:13
评论
2.9K

软件安全 从源头开始 内容简介

本书阐述什么是人类可控制管理的安全软件开发过程,给出一种基于经验的方法,来构建好用的安全软件开发模型,以应对安全问题,并在安全软件开发模型中解决安全问题。本书分为三部分,共10章。第1章简要介绍软件安全领域的主题及其重要性;第2章讲解软件安全的难点以及SDL框架。第3~8章揭示如何将SDL及其实践映射到一个通用的SDLC框架。第9章从资深软件安全架构师的角度给出关于成功方案的看法,并且解读在开发安全软件时针对典型挑战的一些真实方法。第10章结合现实世界中的安全威胁,描述如何用合理的架构设计、实现与管理的SDL程序来提高安全性。

软件安全 从源头开始 目录

第1章 引论

1.1 软件安全的重要性和相关性

1.2 软件安全和软件开发生命周期

1.3 代码的质量与安全

1.4 SDL三个最重要的安全目标

1.5 威胁建模和攻击面验证

1.6 本章小结:期望从本书中学到什么

参考文献

第2章 安全开发生命周期

2.1 克服软件安全中的挑战

2.2 软件安全成熟度模型

2.3 ISO/IEC 27034:信息技术、安全技术、应用安全

2.4 其他SDL最佳实践的资源

2.4.1 SAFECode

2.4.2 美国国土安全软件保障计划

2.4.3 美国国家标准与技术研究院

2.4.4 MITRE公司公共计算机漏洞和暴露

2.4.5 SANS研究所高级网络安全风险

2.4.6 美国国防部网络安全与信息系统信息分析中心

2.4.7 CERT、Bugtraq和SecurityFocus

2.5 关键工具和人才

2.5.1 工具

2.5.2 人才

2.6 最小特权原则

2.7 隐私

2.8 度量标准的重要性

2.9 把SDL映射到软件开发生命周期

2.10 软件开发方法

2.10.1 瀑布开发

2.10.2 敏捷开发

2.11 本章小结

参考文献

第3章 安全评估(A1):SDL活动与最佳实践

3.1 软件安全团队提早参与项目

3.2 软件安全团队主持发现会议

3.3 软件安全团队创建SDL项目计划

3.4 隐私影响评估计划启动

3.5 安全评估(A1)成功的关键因素和度量标准

3.5.1 成功的关键因素

3.5.2 可交付成果

3.5.3 度量标准

3.6 本章小结

参考文献

第4章 架构(A2):SDL活动与最佳实践

4.1 A2策略一致性分析

4.2 SDL策略评估和范围界定

4.3 威胁建模/架构安全性分析

4.3.1 威胁建模

4.3.2 数据流图

4.3.3 架构威胁分析和威胁评级

4.3.4 风险缓解

4.4 开源选择

4.5 隐私信息收集和分析

4.6 成功的关键因素和度量标准

4.6.1 成功的关键因素

4.6.2 可交付成果

4.6.3 度量标准

4.7 本章小结

参考文献

第5章 设计和开发(A3):SDL活动与最佳实践

5.1 A3策略一致性分析

5.2 安全测试计划构成

5.3 威胁模型更新

5.4 设计安全性分析和检查

5.5 隐私实现评估

5.6 成功的关键因素和度量标准

5.6.1 成功的关键因素

5.6.2 可交付成果

5.6.3 度量标准

5.7 本章小结

参考文献

第6章 设计和开发(A4):SDL活动与最佳实践

6.1 A4策略一致性分析

6.2 安全测试用例执行

6.3 SDLC/SDL过程中的代码审查

6.4 安全分析工具

6.4.1 静态分析

6.4.2 动态分析

6.4.3 模糊测试

6.4.4 人工代码审查

6.5 成功的关键因素

6.6 可交付成果

6.7 度量标准

6.8 本章小结

参考文献

第7章 发布(A5):SDL活动与最佳实践

7.1 A5策略一致性分析

7.2 漏洞扫描

7.3 渗透测试

7.4 开源许可审查

7.5 最终安全性审查

7.6 最终隐私性审查

7.7 成功的关键因素

7.8 可交付成果

7.9 度量标准

7.10 本章小结

参考文献

第8章 发布后支持(PRSA1~5)

8.1 合理调整软件安全组

8.1.1 正确的组织定位

8.1.2 正确的人

8.1.3 正确的过程

8.2 PRSA1:外部漏洞披露响应

8.2.1 发布后的PSIRT响应

8.2.2 发布后的隐私响应

8.2.3 优化发布后的第三方响应

8.3 PRSA2:第三方审查

8.4 PRSA3:发布后认证

8.5 PRSA4:新产品组合或云部署的内部审查

8.6 PRSA5:安全架构审查和基于工具评估当前、遗留以及并购的产品和解决方案

8.6.1 遗留代码

8.6.2 兼并和收购

8.7 成功的关键因素

8.8 可交付成果

8.9 度量标准

8.10 本章小结

参考文献

第9章 将SDL框架应用到现实世界中

9.1 引言

9.2 安全地构建软件

9.2.1 编写安全的代码

9.2.2 人工代码审查

9.2.3 静态分析

9.3 确定每个项目的正确行为

9.4 架构和设计

9.5 测试

9.5.1 功能测试

9.5.2 动态测试

9.5.3 攻击和渗透测试

9.5.4 独立测试

9.6 敏捷:冲刺

9.7 成功的关键因素和度量标准

9.7.1 安全编码培训计划

9.7.2 安全编码框架(API)

9.7.3 人工代码审查

9.7.4 独立代码审查和测试(专家或第三方)

9.7.5 静态分析

9.7.6 风险评估法

9.7.7 SDL和SDLC的集成

9.7.8 架构人才的发展

9.8 度量标准

9.9 本章小结

参考文献

第10章 集成:应用SDL防止现实的威胁

10.1 战略、战术和特定于用户的软件攻击

10.1.1 战略攻击

10.1.2 战术攻击

10.1.3 特定于用户的攻击

10.2 应用适当设计、管理和集中的SDL克服组织与业务挑战

10.3 软件安全组织的现状和影响力

10.4 通过合理的政府管理克服SDL审计和法规挑战

10.5 软件安全的未来预测

10.5.1 坏消息

10.5.2 好消息

10.6 总结

参考文献

附录 关键的成功因素、可交付成果、SDL模型每个阶段的指标

软件安全 从源头开始 精彩文摘

源代码分析(白盒测试)。源代码分析是对软件的源代码进行检测,用来发现源代码中可能导致安全漏洞的部分。相对于其他类型的静态分析工具,源代码安全分析器的主要优点是源代码的可用性。比起从字节码或者二进制中逆向工程得到的代码,源代码包含更详细的信息,因此,更容易发现可导致安全漏洞的软件缺陷。此外,如果进行分析的是原始的源代码,会更容易修复发现的安全漏洞。

基于属性(白盒测试)。基于属性的测试是由美国加州大学戴维斯分校(University of California Davis)创立的正式的分析技术。基于属性的测试验证了该软件的功能是否满足其设计规格。这种方法通过检查源代码中与安全相关的属性实现,例如缺乏不安全的安全状态转换。然后将代码中与安全相关的属性与软件的设计规格进行比对,确定预期的安全假设是否得到满足。

源代码错误注入(白盒测试、灰盒测试)。错误注入技术是通过测试所有代码路径以提高代码覆盖率的技术。尤其是错误处理代码路径,这部分代码在功能测试中可能不会被测试到。在错误注入测试中,错误被注入软件中,用来模拟针对软件或软件运行环境的攻击。在源代码错误注入测试中,测试者需要确定在什么情况下触发环境错误。之后在源代码中插入能够导致这些错误的环境数据。注入错误后的源代码会被编译和执行,当错误注入代码部分执行时,测试者观察软件状态是否发生变化。可以让测试者通过改变环境观察软件安全状态和不安全状态的变化。测试者还可以分析那些由注入错误传播后导致的错误。这种类似于错误传播分析的分析方法包括两种典型的技术:扩展传播分析和接口传播分析。

动态代码分析(灰盒测试)。动态代码分析在应用程序运行时对代码进行检测,测试者可以通过跟踪外部接口以及与外部接口进行交互的代码,找到测试中发现的漏洞和异常的源代码并进行修复。与静态分析不同的是,动态分析允许测试人员修改软件配置和环境行为相关的组件来发现漏洞。由于软件自身的配置与真实的测试环境并不能完全对应,因此一般采用测试工具对测试交互、关联输入、环境条件以模拟的方式进行测试。

图书网:软件安全 从源头开始pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

信息安全

网络安全新型技术研究及其应用pdf

网络安全新型技术研究及其应用 作者:李洪伟 网络安全新型技术研究及其应用 出版社:电子科技大学出版社 网络安全新型技术研究及其应用 内容简介 公钥密码系统面临的挑战不仅包括寻找和实现安全算法,还包括建...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: