Kubernetes安全指南
《Kubernetes安全指南》,[英] 安德魯,馬丁(Andrew Martin),[奧地利] 邁克爾,豪森布拉斯(Michael Hausenblas) 著,劉吉安,常崢,成海霞 譯,出版社: 中國電力出版社。
書,是歷史的見證、文化的賦形、知識的寶庫、智慧[1]的結晶,是一個民族一個國家顯示其文明的標誌。讀書,是時代的呼喚、歷史的昭示、職責的要求,是一個民族一個國家走向偉大復興的證明[2]。
目錄
內容簡介
本書從具有內置默認設置的Vanilla Kubernetes開始,你將檢查運行任意工作負載的分布式系統的抽象威脅模型,然後對安全Kubernetes系統的每個組件進行詳細評估。本書的主要內容有:通過威脅建模來了解Kubernetes系統的漏洞。聚焦pod,從配置到攻防。保護你的集群和工作負載流量。使用RBAC、OPA和Kyverno定義和實施策略。深入研究沙箱和隔離技術。了解如何檢測和減輕供應鏈攻擊。探索靜態文件系統、卷和敏感信息。發現在集群中運行多租戶工作負載時可能出現的問題。了解即使你已採取控制措施,如果有攻擊者闖入,你可以做什麼。
目錄
前言 1
目錄
第1 章 概述 9
1.1 場景介紹10
1.2 威脅模型12
1.2.1 威脅主體 .13
1.2.2 第一個威脅模型 16
1.3 關於攻擊樹 19
1.4 攻擊樹案例 20
1.5 現有的技術 23
1.6 小結 .24
第2 章 pod 資源詳情 25
2.1 默認配置25
2.2 威脅模型27
2.3 對攻擊的剖析 .28
2.3.1 遠程代碼執行 28
2.3.2 網絡攻擊面 29
2.4 Kubernetes 工作負載:pod 中的應用程序 31
2.5 什麼是pod ? .33
2.6 了解容器37
2.6.1 共享網絡和存儲 39
2.6.2 最壞的情況可能會是什麼? .40
2.6.3 容器逃逸 .44
2.7 pod 配置和威脅 .47
2.7.1 pod 頭部 48
2.7.2 反向正常運行時間 .49
2.7.3 標籤 50
2.7.4 託管字段 .50
2.7.5 pod 命名空間和所有者 .51
2.7.6 環境變量 .51
2.7.7 容器鏡像 .52
2.7.8 pod 探針 55
2.7.9 CPU 和內存限制和請求 55
2.7.10 DNS .56
2.7.11 pod securityContext .59
2.7.12 pod Sevice Accounts 61
2.7.13 調度器和容忍度 61
2.7.14 pod 卷定義 62
2.7.15 pod 網絡狀態 63
2.8 正確使用securityContext .63
2.8.1 使用Kubesec 增強securityContext 65
2.8.2 強化的securityContext .66
2.9 進入風暴中心 .72
2.10 小結 72
第3 章 容器運行時隔離 .75
3.1 默認配置76
3.2 威脅模型76
3.3 容器,虛擬機和沙盒 79
3.3.1 虛擬機是如何工作的.81
3.3.2 虛擬化的好處 84
3.3.3 容器有哪些問題? .85
3.3.4 用戶命名空間缺陷 .86
3.4 沙盒化(sandboxing) 91
3.4.1 gVisor 94
3.4.2 Firecracker 102
3.4.3 Kata Container 103
3.4.4 rust-vmm 105
3.5 沙盒化的風險 107
3.6 Kubernetes 運行時類 107
3.7 本章小結. 108
第4 章 應用程序和供應鏈 111
4.1 默認配置. 112
4.2 威脅模型. 112
4.3 供應鏈 . 113
4.3.1 軟件 . 117
4.3.2 掃描CVE . 118
4.3.3 採用開源軟件 . 119
4.3.4 我們應該相信哪些生產商? 120
4.4 CNCF 安全技術諮詢組 122
4.4.1 架構容器化應用以提高彈性 122
4.4.2 檢測木馬 123
4.5 攻擊供應鏈 124
4.5.1 攻擊的持續性 . 126
4.5.2 系統面臨的風險 127
4.6 容器鏡像構建供應鏈 128
4.6.1 軟件工廠 128
4.6.2 神聖的鏡像工廠 129
4.6.3 基礎鏡像 130
4.7 容器供應鏈的狀態 . 132
4.7.1 來自第三方代碼的風險 . 133
4.7.2 軟件材料清單 . 134
4.7.3 人類身份和GPG 136
4.8 對構建和元數據簽名 137
4.8.1 Notary v1 137
4.8.2 sigstore 137
4.8.3 in-toto 和TUF 139
4.8.4 GCP 二進制授權 140
4.8.5 Grafeas 140
4.9 基礎設施供應鏈 . 140
4.9.1 Operator 權限 .140
4.9.2 攻擊上游供應鏈 141
4.10 供應鏈攻擊的類型 142
4.10.1 攝取開源代碼 144
4.10.2 貫穿SDLC 的應用程序漏洞 146
4.11 防禦SUNBURST .147
4.12 小結 150
第5 章 網絡 . 151
5.1 默認配置. 152
5.1.1 pod 內網絡 154
5.1.2 pod 間通信 155
5.1.3 pod 與工作節點間的流量 . 155
5.1.4 集群外部流量 . 156
5.1.5 ARP 的狀態 .157
5.1.6 無securityContext 158
5.1.7 無工作負載身份 159
5.1.8 無網絡傳輸加密 159
5.2 威脅模型. 160
5.3 流量流向控制 161
5.3.1 安裝 . 161
5.3.2 網絡策略前來救援! 165
5.4 服務網格. 168
5.4.1 概念 . 168
5.4.2 選項和採用 . 168
5.4.3 案例研究:使用Linkerd 的mTLS 170
5.5 eBPF . 173
5.5.1 概念 . 173
5.5.2 選項和採用 . 174
5.5.3 案例研究:將探針附加到Go 程序 . 175
5.6 小結 177
第6 章 存儲 . 179
6.1 默認配置. 180
6.2 威脅模型. 180
6.3 卷和數據存儲 183
6.3.1 一切皆是字節流 183
6.3.2 何為文件系統? 184
6.3.3 容器中的卷和掛載 186
6.3.4 OverlayFS 186
6.3.5 tmpfs 188
6.3.6 掛載卷打破了容器隔離 . 190
6.3.7 基於/proc/self/exe 的漏洞 193
6.4 靜態的敏感信息 . 195
6.4.1 Secret 掛載 195
6.4.2 攻擊掛載的Secret 196
6.5 Kubernetes 存儲 197
6.5.1 容器存儲接口 . 197
6.5.2 投射卷 198
6.5.3 攻擊卷 200
6.5.4 主機目錄掛載的風險 202
6.5.5 從數據存儲中泄露的其他Secret 203
6.6 小結 203
第7 章 硬性多租戶 205
7.1 默認配置. 206
7.2 威脅模型. 206
7.3 命名空間資源 207
7.3.1 節點池 208
7.3.2 節點污點 210
7.4 軟性多租戶 212
7.5 硬性多租戶 213
7.5.1 敵對租戶 213
7.5.2 沙盒和策略 . 214
7.5.3 公有雲多租戶 . 215
7.6 控制平面. 216
7.6.1 API server 和etcd .218
7.6.2 調度器和控制器管理器 . 220
7.7 數據平面. 223
7.8 集群隔離架構 225
7.9 集群支持服務和工具環境 . 227
7.10 安全監控和可見性 227
7.11 小結 228
第8 章 策略 . 229
8.1 策略的類型 230
8.2 雲服務提供商 230
8.2.1 網絡流量 232
8.2.2 限制資源分配 . 232
8.2.3 資源配額 232
8.2.4 運行時策略 . 233
8.2.5 訪問控制策略 . 234
8.3 威脅模型. 234
8.4 普遍預期. 235
8.4.1 碎玻璃場景 . 235
8.4.2 審計 . 236
8.5 認證和授權 236
8.5.1 人類用戶 238
8.5.2 工作負載身份 . 238
8.6 基於角色的訪問控制(RBAC) 242
8.6.1 RBAC 回顧 . 242
8.6.2 一個簡單的RBAC 例子 243
8.6.3 創建RBAC . 245
8.6.4 分析和可視化RBAC 248
8.6.5 RBAC 相關的攻擊 250
8.7 通用策略引擎 251
8.7.1 開放策略代理(OPA) .251
8.7.2 Kyverno . 258
8.7.3 其他策略方案 . 260
8.8 小結 261
第9 章 入侵檢測 . 263
9.1 默認配置. 264
9.2 威脅模型. 264
9.3 傳統的IDS 265
9.4 基於eBPF 的IDS 267
9.4.1 Kubernetes 和容器入侵檢測 268
9.4.2 Falco 268
9.5 基於機器學習方法的IDS 271
9.6 容器取證. 271
9.7 蜜罐技術. 274
9.8 審計 276
9.9 檢測規避. 277
9.10 安全運營中心 279
9.11 小結 279
第10 章 組織 281
10.1 最薄弱的連接點 282
10.2 雲服務提供商 284
10.2.1 責任共擔 285
10.2.2 賬戶衛生 286
10.2.3 對人員和資源進行分組 287
10.2.4 其他注意事項 289
10.3 本地環境 290
10.4 常見注意事項 292
10.4.1 威脅模型爆炸 292
10.4.2 SLO 如何給你帶來額外的壓力 295
10.4.3 社會工程 295
10.4.4 隱私和監管問題 . 298
10.5 小結 298
附錄A pod 級攻擊 . 299
附錄B 資源 315