Tag: BCC-BPF
Objetivo: Si el id/nombre del proceso = xxx, entonces eliminar el paquete. Estoy un poco confundido. Hasta ahora sé que no se puede extraer información del proceso desde XDP, pero bpf trace te permite rastrearlo. Aquí está mi solución probable, usar bpf hash maps para compartir información entre dos funciones. . . . Read more
Cuando se habla de la ventaja de ebpf, siempre se menciona que es más seguro que lkm. He leído alguna documentación, ebpf asegura su seguridad verificando el código antes de cargarlo. Estas son las listas de verificación que se deben cumplir: – bucles – saltos fuera de rango – instrucciones . . . Read more
Así que tengo llvm, encabezados del kernel (5.14.1), clang y también libbpf junto con eso copié bpf_helpers.h en el directorio del programa ebpf desde la fuente de Linux. Este es un programa simple que me gusta cargar y ejecutar cuando se llama al sistema “execve” desde cualquier programa. #include <errno.h> . . . Read more
Mientras juego con libbpf-bootstrap, obtengo argumentos de función inesperados (y extraños) para las llamadas al sistema de kprobe. Por ejemplo, para la kprobe en la llamada al sistema “close” con la firma “int close(int fd)”, obtengo valores enormes de “fd” como “fd=15761240” en lugar del pequeño entero esperado “fd=4”. Reproduje . . . Read more
¿Cómo puedo obtener el ID de proceso actual en xdp? Mi programa: “` #include <linux bpf.h=""> #include <linux if_ether.h=""> #include <linux ip.h=""> #include <linux in.h=""> #include <linux udp.h=""> #include <linux sched.h=""> #include <linux if_packet.h=""> #include <linux if_vlan.h=""> #include <uapi linux/bpf.h=""> #include <net sock.h=""> #include <bcc proto.h=""> int udpfilter(struct xdp_md *ctx) . . . Read more