
Un programme eBPF léger pour surveiller les événements de création et de modification de fichiers sous Linux. Cet outil exploite eBPF (Extended Berkeley Packet Filter) pour tracer les opérations sur les fichiers directement depuis le noyau, offrant une surveillance haute performance avec une surcharge minimale.
Un programme eBPF léger pour surveiller les événements de création et de modification de fichiers sous Linux. Cet outil exploite eBPF (Extended Berkeley Packet Filter) pour tracer les opérations sur les fichiers directement depuis le noyau, offrant une surveillance haute performance avec une surcharge minimale.
touch, nano, etc.) directement depuis le noyau./tmp) sera suivi.cd /tmp; touch file) en suivant les inodes des répertoires dans le noyau.Vous pouvez télécharger les derniers binaires depuis la page Releases.
Pour compiler le projet vous-même, vous devez avoir Go installé.
# Clone the repository
git clone https://github.com/harshavmb/fim-ebpf.git
cd fim-ebpf
# Build the binary
go build -o fim-ebpf .
Créez un fichier config.yaml dans le même répertoire que le binaire (ou modifiez celui qui existe déjà).
monitored_files:
- /tmp/testfile
- /etc/passwd
- /etc/shadow
- /tmp ## monitor the entire directory
ignore_actions:
- read
- stat
ignore_users:
- root
Exécutez le binaire avec les privilèges 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
Le projet utilise cilium/ebpf pour charger le programme eBPF et interagir avec lui. Le code eBPF s'exécute dans le noyau et envoie les événements au programme Go de l'espace utilisateur via un tampon en anneau (ring buffer).