Skip to content

13. 云原生攻防

13.1 Kubernetes攻击(实战链路)

攻击链: 未授权API Server(8080/8443) → etcd泄露 → Service Account Token窃取 → Pod逃逸 → 节点控制 → 集群接管

容器逃逸演进(2025-2026真实CVE):

runc逃逸(CVE-2025-31133, 2025.11): - 原理: /dev/null被替换为symlink → runc在容器创建时挂载任意宿主机路径到容器 → 写入/proc/sys/kernel/core_pattern实现逃逸 - 利用条件: 能用runc/containerd创建容器 + 主机运行受影响版本(≤1.2.7) - 实战思路: 获取容器内执行权限 → 检查runc版本 → 替换/dev/null为symlink → 触发容器重建 → 写入core_pattern → 逃逸到宿主机root - 工具: container-escape-ebpf(含POC和Tetragon检测规则)

eBPF Verifier逃逸(CVE-2026-31413, 2026.04): - 原理: Linux BPF verifier的push_stack()调用中insn_idx + 1导致fork路径跳过一条ALU指令 → verifier认为dst=0但CPU实际计算0|K=K → 寄存器值发散 - 攻击链: OOB读写BPF map → vtable劫持 → 覆写modprobe_path → 触发未知二进制格式 → 内核以root执行攻击者脚本 - 利用条件: 需CAP_BPF+CAP_PERFMON+CAP_NET_ADMIN(特权容器具备) - 影响版本: Linux 6.12.75+到7.0-rc4 - 修复: 一字符修改(insn_idx + 1insn_idx) - 实战意义: 大多数生产K8s集群跑旧内核,需先uname -r确认版本

eBPF零日(CVE-2025-41111, 2026.03): - 原理: Linux内核eBPF verifier缺陷 → 认证攻击者从容器内绕过seccomp/AppArmor/Pod Security Policy - 攻击链: 注入恶意eBPF代码(sidecar/特权DaemonSet) → verifier缺陷提权 → 切换host user namespace → 禁用SELinux/AppArmor → 挂载宿主机文件系统 → 安装持久rootkit - 可链式攻击: 结合PackageGate(npm/pnpm/Bun供应链) → 从CI/CD管道注入 → 集群级别接管

CDK cgroup2_eBPF_bypass(2026.02新增): - 原理: Cgroup v2中设备访问由eBPF程序控制 → 遍历宿主机所有活跃eBPF程序ID → 强制从容器cgroup挂载点卸载 → 设备控制解除 → 创建设备节点读取宿主机磁盘 - 实战: ./cdk run cgroup2-ebpf-bypassdebugfs -w ./cdk_mknod_v2_result → 浏览宿主机文件(包括/root/.ssh)

eBPF Rootkit实战(LinkPro, 2025.10 Synacktiv发现): - 目标: AWS EKS集群 - 部署: 恶意Docker镜像kvlnt/vv → 包含两个eBPF模块 - 隐蔽机制: 模块1 hook sys_bpf → 匹配自身程序ID → 返回错误码 → 对bpftool等管理工具不可见 - 备用隐蔽: eBPF失败时修改/etc/ld.so.preload → 加载libld.so恶意库 - C2激活: 模块2"Knock"使用XDP(eXpress Data Path)监听"Magic TCP SYN"包(特定window size=54321) → 仅收到魔术包时开放反向shell → 端口扫描无法发现 - 意义: eBPF不只是本地持久化工具,是云原生横向移动工具

工具链: - CDK(含cgroup2-eBPF-bypass) / kubeletctl / peirates - 检测: Tetragon(eBPF运行时安全) / Falco

13.2 Serverless攻击

  • AWS Lambda: 冷启动注入(修改初始化Handler) / 环境变量泄露(云凭证) / 临时目录(/tmp)持久化 / Layer投毒(污染共享层)
  • Azure Functions: Managed Identity滥用(函数继承的托管身份→访问Key Vault/Storage) / 函数密钥泄露
  • 攻击链: 函数漏洞(RCE/SSRF) → 窃取云凭证(AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY) → AWS CLI横向到其他资源

13.3 云IAM特权 escalation

AWS: iam:PassRole+ec2:RunInstances → 创建具有高权限角色的EC2 / sts:AssumeRole链 / Lambda函数执行角色滥用 Azure: Entra ID(Microsoft Graph) → 条件访问策略修改 / PIM滥用 / Managed Identity→Key Vault GCP: Service Account密钥泄露 → 模拟SA → IAM策略修改

13.4 供应链攻击: CI/CD Pipeline

攻击思路(PackageGate 2026): - GitHub Actions投毒: 恶意Action/Workflow → 窃取GITHUB_TOKEN/自定义secrets → 仓库代码注入 - Dependency Confusion: 内部包名 → 公开npm/PyPI注册同名包 → 版本号高于内部 → 自动拉取恶意包 - Build Pipeline投毒: 污染编译环境 → 产出含后门的构建产物(SolarWinds式攻击) - 防御: 锁定依赖版本 / 私有Registry / SBOM分析 / 签名验证