auditd – audyt bezpieczeństwa Linux od strony jądra
Linux

auditd – audyt bezpieczeństwa Linux od strony jądra

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/messages
  • journalctl

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

Debian/Ubuntu:

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ń.

 

auditd – audyt bezpieczeństwa Linux od strony jądra
auditd – audyt bezpieczeństwa Linux od strony jądra

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.

Polecane wpisy
Czy Linux może być zhakowany przez pendrive USB?
Czy Linux może być zhakowany przez pendrive USB?

Czy Linux może być zhakowany przez pendrive USB? Wielu użytkowników uważa, że Linux jest odporny na typowe ataki malware i Czytaj dalej

Hackowanie Debiana
Hackowanie Debiana

Hackowanie Debiana, popularnej dystrybucji systemu operacyjnego Linux, jest zadaniem, które wymaga dużej wiedzy na temat systemów operacyjnych oraz umiejętności programistycznych. Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.