auditd – audyt bezpieczeństwa Linux od strony jądra
W dobrze zabezpieczonym systemie Linux samo blokowanie ataków nie wystarczy. Administrator musi również wiedzieć:
- kto wykonał daną operację,
- kiedy to zrobił,
- z jakiego procesu pochodziło działanie,
- jakie zasoby zostały zmienione.
Tutaj pojawia się auditd (Linux Audit Daemon) – system audytu, który pozwala rejestrować zdarzenia bezpieczeństwa bezpośrednio na poziomie jądra Linux.
Jest to jedno z podstawowych narzędzi wykorzystywanych w:
- administracji serwerami,
- systemach klasy enterprise,
- środowiskach zgodnych z wymaganiami bezpieczeństwa,
- analizie incydentów.
Czym jest auditd?
auditd jest demonem odpowiedzialnym za odbieranie i zapisywanie zdarzeń generowanych przez Linux Audit Framework.
Mechanizm działa znacznie niżej niż klasyczne logowanie aplikacji.
Schemat:
Proces użytkownika
↓
Syscall
↓
Kernel Linux
↓
Audit Framework
↓
auditd
↓
/var/log/audit/audit.log
Dzięki temu administrator może zobaczyć działania, które normalnie nie byłyby widoczne w standardowych logach.
Dlaczego zwykłe logi nie wystarczą?
Linux posiada wiele źródeł logów:
/var/log/syslog/var/log/messagesjournalctl
Jednak pokazują one głównie:
- komunikaty usług,
- błędy aplikacji,
- informacje systemowe.
Przykład:
Apache zapisze:
Failed login attempt
Ale auditd może pokazać:
Użytkownik:
marek
Proces:
ssh
PID:
24531
Adres:
192.168.1.50
Wykonana operacja:
otwarcie pliku /etc/passwd
Architektura Linux Audit
System składa się z kilku elementów:
Kernel Audit Subsystem
Znajduje się w jądrze Linux.
Odpowiada za przechwytywanie zdarzeń.
auditd
Daemon działający w przestrzeni użytkownika.
Odpowiada za:
- odbiór zdarzeń,
- zapis logów,
- rotację plików.
auditctl
Narzędzie do zarządzania regułami.
Przykład:
auditctl -l
pokazuje aktywne reguły.
ausearch
Służy do wyszukiwania zdarzeń.
Przykład:
ausearch -m USER_LOGIN
aureport
Tworzy raporty.
Przykład:
aureport --login
Instalacja auditd
apt install auditd audispd-plugins
Red Hat / Rocky / AlmaLinux:
dnf install audit
Sprawdzenie działania:
systemctl status auditd
Gdzie znajdują się logi?
Domyślnie:
/var/log/audit/audit.log
Przykładowy wpis:
type=EXECVE
msg=audit(1720000000.123:456)
exe="/usr/bin/passwd"
uid=1000
auid=1000
Najważniejsze typy zdarzeń
Auditd zapisuje różne klasy zdarzeń.

