Linux: Zaawansowane wykorzystanie eBPF do monitorowania bezpieczeństwa i wydajności systemu
eBPF (extended Berkeley Packet Filter) to jedna z najpotężniejszych technologii współczesnego Linuksa. Pozwala uruchamiać bezpieczne, odizolowane programy w jądrze bez konieczności pisania modułów kernelowych. Dzięki temu administratorzy mogą monitorować wydajność, wykrywać ataki, analizować sieć i zbierać dane telemetryczne — bez ryzyka destabilizacji systemu.
W ostatnich latach eBPF stał się fundamentem nowoczesnych narzędzi bezpieczeństwa (Falco, Cilium, Tracee) i narzędzi do analizy wydajności (bcc-tools, bpftrace).
Daje to administratorom możliwość tworzenia niestandardowych narzędzi obserwacyjnych z precyzją i szybkością niedostępną wcześniej.
Czym jest eBPF?
eBPF to mechanizm, który umożliwia wykonywanie małych programów w specjalnie zabezpieczonej przestrzeni jądra. Programy te mogą być „przyczepiane” do różnych punktów systemu:
- kprobes / kretprobes – śledzenie funkcji jądra,
- uprobes – monitorowanie funkcji przestrzeni użytkownika,
- tracepoints – stabilne punkty śledzenia w jądrze,
- network hooks – analiza i filtrowanie pakietów,
- LSM hooks – rozszerzanie modułu bezpieczeństwa Linux Security Modules,
- profilery CPU – precyzyjne statystyki działania procesora.
eBPF jest wykonywane w sandboxie jądra — każdy program jest weryfikowany przed załadowaniem, co zapobiega zawieszeniu systemu.
Zastosowania eBPF w bezpieczeństwie systemu Linux
1. Wykrywanie podejrzanych operacji systemowych (syscall-level security)
Można monitorować:
- tworzenie podejrzanych procesów,
- wykonywanie binarek z tymczasowych katalogów (/tmp),
- zmiany uprawnień plików,
- anomalie w sieci (skanowanie portów, podejrzane połączenia),
- użycie funkcji jądra przez exploity.
Przykład programu eBPF wykrywającego execve:
tracepoint:syscalls:sys_enter_execve
{
printf("%s executed %s\n", comm, args->filename);
}
Takie narzędzia mogą wykrywać m.in. rootkity czy procesy malware.

2. eBPF w analizie ataków — live forensics
Nowoczesne narzędzia jak Tracee (by Aqua Security) wykorzystują eBPF do:
- detekcji podmiany binarek,
- wykrywania manipulacji LD_PRELOAD,
- wykrywania anomalii w przestrzeni procesów,
- monitorowania hooków syscalli,
- śledzenia prób eskalacji uprawnień.
eBPF pozwala wykryć ataki bez instalowania ciężkich agentów, dzięki minimalnemu narzutowi na system.
3. Rozszerzenia bezpieczeństwa LSM (Linux Security Modules) z eBPF
Od kilku wersji jądra możliwe jest pisanie polityk bezpieczeństwa za pomocą eBPF-LSM.
Daje to administratorom funkcje niemożliwe kiedyś do realizacji bez pisania modułów:
- blokowanie dostępu do katalogów,
- kontrola operacji sieciowych,
- granularny monitoring systemu plików,
- własne reguły bezpieczeństwa dla procesów.
Organizacje budują polityki bezpieczeństwa szyte na miarę bez rekompilacji jądra.
eBPF w monitorowaniu wydajności
1. Precyzyjny profilowanie CPU (perf + eBPF)
Administratorzy mogą:
- mierzyć latency funkcji jądra,
- sprawdzać wykorzystanie CPU przez konkretne operacje,
- wykrywać wąskie gardła I/O,
- analizować opóźnienia schedulerów.
Narzędzia: bpftrace, bcc-tools, perf.
2. Monitorowanie sieci z precyzją pakietową
eBPF może być używany do:
- filtrowania pakietów,
- wykrywania DDoS,
- analizowania połączeń TCP/UDP,
- wykrywania nietypowych przepływów ruchu.
Dzięki temu powstają nowoczesne firewalle i load balancery, np. Cilium, Katran, XDP-firewall.
3. Monitorowanie opóźnień I/O
eBPF może badać:
- opóźnienia dysków,
- problemy z blokadami (locking issues),
- zachowania systemu plików.
Jest to idealne np. dla serwerów baz danych, gdzie problemy I/O potrafią być trudne do namierzenia.
Przykłady narzędzi eBPF, które warto znać
| Narzędzie | Zastosowanie |
|---|---|
| bpftrace | prosty język skryptowy do tworzenia sond |
| bcc-tools | zaawansowane narzędzia do profilowania i analizy jądra |
| Falco | wykrywanie anomalii bezpieczeństwa |
| Tracee | analiza powłamaniowa w czasie rzeczywistym |
| Cilium | firewall next-gen i sieć dla Kubernetes |
| Katran | load balancer oparty na eBPF |
Jak zacząć korzystać z eBPF?
Wymagania:
- kernel ≥ 5.8, idealnie LTS 6.x,
- włączone BPF_JIT,
- zainstalowane bcc-tools lub bpftrace.
Instalacja bpftrace w Ubuntu:
sudo apt install bpftrace
Przykładowy skrypt badający opóźnienia dysku:
tracepoint:block:block_rq_issue {
@start[args->dev] = nsecs;
}
tracepoint:block:block_rq_complete {
$delta = nsecs - @start[args->dev];
printf("Disk latency: %d ns\n", $delta);
delete(@start[args->dev]);
}
eBPF a bezpieczeństwo — dlaczego to przyszłość?
- działa szybciej niż tradycyjne IDS,
- daje dostęp do informacji bez ingerencji w jądro,
- umożliwia granularny monitoring systemu,
- jest trudny do obejścia nawet dla rootkitów,
- pozwala tworzyć własne polityki bezpieczeństwa.
To fundamentalna technologia w nowoczesnym hardeningu Linuksa, którą warto wprowadzać w środowiskach produkcyjnych.
Podsumowanie
eBPF to rewolucja w zakresie obserwowalności, bezpieczeństwa i wydajności Linuksa.
Daje administratorom:
- wgląd w jądro bez ryzyka pisania modułów,
- wykrywanie anomalii w czasie rzeczywistym,
- precyzyjną analizę wydajności,
- narzędzia do zaawansowanego profilowania,
- i możliwość budowania własnych polityk bezpieczeństwa.
To technologia, którą powinien znać każdy admin, devops i specjalista ds. bezpieczeństwa.






