
Un programma eBPF leggero per monitorare gli eventi di creazione e modifica dei file su Linux. Questo strumento sfrutta eBPF (Extended Berkeley Packet Filter) per tracciare le operazioni sui file direttamente dal kernel, offrendo un monitoraggio ad alte prestazioni con un overhead minimo.
Un programma eBPF leggero per monitorare eventi di creazione e modifica di file su Linux. Questo strumento sfrutta eBPF (Extended Berkeley Packet Filter) per tracciare le operazioni sui file direttamente dal kernel, fornendo un monitoraggio ad alte prestazioni con un overhead minimo.
touch, nano, ecc.) direttamente dal kernel./tmp) verrà tracciato.cd /tmp; touch file) tracciando gli inode delle directory nel kernel.Puoi scaricare gli ultimi binari dalla pagina Releases.
Per compilare il progetto da solo, è necessario avere Go installato.
# Clona il repository
git clone https://github.com/harshavmb/fim-ebpf.git
cd fim-ebpf
# Compila il binario
go build -o fim-ebpf .
Crea un file config.yaml nella stessa directory del binario (o modifica quello esistente).
monitored_files:
- /tmp/testfile
- /etc/passwd
- /etc/shadow
- /tmp ## monitora l'intera directory
ignore_actions:
- read
- stat
ignore_users:
- root
Esegui il binario con privilegi di 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
Il progetto utilizza cilium/ebpf per caricare e interagire con il programma eBPF. Il codice eBPF viene eseguito nel kernel e invia gli eventi al programma Go nello spazio utente tramite un ring buffer.