mozillazg / cloud-native-security-with-ebpf

《eBPF 云原生安全:原理与实践》书中示例程序的完整源代码
MIT License
72 stars 7 forks source link

ebpf在低内核如何支持 #15

Open gpt8763 opened 1 week ago

gpt8763 commented 1 week ago

ebpf对内核版本有过多要求,例如:bpf_strncmp函数 就要求在5.17以上版本才能使用,centos7的系统内核还是3.x的版本。如何在低内核或者不升级内核的基础上使用ebpf技术? 书中第6章,提到tracee项目是通特殊容器--pid=host --groupns=host --privileged的方式运行,在这种情况下,容器内的ebpf拦截系统调用函数,是拦截宿主操作系统内核的函数,还是拦截的容器自己的内核的函数?

mozillazg commented 6 days ago

@gpt8763

ebpf对内核版本有过多要求,例如:bpf_strncmp函数 就要求在5.17以上版本才能使用,centos7的系统内核还是3.x的版本。如何在低内核或者不升级内核的基础上使用ebpf技术?

官方的实现确实是有内核版本要求。在低内核或者不升级内核的基础上使用ebpf技术的方案参考:

mozillazg commented 6 days ago

@gpt8763

书中第6章,提到tracee项目是通特殊容器--pid=host --groupns=host --privileged的方式运行,在这种情况下,容器内的ebpf拦截系统调用函数,是拦截宿主操作系统内核的函数,还是拦截的容器自己的内核的函数?

因为容器与主机共享的是同一个内核,所以上面的 ebpf 程序即可以拦截容器内程序发起的系统调用,也可以拦截主机程序发起的系统调用。