首页>参考读物>计算机科学与技术>安全

DevSecOps敏捷安全
作者 : 子芽 著
出版日期 : 2022-07-12
ISBN : 978-7-111-70929-9
定价 : 129.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 404
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
这是一本体系化讲解DevSecOps敏捷安全的实战性著作,为企业应对软件开发方式敏态化与软件供应链开源化带来的安全挑战提供了解决之道,它能有效指导企业快速将安全能力完整嵌入整个DevOps体系,在保证业务研发效能的同时实现敏捷安全内生和自成长。
本书由国内软件供应链安全领域领军企业悬镜安全创始人子芽出品,得到了企业界和学术界10位权威安全技术专家的联袂推荐。主要的内容及其特色如下:
体系创新:不仅对业界已有的DevSecOps理论和方法进行了系统梳理,而且还分享了DevSecOps敏捷安全架构、DevSecOps敏捷安全技术金字塔等大量来自悬镜安全的创新理论和技术,全面讲解了DevSecOps敏捷安全的核心内涵、架构设计、体系建设、技术原理、度量方法、落地实践;
注重实战:包含大量实践原则、参考和落地方法,以及来自银行、券商、运营商、互联网、政府机构等领域的一线落地实践案例;
全球视野:立足于全球,对美国国防部、Netflix、Salesforce等机构和企业的DevSecOps实践进行了逐一分析和解读;
前瞻性强:不仅讲解了DevSecOps敏捷安全在云原生安全、软件供应链安全等热点领域的落地实践,而且展望了DevSecOps敏捷安全的发展趋势和技术演进方向。

图书特色

软件供应链安全领域领军企业悬镜安全创始人创作,10位学术界和企业界安全专家联袂推荐
深度讲解DevSecOps敏捷安全的核心内涵、架构设计、体系建设、技术原理、度量方法、落地实践
融合前沿创新技术和全球实践经验,创造性提出“DevSecOps敏捷安全体系”

图书前言

为什么要写这本书
数字经济时代,万物可编程,软件逐渐成为支撑社会正常运转的最基本元素之一,是新一代信息技术的灵魂。随着开源应用软件开发方式的使用度越来越高,开源组件事实上逐渐成为软件开发的核心基础设施,混源软件开发也已成为现代应用的主要开发交付方式,开源软件的安全问题也已被提升到关键基础设施安全和国家安全的高度来对待。
软件供应链开源化使得各个环节不可避免地受到开源应用的影响。尤其是开源应用的安全性,将直接影响软件供应链的安全性。除开源应用开发者在开发过程中引入安全缺陷之外,也可能会存在开发者有目的性地预留的安全缺陷,甚至存在攻击者将含有隐藏性恶意功能的异常行为代码上传到上游开源代码托管平台,以便实施定向软件供应链攻击的安全风险。上述开源应用中存在的众多安全问题,都将导致软件供应链安全隐患大大增加,使得安全形势更加严峻。早在春秋战国时期,我国军事家孙武就曾在《孙子兵法·虚实篇》中提出这样的军事思想:“故兵无常势,水无常形,能因敌变化而取胜者,谓之神。”面对复杂的攻防对抗局面,因应变化、拥抱变化也是敏捷安全建设的基石。
随着云计算、微服务和容器技术的快速普及,不仅IT基础架构发生了巨大变化,IT组织的业务交付模式也迎来巨大变革—从传统瀑布式开发和一次性全量交付逐渐趋向DevOps敏捷开发和持续性交付。在业务交付规模不断扩大、交付效率要求不断提高、研发及运营场景走向一体化的大环境下,如何在保证快速交付节奏的前提下保障业务安全性是安全部门最大的难题。DevSecOps敏捷安全应运而生,它通过一套全新的方法论及配套工具链将安全能力完整嵌入整个DevOps体系,在保证业务研发效能的同时能够实现敏捷安全内生和自成长。
除了现实业务安全需求的推动以外,DevSecOps体系的持续进化还受益于国际学术界和产业界的持续探索和实践输出。2017年,DevSecOps敏捷安全理念被首次引入RSA 大会(简称RSAC)—大会甚至为其设置专项技术研讨会。2021年,RSAC首次采用网络虚拟会议的形式举办,以“韧性”(Resilience)为本次大会的主题。大会上提出在构筑具有“韧性”的网络时,共同的核心目标是尽量避免攻击、减少攻击损失,以及攻击后快速恢复。在具体的应用实践中,业务应用本身及配套的安全系统应具备出厂免疫及预警功能,以做到规避攻击,借助风险管控将损失最小化,并提供及时的响应联动,帮助应用快速恢复。RSA创新沙盒有着“全球网络安全风向标”之称,而入选RSA创新沙盒十强的近半数厂商均聚焦在应用安全领域。其中,来自以色列的DevSecOps初创厂商Apiiro凭借创新的代码风险可视化管理技术斩获RSAC 2021创新沙盒全球总冠军,使得软件供应链与开发安全进一步受到国内外产业界与学术界的高度关注。
DevSecOps敏捷安全的起源、演进和广泛应用,标志着保障软件供应链安全开始进入一个全新的时代。将安全作为IT管理对象的一种属性,并将安全管理覆盖整个软件开发全生命周期,这将彻底改变企业和机构在软件供应链和开发基础设施方面的安全现状。
作为国内DevSecOps的主要推动力量之一,从2016年年初开始,我和悬镜创始团队就一直希望能有机会结合自身在前沿技术创新研究和行业应用中的实践,对DevSecOps敏捷安全体系的演进做一个系统性梳理,分享我们这些年在不同典型用户场景探索的落地经验。
“学到的就要教人,得到的就要给人。”研究生求学期间,导师曾这样要求过我们:“如果把人类现有的认知比作一个圈,那么当博士毕业时,我们的研究实践成果至少可以将现有认知向外再踏出一步。”这个要求至今对我和悬镜团队都有着巨大的影响。我们希望在这个新的前沿技术领域,凭借长期的技术积累来推动中国的安全产业向新的未知空间做更深层次的探索。
本书是一本DevSecOps软件供应链安全领域的专业书籍。我希望借助书中的理论阐述、体系构筑、技术研究、实践沉淀及技术演进预测,推动更多行业用户、技术爱好人员、专家学者及产业智库,结合自身业务和组织特点,去尝试了解、对比学习甚至着手采纳业内领先的DevSecOps 敏捷安全体系及落地实践经验,从源头追踪软件在开发、测试、部署、运营等环节面临的应用安全风险与未知外部威胁,帮助企业和机构逐步构筑一套适应自身业务弹性发展、面向敏捷业务交付并能够引领未来架构演进的内生敏捷安全体系。同时,希望本书不仅能够成为新一代敏捷安全体系建设的指南,也能鼓励更多不同类型的技术力量与DevSecOps行业开展新的对话。
读者对象
CTO/CIO/CSO/CEO
应用安全管理人员
应用安全工程师
应用安全架构师
开发、测试和运营人员
研发效能工程师
敏捷和研发效能教练
网络安全和计算机专业的学生和教师
对敏捷安全和研发效能感兴趣的其他人员
本书特色
本书是网络安全领域的进阶书籍,是我们实践新一代积极防御技术的重要参考,是我们践行DevSecOps敏捷安全体系的综合指导。本书在业界首次体系化地论述了DevSecOps敏捷安全,并将相关理论与实践相结合,为应对软件开发方式敏态化与软件供应链开源化带来的安全挑战提出了解决之道。本书创造性地提出DevSecOps敏捷安全体系架构,并由此展开,深度阐述了敏捷安全实践思想、理念、关键特性、框架以及典型应用场景,全面解读了新一代网络安全框架体系实现方法,汇聚悬镜安全多年来在DevSecOps、软件供应链安全和云原生安全等领域研究的重要技术成果和建设的重要实践经验,并结合国内外优秀案例详细介绍了DevSecOps在银行、券商、运营商、泛互联网、政府等行业的最佳实践,具有重要的学习参考价值。
本书观点鲜明、体系完备,融合了金融、教育和泛互联网领域应用安全与研发效能方面的实践,详细介绍了DevSecOps如何在软件开发流程的各个阶段融入安全,如何更高效地实现软件供应链源头风险治理,为企业实现DevOps转型之后的下一阶段进阶赋能。
如何阅读本书
本书分为五大部分。
第一部分(第1~2章):开发安全入门
第1章(初识开发安全)重点围绕SDLC(软件生命周期)展开论述。首先对SDLC几个主要阶段的安全活动做了逐一分析,并重点就SDLC、SDL、S-SDLC等容易混淆的重要概念做了对比分析,让读者对开发安全涉及的相关知识有一个初步了解,最后对开发安全实践中需要关注的重点进行了梳理和总结。
第2章(全面认识SDL)承接第1章安全左移在SDLC中的意义,对常见的安全开发模型和框架进行逐一分析,系统梳理了企业在实施SDL体系建设过程中可能会遇到的各种技术挑战,指导企业在不同的发展阶段进行适合自身的SDL安全体系建设。
第二部分(第3~7章):DevSecOps敏捷安全进阶
第3章(敏捷开发与DevOps)围绕DevOps敏态开发的演进展开论述,重点介绍了敏捷开发方法论和DevOps实践方法论,并对敏捷开发与DevOps进行了对比分析,最后梳理了当前敏捷开发及DevOps面临的安全挑战,为后续DevSecOps敏捷安全的引入打下基础。
第4章(DevSecOps敏捷安全内涵)作为本书非常重要的体系构筑和引领章节,于业界首次提出DevSecOps敏捷安全架构,包括敏捷安全核心内涵、敏捷安全框架和典型应用场景三大子系统,重点介绍了数字化时代下国内外网络安全监管新趋势,并进一步揭示出DevSecOps之于数字化时代网络安全的现实意义。
第5章(DevSecOps敏捷安全体系)继承了第4章DevSecOps敏捷安全内涵的要义,围绕当前业界DevSecOps的建设现状和主要痛点,并就文化、流程、技术和度量四大核心要素展开,叙述其在DevSecOps实际落地过程中的支柱性作用,最后结合悬镜DevSecOps工具链实践经验提出了一套DevSecOps体系设计参考和实践清单,围绕软件生命周期10个阶段完整地阐述了DevSecOps体系建设的主体内容,并介绍了国际上优秀的DevSecOps建设经验,为企业和机构用户更好地落地DevSecOps提供参考。
第6章(DevSecOps敏捷安全技术)重点围绕积极防御技术栈展开论述,首先对IAST、RASP、SCA等应用免疫层的关键技术做逐一分析,详细阐述了敏捷安全体系下的关键技术原理、应用场景和落地实践,随后围绕基础设施层的API安全、容器和Kubernetes安全技术做了一一阐述,最后以常态化运营为主要视角,重点介绍了新一代BAS(持续威胁模拟与安全度量)技术,进而构筑了一套相对完善并具有弹性扩展特性的积极防御技术体系。
第7章(DevSecOps敏捷安全度量)作为整个DevSecOps敏捷安全体系的重要部分,首先引领大家认识DevSecOps度量实践的目标,再对业界常见的6种软件安全成熟度模型进行逐一介绍和对比分析,并在此基础上对企业如何基于BSIMM12开展DevSecOps度量体系建设进行了详细叙述,随后正式提出了敏捷安全度量实践框架,指引企业结合自身业务情况,综合运用度量数据、度量指标、度量模型,持续运营和迭代,形成适用于自身的度量体系。
第三部分(第8~10章):DevSecOps落地实践
第8章(DevSecOps设计参考与建设指导)作为整个DevSecOps敏捷安全体系的重要实践环节,引领大家从文化、流程、技术、度量4个维度来学习DevSecOps的设计原则,并给出企业DevSecOps建设从入门到进阶的全过程指导,以便企业进行DevSecOps规划设计、建设实践和运营优化。除此之外,还介绍了DevSecOps落地过程中面临的一些挑战。
第9章(云原生应用场景敏捷安全探索)讨论的云原生是DevSecOps敏捷安全体系的三大典型应用场景之一,首先引领大家快速学习云原生的由来、核心技术以及云原生安全相关模型,进而引出与云原生安全息息相关的DevSecOps敏捷安全实践,随后通过云原生安全与DevSecOps的比较,以及云原生下敏捷安全实践的分析,帮助企业更好地理解云原生安全解决方案的实际价值和建设思路。
第10章(DevSecOps落地实践案例)作为整个DevSecOps敏捷安全体系的重要实践落地环节,先引领大家分别从国内和国际两个视角洞察DevSecOps的落地实践经验,接着从不同行业的背景、面临的挑战、建设方案及建设特点进行分析,最后通过对实践案例的深入分析,说明DevSecOps的落地实践不能照抄照搬,必须因地制宜,结合企业自己的安全文化特点、人员能力、技术成熟度等现状建设适合自己的DevSecOps体系。
第四部分(第11~13章):DevSecOps与软件供应链安全
第11章(软件供应链安全)讨论的软件供应链也是DevSecOps敏捷安全体系的三大典型应用场景之一,首先重点分析了国内外软件供应链安全监管现状以及面临的安全挑战,并以安全事件为驱动将软件供应链攻击分成开发、分发和使用三大环节,同时列举了每个环节可能出现的攻击类型,然后介绍了软件供应链风险治理,最后分析了软件供应链安全的最新趋势及如何加强软件供应链安全管理。
第12章(开源安全治理落地实践)作为软件供应链安全的重要部分被重点阐述,首先分析了开源软件面临的安全风险,随后重点对几种主流的开源许可证进行逐一分析,进而引出开源治理的难点、目标和实践说明,并结合DevSecOps体系及相关开源治理技术做进一步阐述,最后重点分享了某企业开源治理的落地实践,详细分析了其在安全建设过程中是如何解决实际痛点的。
第13章(典型供应链漏洞及开源风险分析)以在业界已产生重要影响的3个典型事件为例进行相应解析,重点分享了今后如何从技术(包括IAST、RASP、SCA)角度来对软件供应链安全相关的风险进行积极防御。
第五部分(第14章):趋势与思考
第14章(DevSecOps敏捷安全趋势)作为本书的最后一章,从引领整个行业和相关技术发展的高度来思考DevSecOps敏捷安全体系的未来演进方向。首先,引领大家学习软件供应链攻击趋势、相关治理的出路和趋势,随后预测了基于底层基础设施升级和现代攻防对抗技术演进的新一代积极防御技术走向,最后正式介绍了“敏捷安全技术金字塔V2.0”。
勘误和支持
由于作者的水平有限,书中难免会出现错误或者表述不够准确的地方,恳请读者批评指正。如有你有更多的宝贵建议,欢迎通过邮箱research@anpro-tech.com与我联系。期待能够得到你们的真挚反馈。
致谢
曾读到这样一句话:人生只有两次生命,第一次是出生,第二次是当我们意识到人生只有一次时。时光荏苒,所有经历,于我都是礼物;所有相遇,于我都是宝藏;所有清晨日落,于我都是醉人的欢喜。
首先,感谢在本书编写期间给予帮助的小伙伴们,包括宁戈、董毅、周雅飞、周幸、李浩、张弛、凌云、杜玉洁、刘美平、李珍珍、刘恩炙、蔡智强、张荣香、陈超、夏营、王利芳、王金花、刘苗苗、刘姿辰、武立朋、王越、高晓丽、李彦、李敏、侯力阳、周杰明、李伟、韩枫、蔡仲、许卓烁、唐超、王璐。
其次,感谢陈钟教授和文伟平教授,两位老师长期以导师和朋友的身份为我的学术研究和图书编著工作提供指导。他们治学严谨,学识渊博,在我的学习和研究上给予了悉心的指导。
同时,感谢我的太太和女儿,她们为了让本书更好地呈现,在幕后默默地付出了很多。
此外,感谢我的父亲和母亲,感谢他们将我培养成人,感谢他们教会我无论如何都要热爱生活。
最后,谨以此书献给众多热爱 DevSecOps、软件供应链安全、云原生安全以及积极防御等前沿安全技术的朋友们!

上架指导

计算机\安全

封底文字

段钢  看雪学苑创始人
网络安全的本质在于对抗,对抗的本质在于攻、防两端的能力较量,两者在互相争斗中发展和进步。安全防护并不只是找几个漏洞并进行修补,它是一个系统工程,从开发到运维,每个阶段都要投入。安全架构设计应在一开始就作为项目开发的一部分来考虑,列入开发计划和开发成本,并在防护强度、成本、易用性之间进行折中考虑,选择一个合适的平衡点。本书深入浅出地向读者展示了如何将安全能力完整嵌入整个DevOps体系,帮助读者快速打造安全的产品,获得宝贵的知识和经验。

张嵩  道客网络首席安全官/华泰证券原信息安全总监
我们五年前开始实践 DevSecOps 时,主要凭借零散的资料,结合企业的实际情况逐步摸索。今天兴奋地看到子芽的新书提供了一站式的总结和指导:从方法论、框架、内涵,到落地中的体系设计、实践经验、分阶段建设路径、应用场景、案例,再到主流技术工具和成熟度模型,可谓面面俱到,而且与云原生安全、供应链安全等热点呼应。本书非常适合开发管理者和应用安全架构师开始实践 DevSecOps时阅读。

张海龙  CODING创始人&CEO
2018年,DevOps开始在国内发芽,到今天,基本每个团队都用上了流水线。然而,流程自动化并不能解决安全问题,相反可能还会引发供应链攻击。于是,DevSecOps概念开始兴起,我们需要把安全植入研发的每一个环节。本书详细地分析了软件工程各个阶段面临的安全威胁及其应对手段,并深度分析了相关工具,是很好的DevSecOps实践指南。本书最后部分讲到的软件供应链安全和开源治理是企业比较容易忽视的部分,值得每一个技术管理者关注。

红薯  开源中国& Gitee创始人兼CTO
依托云原生等技术,DevOps、工程效能度量等相关理论和实践逐渐兴起,其本质是解决软件技术复杂度提升导致软件交付效率下降的问题。新的理论使得效率提高的同时,安全始终是软件从业者的心腹之患,尤其近几年来国内外软件安全问题频发。DevSecOps也因此应运而生。本书从“道、法、术”三个维度立体化地解构了DevSecOps是什么、如何实践、怎样落地,并且对开源生态安全以及未来软件安全发展态势做出了预测,全场景地展现了软件安全开发新模式,让人受益匪浅。

作者简介

子芽 著:作者简介(附照片)
子芽
悬镜安全创始人兼CEO,OpenSCA开源社区创始人,资深安全技术专家,拥有10年以上前沿安全技术研究实践经验,具有国际视野和工程综合创新能力的高端科技领军人才。
长期从事AI深度学习算法在持续威胁评估领域的研究,拥有多项原创发明专利授权,曾承担国家级重大网络安全项目和科研项目,首创的“DevSecOps智适应威胁管理体系”已演进至第三代,在产业界影响颇深。
中国信通院软件供应链安全社区首席安全专家,DSO敏捷安全大会出品人,北京大学国家奖学金、优秀科研奖和光华奖学金获得者。

悬镜安全
起源于北京大学网络安全技术研究团队“XMIRROR”,创始人子芽。作为DevSecOps敏捷安全领域的领导者,始终专注于以代码疫苗技术为核心,先后获得红杉资本、腾讯产业生态投资、源码资本和GGV纪源资本的持续加持,并通过原创专利级“全流程软件供应链安全赋能平台+敏捷安全工具链”的第三代DevSecOps智适应威胁管理体系,持续帮助金融、车联网、泛互联网、能源等行业数千家企业构筑起适应自身业务弹性发展、面向敏捷业务交付的下一代积极防御体系。

推荐序

Foreword 推荐序一
计算技术已经并且还将继续改变世界,而软件是计算技术中最具灵活性的部分。过去几年出现了很多“软件定义××”的说法,从软件定义网络(Software Defined Network,SDN)到软件定义边界(Software Defined Perimeter,SDP),甚至有“软件定义一切”的说法。抛开软件与硬件到底谁更重要的争论,过去几十年中人们发明了许多编程语言、编程框架、软件库、软件开发工具、集成环境,并且研究出数种软件生命周期模型,也一直在探索如何高效、大规模、安全无错地进行软件开发。
软件中的Bug一直是开发者的“大敌”,这其中既包含导致软件不能正常工作的功能性Bug,也包括非设计者所预期的、被恶意利用的漏洞。可以说,软件漏洞其实是软件Bug的一种,但过去的软件开发管理模式把二者人为割裂了—测试团队负责对软件功能、性能、集成做测试,安全团队负责对软件安全漏洞做测试,而且往往采用串行工作方式,即做完功能、性能和集成测试,再提交给安全团队做安全性测试。
在数字化转型背景下,这种开发模式已经不能满足时代需求。
虽然被当作网络安全专家,其实我在30年从业经历中,多数时间在从事软件开发工作,从一线编程人员到互联网企业CTO,也是一个不断探索软件开发生命周期模型,满足软件开发过程中不断变化的用户需求,平衡软件开发质量与工期,以及与不完美的程序员一起工作,与软件Bug和脆弱性搏斗,从而交付用户可用的产品或工程的过程。
1996年,做“内蒙古邮政综合网”项目时,我的开发团队是名副其实的“杂牌军”,有来自北大方正的编码质量超级棒的编程“大神”,有内蒙古方正派来的苦干型技术骨干,也有内蒙古邮政系统各地选派的能力参差不齐的程序员。而邮政综合网系统的运行需要数十万行C代码支撑。为了让这支“杂牌军”产出质量可控的代码,除了有大神级的架构师做良好的架构设计外,我们借鉴《编程精粹:编写高质量C语言代码》(Writing Solid Code)中所讲述的微软公司的C语言编程规范,建立了自己的编程规范,包括要求程序员在自己的C程序中做内存越界检查、内存使用时采用内存监督函数、在函数的入口处设置断言等,并要求程序员自己编写单元测试代码,要求大家追求程序“无错”。事后回想,这个项目能成功交付,和当初采用的一整套编程规范有很大关系。
到2000年,我开始带更大的团队,给电信运营商开发BSS/OSS系统,同时面对数十个省/市级运营商。该系统的用户需求差异大且变化迅速,我们绞尽脑汁,想把系统架构设计得更灵活,试用了面向领域的架构设计等软件工程方法,并引入统一建模语言做需求分析和设计,引入CMM规范,试图用经典的软件工程模型,通过过程控制解决产出质量问题,还因此购买了Rational公司的全套工具。带领团队奋战一年多后,虽然设计系统通过了CMM Level 3的认证,但作为负责人的我内心充满了挫折感:一是感觉CMM规范流程太“重”,难以满足客户需求变化快、工期紧的工程需要;二是工具不够给力,对引入的迭代开发模型难以提供良好的支持。
2003年进入互联网行业之后,我经历了完全不同的开发文化的洗礼,深感互联网业务变化快,开发模型需要更敏捷。经典软件工程中所不齿的“三边模型”成了我们的日常工作模式:快速开发、简单测试后便逐步放量到生产环境,检测到用户侧的程序崩溃或通过社区倾听了用户反馈,再快速迭代。所以当DevOps模型出现的时候,我没有任何惊奇,因为我们其实早已经在这么做,后来遇到的问题就是安全管理流程如何与DevOps流程结合。
2010年,我开始同时管理研发、运维和信息安全团队,意识到之前采用的开发、运维与安全的串行工作模式不能满足互联网快节奏的要求,于是要求安全团队主动往开发前端渗透,不等开发团队做安全提测,直接用网络听包手段和服务器上安装的Agent程序跟进程序员提交到测试服务器上的新代码,在程序员和测试人员进行功能、性能测试的同时,安全团队的漏洞扫描程序即对代码进行扫描,并及时沟通,这实际上就是“安全左移”的实践。
现在的时代,互联网企业的开发、运营理念开始快速向各行各业渗透。在这个过程中,以“快”为特色的互联网软件开发模式被广泛接受,安全变得越来越重要。我们追求的目标变成:快速开发,快速部署,同时还要安全。
同时,软件开发模式也在改变。过去,由软件公司生产软件,软件发布前通常经过严格的测试,出厂的软件质量相对可控;现在,软件开发越来越走向“众包模式”和“群智模式”,即使在商业软件中也大量使用开源软件,而开源软件未必经过严格测试,这就让“既快又安全”这个目标遇到空前挑战。
2017年,DevSecOps概念应运而生,并因为能解决软件开发过程中的痛点问题得到人们追捧,而各种应用测试工具(SAST、DAST、IAST)、源代码级与目标码级软件成分分析(SCA)工具、模糊测试漏洞挖掘(Fuzzing)工具、运行时应用程序自我保护(RASP)工具也层出不穷。在当时,能够提高软件生产效率和安全性的工具一定会获得良好发展。
我是悬镜安全的天使投资人之一,在2014年就投资了悬镜。当时子芽带领的创业团队还在从事漏洞挖掘和攻防对抗服务类的工作,我被这群具有北大背景的年轻人对计算技术和网络安全技术的热爱和追求所打动。经过8年的不断探索,悬镜最终找准了DevSecOps敏捷安全方向,并成为国内开发安全的领军企业。
子芽写的这本《DevSecOps敏捷安全》系统地介绍了DevSecOps所涉及的概念和技术,尤其重要的是第三部分介绍了DevSecOps落地实践,第四部分探讨了软件供应链安全管理这个现在让大家普遍感觉头疼的问题,第五部分做了未来趋势的展望。
如子芽在书中所说,此书非常适合企业的CTO和CIO阅读。

—谭晓生 正奇学苑、璟泰创投创始人



