bytedance/vArmor
GitHub: bytedance/vArmor
vArmor 是一个云原生容器加固系统,利用 AppArmor/BPF/Seccomp 和网络代理技术对 Kubernetes 工作负载实施多层次的强制访问控制。
Stars: 486 | Forks: 65
 [](https://goreportcard.com/report/github.com/bytedance/vArmor) [](https://opensource.org/licenses/Apache-2.0) [](https://opensource.org/license/gpl-2-0) [](https://github.com/bytedance/vArmor/releases) English | [简体中文](README.zh_CN.md) | [日本語](README.ja.md) vArmor 是一个云原生容器强化系统。它利用 Linux 的 [AppArmor LSM](https://en.wikipedia.org/wiki/AppArmor)、[BPF LSM](https://docs.kernel.org/bpf/prog_lsm.html)、[Seccomp](https://en.wikipedia.org/wiki/Seccomp) 和**网络代理**(基于 [Envoy](https://www.envoyproxy.io/) 的 sidecar)技术来实现执行器。它可用于加强容器隔离、减少内核攻击面、在 L4/L7 层强制执行网络出站访问控制——包括用于解密 HTTPS 检查的 TLS MITM、HTTP header 注入和 anti-Domain-Fronting 防护——并增加容器逃逸或横向移动攻击的难度和成本。您可以在以下场景中利用 vArmor 为 Kubernetes 集群内的容器提供沙箱保护。 * 在多租户环境中,由于成本和技术条件等因素,无法采用硬件虚拟化的容器解决方案。 * 您希望增强关键业务容器的安全性,使攻击者更难以进行提权、逃逸或横向移动。 * 当存在高风险漏洞,但由于补丁修复困难或过程漫长而无法立即 remediation 时,可以使用 vArmor 来缓解风险(取决于漏洞类型或利用向量),从而阻止利用或增加利用难度。 * 您正在部署 AI Agent 或基于 LLM 的应用程序,需要精确控制其出站网络访问——防止数据泄露、未经授权的 API 调用或由 prompt 注入攻击引起的滥用。 *注意:* *
- 安全防御的核心在于平衡风险与收益,通过选择不同类型的安全边界和防御技术,将不可控的风险转化为可控的成本。* *
- runc + vArmor 不提供等同于硬件虚拟化容器(如 Kata Containers 和其他轻量级虚拟机)的隔离级别。如果您需要高强度的隔离解决方案,请考虑使用硬件虚拟化容器进行计算隔离,并利用 CNI 的 NetworkPolicy 进行网络隔离。* *
- vArmor 的 NetworkProxy 执行器进一步补充了 NetworkPolicy,它为 HTTP 和 HTTPS(通过 TLS MITM)提供 L7 访问控制、基于 TLS SNI 的域名过滤、针对特定域名的 HTTP header 注入、anti-Domain-Fronting 防护以及全面的审计日志记录——这些功能是 NetworkPolicy 无法提供的。* **vArmor 特性:** * **云原生**。vArmor 遵循 Kubernetes Operator 设计模式,允许用户通过操作 [CRD API](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) 来强化特定工作负载。这种方式能够从紧密契合业务需求的角度,对容器化的微服务进行沙箱化处理。 * **多执行器**。vArmor 将 AppArmor、BPF、Seccomp 和 NetworkProxy 抽象为执行器,支持单独或组合使用它们。这能够对容器文件访问、进程执行、网络出站(L3–L7)、syscalls 等实施访问控制。 * **网络代理执行器**。vArmor 引入了一个基于 sidecar-proxy 的执行器(由 Envoy 驱动),可在 L4 (TCP)、L7 (HTTP/HTTPS) 和 TLS SNI 层透明地拦截和控制容器网络出站流量。它支持 TLS MITM 终止、针对特定域名的 HTTP header 注入(例如,API key 注入)、anti-Domain-Fronting 防护、allow-list 和 deny-list 模式、审计日志记录,以及无需重启 Pod 的动态策略更新。 * **AI Agent 防护**。vArmor 通过将内核级别的强制访问控制(AppArmor/BPF/Seccomp)与应用协议级别的网络访问控制(NetworkProxy)相结合,为 AI Agent 工作负载提供深度防御,有效降低由 prompt 注入导致的工具滥用、key 泄露和未经授权的数据外发等风险。 * **默认允许 (Allow-by-Default)**。vArmor 目前侧重于支持这种模式,即仅拦截明确声明的行为,这能有效将性能影响降至最低并增强可用性。此外,它支持对违规行为进行审计,并且这些违规行为也可以被允许而不是被拦截。 * **内置规则**。vArmor 具有一系列开箱即用的内置规则。它们专为 Allow-by-Default 安全模型设计,无需具备创建安全 profile 的专业知识。 * **行为建模**。vArmor 具有一系列开箱即用的内置规则。它们专为 Allow-by-Default 安全模型设计,无需具备创建安全 profile 的专业知识。 * **默认拒绝 (Deny-by-Default)**。vArmor 能够使用 allowlist profile 来强化工作负载,并提供一种更加用户友好的方式来开发和管理 profile。 vArmor 由字节跳动端点安全部门的 **Elkeid Team** 创建。该项目目前仍在积极开发中。 ## 架构
 ## 404Starlink
vArmor 已加入 [404Starlink](https://github.com/knownsec/404StarLink)标签:AppArmor, Docker镜像, EVTX分析, Seccomp, Streamlit, Web截图, 子域名突变, 容器加固, 容器安全, 日志审计, 访问控制