內容簡介
本書通過描述一家大型網際網路企業和一家大型傳統銀行的DevSecOps轉型的過程,幫助讀者淺顯易懂並且有代入感地了解如何將DevSecOps在企業內部落地和實踐。基於各類行業特點的DevSecOps實施與落地方法,是本書的主要技術要點。
圖書目錄
序
前言
第1章 DevSecOps的演進與落地思考1
1.1 DevOps簡介4
1.1.1 DevOps發展簡史5
1.1.2 DevOps理念6
1.2 DevSecOps簡介7
1.2.1 從DevOps到DevSecOps7
1.2.2 從SDL到DevSecOps11
1.2.3 DevSecOps的指導原則14
1.2.4 DevSecOps實踐17
1.3 網際網路行業推動DevSecOps的動機與目標 21
1.4 金融行業推動DevSecOps的動機與目標 22
1.5 總結23
第2章 DevSecOps的實施解決方案和體系建設24
2.1 DevSecOps現狀調研26
2.1.1 DevSecOps的行業調研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.15 DevSecOps工具鏈48
2.4 文化與組織結構50
2.4.1 DevSecOps的文化和挑戰50
2.4.2 DevSecOps的組織結構和角色50
2.5 DevSecOps框架與模型的建立52
2.5.1 DevSecOps的運營模型 52
2.5.2 DevSecOps的實現模型54
2.5.3 DevSecOps的成熟度模型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.4 UI測試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.7 DevSecOps影響著測試的方方面面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.1 Spring Cloud微服務架構154
6.3.2 Service 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
......