USER_LOGIN
Logowanie użytkowników.
Przykład:
type=USER_LOGIN
Można sprawdzić:
- kto się zalogował,
- kiedy,
- skąd.
USER_CMD
Wykonane polecenia.
Przydatne przy analizie:
- działań administratorów,
- nadużyć uprawnień.
EXECVE
Uruchomienie programu.
Przykład:
Administrator wykonuje:
systemctl restart nginx
Audit może zarejestrować:
exe="/usr/bin/systemctl"
SYSCALL
Najważniejszy typ.
Pokazuje wywołanie systemowe wykonane przez proces.
Przykład:
openat()
unlink()
chmod()
Monitorowanie zmian plików
Jednym z najczęstszych zastosowań auditd jest kontrola ważnych plików systemowych.
Przykład:
Monitorowanie:
/etc/passwd
Dodanie reguły:
auditctl -w /etc/passwd -p wa -k passwd_changes
Znaczenie:
-w
watch pliku
-p wa
write + attribute
-k
nazwa reguły
Teraz każda zmiana:
echo test >> /etc/passwd
zostanie zarejestrowana.
Wyszukiwanie:
ausearch -k passwd_changes
Monitorowanie plików konfiguracyjnych
W środowisku produkcyjnym często monitoruje się:
/etc/passwd
/etc/shadow
/etc/sudoers
/etc/ssh/sshd_config
/etc/nftables.conf
Przykład:
auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config
Wykrywanie użycia sudo
Administratorzy często muszą wiedzieć:
- kto użył sudo,
- jakie polecenie wykonał.
Sprawdzenie:
ausearch -m USER_CMD
Raport:
aureport -x
Auditd a bezpieczeństwo SSH
Można analizować:
- udane logowania,
- nieudane próby,
- użycie kluczy,
- działania po zalogowaniu.
Raport:
aureport --auth
Reguły trwałe
Reguły dodane:
auditctl
są tymczasowe.
Po restarcie znikną.
Stała konfiguracja:
/etc/audit/rules.d/
Przykład:
/etc/audit/rules.d/security.rules
Przeładowanie:
augenrules --load
Przykładowy hardening auditd
Podstawowy zestaw monitoringu:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k sudo
-w /etc/ssh/sshd_config -p wa -k ssh
auditd i ransomware
Auditd nie zatrzyma ransomware.
Ale może pomóc odpowiedzieć:
- jaki użytkownik uruchomił malware,
- jaki proces rozpoczął szyfrowanie,
- które pliki zostały zmienione.
Przykład analizy:
09:15
user=john
uruchomił:
/tmp/update.sh
09:16
proces zmienił:
10000 plików
auditd vs SIEM
Sam auditd zapisuje lokalne zdarzenia.
W większej firmie logi są przesyłane do SIEM:
Serwer Linux
↓
auditd
↓
rsyslog / agent
↓
SIEM
↓
SOC
Przykłady SIEM:
- Splunk,
- Elastic Security,
- IBM QRadar,
- Microsoft Sentinel.
auditd a SELinux
Te mechanizmy często współpracują.
SELinux:
Czy operacja jest dozwolona?
auditd:
Kto próbował ją wykonać i kiedy?
Przykład:
Apache próbuje odczytać plik:
SELinux:
DENIED
auditd:
proces=httpd
plik=/home/user/private.txt
czas=12:30
auditd a compliance
W wielu organizacjach wymagane jest rejestrowanie:
- logowań,
- zmian konfiguracji,
- działań administratorów.
Auditd jest często elementem zgodności z:
- CIS Benchmarks,
- ISO 27001,
- PCI DSS,
- wymaganiami audytowymi.
Najczęstsze błędy administratorów
1. Logowanie wszystkiego
Zbyt dużo reguł powoduje:
- ogromną ilość logów,
- spadek wydajności,
- trudniejszą analizę.
Lepiej monitorować rzeczy krytyczne.
2. Brak synchronizacji czasu
Bez poprawnego czasu analiza incydentu jest trudna.
Warto używać:
- chrony,
- NTP.
3. Brak ochrony logów
Jeżeli atakujący uzyska dostęp root, może próbować usunąć ślady.
Dlatego:
- wysyłanie logów do zewnętrznego systemu,
- centralny log management,
jest bardzo ważne.
Przydatne polecenia auditd
Lista reguł:
auditctl -l
Wyszukiwanie po kluczu:
ausearch -k nazwa_reguly
Logowania:
aureport --login
Wykonane programy:
aureport -x
Podsumowanie:
systemctl status auditd
Podsumowanie
auditd to system kamer bezpieczeństwa dla Linux.
Nie blokuje ataków tak jak firewall, SELinux czy AppArmor, ale pozwala dokładnie odtworzyć historię zdarzeń.
W nowoczesnej administracji Linux powinien działać razem z:
- nftables – kontrola ruchu sieciowego,
- SELinux/AppArmor – ograniczanie uprawnień procesów,
- Seccomp – filtrowanie syscalli,
- Namespaces – izolacja środowiska,
- cgroups v2 – kontrola zasobów.
Dopiero połączenie tych mechanizmów tworzy pełną warstwową ochronę serwera Linux.






