本书以银行业为背景,深入探讨了银行业开发安全,从银行业的信息系统现状探讨开发安全的必要性,从银行业的开发安全实践揭示开发安全的定义和内涵,从银行业的安全案例呈现开发安全的价值。本书从银行实践出发,严格按照信息系统的开发建设过程,翔实地介绍开发过程中的每一个环节,安全工作的要求、解决方案、工作技巧和实践经验。IT初学者可以通过本书学会开发安全的做法,IT专家可以通过本书借鉴实践经验,IT管理者可以通过本书提升安全管理能力,程序员、安全管理人员、测试人员、项目管理人员等都能从中受益。
本书既可作为系统了解开发安全知识的学习用书,也可作为开发安全日常工作中使用的速查手册,是金融行业开发安全领域从业人员的专业技术参考书。
前言
第1章 绪论 / 1
1.1 银行业信息系统的发展状况 / 1
1.2 银行业信息系统安全现状 / 3
1.3 国内外开发安全的现状 / 4
1.3.1 国外开发安全 / 4
1.3.2 国内开发安全 / 6
1.4 国内银行业开发安全的现状 / 7
1.5 国内银行业开发安全的监管要求 / 8
1.5.1 法律要求 / 8
1.5.2 行业监管要求 / 9
第2章 全面认识开发安全 / 19
2.1 开发安全基础概念 / 19
2.1.1 信息安全 / 20
2.1.2 信息系统安全 / 20
2.1.3 开发安全综述 / 21
2.2 开发安全关注点 / 21
2.2.1 项目准备阶段的安全 / 22
2.2.2 需求分析阶段的安全 / 23
2.2.3 系统设计阶段的安全 / 23
2.2.4 系统编码阶段的安全 / 24
2.2.5 系统测试阶段的安全 / 28
2.2.6 部署阶段的安全 / 28
2.2.7 运维阶段的安全 / 29
2.2.8 废弃阶段的安全 / 29
2.2.9 项目管理安全 / 29
2.2.10 系统开发外包的安全 / 30
2.2.11 开发安全培训 / 33
2.3 开发安全的价值 / 34
2.4 基于软件工程的开发安全体系 / 34
2.4.1 安全描述语言 / 35
2.4.2 软件安全分析与安全设计 / 36
2.4.3 设计模式介绍 / 37
2.4.4 POAD方法介绍 / 38
2.4.5 安全模式及其应用研究 / 39
2.4.6 安全模式库构建 / 41
2.5 基于成功实践的开发安全体系 / 43
2.5.1 微软SDL / 43
2.5.2 OWASP的安全开发项目 / 53
2.5.3 McGraw的BSI模型 / 57
2.5.4 搜狐SDL / 57
2.6 基于软件开发成熟度的开发安全体系 / 60
2.6.1 安全性能力成熟度模型 / 61
2.6.2 安全性管理过程域 / 61
2.6.3 安全性工程过程域 / 63
2.6.4 安全性能力成熟度模型与CMMI和安全性标准间的
?关系 / 64
2.6.5 安全性能力成熟度模型使用指南 / 66
2.7 开发安全综述 / 68
第3章 银行业开发全生命周期安全管理体系 / 69
3.1 开发全生命周期安全管理介绍 / 69
3.2 开发生命周期安全管理的模型 / 69
3.2.1 ADCTA循环模型 / 69
3.2.2 ADCTA循环模型的应用 / 71
3.3 开发全生命周期安全管理体系 / 72
3.4 准备阶段 / 74
3.4.1 项目可行性安全分析和安全预评审 / 74
3.4.2 威胁分析准备工作 / 74
3.4.3 威胁模型 / 75
3.4.4 威胁建模的方法 / 80
3.4.5 银行业威胁分析特色 / 88
3.5 安全需求 / 89
3.5.1 工作内容 / 89
3.5.2 银行业安全需求特色 / 90
3.6 安全设计 / 99
3.6.1 工作内容 / 99
3.6.2 银行业安全设计特色 / 100
3.7 安全编码 / 102
3.7.1 工作要求 / 102
3.7.2 银行业安全编码特色 / 106
3.7.3 银行业的安全编码支撑体系 / 106
3.8 安全测试 / 106
3.8.1 工作要求 / 106
3.8.2 银行业安全测试特色 / 111
3.8.3 银行业安全测试资源库 / 113
3.9 安全部署 / 114
3.9.1 工作要求 / 114
3.9.2 银行业安全部署特色 / 115
3.10 安全运维 / 117
3.10.1 工作要求 / 117
3.10.2 银行业安全运维特色 / 117
3.11 安全培训 / 121
第4章 掌握开发安全实施技巧 / 122
4.1 开发全生命周期安全管理的内容 / 122
4.2 准备工作 / 123
4.2.1 信息安全人才储备 / 123
4.2.2 开发流程和管理调研 / 124
4.2.3 安全现状调研 / 125
4.3 开发安全管理体系建设 / 125
4.4 安全评审流程设计 / 126
4.4.1 评审流程 / 126
4.4.2 安全评审的组织架构 / 128
4.4.3 安全评审的输入输出 / 129
4.5 人员培训 / 129
4.5.1 制订培训计划 / 130
4.5.2 开发安全管理培训 / 130
4.5.3 开发安全技能培训 / 130
4.6 体系试运行及正式运作 / 131
4.7 体系运行有效性评估 / 132
4.7.1 体系评估的内容 / 132
4.7.2 有效性评估方法 / 132
4.8 实施工作的难点和应对措施 / 133
第5章 巧用开发安全的有关工具 / 136
5.1 工具整体分析 / 136
5.2 工具详细介绍 / 137
5.2.1 准备 / 137
5.2.2 需求 / 141
5.2.3 编码 / 143
5.2.4 测试 / 154
5.2.5 部署 / 156
5.2.6 运维 / 159
第6章 开发安全的发展趋势 / 169
6.1 面向敏捷开发的开发安全管理 / 169
6.1.1 敏捷开发介绍 / 169
6.1.2 敏捷开发对安全管理的挑战 / 174
6.1.3 敏捷开发的切入点 / 174
6.1.4 敏捷开发安全管理实践 / 178
6.2 基于云计算的开发安全管理 / 184
6.2.1 国内外主流云服务开发平台介绍 / 184
6.2.2 云计算环境下的信息安全防御策略 / 186
6.2.3 云计算的安全等级保护要求 / 187
6.2.4 银行云计算安全的发展 / 193
6.3 DevOps的安全管理 / 193
6.3.1 DevOps介绍 / 193
6.3.2 DevOps的安全管理 / 194
6.4 基于威胁情报的开发安全管理 / 195
6.4.1 威胁情报的概念 / 195
6.4.2 威胁情报的必要性 / 196
6.4.3 威胁情报与安全开发 / 197
第7章 开发安全案例 / 198
7.1 民生银行开发安全应用实例 / 198
7.1.1 背景 / 198
7.1.2 技术路线和关键技术 / 199
7.1.3 民生银行开发安全管理架构 / 199
7.1.4 民生银行开发安全管理体系 / 200
7.1.5 民生银行安全评审流程 / 204
7.1.6 安全需求 / 205
7.1.7 情景式需求分析平台 / 206
7.1.8 安全设计和开发支持 / 207
7.1.9 安全解决方案 / 207
7.1.10 小结 / 209
7.2 中国农业银行安全开发管控实例 / 209
7.2.1 项目背景 / 209
7.2.2 安全开发管理理念及思路 / 209
7.2.3 安全开发管控项目实践 / 211
7.2.4 小结 / 220
7.3 基于架构安全的开发安全管理实践 / 220
7.3.1 架构管理介绍 / 220
7.3.2 架构安全管理 / 222
7.3.3 小结 / 226
7.4 XcodeGhost事件 / 226
7.4.1 事件始末 / 226
7.4.2 原理分析 / 227
7.4.3 传播途径 / 228
7.4.4 影响面 / 229
7.4.5 后续 / 229
7.4.6 案例总结 / 229
参考文献 / 230