
Ein leichtgewichtiges eBPF-Programm zur Überwachung von Dateierstellungs- und Dateiänderungsereignissen unter Linux. Dieses Tool nutzt eBPF (Extended Berkeley Packet Filter), um Dateioperationen direkt aus dem Kernel zu verfolgen, und bietet eine leistungsstarke Überwachung mit minimalem Overhead.
Ein leichtgewichtiges eBPF-Programm zur Überwachung von Dateierstellungs- und Dateiänderungsereignissen unter Linux. Dieses Tool nutzt eBPF (Extended Berkeley Packet Filter), um Dateioperationen direkt aus dem Kernel zu verfolgen. Dadurch bietet es eine hochleistungsfähige Überwachung mit minimalem Overhead.
touch, nano, etc.) direkt aus dem Kernel./tmp) zugegriffen wird, wird verfolgt.cd /tmp; touch file) korrekt, indem Verzeichnis-Inodes im Kernel verfolgt werden.Sie können die neuesten Binärdateien von der Releases-Seite herunterladen.
Um das Projekt selbst zu erstellen, muss Go installiert sein.
# Clone the repository
git clone https://github.com/harshavmb/fim-ebpf.git
cd fim-ebpf
# Build the binary
go build -o fim-ebpf .
Erstellen Sie eine config.yaml-Datei im selben Verzeichnis wie die Binärdatei (oder ändern Sie die vorhandene).
monitored_files:
- /tmp/testfile
- /etc/passwd
- /etc/shadow
- /tmp ## monitor the entire directory
ignore_actions:
- read
- stat
ignore_users:
- root
Führen Sie die Binärdatei mit Root-Rechten aus:
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
Das Projekt verwendet cilium/ebpf zum Laden und zur Interaktion mit dem eBPF-Programm. Der eBPF-Code läuft im Kernel und sendet Ereignisse über einen Ringpuffer an das Go-Programm im Userspace.