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

Google系统架构解密 构建安全可靠的系统

全新正版 极速发货

88.3 6.8折 129.8 全新

库存5件

广东广州
认证卖家担保交易快速发货售后保障

作者(美)希瑟·阿德金斯 等

出版社人民邮电出版社

ISBN9787115569257

出版时间2021-09

装帧平装

开本16开

定价129.8元

货号1202481201

上书时间2024-09-04

徐小智的书店

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

   商品详情   

品相描述:全新
商品描述
目录
推荐序一xvii

推荐序二xix

对本书的赞誉xxi

序一xxiii

序二xxv

前言xxvii

部分入门资料

章安全性与可靠性的交集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.3TTP20

2.4风险评估注意事项21

2.5小结21

第二部分设计系统

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

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

3.2Google工具代理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.1API功能最小化45

5.3.2Breakglass机制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 API52

5.4.2软件更新API52

5.4.3自定义OpenSSHForceCommand53

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.1MPA56

5.6.23FA57

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.2Google 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

0章缓解拒绝服务攻击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.3DoS防护系统155

10.3.4有策略的响应156

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

10.4.1用户行为157

10.4.2客户端重试行为158

10.5小结159

第三部分实现系统

1章案例分析:设计、实现和维护一个受信任的公共CA163

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

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

11.3自建还是购买CA165

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

11.4.1选择编程语言166

11.4.2复杂与简明166

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

11.4.4测试167

11.4.5CA密钥材料的弹性168

11.4.6数据验证168

11.5小结169

2章编写代码170

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

12.1.1使用框架的好处.172

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

12.2常见安全漏洞176

12.2.1SQL注入漏洞:TrustedSqlString177

12.2.2预防XSS漏洞:SafeHtml178

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

3章代码测试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示例fuzzer201

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

4章部署代码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

5章调查系统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

第四部分维护系统

6章防灾规划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.7Google的案例271

16.7.1具有全球影响的测试271

16.7.2DiRT演习测试紧急访问271

16.7.3行业级漏洞271

16.8小结272

7章危机管理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.4OpSec278

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

17.4.3会议288

17.4.4让合适的人了解合适的细节289

17.5整合回顾290

17.5.1分诊290

17.5.2宣布事件290

17.5.3沟通和OpSec290

17.5.4开始处理事件291

17.5.5移交291

17.5.6交还事件调查工作291

17.5.7准备沟通和补救292

17.5.8结束292

17.6小结293

8章恢复和善后294

18.1恢复调度295

18.2恢复时间线296

18.3恢复计划297

18.3.1确定恢复范围297

18.3.2恢复过程的考虑因素298

18.3.3恢复检查清单301

18.4启动恢复302

18.4.1隔离资产302

18.4.2系统恢复和软件升级303

18.4.3数据过滤304

18.4.4恢复数据304

18.4.5更换凭据和密钥305

18.6恢复之后306

18.7示例308

18.7.1被入侵的云实例308

18.7.2大规模钓鱼攻击309

18.7.3需要复杂恢复工作的、有针对性的攻击310

18.8小结311

第五部分组织与文化

9章案例研究:Chrome安全团队315

19.1背景和团队发展史315

19.2安全是团队的职责317

19.3帮助用户安全地浏览Web页面318

19.4速度很重要319

19.5设计纵深防御机制319

19.6保持透明,让社区参与进来320

19.7小结320

第20章理解角色和责任321

20.1谁为安全性和可靠性负责322

20.1.1专家的作用322

20.1.2了解安全专业知识324

20.1.3资格认证和学术教育325

20.2将安全性整合到组织中325

20.2.1嵌入安全人员和安全团队327

20.2.2案例:Google的嵌入式安全327

20.2.3特殊的团队:蓝队和红队329

20.2.4外部研究者330

20.3小结332

第21章建立安全可靠的文化333

21.1定义健康的安全性和可靠性文化334

21.1.1默认的安全性和可靠性文化334

21.1.2评审文化335

21.1.3意识文化336

21.1.4说“是”的文化339

21.1.5接受必然性的文化340

21.1.6可持续发展文化340

21.2通过最佳实践改变文化342

21.2.1对齐项目目标和激励参与者342

21.2.2通过风险规避机制减少恐惧343

21.2.3使安全兜底措施成为常态344

21.2.4提高生产力和可用性344

21.2.5多沟通,保持透明345

21.2.6怀抱同理心346

21.3说服领导层347

21.3.1了解决策过程347

21.3.2为变革立案348

21.3.3选择自己的战场349

21.3.4升级和问题解决349

21.4小结350

总结351

附录灾难风险评估矩阵353

作者介绍355

封面介绍355

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

主编推荐
1.Google安全团队在本书中分享了成功设计、实现、维护系统的实践,帮助读者可了解如何在编程和测试等环节中实现安全性和可靠性。
2.每一章均从基础内容入手,逐渐过渡到复杂的内容,深奥的部分会使用爬行动物图标来标识,帮读者掌握重点。
3.本书推荐了许多业界认可的工具和技术,读者可跟据自身项目的需求,设计适合自身风险状况的解决方案。
4.谷歌安全工程副总裁Royal Hansen、Google SRE总监Michael Wildpaner为本书作序推荐,并受到诸多业内人士赞誉:

“我有幸与作者共事多年,很好惊讶于他们毫无保留的分享。虽然这本书并非面面俱到,但我认为像它这样丰富的实用技巧和对权衡取舍的坦率讨论无可替代。”
——Eric Grosse
Google公司前安全工程副总裁

“在当今万物互联的时代,在线服务的安全性与可靠性愈发引人关注。本书的作者基于在Google多年的实践与思考,体系化地介绍了如何在早期对系统的安全性和稳定性进行顶层设计,同时把相应策略的执行贯穿系统的全生命周期。本书为互联网开发和运维人员提供了具有实践价值的指导。”
——郄小虎
腾讯公司副总裁

“Google把重点聚焦在安全主题上,并将可靠性和安全性深度结合,总结出了一套有效的方法,这套方法就是你手中这本书的精髓。”
——杨勇
腾讯云副总裁、腾讯安全平台部负责人

“这本书系统地介绍了DevSecOps的理念和实践。落地DevSecOps是庞大的工程,来看看Google是怎么做的吧!”
——胡珀
腾讯安全平台部应用运维安全中心总监

 “Google的技术和理念在业内一直比较优选,安全方面也是如此。这本书提到的很多实践值得参考和尝试。推荐国内安全从业者一读。”
——林锐林
腾讯PCG安全总监

“Google拥有开放的分享经验,其安全团队在这本书中分享了众多优选的观点和解决方案,并提供了关于基础设施安全‘解坑’和安全设计的宝贵参考。”
——ThreatSource(鸟哥)

—  没有更多了  —

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

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