• 【现货速发】Google系统架构解密 构建安全可靠的系统
  • 【现货速发】Google系统架构解密 构建安全可靠的系统
  • 【现货速发】Google系统架构解密 构建安全可靠的系统
  • 【现货速发】Google系统架构解密 构建安全可靠的系统
  • 【现货速发】Google系统架构解密 构建安全可靠的系统
  • 【现货速发】Google系统架构解密 构建安全可靠的系统
  • 【现货速发】Google系统架构解密 构建安全可靠的系统
  • 【现货速发】Google系统架构解密 构建安全可靠的系统
  • 【现货速发】Google系统架构解密 构建安全可靠的系统
21年品牌 40万+商家 超1.5亿件商品

【现货速发】Google系统架构解密 构建安全可靠的系统

全新正版书籍,24小时发货,可开发票。

75.6 5.8折 129.8 全新

库存4件

天津津南
认证卖家担保交易快速发货售后保障

作者[美]希瑟·阿德金斯(Heather Adkins)[美]贝齐·拜尔(Betsy

出版社人民邮电出版社

ISBN9787115569257

出版时间2021-09

装帧平装

开本其他

定价129.8元

货号29300920

上书时间2024-12-28

易安居书舍

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
导语摘要

作为系统架构的重中之重,安全性和可靠性是设计和维护可扩展系统的核心。在本书中,Google安全团队分享了成功设计、实现、维护系统的实践。你将了解系统的设计策略,如何在编程、测试、调试等环节中实现安全性和可靠性,以及如何应对不可预知的安全事件。全书分为五大部分,共21章,内容涉及安全性和可靠性的关系,系统的设计原则、实现原则、维护原则,还辅以丰富的案例分析。阅读本书,你不仅能学到丰富的系统架构技巧,而且能看到相关从业者在面临复杂的实际状况时如何权衡利弊,从而真正提高系统的安全性和可靠性。



作者简介

【作者简介】 希瑟·阿德金斯(Heather Adkins)是在Google有近20年工作经验的“老兵”,也是Google安全团队的创始成员。 贝齐·拜尔(Betsy Beyer)毕业于斯坦福大学,是Google SRE技术作者。 保罗·布兰肯希普(Paul Blankinship)是Google技术写作团队负责人,同时服务于Google安全与隐私工程团队。 彼得·莱万多夫斯基(Piotr Lewandowski)是Google安全生产技术负责人,负责促成SRE与安全团队紧密协作。 阿那·奥普雷亚(Ana Oprea)负责安全、SRE及Google技术基础设施的战略规划。 亚当·斯塔布菲尔德(Adam Stubblefield)是Google安全领域的技术负责人,他协助建立了Google大部分核心安全基础设施。 【译者简介】 周雨阳 就职于腾讯安全平台部研发安全团队,参与DevSecOps的一线建设工作,对业务研发流程、编码安全及漏洞检测有深入了解,曾发现并报告Google、Apple、Mozilla等的产品漏洞,另译有《黑客攻防技术宝典:反病毒篇》。 刘志颖 高级安全工程师,现就职于腾讯PCG应用安全团队,担任研发安全方向负责人,主导应用漏洞风险治理和DevSecOps落地工作,在研发与架构安全、安全漏洞发现与防护等方向有较多实战经验。



目录

推荐序一 xvii

推荐序二 xix

对本书的赞誉 xxi

序一 xxiii

序二 xxv

前言 xxvii

第 一部分 入门资料

第 1章 安全性与可靠性的交集 3

1.1 从密码和电钻谈起 3

1.2 可靠性与安全性:设计注意事项 4

1.3 机密性、完整性、可用性 5

1.3.1 机密性 5

1.3.2 完整性 5

1.3.3 可用性 6

1.4 可靠性与安全性:共性 6

1.4.1 隐形 6

1.4.2 评估 7

1.4.3 简洁性 7

1.4.4 演变 7

1.4.5 弹性 8

1.4.6 从设计到生产 9

1.4.7 调查系统和日志 9

1.4.8 危机响应 9

1.4.9 恢复 10

1.5 小结 10

第 2章 了解攻击者 11

2.1 攻击者动机 12

2.2 攻击者画像 13

2.2.1 业余爱好者 13

2.2.2 漏洞研究人员 13

2.2.3 黑客活动家 14

2.2.4 犯罪分子 14

2.2.5 自动化和人工智能 15

2.2.6 内部人员 15

2.3 攻击者方法论 19

2.3.1 威胁情报 19

2.3.2 网络杀伤链 20

2.3.3 TTP 20

2.4 风险评估注意事项 21

2.5 小结 21

第二部分 设计系统

第3章 示例分析:安全代理 25

3.1 生产环境中的安全代理 25

3.2 Google工具代理 27

3.3 小结29

第4章 设计中的权衡 30

4.1 设计目标和要求 31

4.1.1 特性需求 31

4.1.2 非功能性需求 31

4.1.3 功能与涌现特性 32

4.1.4 案例:Google的设计文档 33

4.2 需求平衡 34

4.3 处理紧张局势和统一目标 37

4.3.1 案例:微服务和Google Web应用程序框架 37

4.3.2 统一涌现特性的需求 39

4.4 初始速度和持续速度 39

4.5 小结 41

第5章 小特权设计 42

5.1 概念和术语 43

5.1.1 小特权 43

5.1.2 零信任网络 43

5.1.3 零接触 43

5.2 基于风险的访问分类 43

5.3 实践 44

5.3.1 API功能小化 45

5.3.2 Breakglass机制 47

5.3.3 审计 47

5.3.4 测试和小特权 49

5.3.5 诊断被拒绝的访问 50

5.3.6 优雅失败和Breakglass机制 51

5.4 工作案例:配置分发 51

5.4.1 基于OpenSSH实现的POSIX API 52

5.4.2 软件更新API 52

5.4.3 自定义OpenSSH ForceCommand 53

5.4.4 自定义HTTP接收器(边车) 53

5.4.5 自定义HTTP接收器(内置) 53

5.4.6 权衡取舍 53

5.5 一种用于认证和授权决策的策略框架 54

5.5.1 使用高级授权控件 55

5.5.2 投入广泛使用的授权框架 55

5.5.3 避免潜在的陷阱 56

5.6 高级控制 56

5.6.1 MPA 56

5.6.2 3FA 57

5.6.3 业务依据 58

5.6.4 临时访问 59

5.6.5 代理 59

5.7 权衡和冲突 59

5.7.1 增加了安全复杂性 60

5.7.2 对合作商及公司文化的影响 60

5.7.3 影响安全性的质量数据和系统 60

5.7.4 对用户工作效率的影响 60

5.7.5 对开发复杂性的影响 60

5.8 小结 61

第6章 面向易理解性的设计 62

6.1 为什么易理解性很重要 62

6.1.1 系统不变量 63

6.1.2 分析不变量 64

6.1.3 心智模型 65

6.2 设计易理解的系统 65

6.2.1 复杂性与易理解性 65

6.2.2 分解复杂性 66

6.2.3 集中负责安全性和可靠性需求 67

6.3 系统架构 67

6.3.1 易于理解的接口规范 68

6.3.2 易于理解的身份、认证和访问控制 69

6.3.3 安全边界 74

6.4 软件设计 78

6.4.1 使用应用程序框架满足服务需求 78

6.4.2 理解复杂的数据流 79

6.4.3 考虑API的可用性 81

6.5 小结 83

第7章 适应变化的设计 84

7.1 安全变更的类型 85

7.2 变更中的设计 85

7.3 让发布更容易的架构决策 86

7.3.1 让依赖项保持并频繁重建86

7.3.2 用自动化测试让发布更频繁86

7.3.3 使用容器 87

7.3.4 使用微服务 87

7.4 不同的变更:不同的速度与不同的时间线 89

7.4.1 短期变更:零日漏洞 90

7.4.2 中期变更:改善安全态势 92

7.4.3 长期变更:外部需求 94

7.5 难点:计划调整 96

7.6 不断扩大的范围:心脏滴血漏洞 97

7.7 小结 98

第8章 弹性设计 99

8.1 弹性设计原则 100

8.2 纵深防御 100

8.2.1 特洛伊木马 100

8.2.2 Google App Engine分析 102

8.3 控制降级 104

8.3.1 区分故障成本 105

8.3.2 部署响应机制 107

8.3.3 负责任的自动化 109

8.4 控制爆炸半径 111

8.4.1 角色分离 112

8.4.2 位置分离 113

8.4.3 时间分离 115

8.5 故障域和冗余 115

8.5.1 故障域 116

8.5.2 组件类型 117

8.5.3 控制冗余 119

8.6 持续验证 120

8.6.1 验证关键区域 121

8.6.2 验证实践 122

8.7 实践建议:着手点 124

8.8 小结 125

第9章 面向恢复性的设计 127

9.1 要恢复什么 128

9.1.1 随机错误 128

9.1.2 意外错误 128

9.1.3 软件错误 128

9.1.4 恶意行为 129

9.2 恢复机制的设计原则 129

9.2.1 面向快速恢复的设计(受政策监督) 129

9.2.2 限制对外部时间观念的依赖 132

9.2.3 回滚所代表的安全性和可靠性间的权衡 133

9.2.4 使用显式吊销机制 139

9.2.5 了解精确到字节的预期状态 142

9.2.6 面向测试和持续验证的设计 145

9.3 紧急访问 146

9.3.1 访问控制 147

9.3.2 通信 148

9.3.3 响应人员的习惯 148

9.4 预期外的收益 149

9.5 小结 149

第 10章 缓解拒绝服务攻击 150

10.1 攻守双方的策略 150

10.1.1 攻方的策略 151

10.1.2 守方的策略 152

10.2 面向防御的设计 152

10.2.1 具有防御能力的架构 152

10.2.2 使服务具备防护能力 154

10.3 缓解攻击 154

10.3.1 监控与告警 154

10.3.2 优雅降级 155

10.3.3 DoS防护系统 155

10.3.4 有策略的响应 156

10.4 应对源于服务本身的“攻击” 157

10.4.1 用户行为 157

10.4.2 客户端重试行为 158

10.5 小结 159

第三部分 实现系统

第 11章 案例分析:设计、实现和维护一个受信任的公共CA 163

11.1 受信任的公共CA的背景 163

11.2 为什么需要受信任的公共CA 164

11.3 自建还是购买CA 165

11.4 设计、开发和维护过程中的考虑 165

11.4.1 选择编程语言 166

11.4.2 复杂与简明 166

11.4.3 保护第三方和开源组件 167

11.4.4 测试 167

11.4.5 CA密钥材料的弹性 168

11.4.6 数据验证 168

11.5 小结 169

第 12章 编写代码 170

12.1 框架级安全性和可靠性保证措施 171

12.1.1 使用框架的好处.172

12.1.2 案例:用于创建RPC后端的框架 172

12.2 常见安全漏洞 176

12.2.1 SQL注入漏洞:TrustedSqlString 177

12.2.2 预防XSS漏洞:SafeHtml 178

12.3 评估和构建框架的经验 179

12.3.1 用于常见任务的简单、安全、可靠的库 180

12.3.2 部署策略 181

12.4 简洁性有助于提升代码的安全性和可靠性 182

12.4.1 避免多层嵌套 182

12.4.2 消除YAGNI类代码 183

12.4.3 偿还技术债务 184

12.4.4 重构 184

12.5 默认安全性和可靠性 185

12.5.1 选择合适的工具 185

12.5.2 使用强类型 186

12.5.3 检查代码.188

12.6 小结 189

第 13章 代码测试 190

13.1 单元测试 190

13.1.1 编写有效的单元测试 191

13.1.2 编写单元测试的时机 191

13.1.3 单元测试对代码的影响 192

13.2 集成测试 193

13.3 动态程序分析 194

13.4 模糊测试 197

13.4.1 模糊引擎的工作原理 197

13.4.2 编写有效的模糊测试驱动程序 200

13.4.3 示例fuzzer 201

13.4.4 持续模糊测试 204

13.5 静态程序分析 205

13.5.1 自动代码检查工具 205

13.5.2 如何将静态分析集成至开发工作流中 209

13.5.3 抽象解释 211

13.5.4 形式化方法 213

13.6 小结 213

第 14章 部署代码 214

14.1 概念和术语 214

14.2 威胁建模 216

14.3 实践 217

14.3.1 强制做代码审查 217

14.3.2 依赖自动化 218

14.3.3 验证工件,而不仅仅是人 218

14.3.4 将配置视为代码.219

14.4 基于威胁建模做安全加固 220

14.5 高级缓解策略 222

14.5.1 二进制文件来源 222

14.5.2 基于来源的部署策略 224

14.5.3 可验证的构建 225

14.5.4 部署阻塞点 230

14.5.5 部署后验证 231

14.6 实用建议 232

14.6.1 一步步来 232

14.6.2 提供可操作的错误消息 233

14.6.3 确保来源信息明确 233

14.6.4 创建明确的策略 233

14.6.5 引入Breakglass机制 234

14.7 重温基于威胁建模部署安全措施 234

14.8 小结 234

第 15章 调查系统 235

15.1 从调试到调查 236

15.1.1 案例:临时文件 236

15.1.2 调试技巧 237

15.1.3 当陷入困境时该怎么办 243

15.1.4 协同调试:一种教学方法 246

15.1.5 安全调查与系统调试间的差异 246

15.2 收集恰当、有用的日志 247

15.2.1 将日志设计为不可变的 248

15.2.2 考虑隐私要素 249

15.2.3 确定要保留哪些安全相关的日志 249

15.2.4 日志记录成本 252

15.3 可靠、安全的调试访问 253

15.3.1 可靠性 253

15.3.2 安全性 253

15.4 小结 254

第四部分 维护系统

第 16章 防灾规划 257

16.1 “灾难”的定义 257

16.2 动态灾难响应策略 258

16.3 灾难风险分析 259

16.4 建立事件响应团队 259

16.4.1 确定团队成员和角色 260

16.4.2 制订团队章程 261

16.4.3 建立严重性和优先级模型 262

16.4.4 确定与IR团队合作的运营参数 262

16.4.5 制订响应计划 263

16.4.6 创建详细的行动手册 264

16.4.7 确保访问和更新机制就位 264

16.5 在事件发生前预先安排系统和人员 264

16.5.1 配置系统 265

16.5.2 培训 265

16.5.3 流程和程序 266

16.6 测试系统和响应计划 266

16.6.1 审计自动化系统 267

16.6.2 开展非侵入式桌面演练.267

16.6.3 在生产环境中测试响应 268

16.6.4 红队测试 270

16.6.5 评估响应 270

16.7 Google的案例 271

16.7.1 具有全球影响的测试 271

16.7.2 DiRT演习测试紧急访问 271

16.7.3 行业级漏洞 271

16.8 小结 272

第 17章 危机管理 273

17.1 是否存在危机 274

17.1.1 事件分诊 274

17.1.2 入侵与缺陷 275

17.2 指挥事件 276

17.2.1 第 一步:不要惊慌 276

17.2.2 开展响应 277

17.2.3 组建自己的事件团队 277

17.2.4 OpSec 278

17.2.5 牺牲好的OpSec实践换取更大的利益 280

17.2.6 调查过程 280

17.3 控制事件 283

17.3.1 并行处理事件 283

17.3.2 移交 284

17.3.3 士气 286

17.4 沟通 287

17.4.1 误解 287

17.4.2 拐弯抹角 287

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP