內容簡介
這是一本體系化講解DevSecOps敏捷安全的實戰性著作,為企業應對軟體開發方式敏態化與軟體供應鏈開源化帶來的安全挑戰提供了解決之道,它能有效指導企業快速將安全能力完整嵌入整個DevOps體系,在保證業務研發效能的同時實現敏捷安全內生和自成長。
本書由國內軟體供應鏈安全領域領軍企業懸鏡安全創始人子芽出品,得到了企業界和學術界10位權威安全技術專家的聯袂推薦。主要的內容及其特色如下:
體系創新:不僅對業界已有的DevSecOps理論和方法進行了系統梳理,而且還分享了DevSecOps敏捷安全架構、DevSecOps敏捷安全技術金字塔等大量來自懸鏡安全的創新理論和技術,全面講解了DevSecOps敏捷安全的核心內涵、架構設計、體系建設、技術原理、度量方法、落地實踐;
注重實戰:包含大量實踐原則、參考和落地方法,以及來自銀行、券商、運營商、網際網路、政府機構等領域的一線落地實踐案例;
全球視野:立足於全球,對美國國防部、Netflix、Salesforce等機構和企業的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