關(guān)于我們
書單推薦
新書推薦
|
Kubernetes安全指南 讀者對象:DevOps工程師,Kubernetes平臺工程師,云原生架構(gòu)師
本書的主要內(nèi)容有:通過威脅建模來了解Kubernetes系統(tǒng)的漏洞。聚焦pod,從配置到攻防。保護你的集群和工作負載流量。使用RBAC、OPA和Kyverno定義和實施策略。深入研究沙箱和隔離技術(shù)等。
編輯推薦 想要安全可靠地運行你的Kubernetes工作負載嗎?本書提供了基于威脅的Kubernetes安全指南,每一章都會檢查特定組件的架構(gòu)和默認設置,并且回顧現(xiàn)有的備受矚目的攻擊和歷史上的通用漏洞披露(CVE)。本書作者分享了最Z佳實踐配置,幫助你從可能收到攻擊的角度強化集群。
專家推薦 “這是一本很棒的書,從攻擊者的角度全面介紹了他們可能如何嘗試破壞 Kubernetes 集群,以及你可以采取哪些措施來阻止他們! ——Liz Rice Isovalent 首席開源官
“每個運行基于 Kubernetes 的工作負載的團隊的必B備讀物! ——Bilgin Ibryam Red Hat產(chǎn)品經(jīng)理和《Kubernetes Patterns》的合著者
前言 歡迎閱讀本書,這是為希望安全可靠地運行工作負載的Kubernetes 從業(yè)者準備的。在撰寫本書時,Kubernetes 已經(jīng)存在了大約六年。有超過一百個經(jīng)認證的Kubernetes 產(chǎn)品(https://oreil.ly/bo2xA)可用,如分發(fā)和托管服務。隨著越來越多的組織決定將其工作負載轉(zhuǎn)移到Kubernetes,我們想分享這一領(lǐng)域的經(jīng)驗,幫助你更安全可靠地部署和運維工作負載。感謝你加入我們的旅程,我們希望你在閱讀本書并應用你所學知識時,能像我們在寫作本書時一樣開心。 在前言中,我們將描繪我們的目標讀者,聊聊我們?yōu)槭裁磳戇@本書,并解釋我們認為你應該如何通過提供的快速內(nèi)容指南來使用它。我們還將討論一些細節(jié),如Kubernetes 版本和使用慣例。 關(guān)于讀者 為了更好地理解本書,我們假設你要么是DevOps 工程師,要么是Kubernetes平臺工程師,要么是云原生架構(gòu)師,要么是站點可靠性工程師(SRE),要么是首席信息安全官(CISO)。我們進一步假設你有興趣進行實踐,我們在理論上討論威脅和防御的同時,也會盡最大努力演示它們,并向你介紹可以幫助你的工具。 在這一點上,我們還想確保你明白你正在讀的書是針對高級主題的。我們假設你已經(jīng)熟悉Kubernetes,特別是Kubernetes 安全主題,至少在表面上是這樣。換句話說,我們不會詳細討論Kubernetes 是如何工作的,而是在每章的基礎上總結(jié)或重述重要的概念或機制。 特別是,我們假設你了解容器的用途以及它們?nèi)绾卧贙ubernetes 中運行。如果你還不熟悉這些主題,我們建議你做一些初步閱讀。以下是我們建議參考的書籍: ? Kubernetes: Up and Running (https://oreil.ly/k9ydo) by Brendan Burns, Kelsey Hightower, and Joe Beda (O ’Reilly) ? Managing Kubernetes (https://oreil.ly/cli0J) by Brendan Burns and Craig Tracey (O’Reilly) ? Kubernetes Security (https://oreil.ly/S8jQf) by Liz Rice and Michael Hausenblas (O’Reilly) ? Container Security (https://oreil.ly/Yh8EM) by Liz Rice (O ’Reilly) ? Cloud Native Security by Chris Binnie and Rory McCune (Wiley) 既然我們已經(jīng)清楚了這本書的目標是什么,以及在我們看來,誰將從中受益,那么讓我們轉(zhuǎn)向另一個話題:作者。 關(guān)于作者 在設計、運行、攻擊和保護基于Kubernetes 的工作負載和集群方面,我們擁有超過10 年的實踐經(jīng)驗,基于這些經(jīng)驗,我們希望為你(云原生安全從業(yè)者)提供所需的內(nèi)容,從而幫助你在工作中獲得成功。 以史為鑒,過去的錯誤常常會給安全工作帶來啟發(fā),我們兩個都已經(jīng)學習(并且在犯錯誤。㎏ubernetes 安全一段時間了。我們想確定我們對這個主題的理解是正確的,所以我們寫了一本書,通過一個共同的視角來驗證我們的猜疑。我們都在不同的公司擔任過不同的角色,參加過培訓課程,發(fā)布過各種資料,從工具到博客文章。我們還在各種公開演講活動中分享了在這個主題上學到的經(jīng)驗。我們在這里的大部分動機和我們使用的例子都源于我們在日常工作中的經(jīng)歷和/ 或我們在客戶公司觀察到的事情。 如何使用這本書 這本書是一本基于威脅的Kubernetes 安全指南,使用普通的Kubernetes 安裝方案及其內(nèi)置的默認配置作為起點。我們將從運行任意工作負載的分布式系統(tǒng)的抽象威脅模型開始討論,然后詳細評估一個安全的Kubernetes 系統(tǒng)的每個組件。在每一章中,我們將研究組件的架構(gòu)和潛在的默認設置,并回顧備受關(guān)注的攻擊和歷史上的通用漏洞披露(CVE)。我們還演示了攻擊并分享了最佳實踐配置,以便從可能的攻擊角度演示加固集群。 為了幫助你瀏覽這本書,這里有一個章節(jié)級的快速綱要: ? 第1 章“概述”,我們設置了場景,介紹了我們的主要對手以及什么是威脅建模。 ? 第2 章“pod 資源詳情”,重點關(guān)注pod 的配置、攻擊以及防御。 ? 第3 章“容器運行時隔離”,深入沙箱和隔離技術(shù)。 ? 第4 章“應用程序和供應鏈”,將介紹供應鏈攻擊,以及如何檢測和緩解它們。 ? 第5 章“網(wǎng)絡”,我們將審查網(wǎng)絡默認設置以及如何保護你的集群和工作負載流量。 ? 第6 章“存儲”,我們將重點轉(zhuǎn)移到持久性,看一看文件系統(tǒng)、卷和靜態(tài)敏感信息。 ? 第7 章“硬性多租戶”,介紹了在集群中為多租戶運行工作負載的主題,以及這可能會導致的問題。 ? 第8 章“策略”,我們將審查正在使用的各種策略,討論訪問控制,特別是基于角色的訪問控制(RBAC),以及通用策略解決方案,如OpenPolicy Agent (OPA)。 ? 第9 章“入侵檢測”,我們討論了這樣一個問題:盡管已經(jīng)采取了控制措施,如果有人設法闖入,你該怎么辦。 ? 第10 章“組織”,這一章有些特殊,因為它并不關(guān)注工具,而是關(guān)注在云和本地安裝時,人這一個因素。 ? 在附錄A“pod 級攻擊”中,我們將帶你親身體驗第2 章中討論的pod 層面的攻擊。最后,在附錄B“資料”中,我們將每一章的進一步閱讀材料以及與本書相關(guān)的注釋簡歷集合在一起。 你不必按順序閱讀章節(jié),我們盡最大努力保持各章節(jié)獨立,并在適當?shù)牡胤揭孟嚓P(guān)內(nèi)容。 請注意,在編寫本書時,Kubernetes 1.21 是最新的穩(wěn)定版本。此處展示的大多數(shù)示例都適用于較早的版本。并且我們充分意識到,當你閱讀本文時,當前版本可能比現(xiàn)在高很多。但這些概念在各版本間都保持不變。 這本快速定位的簡短指南就此完成,讓我們來看看書中使用的約定。 排版約定 本書使用了下述排版約定。 斜體(Italic) 表示新術(shù)語、URL、電子郵件地址、文件名和擴展名。 等寬字體(Constant Width) 表示程序片段,以及正文中出現(xiàn)的變量、函數(shù)名、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關(guān)鍵字等。 使用代碼示例 補充材料可從以下網(wǎng)址獲得:http://hacking-kubernetes.info。 如果你有技術(shù)問題或使用代碼示例的問題,請發(fā)送電子郵件至bookquestions@oreilly.com。 這本書是來幫助你完成工作的。一般來說,如果本書提供了示例代碼,你可以在你的程序和文檔中使用它。除非你要復制代碼的重要部分,否則你不需要聯(lián)系我們以獲得許可。例如,編寫的程序,僅使用本書中幾段代碼,那么就不需要許可。出售或分發(fā)O’Reilly 書籍中的例子需要得到許可。通過引用這本書和引用示例代碼來回答問題不需要許可。將本書中的大量示例代碼并入到你的產(chǎn)品文檔中,那就需要許可。 我們很感激, 但一般不需要署名。署名通常包括標題、作者、出版商和ISBN。例如:“Hacking Kubernetes by Andrew Martin and Michael Hausenblas (O’Reilly).Copyright 2022 Andrew Martin and Michael Hausenblas,978-1-492-08173-9”。 如果你覺得你對代碼示例的使用超出了合理使用或上述許可的范圍,請隨時聯(lián)系我們permissions@oreilly.com。 O’Reilly 在線學習平臺(O’Reilly Online Learning) 近40 年來,O’Reilly Media 致力于提供技術(shù)和商業(yè)培 訓、知識和卓越見解,來幫助眾多公司取得成功。 公司獨有的專家和改革創(chuàng)新者網(wǎng)絡通過O’Reilly 書籍、文章以及在線學習平臺,分享他們的專業(yè)知識和實踐經(jīng)驗。O’Reilly 在線學習平臺按照您的需要提供實時培訓課程、深入學習渠道、交互式編程環(huán)境以及來自O’Reilly 和其他200 多家出版商的大量書籍與視頻資料。更多信息,請訪問網(wǎng)站:https://www.oreilly.com/。 聯(lián)系我們 任何有關(guān)本書的意見或疑問,請按照以下地址聯(lián)系出版社。 美國: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 中國: 北京市西城區(qū)西直門南大街2 號成銘大廈C 座807 室(100035) 奧萊利技術(shù)咨詢(北京)有限公司 這本書有專屬網(wǎng)頁,在那里我們列出了勘誤表、例子和任何附加信息。你可以通過以下網(wǎng)址訪問:https://oreil.ly/HackingKubernetes。 如果你對本書有一些評論或技術(shù)上的建議,請發(fā)送電子郵件到errata@oreilly.com.cn。 要了解有關(guān)O’Reilly 書籍和課程的新聞和信息,請訪問http://oreilly.com。 我們的Facebook:http://facebook.com/oreilly。 我們的Twitter:http://twitter.com/oreillymedia。 我們的Youtube:http://www.youtube.com/oreillymedia。 致謝 感謝我們的審校Roland Huss、Liz Rice、Katie Gamanji、Ihor Dvoret-skyi、Mark Manning 和Michael Gasch。你們的評論對本書絕對有重要影響,感謝你們的指導和建議。 Andy 要感謝他的家人和朋友對他不斷地愛和鼓勵,感謝鼓舞人心且精明干練的ControlPlane 團隊孜孜不倦的深刻見解和指導,以及不斷帶來啟發(fā)的cloud native security community,感謝他們持續(xù)的慷慨和才華。特別感謝Rowan Baker、Kevin Ward、Lewis Denham-Parry、Nick Simpson、Jack Kelly 和James Cleverley-Prance。 Michael 想表達他最深切的感謝,感謝支持他并且棒極了的家人:我們的孩子Saphira、Ranya 和Iannis,我聰明有趣的妻子Anneli-ese,以及我們最棒的狗狗Snoopy。 我們不能不提Hacking Kubernetes 的啟發(fā)者和導師的Twitter 列表(https://oreil.ly/xr1is),以字母順序排列的專家,如@antitree、@bradgeesaman、@brau_ner、@christianposta、@dinodaizovi、@erchiang、@garethr、@IanColdwater、@IanMLewis、@jessfraz、@jonpulsifer、@jpetazzo、@justincormack、@kelseyhightower、@krisnova、@kubernetesonarm、@liggitt、@lizrice、@lordscyphar、@lorenc_dan、@lumjjb、@mauilion、@MayaKaczorowski、@mikedanese、@monadic、@raesene、@swagitda_、@tabbysable、@tallclair、@torresariass、@WhyHiAnnabelle 和@and also our bestest of all dogs, Snoopy. We would be remiss not to mention the Hacking Kubernetes Twitter list (https://oreil.ly/xr1is) of our inspirations and mentors, featuring alphabetized luminaries such as @antitree, @bradgeesaman, @brau_ner, @christianposta, @dinodaizovi,@erchiang, @garethr, @IanColdwater, @IanMLewis, @jessfraz, @jonpulsifer, @jpetazzo,@justincormack, @kelseyhightower, @krisnova, @kubernetesonarm, @liggitt,@lizrice, @lordcyphar, @lorenc_dan, @lumjjb, @mauilion, @MayaKaczorowski,@mikedanese, @monadic, @raesene, @swagitda_, @tabbysable, @tallclair, @torresariass,@WhyHiAnnabelle, and @captainHλ$?????A¢k. Last but certainly not least, both authors thank the O’Reilly team, especially Angela Rufino, for shepherding us through the process of writing this book. 最后但同樣重要的是,兩位作者都感謝O’Reilly 團隊,尤其是Angela Rufino,感謝他們帶領(lǐng)我們完成了這本書的寫作。
Andrew Martin是ControlPlane的CEO。 Machael Hausenblas是AWS的解決方案工程主管。
目錄 前言 1 目錄 第1 章 概述 9 1.1 場景介紹10 1.2 威脅模型12 1.2.1 威脅主體 .13 1.2.2 第一個威脅模型 16 1.3 關(guān)于攻擊樹 19 1.4 攻擊樹案例 20 1.5 現(xiàn)有的技術(shù) 23 1.6 小結(jié) .24 第2 章 pod 資源詳情 25 2.1 默認配置25 2.2 威脅模型27 2.3 對攻擊的剖析 .28 2.3.1 遠程代碼執(zhí)行 28 2.3.2 網(wǎng)絡攻擊面 29 2.4 Kubernetes 工作負載:pod 中的應用程序 31 2.5 什么是pod ? .33 2.6 了解容器37 2.6.1 共享網(wǎng)絡和存儲 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 環(huán)境變量 .51 2.7.7 容器鏡像 .52 2.7.8 pod 探針 55 2.7.9 CPU 和內(nèi)存限制和請求 55 2.7.10 DNS .56 2.7.11 pod securityContext .59 2.7.12 pod Sevice Accounts 61 2.7.13 調(diào)度器和容忍度 61 2.7.14 pod 卷定義 62 2.7.15 pod 網(wǎng)絡狀態(tài) 63 2.8 正確使用securityContext .63 2.8.1 使用Kubesec 增強securityContext 65 2.8.2 強化的securityContext .66 2.9 進入風暴中心 .72 2.10 小結(jié) 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 本章小結(jié). 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 我們應該相信哪些生產(chǎn)商? 120 4.4 CNCF 安全技術(shù)咨詢組 122 4.4.1 架構(gòu)容器化應用以提高彈性 122 4.4.2 檢測木馬 123 4.5 攻擊供應鏈 124 4.5.1 攻擊的持續(xù)性 . 126 4.5.2 系統(tǒng)面臨的風險 127 4.6 容器鏡像構(gòu)建供應鏈 128 4.6.1 軟件工廠 128 4.6.2 神圣的鏡像工廠 129 4.6.3 基礎鏡像 130 4.7 容器供應鏈的狀態(tài) . 132 4.7.1 來自第三方代碼的風險 . 133 4.7.2 軟件材料清單 . 134 4.7.3 人類身份和GPG 136 4.8 對構(gòu)建和元數(shù)據(jù)簽名 137 4.8.1 Notary v1 137 4.8.2 sigstore 137 4.8.3 in-toto 和TUF 139 4.8.4 GCP 二進制授權(quán) 140 4.8.5 Grafeas 140 4.9 基礎設施供應鏈 . 140 4.9.1 Operator 權(quán)限 .140 4.9.2 攻擊上游供應鏈 141 4.10 供應鏈攻擊的類型 142 4.10.1 攝取開源代碼 144 4.10.2 貫穿SDLC 的應用程序漏洞 146 4.11 防御SUNBURST .147 4.12 小結(jié) 150 第5 章 網(wǎng)絡 . 151 5.1 默認配置. 152 5.1.1 pod 內(nèi)網(wǎng)絡 154 5.1.2 pod 間通信 155 5.1.3 pod 與工作節(jié)點間的流量 . 155 5.1.4 集群外部流量 . 156 5.1.5 ARP 的狀態(tài) .157 5.1.6 無securityContext 158 5.1.7 無工作負載身份 159 5.1.8 無網(wǎng)絡傳輸加密 159 5.2 威脅模型. 160 5.3 流量流向控制 161 5.3.1 安裝 . 161 5.3.2 網(wǎng)絡策略前來救援! 165 5.4 服務網(wǎng)格. 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 小結(jié) 177 第6 章 存儲 . 179 6.1 默認配置. 180 6.2 威脅模型. 180 6.3 卷和數(shù)據(jù)存儲 183 6.3.1 一切皆是字節(jié)流 183 6.3.2 何為文件系統(tǒng)? 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 靜態(tài)的敏感信息 . 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 從數(shù)據(jù)存儲中泄露的其他Secret 203 6.6 小結(jié) 203 第7 章 硬性多租戶 205 7.1 默認配置. 206 7.2 威脅模型. 206 7.3 命名空間資源 207 7.3.1 節(jié)點池 208 7.3.2 節(jié)點污點 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 調(diào)度器和控制器管理器 . 220 7.7 數(shù)據(jù)平面. 223 7.8 集群隔離架構(gòu) 225 7.9 集群支持服務和工具環(huán)境 . 227 7.10 安全監(jiān)控和可見性 227 7.11 小結(jié) 228 第8 章 策略 . 229 8.1 策略的類型 230 8.2 云服務提供商 230 8.2.1 網(wǎng)絡流量 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 認證和授權(quán) 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 創(chuàng)建RBAC . 245 8.6.4 分析和可視化RBAC 248 8.6.5 RBAC 相關(guān)的攻擊 250 8.7 通用策略引擎 251 8.7.1 開放策略代理(OPA) .251 8.7.2 Kyverno . 258 8.7.3 其他策略方案 . 260 8.8 小結(jié) 261 第9 章 入侵檢測 . 263 9.1 默認配置. 264 9.2 威脅模型. 264 9.3 傳統(tǒng)的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 蜜罐技術(shù). 274 9.8 審計 276 9.9 檢測規(guī)避. 277 9.10 安全運營中心 279 9.11 小結(jié) 279 第10 章 組織 281 10.1 最薄弱的連接點 282 10.2 云服務提供商 284 10.2.1 責任共擔 285 10.2.2 賬戶衛(wèi)生 286 10.2.3 對人員和資源進行分組 287 10.2.4 其他注意事項 289 10.3 本地環(huán)境 290 10.4 常見注意事項 292 10.4.1 威脅模型爆炸 292 10.4.2 SLO 如何給你帶來額外的壓力 295 10.4.3 社會工程 295 10.4.4 隱私和監(jiān)管問題 . 298 10.5 小結(jié) 298 附錄A pod 級攻擊 . 299 附錄B 資源 315
你還可能感興趣
我要評論
|