12年前,DevOps(研发运维一体化)作为精益和敏捷之后的另一个全新的方法论被提出,并且走进了软件开发的世界。作为DevOps的核心理念,持续交付帮助企业通过自动化和更好的团队协作实现了快速交付。之后出现的微服务让DevOps摆脱了单一架构模式下各个模块的依赖关系,从而使得交付速度更上一层楼。而云原生的出现不仅降低了基础设施的成本,也使得系统的运维和运营更加稳定。经过过去10多年的发展,企业的DevOps已经逐渐成熟。大家突然发现,除了速度和质量外,安全对于企业来说也同等重要。而且传统应用安全保护模式已经不适应DevOps模式下的快速交付了,甚至逐渐成为快速交付继续进阶的瓶颈。为了解决这个问题,2012年就被提出来的DevSecOps于2017年开始在世界范围内逐渐流行起来。
然而,DevSecOps横跨研发效能和安全两个领域,过去这种复合型人才几乎不存在。从事研发效能的专家将安全引入开发流程的各个阶段,以及从事应用安全的专家将安全在开发团队进行落地,都需要额外的技能和大胆的尝试。由于实践DevSecOps的挑战巨大和难度极高,虽然经历了三四年的发展,不仅国外DevSecOps相关的书籍甚少,国内至今仍无一本全面并且系统地介绍DevSecOps落地实践的书籍。《DevSecOps实战》应运而生。
本书特色
本书采取了与大部分技术书不同的编写方式。书中杜撰了一个简单的故事,讲述了两位发小,作为研发效能和安全专家在比较有代表性的互联网公司(灰石网络)和金融企业(德富银行)落地DevSecOps的经历。通过故事里实践DevSecOps过程中抛出的问题和痛点,引出各章的相关内容和解决方案,让读者更有实际工作场景的代入感。
本书的作者都是拥有DevSecOps相关工具开发或者落地实践经验的资深专家和高级管理者,却又来自不同的领域(DevOps和应用安全)和不同的行业(互联网和金融)。由于DevSecOps本身是跨越软件开发、研发效能和应用安全等不同领域的全新方法论,并且在不同行业的落地目标和方式也有所不同,因此本书的作者群体正好可以从不同角度对DevSecOps的实践和落地进行全方位覆盖。其目标是不仅使来自不同行业的开发和DevOps背景的读者了解DevSecOps相关安全理念和实践,也使来自不同行业信息安全背景的读者了解如何进行安全前置,最终将安全意识和能力落地开发团队。
读者对象
研发效能工程师
研发效能架构师
研发效能管理人员
敏捷和研发效能教练
应用安全工程师
应用安全架构师
应用安全管理人员
开发、测试和运维人员
对研发效能和应用安全感兴趣的其他人员
作者介绍
周纪海
英国伦敦帝国理工学院博士,拥有10年以上多家国际大型银行(巴克莱银行、 汇丰银行等)和腾讯的DevOps/DevSecOps转型和落地的工作经验。从2018-2021年,在国内外30多个技术峰会、论坛和社区上分享过DevOps和DevSecOps经验。
周一帆
汇丰科技中国高级信息安全分析师、注册信息安全工程师、云安全工程师。在中国和新加坡拥有多年的金融科技与信息安全行业工作经验。目前主要从事应用系统架构安全审查、安全风险评估和DevSecOps的实施与落地工作。
马松松
腾讯安全专家,拥有13年基础安全领域的工作经验。目前团队主要负责研发漏洞管控相关的规范、流程以及自动化系统的建设和运营工作。自2019年开始关注和推动DevSecOps在腾讯内部的探索和落地。
陶 芬
武汉大学信息安全专业硕士,在国内大型互联网公司百度工作十余年,负责企业内DevSecOps落地和数据安全能力建设以及运营实践。
杨伟强
汇丰科技中国信息安全部门总负责人,在大型跨国金融信息安全领域工作15年,主要研究方向包括安全开发、安全架构以及威胁建模等。
内容鲜读
安全工具在CICD自动化流水线上的集成
图3-7
架构安全风险评估体系建设
图6-10
DevSecOps度量平台建设
图8-2
目 录
序
前言
第1章 DevSecOps的演进与落地思考 1
1.1DevOps简介 4
1.1.1DevOps发展简史 5
1.1.2DevOps理念 6
1.2DevSecOps简介 7
1.2.1 从DevOps到DevSecOps 7
1.2.2 从SDL到DevSecOps 11
1.2.3DevSecOps的指导原则 14
1.2.4DevSecOps实践 17
1.3 互联网行业推动DevSecOps的动机与目标 21
1.4 金融行业推动DevSecOps的动机与目标 22
1.5 总结 23
第2章 DevSecOps的实施解决方案和体系建设 24
2.1DevSecOps现状调研26
2.1.1DevSecOps的行业调研26
2.1.2 企业现状调研29
2.2 流程和方法论:敏捷开发与CI/CD34
2.2.1 敏捷开发34
2.2.2 持续集成、持续交付和持续部署40
2.3 技术:工具与自动化41
2.3.1 项目管理工具41
2.3.2 源代码管理工具42
2.3.3 静态代码扫描工具42
2.3.4 静态应用安全测试工具43
2.3.5 持续集成工具44
2.3.6 构建工具44
2.3.7 制品管理工具45
2.3.8 第三方安全扫描工具45
2.3.9 自动化测试工具45
2.3.10 动态安全测试工具46
2.3.11 交互式安全测试工具46
2.3.12 自动化配置/发布工具46
2.3.13 日志分析工具47
2.3.14 监控工具47
2.3.15DevSecOps工具链48
2.4 文化与组织结构50
2.4.1DevSecOps的文化和挑战50
2.4.2DevSecOps的组织结构和角色50
2.5DevSecOps框架与模型的建立52
2.5.1DevSecOps的运营模型 52
2.5.2DevSecOps的实现模型54
2.5.3DevSecOps的成熟度模型54
2.6 总结56
第3章 DevSecOps转型—从研发入手 57
3.1 安全意识和能力提升60
3.1.1 安全意识61
3.1.2 安全能力61
3.1.3 隐私合规63
3.2 安全编码64
3.2.1 默认安全64
3.2.2 安全编码规范64
3.2.3 安全函数库和安全组件65
3.2.4 框架安全65
3.3 源代码管理和安全66
3.3.1 源代码安全管理67
3.3.2 分支策略67
3.3.3 代码评审74
3.4 持续集成75
3.4.1 编译构建和开发环境安全76
3.4.2 持续集成流水线76
3.4.3 安全能力在流水线上的融入78
3.5 代码质量和安全分析79
3.5.1 静态代码质量分析79
3.5.2 静态应用安全测试81
3.5.3 软件成分分析83
3.6 制品管理及安全85
3.7 总结87
第4章 持续测试和安全88
4.1 持续测试—DevOps时代的高效测试之钥90
4.1.1 测试效率面临着巨大挑战91
4.1.2 什么是持续测试92
4.1.3 如何实现持续测试92
4.2 测试执行提效之自动化测试93
4.2.1 分层的自动化测试策略93
4.2.2 单元测试95
4.2.3 接口测试98
4.2.4UI测试100
4.2.5 其他自动化测试101
4.3 测试执行提效之精准测试101
4.4 测试流程提效:迭代内测试102
4.4.1 持续测试带来流程上的变革要求102
4.4.2 如何实践迭代内测试103
4.5 持续测试下的“左移”和“右移”104
4.5.1 测试左移104
4.5.2 测试右移106
4.5.3 “左移”“右移”不等于“去测试化”107
4.6 应用安全测试左移108
4.6.1 动态应用安全测试108
4.6.2 交互式应用安全测试112
4.7DevSecOps影响着测试的方方面面116
4.7.1 测试分类116
4.7.2 质量度量118
4.7.3 组织架构120
4.7.4 团队文化121
4.8 总结122
第5章 业务与安全需求管理123
5.1 业务功能需求管理125
5.1.1 需求的收集与筛选126
5.1.2 需求的分析127
5.1.3 需求排期130
5.1.4 需求描述和文档130
5.1.5 需求拆分132
5.1.6 需求评审132
5.1.7 需求状态管理133
5.1.8 需求管理工具134
5.1.9 临时/紧急需求134
5.2 安全需求管理135
5.2.1 需求的安全分类136
5.2.2 需求的安全评审138
5.3 总结143
第6章 进一步左移—设计与架构144
6.1 为什么需要微服务架构147
6.1.1 单体架构的局限性148
6.1.2 微服务架构的优势149
6.1.3 微服务与DevOps的关系149
6.1.4 微服务化的实施路线151
6.2 微服务拆分与设计151
6.2.1 微服务拆分原则151
6.2.2 微服务设计原则152
6.2.3 微服务拆分方法152
6.3 微服务开发与组合:微服务开发框架154
6.3.1Spring Cloud微服务架构154
6.3.2Service Mesh微服务架构157
6.4 微服务改造:单体系统重构160
6.4.1 改造策略160
6.4.2 微服务改造的关键要素161
6.4.3 微服务改造的实施步骤161
6.5 安全设计与架构安全162
6.5.1 安全风险评估体系的建立162
6.5.2 项目的分类定义164
6.6 快速检查表的使用166
6.7 完整风险评估—威胁建模169
6.7.1 识别资产170
6.7.2 创建架构设计概览171
6.7.3 分析应用系统171
6.7.4 识别威胁172
6.7.5 记录威胁175
6.7.6 威胁评级176
6.7.7 威胁建模的工具与自动化180
6.8 合规性检查184
6.9 总结186
第7章 DevSecOps运维和线上运营187
7.1 配置和环境管理189
7.1.1 基础设施即代码190
7.1.2 配置的安全管理原则191
7.1.3 安全的计算环境192
7.2 发布部署策略193
7.3 持续监控和安全195
7.3.1 业务和应用层级的持续监控196
7.3.2 安全监控197
7.3.3 统一监控平台的建立198
7.4 日志分析198
7.4.1 日志管理的挑战199
7.4.2 日志平台建设199
7.4.3 日志的安全200
7.5 事件响应与业务的连续性202
7.5.1 信息安全应急响应机制202
7.5.2 业务的连续性206
7.6 身份认证和访问控制208
7.6.1 身份认证与访问控制的方式及对应问题208
7.6.2 统一的身份认证与访问管理214
7.7 数据管理和安全216
7.7.1 数据本身的安全216
7.7.2 数据的安全防护218
7.7.3 大数据安全220
7.7.4 数据治理与合规222
7.8 安全众测225
7.9 红蓝对抗227
7.10DevOps平台的安全229
7.11RASP230
7.11.1RASP和WAF231
7.11.2RASP的工作原理和特点232
7.11.3RASP技术面临的挑战233
7.12 总结234
第8章 DevSecOps度量体系建设236
8.1 持续反馈和度量驱动238
8.2 度量指标的定义与成熟度模型240
8.2.1 度量的指标241
8.2.2 成熟度模型245
8.3 度量平台的建立、安全管控和可视化248
8.4 度量实践常见的问题和误区250
8.5 实践中如何正确使用度量251
8.6 研发效能度量实践254
8.7 总结257
第9章 云原生场景下的DevSecOps应用258
9.1 云原生带来的新变化260
9.1.1 云原生的DevOps新变化260
9.1.2 云原生面临的新安全风险262
9.1.3 云原生带来的新安全需求265
9.2 云原生DevSecOps实施流程266
9.2.1 开发阶段的安全266
9.2.2 分发阶段的安全267
9.2.3 部署阶段的安全270
9.2.4 运行时阶段的安全271
9.3 云原生DevSecOps相关安全工具274
9.3.1 云原生安全开源工具274
9.3.2 云原生安全商业产品276
9.3.3 云原生DevSecOps实践框架277
9.4 云原生DevSecOps的落地应用和演进趋势278
9.5 总结281
后记282
参考文献285
踩楼赠书!仅限5本!若所踩楼层与系统内置的中奖楼层匹配上,立即显示中奖。
注意事项:
1. 每个ID只能获得一次奖励,踩楼帖只能回复一帖。
2. 严禁用马甲参与活动,一经发现视为放弃参加此活动。
好书不容错过!欢迎大家踊跃参与!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2021-12-24 15:30
被Editor编辑
,原因: