攻击防护
这些规则针对容器内的常见渗透手法进行防护,例如缓解容器信息泄露、禁用敏感行为等。
缓解信息泄露
mitigate-sa-leak
缓解 ServiceAccount 泄露。
此规则禁止容器进程读取 ServiceAccount 相关的敏感信息,包括 token、namespace、ca 证书。避免 default SA 泄漏、错误配置的 SA 泄漏带来的安全风险,攻击者通过 RCE 漏洞获取 k8s 容器内的权限后,常倾向于通过泄漏其 SA 信息来进行进一步的渗透入侵活动。
在大部分用户场景中,并不需要使用 SA 与 API Server 进行通信。而默认情况下,k8s 会为不需要与 API Server 通信的 Pod 设置 default SA。
禁止 ServiceAccount 文件的读操作。
- AppArmor
- BPF
mitigate-disk-device-number-leak
缓解宿主机磁盘设备号泄露。
攻击者可能会通过读取容器进程的挂载信息来获取宿主机磁盘设备的设备号,从而用于后续的容器逃逸。
禁止容器进程读取 /proc/[PID]/mountinfo
, /proc/partitions
。
- AppArmor
- BPF
mitigate-overlayfs-leak
缓解容器 overlayfs 路径泄露。
攻击者可能会通过获取容器进程的挂载信息来获取容器进程 rootfs 在宿主机中的 overlayfs 路径,从而用于后续的容器逃逸。
禁止读取 /proc/mounts
、/proc/[PID]/mounts
、/proc/[PID]/mountinfo
文件。
此规则可能会影响容器内 mount 命令的部分功能。
- AppArmor
- BPF
mitigate-host-ip-leak
缓解宿主机 IP 泄露。
攻击者通过 RCE 漏洞获取 k8s 容器内的权限后,会尝试进一步的网络渗透攻击。因此,限制攻击者借此获取宿主机 IP、MAC 地址、网段等敏感信息,可增加攻击者进行网络渗透的难度和成本。
禁止容器进程读取 ARP 地址解析表(/proc/net/arp
、/proc/[PID]/net/arp
等),从而获取宿主机 IP 和 Mac 地址等敏感信息。
- AppArmor
- BPF
disallow-metadata-service
禁止访问云服务器的 metadata service。
攻击者获取容器内的代码执行权限后,会尝试访问云服务器的 Metadata Service 来进行信息泄露。在某些场景下,攻击者可能会获取敏感信息,从而进行权限提升、横向渗透。
此规则禁止容器进程访问云服务器的 Instance Metadata Service。包含两个本地链接保留地址:100.96.0.96 和 169.254.169.254。
禁止连接 Instance Metadata Services 的 IP 地址。
- BPF
禁止敏感操作
disable-write-etc
禁止写入 /etc 目录。
攻击者可能会通过修改 /etc 目录中的敏感文件来实施权限提升,例如修改 /etc/bash.bashrc 等实施水坑攻击、修改 /etc/passwd 和 /etc/shadow 添加用户进行持久化、修改 nginx.conf 或 /etc/ssh/ssh_config 进行持久化等。
禁止写入 /etc 目录。
- AppArmor
- BPF