
Un programa eBPF ligero para monitorear eventos de creación y modificación de archivos en Linux. Esta herramienta aprovecha eBPF (Extended Berkeley Packet Filter) para rastrear operaciones de archivos directamente desde el kernel, proporcionando monitoreo de alto rendimiento con una sobrecarga mínima.
Un programa eBPF ligero para monitorear eventos de creación y modificación de archivos en Linux. Esta herramienta aprovecha eBPF (Extended Berkeley Packet Filter) para rastrear operaciones de archivos directamente desde el kernel, proporcionando un monitoreo de alto rendimiento con una sobrecarga mínima.
touch, nano, etc.) directamente desde el kernel./tmp) será rastreado.cd /tmp; touch file) mediante el seguimiento de inodos de directorio en el kernel.Puedes descargar los últimos binarios desde la página de Releases.
Para compilar el proyecto tú mismo, necesitas tener Go instalado.
# Clone the repository
git clone https://github.com/harshavmb/fim-ebpf.git
cd fim-ebpf
# Build the binary
go build -o fim-ebpf .
Crea un archivo config.yaml en el mismo directorio que el binario (o modifica el existente).
monitored_files:
- /tmp/testfile
- /etc/passwd
- /etc/shadow
- /tmp ## monitor the entire directory
ignore_actions:
- read
- stat
ignore_users:
- root
Ejecuta el binario con privilegios de root:
sudo ./fim-ebpf
2025/08/18 07:22:09 Monitoring started. Ctrl+C to exit.
2025/08/18 07:22:37 Event: PID=1745080 UID=6087179 (6087179 (harsha)) CMD=touch FILE=/tmp/testfile FLAGS=00000941 ## actual user
2025/08/18 07:22:54 Event: PID=1745108 UID=0 (0 (root) [Login: 6087179 (harsha)]) CMD=touch FILE=/tmp/testfile FLAGS=00000941 ## even after sudo
2026/01/03 18:55:56 Event: PID=3718310 UID=1002 (1002 (harsha)) CMD=touch FILE=/tmp/testfile ACTION=OPEN FLAGS=00000941 ## monitoring files in a dir
El proyecto utiliza cilium/ebpf para cargar e interactuar con el programa eBPF. El código eBPF se ejecuta en el kernel y envía eventos al programa Go en espacio de usuario a través de un búfer circular.