背景:

针对最近几年频繁呈现的通过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 公布!