Dzienniki journald¶
Systemd-journald to komponent systemd zbierający zdarzenia dotyczące usług systemowych i sysloga do plików .journal w /var/log/journal, dostępnych przez journalctl.
Pliki zawierają sumy kontrolne, które można zweryfikować poleceniem journalctl --verify, co pozwala wykryć modyfikację treści. Wpisy przechowują czas w UTC i obejmują poprzednie uruchomienia systemu, co sprawia, że informacje przechowywane w plikach .journal są dobrym punktem odniesienia przy budowie osi czasu incydentu.
NIE URUCHAMIAJ WYŁĄCZONEGO URZĄDZENIA
Jeżeli urządzenie było połączone z zaatakowaną domeną lub siecią, mogło zostać skompromitowane. W takim przypadku nie jest zalecane uruchomienie go przed ustaleniem zakresu incydentu. Należy uznać je za skompromitowane i poddać analizie. Uruchomienie takiego urządzenia może spowodować zaszyfrowanie danych przez szkodliwe oprogramowanie, nawet jeśli urządzenie jest odłączone od sieci wewnętrznej instytucji.
Jeżeli urządzenie nie jest objęte atakiem ransomware, samo uruchomienie systemu operacyjnego może nadpisać kluczowe dla analizy dane, takie jak dzienniki zdarzeń czy pliki usunięte przez atakującego.
Zalecanym rozwiązaniem jest przekazanie dysków z takiego urządzenia lub całego urządzenia do wyspecjalizowanej instytucji, która zabezpieczy dane znajdującie się na dyskach w sposób nie nadpisujący ich zawartości, bez uruchamiania systemu.
Wymagania¶
- Uruchomiony system
- Dostęp do konta z uprawnieniami root
- System zarządzany przez systemd
Wymagane narzędzia¶
- Czysty nośnik zewnętrzny przygotowany na zaufanym urządzeniu, zgodnie z instrukcją Przygotowanie nośnika
Opis poleceń wykorzystanych w procedurze
| Polecenie | Opis |
|---|---|
journalctl --merge --all --output export |
Eksportuje wpisy journald w formacie eksportowym. Format ten jest binarny, zachowuje pełne metadane każdego wpisu. Opcja --all uwzględnia wpisy ze wszystkich jednostek i użytkowników, a --merge łączy wpisy z różnych journali w jeden chronologiczny strumień. |
journalctl --merge --all --output json |
Eksportuje wpisy journald w formacie JSON, w tym wszystkie dostępne pola każdego wpisu. |
date -u +%Y%m%dT%H%M%S-UTC |
Generuje bieżący znacznik czasu w strefie UTC. |
echo "..." >> $nosnik/error.log |
Dopisuje komunikat o rozpoczęciu i zakończeniu procedury do dziennika błędów na nośniku zewnętrznym. |
2>> $nosnik/error.log |
Przekierowuje strumień błędów polecenia do dziennika błędów na nośniku zewnętrznym. |
Procedura¶
Przed uruchomieniem polecenia należy spełnić poniższe warunki:
- powłoka systemowa jest uruchomiona z uprawnieniami roota.
- zmienna
$nosnikwskazuje na katalog docelowy na zewnętrznym nośniku, w przeciwnym wypadku należy przypisać ją poniższym poleceniem
echo "Rozpoczęcie zabezpieczania informacji o dzienniku systemowym $(date -u +%Y%m%dT%H%M%S-UTC)" >> "$nosnik/error.log"
journalctl --merge --all --output export > "$nosnik/journal_export_.export" 2>>"$nosnik/error.log"
journalctl --merge --all --output json > "$nosnik/journal_all_.json" 2>>"$nosnik/error.log"
echo "Zakończenie zabezpieczania informacji o dzienniku systemowym $(date -u +%Y%m%dT%H%M%S-UTC)" >> "$nosnik/error.log"
Ostatnia aktualizacja artykułu: 2026-09-02.