软件安全开发 属性驱动模式PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:宋明秋编著
- 出 版 社:北京:电子工业出版社
- 出版年份:2016
- ISBN:9787121287503
- 页数:290 页
第1章 理解软件安全开发 1
1.1 信息安全面临的困境 1
1.2 软件安全基本概念 2
1.2.1 软件的定义 2
1.2.2 软件安全错误 2
1.2.3 软件安全的定义 3
1.3 软件安全属性刻画 5
1.3.1 保密性 5
1.3.2 完整性 5
1.3.3 可用性 6
1.3.4 认证性 7
1.3.5 授权 7
1.3.6 可记账性/审计性 8
1.3.7 抗抵赖性 8
1.3.8 可控性 9
1.3.9 可信性 9
1.4 信息产品的安全性评估标准 9
1.5 系统安全工程 11
1.6 系统安全工程能力成熟度模型 11
1.7 属性驱动的软件安全开发的基本思想 12
1.7.1 软件安全开发方法 13
1.7.2 软件定义安全 13
1.7.3 属性驱动的软件安全开发方法 16
1.8 本章小结 17
第2章 将安全嵌入软件开发整个生命周期 18
2.1 系统安全开发方法的进化史 18
2.2 软件安全开发模型 19
2.2.1 启发式软件安全开发模型 19
2.2.2 软件安全生命周期开发模型 20
2.3 微软的SDL模型 23
2.3.1 传统的系统开发瀑布模型 23
2.3.2 软件安全开发生命周期模型SDL 23
2.3.3 敏捷的SDL 25
2.3.4 ISO/IEC 27034 28
2.4 McGraw的软件安全开发模型 30
2.4.1 McGraw的七个接触点模型BSI 30
2.4.2 软件安全开发成熟度模型BSIMM 31
2.5 OWASP的软件安全开发模型 34
2.5.1 CLASP 34
2.5.2 SAMM 37
2.6 NIST的软件安全开发生命周期模型 39
2.7 属性驱动的软件安全开发生命周期模型 41
2.8 本章小结 41
第3章 软件安全需求分析 42
3.1 概述 42
3.1.1 基本内涵 42
3.1.2 安全需求的来源 44
3.1.3 软件安全需求的内容 45
3.2 核心软件安全需求 46
3.2.1 保密性需求 46
3.2.2 完整性需求 48
3.2.3 可用性需求 49
3.2.4 认证需求 50
3.2.5 授权需求 53
3.2.6 可记账性/审计需求 57
3.3 通用软件安全需求 58
3.3.1 安全架构需求 58
3.3.2 会话管理需求 58
3.3.3 错误和例外管理需求 59
3.3.4 配置参数管理需求 59
3.4 运维安全需求 60
3.4.1 环境部署需求 61
3.4.2 归档需求 61
3.4.3 反盗版需求 62
3.5 其他安全需求 62
3.5.1 顺序和时间需求 62
3.5.2 国际性需求 63
3.5.3 采购需求 64
3.6 软件安全需求获取方法 64
3.6.1 软件安全需求获取的概念 64
3.6.2 头脑风暴 65
3.6.3 问卷调查和访谈 65
3.6.4 策略分解 66
3.6.5 数据分类 68
3.6.6 主/客体关系矩阵 70
3.6.7 使用用例和滥用案例建模 71
3.7 软件安全需求跟踪矩阵 72
3.8 本章小结 72
第4章 软件安全保障设计 73
4.1 概述 73
4.1.1 软件安全设计的概念 73
4.1.2 软件安全设计的基本原则 73
4.1.3 平衡安全设计原则 80
4.2 属性驱动的软件安全设计 81
4.3 软件安全架构设计 82
4.3.1 康威定律 83
4.3.2 软件安全架构的设计方法 83
4.3.3 攻击面评估 84
4.3.4 威胁建模 85
4.3.5 风险分析 92
4.3.6 软件架构的选择 97
4.3.7 软件架构的安全考虑 104
4.3.8 与现有架构的集成 106
4.4 基于核心安全需求的软件安全设计 106
4.4.1 保密性设计 106
4.4.2 完整性设计 112
4.4.3 可用性设计 115
4.4.4 认证设计 116
4.4.5 授权设计 117
4.4.6 可记账性/审计设计 117
4.5 其他安全需求设计 118
4.5.1 接口安全设计 118
4.5.2 互联互通性 120
4.6 软件安全技术 120
4.6.1 认证 121
4.6.2 身份管理 121
4.6.3 凭证管理 123
4.6.4 流控制 127
4.6.5 防火墙和网络代理 128
4.6.6 中间件 129
4.6.7 排队基础设施和技术 129
4.6.8 日志与审计 130
4.6.9 入侵检测系统 131
4.6.10 入侵防御系统 132
4.6.11 数据丢失保护 132
4.6.12 虚拟化 133
4.6.13 数字版权管理 134
4.6.14 可信计算 136
4.6.15 数据库安全 138
4.6.16 编程语言环境 145
4.6.17 公共语言运行库 148
4.6.18 Java虚拟机 149
4.6.19 编译器选项 150
4.6.20 操作系统安全 150
4.6.21 嵌入式系统安全 151
4.7 安全架构与设计检查 153
4.8 本章小结 153
第5章 编写安全的代码 154
5.1 概述 154
5.1.1 漏洞的基本概念 155
5.1.2 漏洞分类 155
5.1.3 漏洞产生的原因 156
5.1.4 通用软件漏洞数据库 157
5.1.5 软件安全编码实践与控制 160
5.2 常见软件漏洞类型分析与防御方法 161
5.2.1 缓冲区溢出 161
5.2.2 注入缺陷 165
5.2.3 认证和会话管理 169
5.2.4 跨站脚本攻击XSS 172
5.2.5 不安全的直接对象引用 175
5.2.6 安全配置错误 177
5.2.7 敏感数据泄露 178
5.2.8 加密机制本身的安全问题 184
5.2.9 缺少功能级检查 186
5.2.10 跨站请求伪造CSRF 187
5.2.11 使用已知漏洞组件 190
5.2.12 未经验证的重定向和转发 191
5.2.13 文件攻击 192
5.2.14 竞争条件 195
5.2.15 边信道攻击 196
5.3 软件安全编码实践 199
5.3.1 输入验证 199
5.3.2 标准化 201
5.3.3 数据净化 201
5.3.4 错误处理 203
5.3.5 安全的API 204
5.3.6 内存管理 204
5.3.7 例外管理 208
5.3.8 会话管理 209
5.3.9 配置参数管理 209
5.3.10 安全启动 210
5.3.11 加密机制的安全保护 210
5.3.12 并发控制 213
5.3.13 标签化 214
5.3.14 沙箱 214
5.3.15 防篡改技术 215
5.4 软件安全编码保证过程 216
5.4.1 选择安全的编程语言 217
5.4.2 版本(配置)管理 217
5.4.3 代码分析 218
5.4.4 代码评审 219
5.4.5 构建安全的软件编译环境 221
5.5 本章小结 222
第6章 软件安全测试 223
6.1 概述 223
6.1.1 软件安全测试的定义和目的 223
6.1.2 软件安全测试的基本内涵 224
6.1.3 软件安全测试框架 226
6.1.4 软件安全测试方法 227
6.1.5 从攻击者角度思考 228
6.2 软件安全功能测试 229
6.2.1 保密性测试 229
6.2.2 完整性测试 230
6.2.3 可用性测试 233
6.2.4 认证性测试 234
6.2.5 授权测试 235
6.2.6 可记账性/审计测试 236
6.3 软件安全漏洞测试 236
6.3.1 攻击面验证 237
6.3.2 环境测试 237
6.3.3 模拟测试 238
6.4 其他测试 239
6.4.1 性能测试 239
6.4.2 可扩展性测试 240
6.4.3 隐私测试 240
6.5 软件安全功能测试方法 241
6.5.1 单元测试 241
6.5.2 集成测试 242
6.5.3 回归测试 242
6.5.4 系统测试 243
6.5.5 逻辑测试 243
6.5.6 用户接收测试 244
6.6 软件安全漏洞测试方法 245
6.6.1 源代码测试 246
6.6.2 白盒测试 246
6.6.3 黑盒测试 247
6.6.4 Fuzzing测试 248
6.6.5 扫描 250
6.6.6 渗透测试 253
6.6.7 静态测试 256
6.6.8 动态测试 256
6.7 几种重要的软件安全漏洞控制测试 256
6.7.1 输入验证测试 256
6.7.2 缓冲区溢出控制测试 257
6.7.3 SQL注入缺陷控制测试 258
6.7.4 XSS脚本攻击控制测试 258
6.7.5 抗抵赖控制测试 259
6.7.6 假冒控制测试 259
6.7.7 失效控制测试 259
6.7.8 优先权提升控制测试 260
6.7.9 抗逆向工程保护测试 261
6.7.10 Web应用漏洞测试 261
6.8 测试过程模型 261
6.8.1 软件安全测试基本过程 262
6.8.2 V模型 263
6.8.3 W模型 263
6.8.4 X模型 264
6.8.5 H模型 265
6.8.6 前置测试模型 265
6.8.7 基于软件开发生命周期的测试 266
6.9 测试数据的管理 269
6.9.1 漏洞报告和跟踪 271
6.9.2 漏洞影响评估与修复 275
6.10 常见的软件安全测试工具 276
6.11 本章小结 276
附录A 软件安全开发生命周期模型 277
附录B 常见的HTTP状态代码和原因解释 279
附录C 用于输入验证的正则表达式语法 281
附录D 常用软件安全测试工具 284
参考文献 286
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《主题公园开发与管理》梁增贤编著 2019
- 《知识管理背景下的档案管理模式》曾祯,金瑞,王聪颖著 2019
- 《中南高校档案文化资源开发综合研究》涂上飙 2019
- 《普通高等职业教育计算机系列规划教材 Android Studio移动应用开发基础》(中国)吴绍根 2019
- 《海河干流水环境质量与经济发展模式研究》于航白景峰,张春意 2019
- 《互联网+时代的日语教学模式探究》郭晓雪著 2019
- 《Cocos Creator微信小游戏开发实战》王绍明编著 2020
- 《北京模式》吴建繁,王德海,朱岩编 2017
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017