云原生安全与DevOps保障
1 DevOps 保障 1
1.1 DevOps 方法 2
1.1.1 持续集成 3
1.1.2 持续交付 4
1.1.3 基础设施即服务 5
1.1.4 文化和信任 6
1.2 DevOps 中的安全 7
1.3 持续安全 8
1.3.1 测试驱动安全 10
1.3.2 攻击监控与应对 12
查看完整
1.1 DevOps 方法 2
1.1.1 持续集成 3
1.1.2 持续交付 4
1.1.3 基础设施即服务 5
1.1.4 文化和信任 6
1.2 DevOps 中的安全 7
1.3 持续安全 8
1.3.1 测试驱动安全 10
1.3.2 攻击监控与应对 12
查看完整
Julien Vehent 在 Mozilla.负责 Firefox 的安全运营团队,掌管着每日与几千万 Firefox 用户打交道的 Web 服务的实现和运维。自从 2007 年取得信息安全大学学位之后,作者在开发、运维和互联网服务安全保障领域已累积15年以上经验。覃宇,ThoughtWorks 高级咨询师,10余年移动应用开发经验,Android 技术专家;译有《Kotlin实战》《Severless:无服务架构与AWS Lambda》《领域驱动设计精粹》等书。
本书主要介绍了 DevOps 实践中*容易被忽视的一环——安全,并且对云原生服务的安全保障也做了全面的阐述。书中详细介绍了 Web 攻击防范、权限验证、日志监控、入侵检测、网络安全协议等老生常谈的话题在云原生基础设施上的变化。书中还提出了适应 DevOps 文化的持续安全、测试驱动安全、基础设施与流水线保证、轻量风险评估等颇具新意的观点和实践。本书通过一个 Web 应用示例展示了ZAP、pineapple、Hindsight、GRR、MIG、osquery 和 Suricata 等工具的使用方法。本书*后总结了一份实施持续安全的三年路线图,指导组织全面提升安全实践和安全意识。本书适合 DevOps 实践者阅读,包括参与其中的安全工程师、软件开发人员、基础设施运维人员及项目管理人员等。
1 DevOps 保障 1
1.1 DevOps 方法 2
1.1.1 持续集成 3
1.1.2 持续交付 4
1.1.3 基础设施即服务 5
1.1.4 文化和信任 6
1.2 DevOps 中的安全 7
1.3 持续安全 8
1.3.1 测试驱动安全 10
1.3.2 攻击监控与应对 12
1.3.3 评估风险并完善安全性 16
1.4 本章小结 17
第1 部分 案例研究:在简易的 DevOps 流水线上应用多层安全性
2 建立简易的 DevOps 流水线 21
2.1 实现线路图 22
2.2 代码仓库 :GitHub 24
2.3 CI 平台 :CircleCI 24
2.4 容器镜像库 :Docker Hub 28
2.5 生产环境基础设施 :Amazon Web Services 30
2.5.1 三层架构 31
2.5.2 配置访问 AWS 32
2.5.3 虚拟私有云 34
2.5.4 创建数据库层 35
2.5.5 EB 创建前两层 37
2.5.6 将容器部署到系统中 41
2.6 快速安全审计 44
2.7 本章小结 45
3 层安全性 :保护 Web 应用 47
3.1 保护并测试 Web 应用 48
3.2 网站攻击和内容安全 52
3.2.1 跨站脚本攻击和内容安全策略 52
3.2.2 跨站请求伪造 59
3.2.3 点击劫持和 IFrame 保护 64
3.3 用户身份验证的方法 65
3.3.1 HTTP 基本身份验证 66
3.3.2 密码管理 68
3.3.3 身份提供商 69
3.3.4 会话和 Cookie 的安全性 75
3.3.5 测试身份验证 75
3.4 依赖管理 76
3.4.1 Golang vendoring 76
3.4.2 Node.js 的包管理 78
3.4.3 Python requirements 79
3.5 本章小结 80
4 第二层安全性 :保护云基础设施 81
4.1 保护并测试云基础设施 :部署器 82
4.1.1 设置部署器 83
4.1.2 配置 Docker Hub 和部署器之间的通知 84
4.1.3 对基础设施执行测试 85
4.1.4 更新发票应用的环境 85
4.2 限制网络访问 86
4.2.1 测试安全组 87
4.2.2 开放安全组之间的访问权限 90
4.3 搭建安全入口 91
4.3.1 生成 SSH 密钥 93
4.3.2 在 EC2 中创建堡垒机 94
4.3.3 启用 SSH 双因子验证 96
4.3.4 被访问时发送通知 101
4.3.5 一般安全注意事项 103
4.3.6 开放安全组之间的访问权限 109
4.4 控制对数据库的访问 111
4.4.1 分析数据库结构 112
4.4.2 PostgreSQL 的角色和权限 114
4.4.3 为发票应用定义细粒度的权限 115
4.4.4 在部署器中断言权限 120
4.5 本章小结 122
5 第三层安全性 :保护通信 123
5.1 安全通信意味着什么 124
5.1.1 早期的对称加密 125
5.1.2 Di?e-Hellman 与 RSA 126
5.1.3 公钥基础设施 129
5.1.4 SSL 和 TLS 130
5.2 理解 SSL/TLS 131
5.2.1 证书链 132
5.2.2 TLS 握手 132
5.2.3 完美前向保密 135
5.3 让应用使用 HTTPS 136
5.3.1 从 AWS 获取证书 136
5.3.2 从 Let’s Encrypt 获取证书 137
5.3.3 在 AWS ELB 上启用 HTTPS 139
5.4 现代化 HTTPS 142
5.4.1 测试 TLS 143
5.4.2 实施 Mozilla 现代指南 146
5.4.3 HSTS :严格传输安全 147
5.4.4 HPKP :公钥固定 149
5.5 本章小结 152
6 第四层安全性 :保护交付流水线 153
6.1 代码管理基础设施的访问控制 155
6.1.1 管理 GitHub 组织中的权限 156
6.1.2 管理 GitHub 和 CircleCI 之间的权限 158
6.1.3 用 Git 对提交和 tag 签名 161
6.2 容器存储的访问控制 165
6.2.1 管理 Docker Hub 与 CircleCI 之间的权限 165
6.2.2 用 Docker 内容信任机制对容器签名 168
6.3 基础设施管理的访问控制 169
6.3.1 使用 AWS 角色和策略管理权限 169
6.3.2 将密码分发到生产环境系统中 173
6.4 本章小结 179
第 2 部分 监控异常,保护服务免受攻击
7 收集并保存日志 183
7.1 从系统和应用中收集日志 185
7.1.1 从系统中收集日志 187
7.1.2 收集应用日志 191
7.1.3 基础设施日志 194
7.1.4 收集 GitHub 日志 197
7.2 通过消息代理串流日志事件 199
7.3 在日志消费者中处理事件 201
7.4 保存并归档日志 204
7.5 访问日志 206
7.6 本章小结 209
8 分析日志找到欺诈和攻击 211
8.1 日志分析层的架构 212
8.2 使用字符串特征检测攻击 219
8.3 欺诈检测的统计模型 223
8.3.1 滑动窗口与循环缓冲 223
8.3.2 移动平均值 226
8.4 利用地理信息数据来发现滥用 229
8.4.1 记录用户的地理信息 230
8.4.2 计算距离 231
8.4.3 找到用户的正常连接区域 232
8.5 检测已知模式的异常 234
8.5.1 user-agent 特征 234
8.5.2 异常的浏览器 234
8.5.3 交互模式 234
8.6 向运维人员和终用户发出告警 235
8.6.1 向运维人员升级安全事件 236
8.6.2 何时以何种方式通知终用户 239
8.7 本章小结 240
9 入侵检测 243
9.1 入侵七部曲 :杀伤链 244
9.2 什么是攻击指示符 246
9.3 扫描终端节点寻找 IOC 254
9.4 使用 Suricata 检查网络流量 265
9.4.1 设置 Suricata 267
9.4.2 监控网络 268
9.4.3 编写规则 269
9.4.4 使用预定义规则集 270
9.5 在系统调用审计日志中寻找入侵 271
9.5.1 执行的漏洞 272
9.5.2 捕捉欺诈命令的执行 273
9.5.3 监控文件系统 275
9.5.4 监控不可能发生的事情 276
9.6 信任人们发现异常的能力 277
9.7 本章小结 278
10 安全事件响应案例分析 :加勒比海“瘫” 279
10.1 加勒比海“瘫” 281
10.2 识别 281
10.3 隔离 285
10.4 杀灭 287
10.4.1在 AWS 中捕获数字取证制品 289
10.4.2出站 IDS 过滤 290
10.4.3使用 MIG 追踪 IOC 295
10.5 恢复 298
10.6 总结经验和充分准备的优势 300
10.7 本章小结 303
第 3 部分 DevOps 安全性走向成熟
11 风险评估 307
11.4 风险管理是什么 308
11.5 CIA 三要素 310
11.2.1 机密性 311
11.2.2 完整性 312
11.2.3 可用性 313
11.6 确定组织面临的威胁 314
11.7 量化风险产生的影响 316
11.4.1 财务 317
11.4.2 声誉 317
11.4.3 生产力 318
11.8 识别威胁并度量脆弱程度 318
11.8.1 STRIDE 威胁建模框架 319
11.8.2 DREAD 威胁建模框架 320
11.9 快速风险评估 322
11.9.1 收集信息 323
11.9.2 建立数据字典 325
11.9.3 识别并度量风险 326
11.9.4 给出建议 328
11.10 记录并跟踪风险 329
11.10.1 承担、拒绝或转移风险 331
11.10.2 定期回顾风险 331
11.11 本章小结 332
12 测试安全性 333
12.4 维护安全可见性 334
12.5 审计内部应用和服务 335
12.5.1 Web 应用扫描器 336
12.5.2 模糊测试 339
12.5.3 静态代码扫描 342
12.5.4 审计云基础设施 345
12.6 红军和外部渗透测试 349
12.7 Bug 赏金计划 353
12.8 本章小结 356
13 持续安全 357
13.4 实践并反复练习 :10000 小时安全性 358
13.5 年 :将安全整合到 DevOps 中 359
13.5.1 不要过早下结论 360
13.5.2 全面测试并建立仪表盘 360
13.6 第二年 :居安思危 362
13.6.1 避免重复的基础设施建设 362
13.6.2 自建或采购 363
13.6.3 承受攻击 364
13.7 第三年 :推动变革 364
13.7.1 重新审视安全优先级 365
13.7.2 迭代前进 365
^ 收 起
1.1 DevOps 方法 2
1.1.1 持续集成 3
1.1.2 持续交付 4
1.1.3 基础设施即服务 5
1.1.4 文化和信任 6
1.2 DevOps 中的安全 7
1.3 持续安全 8
1.3.1 测试驱动安全 10
1.3.2 攻击监控与应对 12
1.3.3 评估风险并完善安全性 16
1.4 本章小结 17
第1 部分 案例研究:在简易的 DevOps 流水线上应用多层安全性
2 建立简易的 DevOps 流水线 21
2.1 实现线路图 22
2.2 代码仓库 :GitHub 24
2.3 CI 平台 :CircleCI 24
2.4 容器镜像库 :Docker Hub 28
2.5 生产环境基础设施 :Amazon Web Services 30
2.5.1 三层架构 31
2.5.2 配置访问 AWS 32
2.5.3 虚拟私有云 34
2.5.4 创建数据库层 35
2.5.5 EB 创建前两层 37
2.5.6 将容器部署到系统中 41
2.6 快速安全审计 44
2.7 本章小结 45
3 层安全性 :保护 Web 应用 47
3.1 保护并测试 Web 应用 48
3.2 网站攻击和内容安全 52
3.2.1 跨站脚本攻击和内容安全策略 52
3.2.2 跨站请求伪造 59
3.2.3 点击劫持和 IFrame 保护 64
3.3 用户身份验证的方法 65
3.3.1 HTTP 基本身份验证 66
3.3.2 密码管理 68
3.3.3 身份提供商 69
3.3.4 会话和 Cookie 的安全性 75
3.3.5 测试身份验证 75
3.4 依赖管理 76
3.4.1 Golang vendoring 76
3.4.2 Node.js 的包管理 78
3.4.3 Python requirements 79
3.5 本章小结 80
4 第二层安全性 :保护云基础设施 81
4.1 保护并测试云基础设施 :部署器 82
4.1.1 设置部署器 83
4.1.2 配置 Docker Hub 和部署器之间的通知 84
4.1.3 对基础设施执行测试 85
4.1.4 更新发票应用的环境 85
4.2 限制网络访问 86
4.2.1 测试安全组 87
4.2.2 开放安全组之间的访问权限 90
4.3 搭建安全入口 91
4.3.1 生成 SSH 密钥 93
4.3.2 在 EC2 中创建堡垒机 94
4.3.3 启用 SSH 双因子验证 96
4.3.4 被访问时发送通知 101
4.3.5 一般安全注意事项 103
4.3.6 开放安全组之间的访问权限 109
4.4 控制对数据库的访问 111
4.4.1 分析数据库结构 112
4.4.2 PostgreSQL 的角色和权限 114
4.4.3 为发票应用定义细粒度的权限 115
4.4.4 在部署器中断言权限 120
4.5 本章小结 122
5 第三层安全性 :保护通信 123
5.1 安全通信意味着什么 124
5.1.1 早期的对称加密 125
5.1.2 Di?e-Hellman 与 RSA 126
5.1.3 公钥基础设施 129
5.1.4 SSL 和 TLS 130
5.2 理解 SSL/TLS 131
5.2.1 证书链 132
5.2.2 TLS 握手 132
5.2.3 完美前向保密 135
5.3 让应用使用 HTTPS 136
5.3.1 从 AWS 获取证书 136
5.3.2 从 Let’s Encrypt 获取证书 137
5.3.3 在 AWS ELB 上启用 HTTPS 139
5.4 现代化 HTTPS 142
5.4.1 测试 TLS 143
5.4.2 实施 Mozilla 现代指南 146
5.4.3 HSTS :严格传输安全 147
5.4.4 HPKP :公钥固定 149
5.5 本章小结 152
6 第四层安全性 :保护交付流水线 153
6.1 代码管理基础设施的访问控制 155
6.1.1 管理 GitHub 组织中的权限 156
6.1.2 管理 GitHub 和 CircleCI 之间的权限 158
6.1.3 用 Git 对提交和 tag 签名 161
6.2 容器存储的访问控制 165
6.2.1 管理 Docker Hub 与 CircleCI 之间的权限 165
6.2.2 用 Docker 内容信任机制对容器签名 168
6.3 基础设施管理的访问控制 169
6.3.1 使用 AWS 角色和策略管理权限 169
6.3.2 将密码分发到生产环境系统中 173
6.4 本章小结 179
第 2 部分 监控异常,保护服务免受攻击
7 收集并保存日志 183
7.1 从系统和应用中收集日志 185
7.1.1 从系统中收集日志 187
7.1.2 收集应用日志 191
7.1.3 基础设施日志 194
7.1.4 收集 GitHub 日志 197
7.2 通过消息代理串流日志事件 199
7.3 在日志消费者中处理事件 201
7.4 保存并归档日志 204
7.5 访问日志 206
7.6 本章小结 209
8 分析日志找到欺诈和攻击 211
8.1 日志分析层的架构 212
8.2 使用字符串特征检测攻击 219
8.3 欺诈检测的统计模型 223
8.3.1 滑动窗口与循环缓冲 223
8.3.2 移动平均值 226
8.4 利用地理信息数据来发现滥用 229
8.4.1 记录用户的地理信息 230
8.4.2 计算距离 231
8.4.3 找到用户的正常连接区域 232
8.5 检测已知模式的异常 234
8.5.1 user-agent 特征 234
8.5.2 异常的浏览器 234
8.5.3 交互模式 234
8.6 向运维人员和终用户发出告警 235
8.6.1 向运维人员升级安全事件 236
8.6.2 何时以何种方式通知终用户 239
8.7 本章小结 240
9 入侵检测 243
9.1 入侵七部曲 :杀伤链 244
9.2 什么是攻击指示符 246
9.3 扫描终端节点寻找 IOC 254
9.4 使用 Suricata 检查网络流量 265
9.4.1 设置 Suricata 267
9.4.2 监控网络 268
9.4.3 编写规则 269
9.4.4 使用预定义规则集 270
9.5 在系统调用审计日志中寻找入侵 271
9.5.1 执行的漏洞 272
9.5.2 捕捉欺诈命令的执行 273
9.5.3 监控文件系统 275
9.5.4 监控不可能发生的事情 276
9.6 信任人们发现异常的能力 277
9.7 本章小结 278
10 安全事件响应案例分析 :加勒比海“瘫” 279
10.1 加勒比海“瘫” 281
10.2 识别 281
10.3 隔离 285
10.4 杀灭 287
10.4.1在 AWS 中捕获数字取证制品 289
10.4.2出站 IDS 过滤 290
10.4.3使用 MIG 追踪 IOC 295
10.5 恢复 298
10.6 总结经验和充分准备的优势 300
10.7 本章小结 303
第 3 部分 DevOps 安全性走向成熟
11 风险评估 307
11.4 风险管理是什么 308
11.5 CIA 三要素 310
11.2.1 机密性 311
11.2.2 完整性 312
11.2.3 可用性 313
11.6 确定组织面临的威胁 314
11.7 量化风险产生的影响 316
11.4.1 财务 317
11.4.2 声誉 317
11.4.3 生产力 318
11.8 识别威胁并度量脆弱程度 318
11.8.1 STRIDE 威胁建模框架 319
11.8.2 DREAD 威胁建模框架 320
11.9 快速风险评估 322
11.9.1 收集信息 323
11.9.2 建立数据字典 325
11.9.3 识别并度量风险 326
11.9.4 给出建议 328
11.10 记录并跟踪风险 329
11.10.1 承担、拒绝或转移风险 331
11.10.2 定期回顾风险 331
11.11 本章小结 332
12 测试安全性 333
12.4 维护安全可见性 334
12.5 审计内部应用和服务 335
12.5.1 Web 应用扫描器 336
12.5.2 模糊测试 339
12.5.3 静态代码扫描 342
12.5.4 审计云基础设施 345
12.6 红军和外部渗透测试 349
12.7 Bug 赏金计划 353
12.8 本章小结 356
13 持续安全 357
13.4 实践并反复练习 :10000 小时安全性 358
13.5 年 :将安全整合到 DevOps 中 359
13.5.1 不要过早下结论 360
13.5.2 全面测试并建立仪表盘 360
13.6 第二年 :居安思危 362
13.6.1 避免重复的基础设施建设 362
13.6.2 自建或采购 363
13.6.3 承受攻击 364
13.7 第三年 :推动变革 364
13.7.1 重新审视安全优先级 365
13.7.2 迭代前进 365
^ 收 起
Julien Vehent 在 Mozilla.负责 Firefox 的安全运营团队,掌管着每日与几千万 Firefox 用户打交道的 Web 服务的实现和运维。自从 2007 年取得信息安全大学学位之后,作者在开发、运维和互联网服务安全保障领域已累积15年以上经验。覃宇,ThoughtWorks 高级咨询师,10余年移动应用开发经验,Android 技术专家;译有《Kotlin实战》《Severless:无服务架构与AWS Lambda》《领域驱动设计精粹》等书。
本书主要介绍了 DevOps 实践中*容易被忽视的一环——安全,并且对云原生服务的安全保障也做了全面的阐述。书中详细介绍了 Web 攻击防范、权限验证、日志监控、入侵检测、网络安全协议等老生常谈的话题在云原生基础设施上的变化。书中还提出了适应 DevOps 文化的持续安全、测试驱动安全、基础设施与流水线保证、轻量风险评估等颇具新意的观点和实践。本书通过一个 Web 应用示例展示了ZAP、pineapple、Hindsight、GRR、MIG、osquery 和 Suricata 等工具的使用方法。本书*后总结了一份实施持续安全的三年路线图,指导组织全面提升安全实践和安全意识。本书适合 DevOps 实践者阅读,包括参与其中的安全工程师、软件开发人员、基础设施运维人员及项目管理人员等。
比价列表
1人想要
公众号、微信群
缺书网
微信公众号
微信公众号
扫码进群
实时获取购书优惠
实时获取购书优惠