乐趣区

关于安全:eBPFAntiRootkit

背景:

针对最近几年频繁呈现的通过 eBPF 进行容器逃逸、rootkit 等攻打,须要思考如何收敛服务器 ebpf 相干权限,避免被黑客利用。

动态计划:

宿主机层面:

  1. 非 root 用户不赋予 CAP_BPF 及 CAP_SYS_ADMIN
    注:3.15 – 5.7 内核不赋予 CAP_SYS_ADMIN 即可 5.8 及当前内核须要同时不存在 CAP_BPF 及 CAP_SYS_ADMIN 权限
  2. 非 root 用户禁止调用 ebpf 性能 /proc/sys/kernel/unprivileged_bpf_disabled 设置为 1

    1. 值为 0 示意容许非特权用户调用 bpf
    2. 值为 1 示意禁止非特权用户调用 bpf 且该值不可再批改,只能重启后批改
    3. 值为 2 示意禁止非特权用户调用 bpf,能够再次批改为 0 或 1
  3. 增加签名机制,只有通过签名的 ebpf 程序才能够加载 (参考 MTOS 热补丁验签机制)

    容器层面:

  4. seccomp 设置禁止 bpf 零碎调用
  5. 容器启动时禁止携带 privilege 参数
  6. 非 root 用户不赋予 CAP_BPF 及 CAP_SYS_ADMIN
  7. 非 root 用户禁止调用 ebpf 性能 /proc/sys/kernel/unprivileged_bpf_disabled 设置为 1

    动静计划:

  8. hook bpf / bpf_probe_write_user 等敏感函数,监控主机 bpf 事件
  9. 枚举曾经加载的 bpf 程序及 map(此种计划只能针对一般 bpf 程序,如果 bpf 程序实现了 rootkit 对本身进行暗藏,那此种计划就无奈失效)

本文由博客一文多发平台 OpenWrite 公布!

退出移动版