本書闡述企業(yè)實踐DevSecOps所需的理論、技術(shù)和方法,首先從軟件工程發(fā)展趨勢,尤其是敏捷、DevOps等領(lǐng)域的發(fā)展趨勢出發(fā),結(jié)合DevOps實踐、DevSecOps相關(guān)報告和標(biāo)準(zhǔn),闡述DevSecOps理念;然后解讀DevSecOps最佳實踐,根據(jù)DevSecOps最佳實踐涉及的重點階段和相關(guān)技術(shù)講解平臺設(shè)計與工具應(yīng)用,并結(jié)合開源、云原生等領(lǐng)域的流行工具介紹DevSecOps工具鏈及平臺建設(shè)方法;最后以作者的實戰(zhàn)經(jīng)驗和業(yè)界的實踐案例介紹DevSecOps的實施方法。
第 1章 DevOps 基礎(chǔ) 1
1.1 從瀑布到敏捷,從敏捷到DevOps 1
1.1.1 軟件的生產(chǎn)力 1
1.1.2 從瀑布到敏捷 1
1.1.3 DevOps 的源起 2
1.2 DevOps 的實踐方法論 3
1.2.1 DevOps 的 3 個原則 3
1.2.2 DevOps 的 5 個理念 3
1.3 DevOps 解決的問題 4
1.3.1 縮短市場響應(yīng)時間 4
1.3.2 減少技術(shù)債務(wù) 4
1.3.3 消除系統(tǒng)脆弱性 5
1.4 DevOps 現(xiàn)狀及發(fā)展趨勢 5
1.4.1 中國 DevOps 現(xiàn)狀 5
1.4.2 DevOps 發(fā)展方向 10
1.5 DevOps 相關(guān)標(biāo)準(zhǔn)規(guī)范 11
1.5.1 DevOps 能力成熟度模型 11
1.5.2 DevOps 解決方案標(biāo)準(zhǔn) 13
1.5.3 信息技術(shù)服務(wù)開發(fā)運維技術(shù)要求 15
第 2章 從安全視角看 DevOps 18
2.1 從 SDL 到 DevSecOps 18
2.1.1 DevOps 對 SDL 的挑戰(zhàn) 19
2.1.2 SRE 與 DevOps 20
2.1.3 DevSecOps 支撐體系 20
2.1.4 DevSecOps 工作過程的六大要點 22
2.1.5 DevSecOps 的三層方法論 23
2.2 DevSecOps 現(xiàn)狀及發(fā)展趨勢 27
2.2.1 云安全與 DevSecOps 27
2.2.2 安全軟件開發(fā)框架 SSDF 29
2.2.3 《GitLab 第四次全球 DevSecOps年度調(diào)查》報告解讀 31
2.2.4 《研發(fā)運營安全白皮書》解讀 32
2.2.5 DevSecOps 技術(shù)發(fā)展趨勢預(yù)測 33
2.3 軟件供應(yīng)鏈安全與 DevSecOps 34
2.3.1 軟件供應(yīng)鏈安全問題 35
2.3.2 軟件供應(yīng)鏈的生命周期 35
2.3.3 開源和云原生時代下的軟件供應(yīng)鏈 36
2.3.4 國外軟件供應(yīng)鏈安全發(fā)展現(xiàn)狀 36
2.3.5 國內(nèi)軟件供應(yīng)鏈安全發(fā)展現(xiàn)狀 37
2.3.6 軟件供應(yīng)鏈攻擊類型 37
2.3.7 軟件供應(yīng)鏈風(fēng)險分析 39
2.3.8 應(yīng)用 DevSecOps 應(yīng)對軟件供應(yīng)鏈安全風(fēng)險 40
2.3.9 軟件供應(yīng)鏈安全最新發(fā)展趨勢 45
第3章 DevSecOps 最佳實踐 51
3.1 構(gòu)建安全與安全左移 51
3.1.1 安全左移 51
3.1.2 安全意識與教育 51
3.1.3 常見漏洞列表 52
3.1.4 安全演練 53
3.1.5 結(jié)對編程和同行評審 53
3.1.6 Scrum 中的安全性 54
3.1.7 代碼審計 55
3.2 安全架構(gòu) 56
3.2.1 自適應(yīng)安全架構(gòu) 56
3.2.2 零信任模型 58
3.2.3 ATT&CK 框架 59
3.2.4 CSMA 59
3.3 安全設(shè)計 60
3.3.1 核心安全設(shè)計原則 61
3.3.2 威脅建模 61
3.3.3 微服務(wù)安全 64
3.3.4 API 安全 66
3.3.5 容器安全 71
3.3.6 流水線安全 76
3.4 持續(xù)安全 79
3.4.1 測試驅(qū)動安全 79
3.4.2 攻擊監(jiān)控與應(yīng)對 81
3.4.3 實現(xiàn)持續(xù)的安全性 84
3.5 安全自動化 84
3.5.1 實現(xiàn)自動化 84
3.5.2 應(yīng)用安全測試 85
3.5.3 移動應(yīng)用安全測試 85
3.5.4 基礎(chǔ)設(shè)施安全測試 86
3.6 云原生安全 87
3.6.1 云原生安全的定義 87
3.6.2 Gartner 的云安全體系 87
3.6.3 云原生應(yīng)用的供應(yīng)鏈安全 88
3.6.4 容器技術(shù)安全基準(zhǔn) 88
3.6.5 混沌工程思想 89
3.6.6 云上安全部署 92
3.6.7 灰度發(fā)布 97
3.7 零信任網(wǎng)絡(luò)安全 98
3.7.1 零信任 99
3.7.2 微隔離 99
3.8 安全度量 102
3.8.1 軟件安全成熟度發(fā)展史 102
3.8.2 軟件安全構(gòu)建成熟度模型 103
3.8.3 可信研發(fā)運營安全能力成熟度模型 106
第4章 DevSecOps 平臺設(shè)計與工具應(yīng)用 118
4.1 DevSecOps 模型設(shè)計 118
4.1.1 概念模型 118
4.1.2 分層模型 118
4.1.3 架構(gòu)模型 119
4.2 DevSecOps 工具鏈設(shè)計 120
4.2.1 計劃階段 121
4.2.2 創(chuàng)建階段 121
4.2.3 驗證階段 121
4.2.4 準(zhǔn)生產(chǎn)階段 122
4.2.5 發(fā)布階段 123
4.2.6 配置階段 123
4.2.7 檢測階段 123
4.2.8 響應(yīng)階段 124
4.2.9 預(yù)報階段 124
4.2.10 調(diào)整階段 124
4.3 代碼安全托管與代碼安全 125
4.3.1 高可用的 GitLab 125
4.3.2 代碼安全托管 130
4.3.3 SAST 134
4.4 開源組件管理與開源治理 137
4.4.1 SCA 工具選型 137
4.4.2 SCA 工具應(yīng)用 141
4.4.3 開源治理體系與平臺建設(shè) 144
4.5 API 安全防護 145
4.5.1 API 安全防護措施 146
4.5.2 API 安全工具 146
4.6 制品庫管理 147
4.6.1 制品與制品庫 147
4.6.2 制品庫管理需要解決的問題 147
4.6.3 制品庫管理要求 148
4.7 原生安全防護 148
4.7.1 原生主機安全 148
4.7.2 原生容器安全 150
4.7.3 原生應(yīng)急響應(yīng)和取證 151
4.8 DAST 153
OWASP ZAP 154
4.9 IAST 154
4.9.1 IAST 的檢測方式 154
4.9.2 IAST 的漏洞發(fā)現(xiàn)能力 155
4.9.3 IAST 工具的基本能力要求 155
4.9.4 IAST 與 DevSecOps 流程的整合 156
4.9.5 IAST 與 SCA 工具的集成 156
4.10 RASP 157
4.10.1 RASP 技術(shù)原理 158
4.10.2 OpenRASP 158
4.10.3 RASP 與 DevSecOps 流程的整合 159
4.11 入侵與攻擊模擬 160
4.11.1 人工滲透測試的限制 160
4.11.2 云滲透測試 161
4.11.3 紫隊 161
4.11.4 自動化入侵與攻擊模擬 162
4.11.5 有效的入侵與攻擊模擬 163
4.11.6 XM Cyber 163
4.12 以安全為中心的流量分析 164
4.12.1 網(wǎng)絡(luò)安全監(jiān)控需求 164
4.12.2 DPI 164
4.12.3 基于 nDPI 的流量處理 165
4.12.4 應(yīng)用場景 166
4.12.5 云原生安全網(wǎng)格平臺 166
4.13 混沌工程 169
4.13.1 生產(chǎn)環(huán)境中的問題 169
4.13.2 實施混沌工程的原則 169
4.13.3 混沌工程測試平臺能力 170
4.13.4 混沌工程工具 170
4.14 網(wǎng)絡(luò)安全演練 171
4.15 全鏈路壓測 172
4.15.1 性能測試的新挑戰(zhàn) 172
4.15.2 全鏈路壓測技術(shù) 172
4.15.3 監(jiān)控分析技術(shù) 173
4.15.4 開源全鏈路壓測平臺Takin 173
4.16 DevSecOps 平臺建設(shè)方法 174
4.16.1 “一站式”能力建設(shè) 174
4.16.2 “云平臺+開源軟件”的DevSecOps 框架構(gòu)建 174
4.16.3 構(gòu)建“黃金管道” 175
4.16.4 人工智能與 DevSecOps 176
4.17 基于 GitLab 集成工具鏈實現(xiàn) DevSecOps 176
4.17.1 GitLab 集成工具鏈實現(xiàn)安全的 DevOps 177
4.17.2 GitLab 集成工具鏈實現(xiàn) GitOps 模式 183
第5章 實踐案例 186
5.1 某企業(yè)持續(xù)集成項目 186
5.1.1 項目背景 186
5.1.2 解決方案 186
5.2 某電網(wǎng)公司 DevSecOps 體系建設(shè) 189
5.2.1 背景 189
5.2.2 體系設(shè)計方法 189
5.2.3 需求分析 190
5.2.4 總體設(shè)計目標(biāo) 191
5.2.5 核心設(shè)計內(nèi)容 191
5.2.6 專題設(shè)計 193
5.3 某電信運營商公司 DevOps 平臺規(guī)劃 202
5.3.1 平臺建設(shè)目標(biāo) 202
5.3.2 平臺建設(shè)范圍 203
5.3.3 平臺需求分析和規(guī)劃設(shè)計 203
5.3.4 平臺技術(shù)實現(xiàn)方案 209
5.4 雙模發(fā)布管理平臺的設(shè)計與應(yīng)用 213
5.4.1 產(chǎn)生背景 213
5.4.2 雙模發(fā)布管理平臺設(shè)計 215
5.4.3 案例及功能說明 217