AIDE — file integrity monitoring dla VPS
Opublikowano: 9 kwietnia 2026 · Kategoria: Bezpieczeństwo
Kiedy atakujący dostanie się do serwera, jego pierwszym celem jest wgranie rootkita albo
backdoora i zatarcie śladów. Klasyczne antywirusy nie wykryją podmiany
/bin/ls albo modyfikacji /etc/sudoers — bo nie mają sygnatury konkretnego
exploita. AIDE (Advanced Intrusion Detection Environment) rozwiązuje ten problem inaczej: tworzy
kryptograficzny snapshot wszystkich ważnych plików systemowych, a potem codziennie porównuje stan
aktualny z bazą. Każda modyfikacja, dodanie lub usunięcie trafia do raportu. To klasyczny File
Integrity Monitoring i wymóg PCI-DSS, HIPAA oraz CIS Benchmarks.
Instalacja i pierwsza inicjalizacja bazy
# Ubuntu / Debian sudo apt update && sudo apt install aide aide-common -y # RHEL / Rocky / AlmaLinux / CentOS sudo dnf install aide -y # Konfiguracja: /etc/aide/aide.conf (Debian) # /etc/aide.conf (RHEL) # Inicjalizacja bazy (moze potrwac 5-30 minut, zalezy od ilosci plikow) sudo aideinit # Debian/Ubuntu # lub: sudo aide --init # RHEL # Po zakonczeniu: zastap stara baze nowa sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db # Na RHEL: sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz # Test pierwszego skanu (powinien wykazac 0 zmian) sudo aide --check
Konfiguracja — co monitorować i jak
Plik aide.conf definiuje grupy atrybutów (rules) oraz listę ścieżek z przypisanymi
regułami. Reguła to zestaw rzeczy do sprawdzenia: skrót kryptograficzny, mtime, ctime, uprawnienia,
właściciel, inode, rozmiar. Dobry zestaw startowy różnicuje katalogi, które powinny być całkowicie
statyczne (np. /bin), od tych, które się zmieniają (np. /var/log),
gdzie sprawdzamy tylko zmiany uprawnień.
# /etc/aide/aide.conf - fragment # Definicje grup atrybutow FULL = p+i+n+u+g+s+b+m+c+md5+sha256 DIR = p+i+n+u+g LOG = p+n+u+g+S NORMAL = FULL STATIC = p+i+u+g+acl+selinux+xattrs+md5+sha256 # Pelne monitorowanie - zero tolerancji /boot FULL /bin STATIC /sbin STATIC /lib STATIC /lib64 STATIC /opt STATIC /usr/bin STATIC /usr/sbin STATIC /usr/lib STATIC # Krytyczne pliki konfiguracyjne /etc/passwd FULL /etc/shadow FULL /etc/sudoers FULL /etc/ssh FULL /etc/cron.d FULL /etc/crontab FULL # Katalogi z danymi - monitoruj tylko struktury (nie kazdy log) /var/log LOG # Wykluczenia (pliki szybko zmienne) !/var/log/wtmp !/var/log/btmp !/var/log/lastlog !/var/lib/aide !/var/cache !/proc !/sys # Walidacja skladni sudo aide --config-check
Automatyczny skan przez cron i alerty
# /etc/cron.d/aide # Codzienny skan o 3:00, raport mailem do admina 0 3 * * * root /usr/sbin/aide --check \ | mail -s "[AIDE] raport integralnosci $(hostname)" [email protected] # Wariant z alertem tylko przy zmianach: 0 3 * * * root /usr/sbin/aide --check > /var/log/aide/daily.log 2>&1; \ if grep -q "found differences" /var/log/aide/daily.log; then \ mail -s "[ALERT] AIDE wykryl zmiany na $(hostname)" [email protected] < /var/log/aide/daily.log; \ fi # Po legalnej aktualizacji systemu (apt upgrade) odswiez baze: sudo aide --update sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db # Recznie porownaj aktualny stan z baza sudo aide --check --verbose # Wygeneruj raport w formacie HTML sudo aide --check --report=file:/var/log/aide/report-$(date +%F).txt
Porównanie z innymi FIM — Tripwire, Wazuh, Samhain
AIDE nie jest jedynym narzędziem FIM na Linuksie. Poniższa tabela porównuje cztery najpopularniejsze rozwiązania pod kątem zastosowań produkcyjnych.
| Narzędzie | Model | Centralne zarządzanie | Zastosowanie |
|---|---|---|---|
| AIDE | Lokalna baza skrótów | Brak (per-host) | Pojedyncze VPS, małe farmy, compliance |
| Tripwire Open Source | Lokalna baza, podpisane policy | Brak | Klasyka FIM, wysoki overhead |
| Tripwire Enterprise | Centralny serwer, agent na hoście | Tak (komercyjne) | Duże korporacje, PCI-DSS compliance |
| Wazuh (OSSEC fork) | Host IDS + FIM + SIEM | Tak (darmowe, agent) | Flota serwerów, SOC, korelacja |
| Samhain | FIM + client/server | Tak (yule server) | Wysoko uregulowane środowiska, GPG-signed reports |
| auditd (watch) | Real-time syscall watch | Przez forward do SIEM | Uzupełnienie AIDE — reakcja w czasie rzeczywistym |
Dobre praktyki — jak NIE używać AIDE
- Nie trzymaj bazy na tym samym systemie — atakujący z rootem nadpisze ją i zatrze
ślady. Bazę trzymaj na read-only medium (USB, NFS ro) lub na zdalnym serwerze. Minimum: chroń
atrybutem immutable —
sudo chattr +i /var/lib/aide/aide.db. - Nie ignoruj alarmów o paczkach systemowych — jeśli apt upgrade zmienił pliki, odśwież bazę świadomie, nie automatycznie. Automatyczne wyłączenie alarmów po apt = AIDE wyłączony.
- Nie uruchamiaj samego AIDE i liczyć że wystarczy — FIM jest jedną warstwą. Bez Fail2Ban, SELinux/AppArmor, UFW, kluczy SSH i regularnych updateów rootkit i tak wejdzie — AIDE tylko Ci o nim powie ex-post.
- Testuj raporty — co miesiąc sprawdzaj, że AIDE naprawdę wysyła maile. FIM który nikt nie czyta jest bezużyteczny.
- Nie włączaj AIDE bez logrotate — bazy i raporty potrafią rosnąć szybko. Skonfiguruj
rotację w
/etc/logrotate.d/aide.