Kubernetes安全指南
Andrew Martin, Michael Hausenblas
刘吉安, 常峥, 成海霞 译
出版时间:2023年12月
页数:324
“这是一本很棒的书,从攻击者的角度全面介绍了他们可能如何尝试破坏Kubernetes集群,以及你可以采取哪些措施来阻止他们。”
——Liz Rice
Isovalent首席开源官
“每个运行基于Kubernetes的工作负载的团队的必备读物。”
——Bilgin Ibryam
Red Hat产品经理和《Kubernetes Patterns》的合著者

想要安全可靠地运行你的Kubernetes工作负载吗?本书提供了基于威胁的Kubernetes安全指南,每一章都会检查特定组件的架构和默认设置,并且回顾现有的备受瞩目的攻击和历史上的通用漏洞披露(CVE)。本书作者分享了最佳实践配置,帮助你从可能被攻击的角度来强化集群。
本书从具有内置默认设置的Vanilla Kubernetes开始,你将检查运行任意工作负载的分布式系统的抽象威胁模型,然后对安全Kubernetes系统的每个组件进行详细评估。
● 通过威胁建模来了解Kubernetes系统的漏洞。
● 聚焦pod,从配置到攻防。
● 保护你的集群和工作负载流量。
● 使用RBAC、OPA和Kyverno定义和实施策略。
● 深入研究沙箱和隔离技术。
● 了解如何检测和减轻供应链攻击。
● 探索静态文件系统、卷和敏感信息。
● 发现在集群中运行多租户工作负载时可能出现的问题。
● 了解即使你已采取控制措施,如果有攻击者闯入,你可以做什么。
  1. 前言
  2. 第1章 概述
  3. 1.1 场景介绍
  4. 1.2 威胁模型
  5. 1.2.1 威胁主体
  6. 1.2.2 第一个威胁模型
  7. 1.3 关于攻击树
  8. 1.4 攻击树案例
  9. 1.5 现有的技术
  10. 1.6 小结
  11. 第2章 pod资源详情
  12. 2.1 默认配置
  13. 2.2 威胁模型
  14. 2.3 对攻击的剖析
  15. 2.3.1 远程代码执行
  16. 2.3.2 网络攻击面
  17. 2.4 Kubernetes工作负载:pod中的应用程序
  18. 2.5 什么是pod?
  19. 2.6 了解容器
  20. 2.6.1 共享网络和存储
  21. 2.6.2 最坏的情况可能会是什么?
  22. 2.6.3 容器逃逸
  23. 2.7 pod配置和威胁
  24. 2.7.1 pod头部
  25. 2.7.2 反向正常运行时间
  26. 2.7.3 标签
  27. 2.7.4 托管字段
  28. 2.7.5 pod命名空间和所有者
  29. 2.7.6 环境变量
  30. 2.7.7 容器镜像
  31. 2.7.8 pod探针
  32. 2.7.9 CPU和内存限制和请求
  33. 2.7.10 DNS
  34. 2.7.11 pod securityContext
  35. 2.7.12 pod Sevice Accounts
  36. 2.7.13 调度器和容忍度
  37. 2.7.14 pod卷定义
  38. 2.7.15 pod网络状态
  39. 2.8 正确使用securityContext
  40. 2.8.1 使用Kubesec增强securityContext
  41. 2.8.2 强化的securityContext
  42. 2.9 进入风暴中心
  43. 2.10 小结
  44. 第3章 容器运行时隔离
  45. 3.1 默认配置
  46. 3.2 威胁模型
  47. 3.3 容器,虚拟机和沙盒
  48. 3.3.1 虚拟机是如何工作的
  49. 3.3.2 虚拟化的好处
  50. 3.3.3 容器有哪些问题?
  51. 3.3.4 用户命名空间缺陷
  52. 3.4 沙盒化(sandboxing)
  53. 3.4.1 gVisor
  54. 3.4.2 Firecracker
  55. 3.4.3 Kata Container
  56. 3.4.4 rust-vmm
  57. 3.5 沙盒化的风险
  58. 3.6 Kubernetes运行时类
  59. 3.7 本章小结
  60. 第4章 应用程序和供应链
  61. 4.1 默认配置
  62. 4.2 威胁模型
  63. 4.3 供应链
  64. 4.3.1 软件
  65. 4.3.2 扫描CVE
  66. 4.3.3 采用开源软件
  67. 4.3.4 我们应该相信哪些生产商?
  68. 4.4 CNCF安全技术咨询组
  69. 4.4.1 架构容器化应用以提高弹性
  70. 4.4.2 检测木马
  71. 4.5 攻击供应链
  72. 4.5.1 攻击的持续性
  73. 4.5.2 系统面临的风险
  74. 4.6 容器镜像构建供应链
  75. 4.6.1 软件工厂
  76. 4.6.2 神圣的镜像工厂
  77. 4.6.3 基础镜像
  78. 4.7 容器供应链的状态
  79. 4.7.1 来自第三方代码的风险
  80. 4.7.2 软件材料清单
  81. 4.7.3 人类身份和GPG
  82. 4.8 对构建和元数据签名
  83. 4.8.1 Notary v1
  84. 4.8.2 sigstore
  85. 4.8.3 in-toto和TUF
  86. 4.8.4 GCP二进制授权
  87. 4.8.5 Grafeas
  88. 4.9 基础设施供应链
  89. 4.9.1 Operator权限
  90. 4.9.2 攻击上游供应链
  91. 4.10 供应链攻击的类型
  92. 4.10.1 摄取开源代码
  93. 4.10.2 贯穿SDLC的应用程序漏洞
  94. 4.11 防御SUNBURST
  95. 4.12 小结
  96. 第5章 网络
  97. 5.1 默认配置
  98. 5.1.1 pod内网络
  99. 5.1.2 pod间通信
  100. 5.1.3 pod与工作节点间的流量
  101. 5.1.4 集群外部流量
  102. 5.1.5 ARP的状态
  103. 5.1.6 无securityContext
  104. 5.1.7 无工作负载身份
  105. 5.1.8 无网络传输加密
  106. 5.2 威胁模型
  107. 5.3 流量流向控制
  108. 5.3.1 安装
  109. 5.3.2 网络策略前来救援!
  110. 5.4 服务网格
  111. 5.4.1 概念
  112. 5.4.2 选项和采用
  113. 5.4.3 案例研究:使用Linkerd的mTLS
  114. 5.5 eBPF
  115. 5.5.1 概念
  116. 5.5.2 选项和采用
  117. 5.5.3 案例研究:将探针附加到Go程序
  118. 5.6 小结
  119. 第6章 存储
  120. 6.1 默认配置
  121. 6.2 威胁模型
  122. 6.3 卷和数据存储
  123. 6.3.1 一切皆是字节流
  124. 6.3.2 何为文件系统?
  125. 6.3.3 容器中的卷和挂载
  126. 6.3.4 OverlayFS
  127. 6.3.5 tmpfs
  128. 6.3.6 挂载卷打破了容器隔离
  129. 6.3.7 基于/proc/self/exe的漏洞
  130. 6.4 静态的敏感信息
  131. 6.4.1 Secret挂载
  132. 6.4.2 攻击挂载的Secret
  133. 6.5 Kubernetes存储
  134. 6.5.1 容器存储接口
  135. 6.5.2 投射卷
  136. 6.5.3 攻击卷
  137. 6.5.4 主机目录挂载的风险
  138. 6.5.5 从数据存储中泄露的其他Secret
  139. 6.6 小结
  140. 第7章 硬性多租户
  141. 7.1 默认配置
  142. 7.2 威胁模型
  143. 7.3 命名空间资源
  144. 7.3.1 节点池
  145. 7.3.2 节点污点
  146. 7.4 软性多租户
  147. 7.5 硬性多租户
  148. 7.5.1 敌对租户
  149. 7.5.2 沙盒和策略
  150. 7.5.3 公有云多租户
  151. 7.6 控制平面
  152. 7.6.1 API server和etcd
  153. 7.6.2 调度器和控制器管理器
  154. 7.7 数据平面
  155. 7.8 集群隔离架构
  156. 7.9 集群支持服务和工具环境
  157. 7.10 安全监控和可见性
  158. 7.11 小结
  159. 第8章 策略
  160. 8.1 策略的类型
  161. 8.2 云服务提供商
  162. 8.2.1 网络流量
  163. 8.2.2 限制资源分配
  164. 8.2.3 资源配额
  165. 8.2.4 运行时策略
  166. 8.2.5 访问控制策略
  167. 8.3 威胁模型
  168. 8.4 普遍预期
  169. 8.4.1 碎玻璃场景
  170. 8.4.2 审计
  171. 8.5 认证和授权
  172. 8.5.1 人类用户
  173. 8.5.2 工作负载身份
  174. 8.6 基于角色的访问控制(RBAC)
  175. 8.6.1 RBAC回顾
  176. 8.6.2 一个简单的RBAC例子
  177. 8.6.3 创建RBAC
  178. 8.6.4 分析和可视化RBAC
  179. 8.6.5 RBAC相关的攻击
  180. 8.7 通用策略引擎
  181. 8.7.1 开放策略代理(OPA)
  182. 8.7.2 Kyverno
  183. 8.7.3 其他策略方案
  184. 8.8 小结
  185. 第9章 入侵检测
  186. 9.1 默认配置
  187. 9.2 威胁模型
  188. 9.3 传统的IDS
  189. 9.4 基于eBPF的IDS
  190. 9.4.1 Kubernetes和容器入侵检测
  191. 9.4.2 Falco
  192. 9.5 基于机器学习方法的IDS
  193. 9.6 容器取证
  194. 9.7 蜜罐技术
  195. 9.8 审计
  196. 9.9 检测规避
  197. 9.10 安全运营中心
  198. 9.11 小结
  199. 第10章 组织
  200. 10.1 最薄弱的连接点
  201. 10.2 云服务提供商
  202. 10.2.1 责任共担
  203. 10.2.2 账户卫生
  204. 10.2.3 对人员和资源进行分组
  205. 10.2.4 其他注意事项
  206. 10.3 本地环境
  207. 10.4 常见注意事项
  208. 10.4.1 威胁模型爆炸
  209. 10.4.2 SLO如何给你带来额外的压力
  210. 10.4.3 社会工程
  211. 10.4.4 隐私和监管问题
  212. 10.5 小结
  213. 附录A pod级攻击
  214. 附录B 资源
书名:Kubernetes安全指南
译者:刘吉安, 常峥, 成海霞 译
国内出版社:中国电力出版社
出版时间:2023年12月
页数:324
书号:978-7-5198-8373-7
原版书书名:Hacking Kubernetes
原版书出版商:O'Reilly Media
Andrew Martin
 
Andrew Martin是ControlPlane的CEO。
 
 
Michael Hausenblas
 
Michael Hausenblas是Go、Kubernetes和Red Hat的OpenShift的先驱开发者,他帮助AppOps构建和运行分布式服务。他有大规模数据处理和容器编排的背景,他在W3C和IETF的倡导和标准化方面有着丰富的经验。在Red Hat之前,Michael曾在Mesosphere、MapR以及爱尔兰和奥地利的两个研究机构工作。他贡献开源软件(主要是使用Go),博客,并经常活跃在Twitter上。

Michael是Amazon Web Service容器开发领域的倡导者。
 
 
本书封面上的动物是一只南非灰头麻鸭(学名:Tadorna cana)。它也被称为海角鸭(Cape shelduck),是鸭科的一员,常见于非洲南部的湿地、湖泊、河流和池塘,主要分布在纳米比亚。然而,在南方的冬天,它们会向东北迁徙到最喜欢的换羽地。
成年灰头麻鸭的身体是栗褐色的,翅膀上有明显的黑色、白色和绿色标记。雄性鸭子的头是灰色的,雌性则是白头黑冠,可以通过头部颜色来区分两者。但是,雌性鸭子看起来与埃及鹅非常相似,在飞行时几乎无法区分。这些迷人的鸟类也可以通过叫声来识别:雄性的叫声深沉如喇叭,雌性的叫声更响亮更尖锐。
有趣的是,南非灰头麻鸭营巢于其他动物(尤其是土豚)废弃的洞穴。当雏鸟孵出后,亲鸟将它们从巢穴带到水域,科学家称为“育苗池”。育苗池通常位于离巢1英里或2英里远的地方,池里有许多来自不同父母的幼鸟,由一个或多个成年鸟照顾。雏鸟无法飞行,对捕食者非常敏感,而这个托儿所可能是成年鸟保护它们的方式。
南非灰头麻鸭尽管拥有潜水觅食的本领,但它不经常这么捕食。它们的食物包括草、水生植物、小鱼、两栖动物、虫子、蠕虫和小型甲壳类动物。它们是昼夜觅食者。尽管它们受《非洲-欧亚迁徙水鸟保护协定》(AEWA)的保护,它们目前的保护状况仍不需要特别关注。O’Reilly封面上的许多动物都濒临灭绝,他们对世界都很重要。
购买选项
定价:98.00元
书号:978-7-5198-8373-7
出版社:中国电力出版社