作者 |
刘文懋 江国龙 浦明 阮博男 叶晓虎 |
丛书名 |
网络空间安全技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9787111691839 |
简要 |
简介 |
内容简介书籍计算机书籍 本书介绍了云原生的容器基础设施、K8S编排系统和常见云原生应用体系;在介绍安全体系前先深入分析了前述架构各个层面的安全风险,并给出攻击实践,后续计划开放靶场环境,有很好的可操作性和说服力;在介绍安全体系时,首先从高层分析新型基础设施防护的思路切换,然后分为两个维度介绍相关的安全机制,清晰地拆解了复杂的安全技术栈,让读者很容易理解DevOps安全和云原生安全两者如何融合。 |
目录 |
序 前言 第一部分 云原生安全概述 第1章 云原生安全 2 1.1 云原生:云计算下半场 2 1.2 什么是云原生安全 4 1.2.1 面向云原生环境的安全 4 1.2.2 具有云原生特征的安全 5 1.2.3 原生安全:融合的云原生安全 5 1.3 面向云原生环境的安全体系 7 1.3.1 容器安全 7 1.3.2 编排系统安全 8 1.3.3 云原生应用安全 9 1.4 云原生安全的关键问题 9 1.4.1 如何防护短生命周期的容器 9 1.4.2 如何降低安全运营成本 10 1.4.3 DevSecOps 11 1.4.4 如何实现安全的云原生化 12 1.5 云原生安全现状 13 1.5.1 云原生新范式:Docker + Kubernetes 13 1.5.2 镜像安全问题仍然很突出 14 1.5.3 安全配置规范执行和密钥凭证管理不理想 15 1.5.4 运行时安全关注度上升,但依然很难 17 1.5.5 合规性要求依然迫切,但业界苦于无规可循 18 1.6 本章小结 19 第2章 云原生技术 20 2.1 容器技术 20 2.1.1 容器与虚拟化 20 2.1.2 容器镜像 20 2.1.3 容器存储 21 2.1.4 容器网络 22 2.1.5 容器运行时 22 2.2 容器编排 23 2.3 微服务 23 2.4 服务网格 24 2.5 Serverless 25 2.6 DevOps 26 2.7 本章小结 27 第二部分 云原生技术的风险分析 第3章 容器基础设施的风险分析 30 3.1 容器基础设施面临的风险 30 3.1.1 容器镜像存在的风险 31 3.1.2 活动容器存在的风险 32 3.1.3 容器网络存在的风险 33 3.1.4 容器管理程序接口存在的风险 33 3.1.5 宿主机操作系统存在的风险 34 3.1.6 无法根治的软件漏洞 34 3.2 针对容器化开发测试过程的攻击案例 34 3.2.1 背景知识 35 3.2.2 CVE-2018-15664:符号链接替换漏洞 35 3.2.3 CVE-2019-14271:加载不受信任的动态链接库 39 3.3 针对容器软件供应链的攻击案例 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 本章小结 79 第4章 容器编排平台的风险分析 80 4.1 容器编排平台面临的风险 80 4.1.1 容器基础设施存在的风险 81 4.1.2 Kubernetes组件接口存在的风险 82 4.1.3 集群网络存在的风险 84 4.1.4 访问控制机制存在的风险 84 4.1.5 无法根治的软件漏洞 85 4.2 针对Kubernetes组件不安全配置的攻击案例 85 4.2.1 Kubernetes API Server未授权访问 85 4.2.2 Kubernetes Dashboard未授权访问 86 4.2.3 Kubelet未授权访问 87 4.3 针对Kubernetes权限提升的攻击案例 88 4.3.1 背景知识 88 4.3.2 漏洞分析 90 4.3.3 漏洞复现 94 4.3.4 漏洞修复 101 4.4 针对Kubernetes的拒绝服务攻击案例 102 4.4.1 CVE-2019-11253:YAML炸弹 102 4.4.2 CVE-2019-9512/9514:HTTP/2协议实现存在问题 105 4.5 针对Kubernetes网络的中间人攻击案例 110 4.5.1 背景知识 112 4.5.2 原理描述 115 4.5.3 场景复现 117 4.5.4 防御策略 123 4.6 本章小结 124 第5章 云原生应用的风险分析 125 5.1 云原生应用风险概述 125 5.2 传统应用的风险分析 125 5.3 云原生应用的新风险分析 126 5.3.1 数据泄露的风险 126 5.3.2 未授权访问的风险 128 5.3.3 拒绝服务的风险 129 5.4 云原生应用业务的新风险分析 130 5.4.1 未授权访问的风险 130 5.4.2 API滥用的风险 131 5.5 Serverless的风险分析 131 5.5.1 Serverless特征带来的风险 131 5.5.2 Serverless应用风险 132 5.5.3 Serverless平台风险 132 5.5.4 Serverless被滥用的风险 154 5.6 本章小结 155 第6章 典型云原生安全事件 156 6.1 特斯拉Kubernetes挖矿事件 156 6.1.1 事件分析 156 6.1.2 总结与思考 158 6.2 微软监测到大规模Kubernetes挖矿事件 160 6.2.1 事件分析 160 6.2.2 总结与思考 162 6.3 Graboid蠕虫挖矿传播事件 164 6.3.1 事件分析 164 6.3.2 总结与思考 166 6.4 本章小结 167 第三部分 云原生安全防护思路和体系 第7章 云原生防护思路转变 170 7.1 变化:容器生命周期 170 7.2 安全左移 171 7.3 聚焦不变 171 7.4 关注业务 173 7.5 本章小结 174 第8章 云原生安全体系 175 8.1 体系框架 175 8.2 安全组件简介 176 第9章 左移的安全机制 178 9.1 开发安全 178 9.2 软件供应链安全 178 9.3 容器镜像安全 179 9.3.1 容器镜像安全现状 179 9.3.2 容器镜像安全防护 180 9.4 本章小结 182 第四部分 云原生可观测性 第10章 可观测性概述 184 10.1 为什么需要实现云原生可观测性 184 10.2 需要观测什么 185 10.3 实现手段 186 10.4 本章小结 187 第11章 日志审计 188 11.1 日志审计的需求与挑战 188 11.1.1 需求分析 188 11.1.2 面临的挑战 189 11.2 Docker日志审计 189 11.3 Kubernetes日志审计 192 11.3.1 应用程序日志 192 11.3.2 系统组件日志 193 11.3.3 日志工具 194 11.4 本章小结 195 第12章 监控 196 12.1 云原生架构的监控挑战 196 12.2 监控指标 197 12.3 监控工具 198 12.3.1 cAdvisor和Heapster 199 12.3.2 Prometheus 199 12.4 本章小结 200 第13章 追踪 201 13.1 动态追踪 201 13.2 eBPF 203 13.2.1 eBPF原理与架构 204 13.2.2 eBPF验证器 206 13.2.3 eBPF程序类型 207 13.2.4 eBPF工具 208 13.2.5 小结 210 13.3 基于BPFTrace实现动态追踪 211 13.3.1 探针类型 212 13.3.2 如何使用BPFTrace进行追踪 214 13.4 微服务追踪 219 13.4.1 微服务追踪概述 219 13.4.2 分布式追踪 220 13.4.3 微服务追踪实现示例 220 13.5 本章小结 222 第五部分 容器基础设施安全 第14章 Linux内核安全机制 224 14.1 隔离与资源管理技术 224 14.1.1 内核命名空间 224 14.1.2 控制组 224 14.2 内核安全机制 225 14.2.1 Capabilities 225 14.2.2 Seccomp 225 14.2.3 AppArmor 226 14.2.4 SELinux 226 14.3 本章小结 227 第15章 容器安全加固 228 15.1 概述 228 15.2 容器安全配置 228 15.3 本章小结 229 第16章 容器环境的行为异常检测 230 16.1 基于规则的已知威胁检测 230 16.1.1 检测系统设计 231 16.1.2 基于规则的检测实战:CVE-2019-5736 232 16.1.3 小结 234 16.2 基于行为模型的未知威胁检测 234 16.2.1 检测系统架构 235 16.2.2 学习与检测流程 237 16.2.3 基线设计 238 16.2.4 小结 240 16.3 本章小结 240 第六部分 容器编排平台安全 第17章 Kubernetes安全加固 242 17.1 API Server认证 242 17.1.1 静态令牌文件 242 17.1.2 X.509 客户端证书 243 17.1.3 服务账号令牌 243 17.1.4 OpenID Connect令牌 245 17.1.5 身份认证代理 246 17.1.6 Webhook令牌身份认证 247 17.1.7 小结 248 17.2 API Server授权 249 17.3 准入控制器 252 17.4 Secret对象 256 17.5 网络策略 257 17.6 本章小结 259 第18章 云原生网络安全 260 18.1 云原生网络架构 260 18.1.1 基于端口映射的容器主机网络 260 18.1.2 基于CNI的Kubernetes集群网络 260 18.1.3 服务网格 261 18.2 基于零信任的云原生网络微隔离 261 18.2.1 什么是微隔离 262 18.2.2 云原生为什么需要微隔离 262 18.2.3 云原生网络的微隔离实现技术 263 18.2.4 云原生网络入侵检测 265 18.3 基于Cilium的网络安全方案示例 266 18.3.1 Cilium架构 266 18.3.2 Cilium组网模式 268 18.3.3 Cilium在Overlay组网下的通信示例 268 18.3.4 API感知的安全性 272 18.4 本章小结 277 第七部分 云原生应用安全 第19章 面向云原生应用的零信任安全 280 19.1 什么是信任 280 19.2 真的有零信任吗 282 19.3 零信任的技术路线 282 19.4 云化基础设施与零信任 284 19.5 云原生环境零信任架构 286 19.6 本章小结 287 第20章 传统应用安全 289 20.1 应用程序代码漏洞缓解 289 20.1.1 安全编码 290 20.1.2 使用代码检测工具 290 20.2 应用程序依赖库漏洞防护 290 20.2.1 使用受信任的源 290 20.2.2 使用软件组成分析工具 290 20.3 应用程序访问控制 291 20.4 应用程序数据安全防护 291 20.4.1 安全编码 291 20.4.2 使用密钥管理系统 292 20.4.3 使用安全协议 292 20.5 本章小结 292 第21章 API安全 293 21.1 传统API防护 293 21.2 API脆弱性检测 293 21.3 云原生API网关 294 21.4 本章小结 295 第22章 微服务架构下的应用安全 296 22.1 认证服务 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 数据安全 310 22.4 其他防护机制 310 22.4.1 Istio和API网关协同的全面防护 311 22.4.2 Istio与WAF结合的深度防护 312 22.5 本章小结 314 第23章 云原生应用业务和Serverless安全 315 23.1 云原生应用业务安全 315 23.2 Serverless应用安全防护 316 23.3 Serverless平台安全防护 317 23.3.1 使用云厂商提供的存储最佳实践 318 23.3.2 使用云厂商的监控资源 318 23.3.3 使用云厂商的账单告警机制 318 23.4 Serverless被滥用的防护措施 318 23.5 其他防护机制 319 23.5.1 Serverless资产业务梳理 319 23.5.2 定期清理非必要的Serverless实例 319 23.5.3 限制函数策略 319 23.6 本章小结 319 第24章 云原生应用场景安全 320 24.1 5G安全 320 24.2 边缘计算安全 323 24.3 工业互联网安全 327 24.4 本章小结 327 后记 云原生安全实践与未来展望 328 参考文献 331 |