gVisor
gVisor 是什么?
gVisorgVisor 是 Google 开源的应用层内核,在用户态拦截容器的系统调用,从而显著缩小暴露给不可信工作负载的宿主内核攻击面。
gVisor 的 Sentry 进程使用 Go 在用户态实现了大量 Linux 系统调用表面,只通过 seccomp-bpf 允许极少的宿主系统调用,并由 Gofer 处理文件系统 I/O。容器与 Sentry 交互而非直接调用宿主内核,因此工作负载中的内核漏洞必须先逃出用户态沙箱。gVisor 以 Docker 或 CRI 运行时(runsc)形式运行,支撑 Google Cloud Run、App Engine standard 与 GKE Sandbox。代价是系统调用兼容性不完整、单次调用性能开销较高,因此最适用于短生命周期、多租户或不可信负载。
● 示例
- 01
Google Cloud Run 默认在 gVisor 沙箱中运行客户函数。
- 02
GKE Sandbox 通过 runtimeClassName: gvisor 标注不可信 Pod。
● 常见问题
gVisor 是什么?
gVisor 是 Google 开源的应用层内核,在用户态拦截容器的系统调用,从而显著缩小暴露给不可信工作负载的宿主内核攻击面。 它属于网络安全的 云安全 分类。
gVisor 是什么意思?
gVisor 是 Google 开源的应用层内核,在用户态拦截容器的系统调用,从而显著缩小暴露给不可信工作负载的宿主内核攻击面。
gVisor 是如何工作的?
gVisor 的 Sentry 进程使用 Go 在用户态实现了大量 Linux 系统调用表面,只通过 seccomp-bpf 允许极少的宿主系统调用,并由 Gofer 处理文件系统 I/O。容器与 Sentry 交互而非直接调用宿主内核,因此工作负载中的内核漏洞必须先逃出用户态沙箱。gVisor 以 Docker 或 CRI 运行时(runsc)形式运行,支撑 Google Cloud Run、App Engine standard 与 GKE Sandbox。代价是系统调用兼容性不完整、单次调用性能开销较高,因此最适用于短生命周期、多租户或不可信负载。
如何防御 gVisor?
针对 gVisor 的防御通常结合技术控制与运营实践,详见上方完整定义。
gVisor 还有哪些其他名称?
常见的别称包括: runsc, gVisor Sentry。
● 相关术语
- cloud-security№ 582
Kata Containers
Kata Containers 是一个开源运行时,通过为每个容器或 Kubernetes Pod 启动一个轻量虚拟机来提供硬件级隔离。
- cloud-security№ 838
Pod 安全标准(PSS)
Pod 安全标准(PSS)是 Kubernetes 定义的 Privileged、Baseline、Restricted 三种安全档位,用以规范 Pod 配置并替代已弃用的 PodSecurityPolicy。
- cloud-security№ 597
Kubernetes 准入控制器
准入控制器是 Kubernetes API server 的插件,在请求被持久化前进行拦截,按照策略对对象进行校验、变更或拒绝。
- cloud-security№ 757
OPA Gatekeeper
OPA Gatekeeper 是 CNCF 的策略控制器,基于 Open Policy Agent 与 Rego 语言,在 Kubernetes 上执行准入与审计策略。
- cloud-security№ 602
Kyverno
Kyverno 是 CNCF 的 Kubernetes 策略引擎,使用原生 YAML(而非新 DSL)编写策略,实现资源的校验、变更与生成。
- cloud-security№ 599
Kubernetes NetworkPolicy
Kubernetes NetworkPolicy 是按命名空间作用的资源,通过 IP、端口与协议控制哪些 Pod 可以与哪些 Pod 或外部端点通信。