跳到主要内容
版本:main

漏洞缓解

这些规则是针对特定漏洞的规则,用于阻断漏洞利用向量,在漏洞修复前进行防御。您可以参考以下格式定义策略:

policy:
enforcer: BPF
mode: EnhanceProtect
enhanceProtect:
vulMitigationRules:
- ingress-nightmare-mitigation

cgroups-lxcfs-escape-mitigation

缓解 cgroups & lxcfs 逃逸。

说明

若用户将宿主机的 cgroupfs 挂载进容器,或使用 lxcfs 为容器提供资源视图。在这两种场景下可能存在容器逃逸风险,攻击者可以在容器内改写 cgroupfs 实施容器逃逸。

此规则也可用于防御 CVE-2022-0492 漏洞利用。

原理与影响

AppArmor Enforcer 阻止在容器内修改:

  • /**/release_agent
  • /**/devices/device.allow
  • /**/devices/**/device.allow
  • /**/devices/cgroup.procs
  • /**/devices/**/cgroup.procs
  • /**/devices/task
  • /**/devices/**/task

BPF Enforcer 阻止在容器内修改:

  • /**/release_agent
  • /**/devices.allow
  • /**/cgroup.procs
  • /**/devices/tasks
支持的强制访问控制器
  • AppArmor
  • BPF

runc-override-mitigation

缓解通过改写 runc 实现的容器逃逸。

说明

此规则用于缓解通过改写宿主机 runc 从而实现容器逃逸的漏洞,例如 CVE-2019-5736

原理与影响

禁止改写 /**/runc 文件。

支持的强制访问控制器
  • AppArmor
  • BPF

dirty-pipe-mitigation

缓解利用 Dirty Pipe 漏洞实现的容器逃逸。

说明

此规则用于防御利用 CVE-2022-0847 (Dirty Pipe) 漏洞进行容器逃逸的攻击,您可以使用此规则在升级内核前对容器进行加固。

注:尽管禁用 splice 系统调用可能会对一些软件包产生问题,但对大多数合法应用来说都不会产生影响,因为这个系统调用的使用相对罕见。

原理与影响

禁止调用 splice 系统调用。

支持的强制访问控制器
  • Seccomp

ingress-nightmare-mitigation

缓解 IngressNightmare 漏洞利用。

说明

此规则用于缓解 Ingress-nginx 的 IngressNightmare (CVE-2025-1974) 漏洞。

Ingress-nginx 是 Kubernetes 的 Ingress 控制器,它使用 nginx 作为反向代理和负载均衡服务器。拥有 Pod 网络访问权限的攻击者,可利用此漏洞在 ingress-nginx controller 容器内执行任意代码,进而获取集群的所有 Secrets 并接管整个集群。您可以在升级 Ingress-nginx 到安全版本前,使用此规则进行缓解。

可参考下面的链接了解更多。

原理与影响

此规则禁止容器进程访问 ingress-nginx 和 kube-system 命名空间中的 ingress-nginx-controller-admission 服务及其端点。

如果您将 ingress-nginx 部署在其他命名空间,那么可以根据 vArmor 的 Service 接口自定义规则进行防御。

支持的强制访问控制器
  • BPF

copy-fail-mitigation

缓解利用 Copy Fail 漏洞实现的容器逃逸。

说明

此规则用于缓解 Linux 内核的 CVE-2026-31431 (Copy Fail) 漏洞。

该漏洞源于内核 authencesn 加密模板中的逻辑缺陷,允许非特权本地用户通过 AF_ALG 套接字结合 splice() 系统调用,对任意可读文件的 page cache 执行确定性的 4 字节可控写入。这可以实现本地权限提升,并可跨越容器边界(因为 page cache 在宿主机范围内共享)。您可以在升级或修补内核之前使用此规则进行缓解。

可参考下面的链接了解更多。

原理与影响
  • AppArmor Enforcer 通过 network alg 规则阻止容器内创建 AF_ALG 网络族套接字。
  • BPF Enforcer 通过拒绝地址族为 AF_ALG(38)的套接字创建来阻断漏洞利用。

此规则阻止容器内进程创建 AF_ALG 套接字。由于 AF_ALG 套接字用于从用户空间访问内核加密子系统,阻断其创建即可消除漏洞利用向量。绝大多数容器化应用不需要通过 AF_ALG 直接访问内核加密子系统,因此此规则通常不会对正常工作负载产生影响。

支持的强制访问控制器
  • AppArmor
  • BPF

注意:尽管 Seccomp 在技术上可以阻止 AF_ALG 套接字创建(通过对 socket() 系统调用进行参数匹配过滤),但此规则未将其作为内置 enforcer。原因如下:

  1. Seccomp 配置在容器创建时应用,运行期间无法动态更新或放宽,而 AppArmor 和 BPF enforcer 支持运行时策略更新。
  2. 将 Seccomp 作为内置 enforcer 可能导致用户在需要动态更新规则的场景下产生错误配置,使得安全策略无法在不重启工作负载的情况下进行调整。

如果您仍然希望使用 Seccomp,可以通过 syscallRawRules 手动配置:

policy:
enforcer: Seccomp
mode: EnhanceProtect
enhanceProtect:
syscallRawRules:
- names:
- socket
action: SCMP_ACT_ERRNO
args:
- index: 0
value: 38
op: SCMP_CMP_EQ