推荐序二 Foreword
新技术革命和产业变革被认为是当今人类社会发展阶段的重要推动力,而在诸多新技术革命中最具影响力的无疑是现代计算机的发明以及与之相关的一系列发明创造。它把人类社会带入硅器时代的信息社会,引发以计算机硬件、软件和通信为核心的信息产业。
以数字化、网络化、智能化为代表的信息产业不断变革我们的生产和生活,改变着整个世界。然而,随着信息化的不断深入发展,人类社会的善与恶也呈现在人机融合的网络与信息系统之中。作为计算机领域的一个分支,网络与信息安全伴随着计算机技术的高速发展也发生了翻天覆地的变化。从第一个漏洞被发现到现在企业级、国家级、世界级漏洞库建立和维护,从第一款杀毒软件诞生到现在各种安全产品百花齐放,网络安全技术开发与服务也独立成为信息产业的一个重要板块,网络安全与信息化成为现代化建设的“一体之两翼、驱动之双轮”。
在PC时代,大部分人对网络还比较陌生,计算机上的软件主要是单机软件。在这个时期,个人计算机是计算机市场主体,所以安全攻防对抗主要围绕个人计算机展开。当时,攻防产品开发人员对计算机底层的原理还理解得不透,对安全的认知也停留在软件安全层面,所以攻击的方式主要是网络病毒(如蠕虫和木马)。这时的安全需求也相对比较简单,就是杀毒,对应的安全产品就是杀毒软件。
随着电子商务、网络社交的流行,以及互联网时代来临,大量的企业用户通过Web应用的形式加入网络,安全攻防的主战场也从个人计算机转移到企业用户所搭建的服务器。服务器和个人计算机使用方式的差异,使得网络病毒的攻击不再那么有效。随着安全研究的深入,攻击的主要方式开始从病毒向漏洞转变,人们对安全的认知也进入漏洞安全层面,安全需求从杀毒变成抵御漏洞攻击。针对这种情况,防守方相应推出了WAF、主机加固等传统防御方案。
在智能设备逐渐普及后,我们开始进入万物互联时代。相比于互联网时代,从表面上看,万物互联最大的变化是客户端设备从计算机变成了智能设备,但是在看不见的服务器端也发生了巨大的变化。云计算、容器等技术为适应万物互联的高速发展提供了高效的解决方案,改变了服务器端原有的架构,也改变了传统的开发方式。以往的开发方式无法适应快速迭代的开发节奏,因此又出现了敏捷开发模式(通过流程化、自动化的方式来提高研发的效率),这种新模式的出现也在不知不觉中改变着人们对安全的认知。敏捷开发使得自研代码与开源代码相结合的混源开发方式成为主流,但这种混源开发方式会引入更加复杂的软件供应链安全问题,而被动防御的安全策略无法有效应对当下的供应链环境,也无法及时响应敏捷开发需求。随着积极防御概念的提出,安全认知进入原生安全层面。安全需求从被动防御和纵深防御转向积极防御,具体到开发过程,就需要尽早引入安全机制,尽早解决安全问题,这正是DevSecOps所解决的问题。
子芽作为我的学生,2014年就开始了相关技术领域的探索和研究。其间,他一直探索DevSecOps软件供应链持续威胁一体化检测防御,沉淀出诸如“代码疫苗”“积极防御”等原创的DevSecOps自主关键敏捷安全技术,覆盖从威胁建模、开源治理、风险发现、威胁模拟到检测响应等关键环节,可以有效地帮助产业用户构筑起一套适应自身业务弹性发展、面向敏捷业务交付并引领未来架构演进的内生积极防御体系。
DevSecOps作为一个崭新的安全体系框架,业内对其进行深度分析和推理的技术资料少之又少,而现有的公开资料也缺乏体系化理论和实战技术支撑。本书作为一本专门讲述DevSecOps敏捷安全体系的书籍,涵盖了DevSecOps所涉及的各个方面,从技术入门到落地实践再到体系化运营进阶,对想理解、尝试甚至亲自构筑DevSecOps体系的读者一定有很大的帮助。

—陈钟 北京大学计算机学院教授、网络与信息安全实验室主任

图书目录

推荐语
推荐序一
推荐序二
前言
第一部分 开发安全入门
第1章 初识开发安全2
1.1 软件开发与SDLC2
1.1.1 软件开发方式的革新与SDLC2
1.1.2 SDLC典型阶段3
1.1.3 SDLC中的安全挑战4
1.2 SDLC中的阶段性安全活动5
1.2.1 准备阶段的安全活动6
1.2.2 开发阶段的安全活动7
1.2.3 部署阶段的安全活动8
1.2.4 运营阶段的安全活动9
1.2.5 废弃阶段的安全活动9
1.3 开发安全现状分析9
1.3.1 开发安全概述9
1.3.2 国内外开发安全研究现状11
1.3.3 开发安全关注点12
1.4 安全左移在SDLC中的意义13
1.5 总结14
第2章 全面认识SDL15
2.1 SDL概述15
2.2 常见的SDL模型和框架16
2.2.1 政府组织—NIST SSDF16
2.2.2 企业实践—微软SDL模型17
2.2.3 开放组织—OWASP CLASP模型18
2.2.4 个人贡献—McGraw BSI模型19
2.2.5 安全开发模型和框架对比分析21
2.3 SDL体系建设22
2.3.1 安全开发团队建设22
2.3.2 安全开发管理体系建设23
2.3.3 安全开发工具建设25
2.3.4 SDL体系建设实施技巧30
2.4 SDL体系建设面临的挑战32
2.4.1 威胁建模方面32
2.4.2 开源威胁治理方面33
2.4.3 全流程漏洞管控方面34
2.4.4 敏捷开发的安全挑战35
2.5 总结36
第二部分 DevSecOps敏捷安全进阶
第3章 敏捷开发与DevOps38
3.1 开发模式的演进38
3.1.1 传统的瀑布式开发38
3.1.2 敏捷开发40
3.1.3 DevOps41
3.2 敏捷开发42
3.2.1 敏捷开发的发展历史42
3.2.2 敏捷开发的基本要义42
3.2.3 敏捷开发方法论43
3.3 DevOps49
3.3.1 DevOps的发展历史49
3.3.2 DevOps的核心要素49
3.3.3 DevOps实践方法论50
3.3.4 DevOps的发展趋势 52
3.4 DevOps与敏捷开发的对比53
3.5 DevOps面临的安全挑战55
3.6 总结55
第4章 DevSecOps敏捷安全内涵56
4.1 DevSecOps敏捷安全起源56
4.2 从RSAC看DevSecOps进化57
4.2.1 RSAC 2017定义DevSecOps57
4.2.2 RSAC 2018首次引入Golden Pipeline概念58
4.2.3 RSAC 2019聚焦文化融合与实践效果度量60
4.2.4 RSAC 2020关注组织内部DevSecOps转型61
4.2.5 RSAC 2021重视软件供应链安全62
4.3 DevSecOps敏捷安全核心内涵63
4.3.1 DevSecOps敏捷安全的理念63
4.3.2 DevSecOps敏捷安全的关键特性65
4.3.3 DevSecOps敏捷安全的优势66
4.4 DevSecOps敏捷安全架构67
4.4.1 DevSecOps敏捷安全实践思想68
4.4.2 新一代积极防御技术69
4.5 DevSecOps敏捷安全现实意义70
4.5.1 国际监管70
4.5.2 国内监管74
4.6 总结79
第5章 DevSecOps敏捷安全体系80
5.1 DevSecOps敏捷安全体系目标80
5.2 DevSecOps敏捷安全体系建设难点80
5.2.1 DevSecOps建设现状80
5.2.2 企业DevSecOps体系建设痛点83
5.3 DevSecOps敏捷安全体系设计84
5.3.1 DevSecOps体系概述84
5.3.2 DevSecOps三大要素85
5.3.3 DevSecOps持续进阶96
5.4 DevSecOps敏捷安全体系建设97
5.4.1 计划阶段99
5.4.2 创建阶段104
5.4.3 验证阶段105
5.4.4 预发布阶段107
5.4.5 发布阶段109
5.4.6 预防阶段109
5.4.7 检测阶段110
5.4.8 响应阶段112
5.4.9 预测阶段113
5.4.10 改进阶段113
5.5 DevSecOps敏捷安全体系建设参考114
5.5.1 GSA的DevSecOps指南114
5.5.2 DoD的DevSecOps设计参考116
5.5.3 NIST的DevSecOps项目116
5.6 总结118
第6章 DevSecOps敏捷安全技术119
6.1 敏捷安全技术概述119
6.1.1 应用安全风险面119
6.1.2 敏捷安全技术的构成要件120
6.1.3 适合的敏捷安全技术122
6.1.4 敏捷技术和安全管理123
6.2 IAST技术解析124
6.2.1 多语言支持的必要性124
6.2.2 IAST全场景多核驱动131
6.2.3 IAST高可用和高并发支持135
6.2.4 IAST DevOps全流程生态支持141
6.3 RASP技术解析144
6.3.1 RASP技术概述144
6.3.2 RASP在DevOps中的应用153
6.4 SCA技术解析156
6.4.1 SCA技术简介156
6.4.2 SCA技术原理分析157
6.4.3 SCA技术应用实践164
6.4.4 DevSecOps下的SCA落地实践165
6.4.5 SCA与软件供应链安全168
6.5 BAS技术解析169
6.5.1 背景介绍169
6.5.2 BAS技术简介169
6.5.3 BAS原理分析171
6.5.4 BAS工作方式172
6.5.5 BAS与传统攻防技术的区别174
6.5.6 DevSecOps下的BAS落地实践174
6.5.7 BAS方案总结176
6.6 API安全技术解析177
6.6.1 API介绍177
6.6.2 API安全技术原理178
6.6.3 API安全技术实践180
6.6.4 DevOps与API安全181
6.6.5 API安全技术价值183
6.6.6 多维度API风险管理183
6.7 容器和Kubernetes安全解析184
6.7.1 容器与Kubernetes 184
6.7.2 容器与云原生184
6.7.3 威胁矩阵185
6.7.4 容器生命周期的安全问题186
6.7.5 容器安全技术实践188
6.8 总结199
第7章 DevSecOps敏捷安全度量201
7.1 DevSecOps度量实践的目标201
7.1.1 敏捷安全度量的必要性和复杂性201
7.1.2 安全度量与安全成熟度模型202
7.2 常见软件安全成熟度模型202
7.2.1 可信研发及运营安全能力成熟度模型203
7.2.2 研发运营一体化(DevOps)能力成熟度模型205
7.2.3 OWASP DevSecOps成熟度模型207
7.2.4 软件安全构建成熟度模型(BSIMM)208
7.2.5 系统安全工程能力成熟度模型(SSE-CMM)210
7.2.6 软件保证成熟度模型(SAMM)213
7.3 成熟度模型对比分析215
7.4 基于BSIMM12的DevSecOps度量模型设计参考217
7.4.1 BSIMM12的安全活动和分级217
7.4.2 基于BSIMM12的分阶段度量模型设计参考221
7.5 敏捷安全度量实践框架223
7.6 总结224
第三部分 DevSecOps落地实践
第8章 DevSecOps设计参考与建设指导226
8.1 DevSecOps落地挑战226
8.1.1 组织文化227
8.1.2 流程管控228
8.1.3 技术工具228
8.2 DevSecOps设计参考229
8.2.1 安全组织和文化230
8.2.2 安全流程231
8.2.3 安全技术和工具232
8.2.4 安全度量和持续改进233
8.3 DevSecOps建设指导236
8.3.1 现状评估236
8.3.2 找寻支持伙伴237
8.3.3 考量建设尺度237
8.3.4  制订建设计划240
8.4 SDL向DevSecOps的转型240
8.4.1 SDL与DevSecOps关系的误读240
8.4.2 DevSecOps与SDL的关系240
8.4.3 安全开发方法论的选择241
8.4.4 转型期的选择242
8.5 其他安全挑战243
8.5.1 CI/CD平台安全243
8.5.2 IaC安全244
8.5.3 代码托管平台安全247
8.5.4 项目管理平台安全247
8.5.5 容器运行安全247
8.5.6 Kubernetes平台安全248
8.5.7 代码审计工具安全248
8.6 建议及思考249
8.7 总结249
第9章 云原生应用场景敏捷安全探索250
9.1 云原生概述250
9.1.1 何为云原生250
9.1.2 云原生的核心技术252
9.2 云原生安全255
9.2.1 云原生安全防护模型255
9.2.2 云原生安全4C模型262
9.3 云原生安全与DevSecOps266
9.3.1 相同点266
9.3.2 不同点267
9.3.3 对比分析267
9.4 云原生下的敏捷安全落地实践268
9.4.1 云原生下的敏捷安全实践架构268
9.4.2 云原生下的敏捷安全实践方案268
9.5 总结269
第10章 DevSecOps落地实践案例271
10.1 国内行业头部企业实践271
10.1.1 某国有银行DevSecOps实践271
10.1.2 某券商DevSecOps实践275
10.1.3 某运营商DevSecOps实践279
10.1.4 某互联网头部企业DevSecOps实践283
10.1.5 某车联网企业DevSecOps实践286
10.2 国际大型组织创新实践289
10.2.1 美国国防部DevSecOps实践289
10.2.2 Netflix DevSecOps实践294
10.2.3 Salesforce DevSecOps实践298
10.3 总结304
第四部分 DevSecOps与软件供应链安全
第11章 软件供应链安全306
11.1 软件供应链生态系统306
11.2 软件供应链安全现状及挑战307
11.2.1 安全现状分析307
11.2.2 面临的挑战309
11.3 软件供应链攻击风险311
11.3.1 软件供应链的风险面311
11.3.2 软件供应链攻击环节312
11.3.3 软件供应链的攻击类型315
11.4 软件供应链风险治理319
11.4.1 体系构建319
11.4.2 SDLC供应链风险治理319
11.4.3 软件分发过程供应链风险治理326
11.5 软件供应链安全最新趋势329
11.5.1 Google软件供应链安全框架SLSA329
11.5.2 云安全共享责任模型330
11.5.3 Grafeas开源计划331
11.6 总结332
第12章 开源安全治理落地实践333
12.1 开源软件333
12.1.1 开源软件由来333
12.1.2 开源软件现状335
12.1.3 开源软件优缺点335
12.2 开源软件安全337
12.2.1 开源软件风险分析337
12.2.2 EAR对开源软件的规定339
12.3 开源许可证分析339
12.3.1 开源许可证概述339
12.3.2 开源许可证分类340
12.3.3 常见开源许可证340
12.4 开源治理343
12.4.1 开源治理难点343
12.4.2 开源治理目标344
12.4.3 开源治理实践说明344
12.4.4 DevSecOps下的开源治理346
12.4.5 开源治理技术348
12.5 开源治理落地实践案例355
12.5.1 企业痛点355
12.5.2 解决方案思路355
12.5.3 建设内容357
12.5.4 实施效益360
12.6 总结361
第13章 典型供应链漏洞及开源风险分析362
13.1 Log4j 2.x远程代码执行漏洞362
13.1.1 漏洞概述362
13.1.2 漏洞利用原理362
13.1.3 漏洞应急处置364
13.1.4 开源安全治理365
13.2 SolarWinds供应链攻击事件368
13.2.1 事件概述368
13.2.2 事件分析368
13.2.3 SolarWinds供应链攻击事件防治370
13.3 GPL3.0开源许可证侵权事件370
13.3.1 事件概述370
13.3.2 事件分析371
13.3.3 开源许可证风险应对371
13.4 总结372
第五部分 趋势与思考
第14章 DevSecOps敏捷安全趋势374
14.1 DevSecOps敏捷安全趋势思考374
14.1.1 软件供应链安全的矛与盾374积极防御376
14.2 DevSecOps敏捷安全技术演进378
14.3 总结382

教学资源推荐
作者: 姚羽 张建新 杨巍 田志宏 编著
作者: 【英】基思 M.马丁(Keith M. Martin)著
作者: 寇晓蕤,罗军勇,蔡延荣
作者: 庞建民 主编 刘晓楠 陶红伟 岳峰 戴超编著
参考读物推荐
作者: 陈明照 编著
作者: [印度]索马·哈尔德(Soma Halder) [美]斯楠·奥兹德米尔(Sinan Ozdemir)著