1、轻量无侵入vArmor 赋能云原生容器多场景安全防护字节跳动2025/11/15韦 伟,李 昌 昊韦 伟,李 昌 昊CONTENT目录01 为什么要做 vArmor02 核心概念与原理03 关键特性与应用场景04 总结与未来展望01 为什么要做 vArmor runc 容器隔离性不足,相关漏洞频发,但仍被广泛使用 Kata,gVisor 等安全容器提供了解决方案,但并非普遍适用 难以防御攻击者从容器内发起的横向移动攻击云原生环境的容器安全挑战技术技术优势优势挑战挑战Least PrivilegeLeast Privilege容易配置,可有效增加权限提升的难度与成本;禁用特权容器、移除不需要的
2、capability、以非 root 用户运行、开启 NoNewPrivs、开启只读文件系统.一些机制需要应用进行适配;并非适用于所有类型的工作负载(例如系统和基础设施相关);Rootless Rootless ContainerContainer可以缓解很多漏洞;read/write other users files,modify the kernel,ARP/DNS spoofing.出于兼容性考虑,Kubernetes 默认不启用;允许非 root 用户创建用户命名空间会增加内核的攻击面;SeccompSeccompKubernetes v1.3 起开始支持,并在 v1.19 GA;可
3、以过滤不必要的 syscall,阻止部分攻击行为;可以基于 syscall 的特定参数进行拦截,实现细粒度访问控制;出于兼容性考虑,Kubernetes 默认不启用,默认策略相对宽泛;一旦生效不可修改;AppArmorAppArmorKubernetes v1.4 起开始支持,并在 v1.30 GA;可以用于实现细粒度的访问控制;默认策略比较宽泛;自定义策略需要 AppArmor 专家知识;SELinuxSELinuxKubernetes v1.4 起开始支持;可以用于实现细粒度的访问控制;在某些宿主目录挂载、持久卷挂载场景下存在兼容性问题;自定义策略需要 SELinux 专家知识;技术技术优
4、势优势挑战挑战Least PrivilegeLeast Privilege容易配置,可有效增加权限提升的难度与成本;禁用特权容器、移除不需要的 capability、以非 root 用户运行、开启 NoNewPrivs、开启只读文件系统.一些机制需要应用进行适配;并非适用于所有类型的工作负载(例如系统和基础设施相关);Rootless Rootless ContainerContainer可以缓解很多漏洞;read/write other users files,modify the kernel,ARP/DNS spoofing.出于兼容性考虑,Kubernetes 默认不启用;允许非 ro
5、ot 用户创建用户命名空间会增加内核的攻击面;SeccompSeccompKubernetes v1.3 起开始支持,并在 v1.19 GA;可以过滤不必要的 syscall,阻止部分攻击行为;可以基于 syscall 的特定参数进行拦截,实现细粒度访问控制;出于兼容性考虑,Kubernetes 默认不启用,默认策略相对宽泛;一旦生效不可修改;AppArmorAppArmorKubernetes v1.4 起开始支持,并在 v1.30 GA;可以用于实现细粒度的访问控制;默认策略比较宽泛;自定义策略需要 AppArmor 专家知识;SELinuxSELinuxKubernetes v1.4 起
6、开始支持;可以用于实现细粒度的访问控制;在某些宿主目录挂载、持久卷挂载场景下存在兼容性问题;自定义策略需要 SELinux 专家知识;默认策略过于宽泛,无法防御某些漏洞和横向移动攻击容器安全加固现状 默认策略过于宽泛,无法防御某些漏洞和横向移动攻击 基础设施相关漏洞修复周期较长 管理和应用安全策略过程中存在诸多挑战 难以为大规模、快速变化的应用构建“默认拒绝”的安全策略 一些环境不支持 AppArmor LSM(例如 EKS、ACS)容器安全加固现状 默认策略过于宽泛,无法防御某些漏洞和横向移动攻击 基础设施相关漏洞修复周期较长 管理和应用安全策略过程中存在诸多挑战 难以为大规模、快速变化的应