Weryfikacja integralności systemu Linux: Jak sprawdzić, czy Twój serwer nie został zhakowany?
🛡️ Weryfikacja integralności systemu Linux: Jak sprawdzić, czy Twój serwer nie został zhakowany?
🧭 Wprowadzenie
W dobie narastających zagrożeń w internecie, administratorzy systemów Linux coraz częściej zmagają się z pytaniem: czy mój serwer działa tak, jak powinien, i czy nie został naruszony przez osobę trzecią?
Atakujący nie zawsze pozostawiają oczywiste ślady. W wielu przypadkach infekcje, włamania i rootkity są skutecznie ukrywane, a złośliwy kod działa niewidzialnie przez długie miesiące. Kluczowym aspektem skutecznej obrony i wczesnego wykrycia naruszeń jest weryfikacja integralności systemu – czyli technika służąca do wykrywania wszelkich nieautoryzowanych zmian w plikach systemowych, konfiguracjach, binarkach i rejestrach logów.
W tym artykule przedstawimy kompletny, ekspercki przewodnik po metodach weryfikacji integralności systemu Linux – od podstaw po zaawansowaną analizę, z naciskiem na narzędzia, procedury oraz integrację z monitoringiem i środowiskami produkcyjnymi.

🔍 Czym jest integralność systemu?
Integralność systemu oznacza, że wszystkie jego komponenty – pliki, biblioteki, binaria, konfiguracje – pozostają w stanie niezmienionym od momentu ich ostatniej, autoryzowanej modyfikacji. Naruszenie integralności może być skutkiem:
- Włamania z zewnątrz (np. przez SSH, exploity RCE)
- Malware (rootkit, backdoor)
- Błędu wewnętrznego (np. nieautoryzowany dostęp operatora)
- Eskalacji uprawnień
🧩 Najczęstsze oznaki naruszenia integralności systemu
- Nietypowe procesy działające jako root
- Modyfikacja binarek systemowych (
/bin/ls
,/usr/sbin/sshd
) - Nieautoryzowane konta użytkowników (
/etc/passwd
,/etc/shadow
) - Zmiany w konfiguracji firewalla, usług lub skryptów startowych
- Dziwne połączenia sieciowe (
netstat
,ss
) - Logi systemowe wyczyszczone lub uszkodzone
🔧 Metody weryfikacji integralności systemu Linux
🔹 1. AIDE (Advanced Intrusion Detection Environment)
Jeden z najczęściej używanych i najdokładniejszych systemów IDS opartych na analizie plików.
🔧 Instalacja i konfiguracja:
sudo apt install aide
sudo aideinit
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
🔍 Regularna kontrola:
sudo aide --check
🔄 Aktualizacja bazy referencyjnej:
sudo aide --update
AIDE śledzi:
- Sumy kontrolne (SHA, MD5)
- Uprawnienia, właścicieli, daty modyfikacji
- Liczby twardych linków, atrybuty inode
- Zmiany ACL i atrybutów SELinux
🔹 2. Tripwire
Profesjonalne rozwiązanie klasy enterprise do audytu integralności.
🛠️ Przykład użycia:
sudo tripwire --init
sudo tripwire --check
Wymaga początkowej konfiguracji i podpisu kluczem GPG, co zapewnia silną weryfikację niezmienności bazy danych.
🧪 Wykrywanie zmian binarek i bibliotek systemowych
🔎 Porównanie sum kontrolnych
md5sum /bin/ls
md5sum /usr/bin/top
Porównaj z wcześniej zapisanymi wartościami lub z bazą referencyjną.
🔎 Weryfikacja podpisów pakietów
debsums -s # Debian/Ubuntu
rpm -Va # RHEL/CentOS
Polecenie rpm -Va
wykryje każdą nieautoryzowaną zmianę w plikach dostarczonych przez pakiety RPM.
🔍 Weryfikacja przestrzeni użytkownika i jądra
🕵️ 1. Sprawdzenie obecności rootkitów
chkrootkit
rkhunter
sudo chkrootkit
sudo rkhunter --update && sudo rkhunter --check
📊 2. Analiza podejrzanych procesów i otwartych portów
ps aux | grep -vE 'root|systemd|sshd'
netstat -tulnp
ss -tunap
Uważaj na dziwne procesy słuchające na nietypowych portach (31337
, 8081
, 9000
).
🛠️ Inspekcja katalogów i logów systemowych
🔧 1. Sprawdzanie crontab i plików autostartu
crontab -l
ls -l /etc/cron.*
cat ~/.bashrc
🧱 2. Skanowanie katalogów tymczasowych
Złośliwe skrypty często są ukrywane w:
/tmp
/var/tmp
/dev/shm
Użyj find
do wykrywania dziwnych plików:
find /tmp -type f -exec file {} \;
📡 Monitorowanie integralności w czasie rzeczywistym
🔄 1. Auditd – audyt systemowy
Konfiguracja reguł w /etc/audit/rules.d/
:
-w /etc/passwd -p wa -k passwd_watch
-w /usr/bin/ssh -p x -k ssh_exec_watch
🧠 2. Wazuh/OSSEC – SIEM i HIDS
Integracja z Elastic Stack, logami systemowymi i centralną konsolą zarządzania. Świetne rozwiązanie dla wielu hostów.
🔐 Dobre praktyki integralności systemu
✅ 1. Tworzenie baz referencyjnych w „czystym” stanie
- Zainstaluj system, zaaplikuj poprawki
- Przeprowadź hardening (SELinux, AppArmor, audit)
- Dopiero potem uruchom
aideinit
lubtripwire --init
✅ 2. Przechowuj bazy danych i hashe poza systemem
- Backup do offline storage (USB, nośnik odłączany)
- Weryfikacja przy użyciu środowiska live
✅ 3. Harmonogram weryfikacji
- Automatyczne skrypty w
cron
,systemd.timer
- E-mailowe raporty z
aide
,auditd
,rkhunter
🚨 W kontekście zagrożeń w internecie
Weryfikacja integralności to kluczowy element strategii bezpieczeństwa – zwłaszcza w erze ransomware, rootkitów, exploita 0-day i zautomatyzowanych ataków botnetów. Nawet jeśli Twój system nie jest bezpośrednio zagrożony, to ciągła kontrola zmian pozwala na wykrycie kompromitacji na wczesnym etapie i ograniczenie jej skutków.
📚 Dalsza lektura
Zachęcamy do przeczytania materiałów o innych zagrożeniach w internecie oraz do wdrażania zasad minimalnego zaufania i zerowej tolerancji dla nieautoryzowanych zmian w systemie.