在云原生架构中,容器与宿主机共享同一内核,容器逃逸、权限提升、横向移动等传统攻击始终是安全防御的重点;而在 AI 智能体时代,密钥泄露、不可信代码外联、提示词注入诱导的工具滥用等新型数据外泄风险同样不容忽视。vArmor 是字节跳动终端安全团队开源的云原生容器加固系统,它借助内核级的 AppArmor、BPF、Seccomp 与应用级的 Envoy 网络代理等技术,将访问控制从文件访问、进程执行、系统调用,一路延伸到 L3–L7 网络出站管控。
vArmor 的核心思路是:将上述底层异构、彼此割裂的安全能力封装成统一、易用的 Kubernetes 原生接口,让用户仅通过声明式 CRD 即可对指定 Workload 实施沙箱加固,无需直面底层复杂的策略编写与内核配置。
为支撑这一接口,vArmor 遵循 Kubernetes Operator 设计模式,由控制面的 Manager 响应策略并生成安全配置,再由以 DaemonSet 运行在各节点的 Agent 负责落地。它将上述能力统一抽象为强制访问控制器 (Enforcer)——AppArmor、BPF、Seccomp 与 NetworkProxy,支持单独或组合使用,用户在同一条声明式策略中即可按需搭配,实现从系统调用到应用协议的分层管控。整体架构如下图所示:
vArmor 已从最初的轻量级系统调用拦截器,演进为将系统级硬化 (LSM/Seccomp)与应用层硬化 (Envoy)统一纳入同一套 Kubernetes 声明式 API 的异构安全网。其中,NetworkProxy 无需改动任何业务代码,即可实施 L7 出站管控、防数据外泄与全量审计,为饱受密钥泄露、不可信代码外联、提示词注入之苦的大模型平台提供了目前开源界最直接的防护方案。vArmor 已在字节内部和开源社区广泛落地使用,典型可用的场景如下:
说明
官方网站:https://www.varmor.org/
说明
GitHub仓库:https://github.com/bytedance/vArmor
云安全中心是一款围绕工作负载设计的综合性安全解决方案,可纳管主机、容器等多种计算资产,在混合云与多云环境中提供一致的安全监控与防护能力。容器加固是其中面向 Kubernetes 场景的能力,以 vArmor 为底层引擎,把从系统调用到应用协议的分层管控能力,转化为云上开箱即用的产品功能。
我们对容器加固功能的产品化目标是:进一步降低 vArmor 的使用门槛,覆盖 K8s 环境中各类负载的加固场景。围绕这一目标,能力建设沿平台化与智能化两条路径展开,二者相互支撑:平台化让 vArmor 的能力在云上可视、可管、可运营,智能化则进一步承接理解、决策乃至运行态的排障与调优负担,让容器加固更普惠。
与火山引擎 VKE 的关系
vArmor 已作为集群安全组件上架到火山引擎容器服务 (VKE) 的组件中心,VKE 用户可在创建或管理集群时以组件形式便捷安装 vArmor。安装完成后,组件的实际使用与运营由云安全中心容器加固功能承接:云安全中心通过对接 VKE OpenAPI 对租户集群中的 vArmor 组件进行版本与配置管理,并在此基础上提供策略配置等安全运营能力;违规审计日志则通过云安全中心客户端从节点侧采集,不依赖 VKE 通道。VKE 组件中心在用户安装 vArmor 时也会引导其前往云安全中心开通容器加固服务、配置加固策略。
由于访问集群需依赖 VKE OpenAPI,组件纳管、策略配置,以及建立在二者之上的新增集群自动加固、自动诊断与策略自动优化,当前仅面向 VKE 集群提供;对于非 VKE 集群,用户可自行安装 vArmor 并通过 CRD 直接使用其安全功能;若集群所在主机已接入云安全中心,vArmor 产生的违规审计日志仍可被采集并在控制台查看。
在平台形态下,原本散落在各集群中的 vArmor 运行状态、安全策略与违规记录被统一汇聚到云安全中心控制台,用户在一处即可掌握多集群的容器加固全貌。用户通过标准化的列表视图即可完成日常的状态观测、问题排查与策略变更,无需逐集群登录。当前平台由三个模块构成:
平台化让 vArmor 的运行状态与策略变得集中可视、便于纳管,但它并未降低 vArmor 自身的认知与决策门槛 —— 用户看得见策略,却不一定知道 "该配哪条规则、用哪种模式"。在实际推广落地中,我们发现用户主要面临如下易用性挑战:
为此,我们在平台之上引入了专用智能体,用大模型承接这部分认知与决策成本。目前已上线六个智能体,覆盖理解、决策、操作与运行态调优全链路: