背景:
针对最近几年频繁出现的通过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对自身进行隐藏,那此种方案就无法生效)
标签:
ebpf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2020-02-24 【转】CTF-Born2root's-WriteUP