前言 1
第1章 安全概述 9
不仅仅是技术问题 10
不仅仅是极客 11
安全和风险有关 12
威胁因素,以及了解你的敌人 15
安全价值:保护我们的数据、系统和人员 17
常见的安全误区和错误 19
让我们开始 21
第2章 敏捷促进者 22
构建管道 22
自动化测试 23
持续集成 26
基础设施即代码 26
发布管理 28
可视化追踪 29
集中反馈 30
部署过的代码才是唯一优秀的代码 31
安全、高速运行 31
第3章 迎接敏捷革命的到来 33
敏捷:一座美丽的盆景 33
Scrum,最时髦的敏捷技术 36
极限编程 39
看板 42
精益开发 45
常见敏捷方法 46
什么是DevOps? 48
敏捷和安全 49
第4章 在现有的敏捷生命周期中工作 51
传统应用的安全模型 51
迭代前仪式 54
迭代前参与 56
迭代后参与 57
设置安全基线 58
那么当你扩大规模的时候呢? 59
建立安全团队 59
关键点 61
第5章 安全和需求 63
在需求中处理安全 63
敏捷需求:讲述故事 64
跟踪和管理故事:backlog 66
处理bug 67
将安全性放入需求 67
安全角色和反角色 74
攻击者故事:戴上黑帽子 76
攻击树 79
基础架构和运维需求 82
重点回顾 85
第6章 敏捷漏洞管理 87
漏洞扫描及修复 87
处理关键漏洞 93
确保软件供应链安全 94
如何以敏捷方式修复漏洞 96
安全Sprints、强化Sprints和黑客日 100
技术安全债务的承担和偿还 101
关键点 103
第7章 敏捷团队的风险 104
安全团队说不 104
理解风险和风险管理 105
风险和威胁 106
风险处置 107
敏捷和DevOps中的风险管理 112
在敏捷和DevOps中处理安全风险 117
重点回顾 119
第8章 理解攻击和评估风险 120
理解攻击:妄想和现实 121
系统的攻击面 129
敏捷威胁建模 132
常见攻击方式 142
要点总结 143
第9章 构建安全和可用的系统 145
反入侵设计 145
安全性与可用性 146
技术控制 146
安全架构 149
复杂性和安全性 152
重点回顾 154
第10章 代码评审安全 155
为什么需要进行代码评审? 155
代码评审的类型 156
结对代码评审 158
你应该何时评审代码? 160
怎样评审代码? 161
谁需要评审代码? 167
自动代码评审 169
代码评审的挑战和局限性 178
采用安全代码评审 181
查看安全功能和控件 186
评审代码的内部威胁 187
关键要点 188
第11章 敏捷安全测试 191
那么敏捷开发中如何进行测试? 191
有bug的地方,就会被攻破 192
敏捷测试金字塔 194
单元测试和TDD 196
服务级别的测试和BDD工具 199
验收测试 201
功能安全测试和扫描 202
应用程序扫描的问题 206
测试基础设施 208
创建自动化的构建和测试管道 212
敏捷开发中的手动测试 218
如何在敏捷和DevOps中进行安全测试? 220
重点回顾 221
第12章 外部审计,测试和建议 223
为什么我们需要外部审计? 224
缺陷评估 226
渗透测试 227
红队 229
BUG奖励 231
配置审查 238
安全代码审计 238
加密审计 239
选择一个外部的公司 240
使你的钱花的值得 242
关键点 246
第13章 运维和OpSec 247
系统加固:建立安全系统 248
网络即代码 256
监控与入侵检测 257
在运行时捕捉错误 262
运行时防御 264
事件反应:为破坏而准备 266
保护你的构建管道 270
嘘……请保密 277
重点回顾 279
第14章 合规性 281
合规性和安全性 281
风险管理和合规 288
变更的可追溯性 289
数据隐私 290
如何满足合规性并保持敏捷 292
证明和认证 303
关键点 304
第15章 安全文化 306
安全文化的意义 306
搭建安全文化 307
有效安全原则 309
安全外展 320
重点回顾 327
第16章 敏捷安全意味着什么? 328
Laura的故事 328
Jim的故事 331
Michael的故事 335
Rich的故事 339