1. 课程导论:Cilium与eBPF背景、控制面授权测试的重要性、课程目标与受众

1.1 eBPF 技术背景与内核可编程革命

eBPF(extended Berkeley Packet Filter)是一项革命性的 Linux 内核技术,允许用户在无需修改内核源码或加载内核模块的情况下,安全高效地在内核中运行沙箱化程序。eBPF 程序通过验证器确保安全性,并通过 JIT 编译器实现接近原生的执行性能。

维度 传统内核扩展方式 eBPF 方式
安全性 内核模块可导致系统崩溃或安全漏洞 验证器静态检查,拒绝危险程序
可编程性 需修改内核源码,周期长 动态加载,热插拔
性能 上下文切换开销大 JIT 编译,内核内执行
可观测性 有限,需硬编码 全栈可观测,动态插桩
关键洞察: eBPF 将内核从"固定功能"转变为"可编程平台",使得网络、安全、可观测性等领域的创新速度大幅提升。Cilium 正是基于 eBPF 构建的云原生网络与安全方案。
eBPF 内核可编程架构 用户空间(User Space) 系统调用接口(Syscall Interface) 内核空间(Kernel Space) eBPF 验证器 eBPF JIT 编译器 eBPF Maps 内核钩子点:网络 / 跟踪 / 安全 / 调度

1.2 Cilium:基于 eBPF 的云原生网络与安全层

Cilium 是一个开源项目,利用 eBPF 为 Kubernetes 提供高性能的网络、可观测性与安全能力。其核心优势在于:

  • 身份感知网络策略: 基于 Kubernetes 服务身份(而非 IP 地址)定义网络策略,适应动态容器环境。
  • 透明加密: 通过 WireGuard 或 IPsec 实现节点间通信加密,无需修改应用。
  • 可观测性: 通过 Hubble 提供 L3/L4/L7 流量可视化与监控。
  • 负载均衡: 基于 eBPF 的 XDP 加速,性能远超传统 iptables 模式。
功能模块 传统方案(iptables / kube-proxy) Cilium(eBPF)
网络策略 基于 IP 地址,规则膨胀 基于身份标识,策略精简
负载均衡 iptables DNAT,O(n) 规则遍历 eBPF 哈希表,O(1) 查找
可观测性 需额外部署 sidecar 或 agent 内核原生,零开销采集
安全策略粒度 仅 L3/L4 L3/L4/L7,支持 HTTP/gRPC/Kafka

1.3 控制面授权测试的重要性

在 Kubernetes 安全体系中,控制面(Control Plane) 是集群的大脑,包含 API Server、etcd、Controller Manager 和 Scheduler 等核心组件。控制面授权测试旨在验证:

  1. 最小权限原则: 确保每个组件、用户、服务账户仅拥有执行其职责所需的最小权限。
  2. 网络隔离有效性: 验证 Cilium 网络策略能否有效限制控制面组件之间的非授权访问。
  3. 横向移动防御: 测试攻击者突破一个节点后,能否通过控制面漏洞横向移动到其他敏感组件。
  4. 策略合规性: 确保网络策略符合企业安全基线(如 CIS Benchmark、NIST 框架)。
常见误区: 许多团队仅关注工作负载(Pod)之间的网络策略,却忽略了控制面组件(如 kube-apiserver、etcd、kube-controller-manager)之间的通信安全。控制面一旦被攻破,整个集群将沦陷。
Kubernetes 控制面授权测试范围 控制面(Control Plane) kube-apiserver 端口 6443 etcd 端口 2379/2380 kube-controller-manager 端口 10257 kube-scheduler 端口 10259 工作节点(Worker Nodes) Cilium 网络策略授权测试

1.4 课程目标与受众

课程目标

完成本课程后,学员将能够:

  • 理解 Cilium 网络策略的核心概念: 包括 Identity、Endpoint、NetworkPolicy、CiliumNetworkPolicy、CiliumClusterwideNetworkPolicy。
  • 掌握控制面授权测试方法论: 从威胁建模、策略设计到自动化测试验证的完整流程。
  • 编写生产级 Cilium 网络策略: 涵盖 L3/L4/L7 策略、基于 DNS 的策略、基于服务身份的策略。
  • 构建自动化测试流水线: 使用 Cilium Connectivity Test、k6、自定义 eBPF 探针进行持续验证。
  • 应对真实攻击场景: 模拟控制面横向移动、API Server 未授权访问、etcd 数据泄露等攻击路径。

目标受众

角色 前置知识要求 课程收益
Kubernetes 安全工程师 K8s RBAC、网络策略基础 掌握 Cilium 高级策略与自动化测试
云原生架构师 容器网络、微服务架构 设计零信任控制面网络架构
DevSecOps 工程师 CI/CD、安全扫描工具 构建策略即代码(Policy as Code)流水线
渗透测试工程师 网络攻击手法、K8s 攻击路径 验证控制面安全防护有效性
学习建议: 本课程包含大量动手实验。建议准备一个至少 3 节点的 Kubernetes 集群(v1.24+),并安装 Cilium 1.14+。课程代码仓库提供完整的 Vagrant/Terraform 部署脚本。