
Um programa eBPF leve para monitorar eventos de criação e modificação de arquivos no Linux. Esta ferramenta utiliza eBPF (Extended Berkeley Packet Filter) para rastrear operações de arquivos diretamente do kernel, proporcionando monitoramento de alto desempenho com sobrecarga mínima.
Um programa eBPF leve para monitorar eventos de criação e modificação de arquivos no Linux. Esta ferramenta utiliza eBPF (Extended Berkeley Packet Filter) para rastrear operações de arquivos diretamente do kernel, fornecendo monitoramento de alto desempenho com sobrecarga mínima.
touch, nano, etc.) diretamente do kernel./tmp) será rastreado.cd /tmp; touch file) rastreando inodes de diretório no kernel.Você pode baixar os binários mais recentes na página de Releases.
Para compilar o projeto por conta própria, você precisa ter o Go instalado.
# Clone o repositório
git clone https://github.com/harshavmb/fim-ebpf.git
cd fim-ebpf
# Compile o binário
go build -o fim-ebpf .
Crie um arquivo config.yaml no mesmo diretório do binário (ou modifique o existente).
monitored_files:
- /tmp/testfile
- /etc/passwd
- /etc/shadow
- /tmp ## monitorar o diretório inteiro
ignore_actions:
- read
- stat
ignore_users:
- root
Execute o binário com privilégios 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
O projeto utiliza cilium/ebpf para carregar e interagir com o programa eBPF. O código eBPF é executado no kernel e envia eventos para o programa Go no espaço do usuário através de um ring buffer.