背景:
针对最近几年频繁呈现的通过eBPF进行容器逃逸、rootkit等攻打,须要思考如何收敛服务器ebpf相干权限,避免被黑客利用。
动态计划:
宿主机层面:
- 非root用户不赋予CAP_BPF及CAP_SYS_ADMIN
注:3.15 - 5.7 内核不赋予CAP_SYS_ADMIN即可 5.8及当前内核须要同时不存在CAP_BPF及CAP_SYS_ADMIN权限 非root用户禁止调用ebpf性能 /proc/sys/kernel/unprivileged_bpf_disabled 设置为1
- 值为0示意容许非特权用户调用bpf
- 值为1示意禁止非特权用户调用bpf且该值不可再批改,只能重启后批改
- 值为2示意禁止非特权用户调用bpf,能够再次批改为0或1
增加签名机制,只有通过签名的ebpf程序才能够加载(参考MTOS热补丁验签机制)
容器层面:
- seccomp设置禁止bpf零碎调用
- 容器启动时禁止携带privilege参数
- 非root用户不赋予CAP_BPF及CAP_SYS_ADMIN
非root用户禁止调用ebpf性能 /proc/sys/kernel/unprivileged_bpf_disabled 设置为1
动静计划:
- hook bpf / bpf_probe_write_user 等敏感函数,监控主机bpf事件
- 枚举曾经加载的bpf程序及map(此种计划只能针对一般bpf程序,如果bpf程序实现了rootkit对本身进行暗藏,那此种计划就无奈失效)
本文由博客一文多发平台 OpenWrite 公布!