定 價:99 元
叢書名:網(wǎng)絡(luò)空間安全技術(shù)叢書
- 作者:劉文懋,江國龍,浦明,阮博男,葉曉虎
- 出版時間:2021/10/1
- ISBN:9787111691839
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP393.08
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書介紹了云原生的容器基礎(chǔ)設(shè)施、K8S編排系統(tǒng)和常見云原生應(yīng)用體系;在介紹安全體系前先深入分析了前述架構(gòu)各個層面的安全風險,并給出攻擊實踐,后續(xù)計劃開放靶場環(huán)境,有很好的可操作性和說服力;在介紹安全體系時,首先從高層分析新型基礎(chǔ)設(shè)施防護的思路切換,然后分為兩個維度介紹相關(guān)的安全機制,清晰地拆解了復(fù)雜的安全技術(shù)棧,讓讀者很容易理解DevOps安全和云原生安全兩者如何融合。
(1)一線安全大廠的資深研究員們多年云原生安全的攻防經(jīng)驗總結(jié)與安全體系設(shè)計,得到了業(yè)界諸多云安全領(lǐng)域?qū)<业拇罅ν扑]。
(2)攻防驅(qū)動安全,大量云原生攻防實例與相應(yīng)的安全實踐,幫助讀者快速進入云安全的下半場。
近十年云計算技術(shù)處于高速發(fā)展的過程中,借助開源項目和社區(qū)的力量,很多項目更新和迭代非?臁H缰拈_源IaaS組織方OpenStack基金會改名為OpenInfra,目標是將云計算系統(tǒng)從IaaS擴展到容器、編排等層面,除了通用云計算外,還覆蓋如邊緣計算、5G和物聯(lián)網(wǎng)等場景;而Google發(fā)起的Kubernetes已經(jīng)在眾多云原生項目中脫穎而出,成為事實上的編排標準,終可能統(tǒng)一云原生體系。虛擬化技術(shù)、容器技術(shù)和編排技術(shù)后很可能會融合成一套標準云計算框架,在各個行業(yè)出現(xiàn)實踐。
與此同時,安全技術(shù)也在快速演進。2013年左右出現(xiàn)了高級持續(xù)威脅,攻擊者利用各種復(fù)雜的手段不斷突破防守方的邊界,此起彼伏的失陷事件讓疲于奔命的安全團隊沮喪。而近幾年,安全廠商研制了利用虛擬化技術(shù)的蜜罐、沙箱和網(wǎng)絡(luò)空間靶場等機制,讓防守方轉(zhuǎn)被動挨打為主動反制和常態(tài)化對抗,讓我們看到了終獲勝的曙光。
筆者團隊為綠盟科技星云實驗室,一直從事云計算安全和網(wǎng)絡(luò)安全前沿的研究和產(chǎn)品孵化,希望通過本書能將工作中的得失與廣大讀者分享。
在2015年之前,隨著虛擬化技術(shù)的成熟,以SDN和NFV為支撐技術(shù)的設(shè)施虛擬化IaaS成為主流。筆者在2016年出版了《軟件定義安全:SDN/NFV新型網(wǎng)絡(luò)的安全揭秘》,這本書詳細介紹了新型網(wǎng)絡(luò)中的安全風險和威脅,并進一步提出了軟件定義的安全體系。事實上,這個體系在綠盟科技的云計算安全解決方案,以及其他安全解決方案中得到了應(yīng)用。
而從2016年開始,整個行業(yè)因為開發(fā)運營一體化(DevOps)和新型基礎(chǔ)設(shè)施的快速推進,以容器、編排和微服務(wù)為代表的云原生技術(shù)變得流行。從技術(shù)上看,雖然容器技術(shù)也是一種虛擬化形態(tài),但對應(yīng)的防護思路和安全體系截然不同。筆者認為有必要詳細闡述和解析云原生技術(shù)棧,并分析其中存在的脆弱性和威脅,讓初探云原生安全的讀者少走錯路、彎路,在短時間內(nèi)聚焦關(guān)鍵技術(shù)問題,構(gòu)建適合自己的云原生安全體系。筆者團隊分別于2018年和2020年發(fā)布了《容器安全技術(shù)報告》[1]和《云原生安全技術(shù)報告》[2],但限于篇幅,很多細節(jié)無法展開,本書首次較為詳細地展示了一些技術(shù)上的思考和細節(jié),讀者可按照書中的介紹進行驗證,從而得到更深刻的理解。
需要說明的是,云原生社區(qū)非;钴S,各類技術(shù)層出不窮,也許當你閱讀本書時,書中具體的軟件版本、命令參數(shù)已經(jīng)不適用,但云原生安全的本質(zhì)和防護思路是不會變的。當然,如果遇到任何問題,也歡迎你聯(lián)系筆者團隊。
本書實踐部分涉及的源代碼位于隨書附帶的GitHub倉庫,我們也在倉庫中提供了豐富的補充閱讀資料,以供大家進一步了解。倉庫地址為https://github.com/brant-ruan/cloud-native-security-book。
關(guān)于書中涉及的云原生環(huán)境、云原生攻防工具,我們也有開源的計劃,請關(guān)注微信公眾號“綠盟科技研究通訊”。各位有志于從事云原生安全的讀者,或許可以從中獲益。如有興趣,歡迎貢獻你的代碼,為云原生安全添磚加瓦。
后,本書難免有疏漏,敬請讀者批評指正。
劉文懋
序
前言
部分 云原生安全概述
第1章 云原生安全 2
1.1 云原生:云計算下半場 2
1.2 什么是云原生安全 4
1.2.1 面向云原生環(huán)境的安全 4
1.2.2 具有云原生特征的安全 5
1.2.3 原生安全:融合的云原生安全 5
1.3 面向云原生環(huán)境的安全體系 7
1.3.1 容器安全 7
1.3.2 編排系統(tǒng)安全 8
1.3.3 云原生應(yīng)用安全 9
1.4 云原生安全的關(guān)鍵問題 9
1.4.1 如何防護短生命周期的容器 9
1.4.2 如何降低安全運營成本 10
1.4.3 DevSecOps 11
1.4.4 如何實現(xiàn)安全的云原生化 12
1.5 云原生安全現(xiàn)狀 13
1.5.1 云原生新范式:Docker + Kubernetes 13
1.5.2 鏡像安全問題仍然很突出 14
1.5.3 安全配置規(guī)范執(zhí)行和密鑰憑證管理不理想 15
1.5.4 運行時安全關(guān)注度上升,但依然很難 17
1.5.5 合規(guī)性要求依然迫切,但業(yè)界苦于無規(guī)可循 18
1.6 本章小結(jié) 19
第2章 云原生技術(shù) 20
2.1 容器技術(shù) 20
2.1.1 容器與虛擬化 20
2.1.2 容器鏡像 20
2.1.3 容器存儲 21
2.1.4 容器網(wǎng)絡(luò) 22
2.1.5 容器運行時 22
2.2 容器編排 23
2.3 微服務(wù) 23
2.4 服務(wù)網(wǎng)格 24
2.5 Serverless 25
2.6 DevOps 26
2.7 本章小結(jié) 27
第二部分 云原生技術(shù)的風險分析
第3章 容器基礎(chǔ)設(shè)施的風險分析 30
3.1 容器基礎(chǔ)設(shè)施面臨的風險 30
3.1.1 容器鏡像存在的風險 31
3.1.2 活動容器存在的風險 32
3.1.3 容器網(wǎng)絡(luò)存在的風險 33
3.1.4 容器管理程序接口存在的風險 33
3.1.5 宿主機操作系統(tǒng)存在的風險 34
3.1.6 無法根治的軟件漏洞 34
3.2 針對容器化開發(fā)測試過程的攻擊案例 34
3.2.1 背景知識 35
3.2.2 CVE-2018-15664:符號鏈接替換漏洞 35
3.2.3 CVE-2019-14271:加載不受信任的動態(tài)鏈接庫 39
3.3 針對容器軟件供應(yīng)鏈的攻擊案例 43
3.3.1 鏡像漏洞利用 44
3.3.2 鏡像投毒 45
3.4 針對運行時容器的攻擊案例 48
3.4.1 容器逃逸 48
3.4.2 安全容器逃逸 58
3.4.3 資源耗盡型攻擊 73
3.5 本章小結(jié) 79
第4章 容器編排平臺的風險分析 80
4.1 容器編排平臺面臨的風險 80
4.1.1 容器基礎(chǔ)設(shè)施存在的風險 81
4.1.2 Kubernetes組件接口存在的風險 82
4.1.3 集群網(wǎng)絡(luò)存在的風險 84
4.1.4 訪問控制機制存在的風險 84
4.1.5 無法根治的軟件漏洞 85
4.2 針對Kubernetes組件不安全配置的攻擊案例 85
4.2.1 Kubernetes API Server未授權(quán)訪問 85
4.2.2 Kubernetes Dashboard未授權(quán)訪問 86
4.2.3 Kubelet未授權(quán)訪問 87
4.3 針對Kubernetes權(quán)限提升的攻擊案例 88
4.3.1 背景知識 88
4.3.2 漏洞分析 90
4.3.3 漏洞復(fù)現(xiàn) 94
4.3.4 漏洞修復(fù) 101
4.4 針對Kubernetes的拒絕服務(wù)攻擊案例 102
4.4.1 CVE-2019-11253:YAML炸彈 102
4.4.2 CVE-2019-9512/9514:HTTP/2協(xié)議實現(xiàn)存在問題 105
4.5 針對Kubernetes網(wǎng)絡(luò)的中間人攻擊案例 110
4.5.1 背景知識 112
4.5.2 原理描述 115
4.5.3 場景復(fù)現(xiàn) 117
4.5.4 防御策略 123
4.6 本章小結(jié) 124
第5章 云原生應(yīng)用的風險分析 125
5.1 云原生應(yīng)用風險概述 125
5.2 傳統(tǒng)應(yīng)用的風險分析 125
5.3 云原生應(yīng)用的新風險分析 126
5.3.1 數(shù)據(jù)泄露的風險 126
5.3.2 未授權(quán)訪問的風險 128
5.3.3 拒絕服務(wù)的風險 129
5.4 云原生應(yīng)用業(yè)務(wù)的新風險分析 130
5.4.1 未授權(quán)訪問的風險 130
5.4.2 API濫用的風險 131
5.5 Serverless的風險分析 131
5.5.1 Serverless特征帶來的風險 131
5.5.2 Serverless應(yīng)用風險 132
5.5.3 Serverless平臺風險 132
5.5.4 Serverless被濫用的風險 154
5.6 本章小結(jié) 155
第6章 典型云原生安全事件 156
6.1 特斯拉Kubernetes挖礦事件 156
6.1.1 事件分析 156
6.1.2 總結(jié)與思考 158
6.2 微軟監(jiān)測到大規(guī)模Kubernetes挖礦事件 160
6.2.1 事件分析 160
6.2.2 總結(jié)與思考 162
6.3 Graboid蠕蟲挖礦傳播事件 164
6.3.1 事件分析 164
6.3.2 總結(jié)與思考 166
6.4 本章小結(jié) 167
第三部分 云原生安全防護思路和體系
第7章 云原生防護思路轉(zhuǎn)變 170
7.1 變化:容器生命周期 170
7.2 安全左移 171
7.3 聚焦不變 171
7.4 關(guān)注業(yè)務(wù) 173
7.5 本章小結(jié) 174
第8章 云原生安全體系 175
8.1 體系框架 175
8.2 安全組件簡介 176
第9章 左移的安全機制 178
9.1 開發(fā)安全 178
9.2 軟件供應(yīng)鏈安全 178
9.3 容器鏡像安全 179
9.3.1 容器鏡像安全現(xiàn)狀 179
9.3.2 容器鏡像安全防護 180
9.4 本章小結(jié) 182
第四部分 云原生可觀測性
第10章 可觀測性概述 184
10.1 為什么需要實現(xiàn)云原生可觀測性 184
10.2 需要觀測什么 185
10.3 實現(xiàn)手段 186
10.4 本章小結(jié) 187
第11章 日志審計 188
11.1 日志審計的需求與挑戰(zhàn) 188
11.1.1 需求分析 188
11.1.2 面臨的挑戰(zhàn) 189
11.2 Docker日志審計 189
11.3 Kubernetes日志審計 192
11.3.1 應(yīng)用程序日志 192
11.3.2 系統(tǒng)組件日志 193
11.3.3 日志工具 194
11.4 本章小結(jié) 195
第12章 監(jiān)控 196
12.1 云原生架構(gòu)的監(jiān)控挑戰(zhàn) 196
12.2 監(jiān)控指標 197
12.3 監(jiān)控工具 198
12.3.1 cAdvisor和Heapster 199
12.3.2 Prometheus 199
12.4 本章小結(jié) 200
第13章 追蹤 201
13.1 動態(tài)追蹤 201
13.2 eBPF 203
13.2.1 eBPF原理與架構(gòu) 204
13.2.2 eBPF驗證器 206
13.2.3 eBPF程序類型 207
13.2.4 eBPF工具 208
13.2.5 小結(jié) 210
13.3 基于BPFTrace實現(xiàn)動態(tài)追蹤 211
13.3.1 探針類型 212
13.3.2 如何使用BPFTrace進行追蹤 214
13.4 微服務(wù)追蹤 219
13.4.1 微服務(wù)追蹤概述 219
13.4.2 分布式追蹤 220
13.4.3 微服務(wù)追蹤實現(xiàn)示例 220
13.5 本章小結(jié) 222
第五部分 容器基礎(chǔ)設(shè)施安全
第14章 Linux內(nèi)核安全機制 224
14.1 隔離與資源管理技術(shù) 224
14.1.1 內(nèi)核命名空間 224
14.1.2 控制組 224
14.2 內(nèi)核安全機制 225
14.2.1 Capabilities 225
14.2.2 Seccomp 225
14.2.3 AppArmor 226
14.2.4 SELinux 226
14.3 本章小結(jié) 227
第15章 容器安全加固 228
15.1 概述 228
15.2 容器安全配置 228
15.3 本章小結(jié) 229
第16章 容器環(huán)境的行為異常檢測 230
16.1 基于規(guī)則的已知威脅檢測 230
16.1.1 檢測系統(tǒng)設(shè)計 231
16.1.2 基于規(guī)則的檢測實戰(zhàn):CVE-2019-5736 232
16.1.3 小結(jié) 234
16.2 基于行為模型的未知威脅檢測 234
16.2.1 檢測系統(tǒng)架構(gòu) 235
16.2.2 學(xué)習與檢測流程 237
16.2.3 基線設(shè)計 238
16.2.4 小結(jié) 240
16.3 本章小結(jié) 240
第六部分 容器編排平臺安全
第17章 Kubernetes安全加固 242
17.1 API Server認證 242
17.1.1 靜態(tài)令牌文件 242
17.1.2 X.509 客戶端證書 243
17.1.3 服務(wù)賬號令牌 243
17.1.4 OpenID Connect令牌 245
17.1.5 身份認證代理 246
17.1.6 Webhook令牌身份認證 247
17.1.7 小結(jié) 248
17.2 API Server授權(quán) 249
17.3 準入控制器 252
17.4 Secret對象 256
17.5 網(wǎng)絡(luò)策略 257
17.6 本章小結(jié) 259
第18章 云原生網(wǎng)絡(luò)安全 260
18.1 云原生網(wǎng)絡(luò)架構(gòu) 260
18.1.1 基于端口映射的容器主機網(wǎng)絡(luò) 260
18.1.2 基于CNI的Kubernetes集群網(wǎng)絡(luò) 260
18.1.3 服務(wù)網(wǎng)格 261
18.2 基于零信任的云原生網(wǎng)絡(luò)微隔離 261
18.2.1 什么是微隔離 262
18.2.2 云原生為什么需要微隔離 262
18.2.3 云原生網(wǎng)絡(luò)的微隔離實現(xiàn)技術(shù) 263
18.2.4 云原生網(wǎng)絡(luò)入侵檢測 265
18.3 基于Cilium的網(wǎng)絡(luò)安全方案示例 266
18.3.1 Cilium架構(gòu) 266
18.3.2 Cilium組網(wǎng)模式 268
18.3.3 Cilium在Overlay組網(wǎng)下的通信示例 268
18.3.4 API感知的安全性 272
18.4 本章小結(jié) 277
第七部分 云原生應(yīng)用安全
第19章 面向云原生應(yīng)用的零信任安全 280
19.1 什么是信任 280
19.2 真的有零信任嗎 282
19.3 零信任的技術(shù)路線 282
19.4 云化基礎(chǔ)設(shè)施與零信任 284
19.5 云原生環(huán)境零信任架構(gòu) 286
19.6 本章小結(jié) 287
第20章 傳統(tǒng)應(yīng)用安全 289
20.1 應(yīng)用程序代碼漏洞緩解 289
20.1.1 安全編碼 290
20.1.2 使用代碼檢測工具 290
20.2 應(yīng)用程序依賴庫漏洞防護 290
20.2.1 使用受信任的源 290
20.2.2 使用軟件組成分析工具 290
20.3 應(yīng)用程序訪問控制 291
20.4 應(yīng)用程序數(shù)據(jù)安全防護 291
20.4.1 安全編碼 291
20.4.2 使用密鑰管理系統(tǒng) 292
20.4.3 使用安全協(xié)議 292
20.5 本章小結(jié) 292
第21章 API安全 293
21.1 傳統(tǒng)API防護 293
21.2 API脆弱性檢測 293
21.3 云原生API網(wǎng)關(guān) 294
21.4 本章小結(jié) 295
第22章 微服務(wù)架構(gòu)下的應(yīng)用安全 296
22.1 認證服務(wù) 297
22.1.1 基于JWT的認證 297
22.1.2 基于Istio的認證 298
22.2 訪問控制 306
22.2.1 基于角色的訪問控制 306
22.2.2 基于Istio的訪問控制 306
22.3 數(shù)據(jù)安全 310
22.4 其他防護機制 310
22.4.1 Istio和API網(wǎng)關(guān)協(xié)同的全面防護 311
22.4.2 I