eBPF-AntiRootkit
背景:
針對最近幾年頻繁出現的通過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 發布!

浙公網安備 33010602011771號