
Легковесная eBPF-программа для мониторинга событий создания и изменения файлов в Linux. Этот инструмент использует eBPF (Extended Berkeley Packet Filter) для трассировки файловых операций непосредственно из ядра, обеспечивая высокопроизводительный мониторинг с минимальными накладными расходами.
Лёгкая eBPF-программа для отслеживания событий создания и изменения файлов в Linux. Этот инструмент использует eBPF (Extended Berkeley Packet Filter) для трассировки файловых операций непосредственно в ядре, обеспечивая высокопроизводительный мониторинг с минимальными накладными расходами.
touch, nano и т.д.) непосредственно в ядре./tmp), будет зафиксирован.cd /tmp; touch file) за счёт отслеживания inode каталогов в ядре.Вы можете скачать последние бинарные файлы на странице Releases.
Чтобы собрать проект самостоятельно, вам понадобится установленный Go.
# Клонируйте репозиторий
git clone https://github.com/harshavmb/fim-ebpf.git
cd fim-ebpf
# Соберите бинарный файл
go build -o fim-ebpf .
Создайте файл config.yaml в той же директории, где находится бинарный файл (или измените существующий).
monitored_files:
- /tmp/testfile
- /etc/passwd
- /etc/shadow
- /tmp ## monitor the entire directory
ignore_actions:
- read
- stat
ignore_users:
- root
Запустите бинарный файл с правами 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
В проекте используется cilium/ebpf для загрузки и взаимодействия с eBPF-программой. Код eBPF выполняется в ядре и отправляет события в программу на Go в пользовательском пространстве через кольцевой буфер.