Przejdź do głównej zawartości

⚙️ Weryfikacja konfiguracji aplikacji i serwera – Security Logging and Monitoring Failures (A09:2025)

🎯 Cel

Zweryfikowanie, czy konfiguracja aplikacji i środowiska serwerowego zapewnia skuteczne logowanie i monitorowanie zdarzeń bezpieczeństwa, zgodnie z zasadami dobrej praktyki i wymaganiami regulacyjnymi (np. RODO, ISO 27001, NIS2).


📌 Obszary do weryfikacji

1. Aplikacja (backend / frontend)

  • Czy logi są zapisywane w centralnym miejscu (np. przez winston, log4j, pino, bunyan)?
  • Czy aplikacja rozróżnia poziomy logowania (info, warn, error, security)?
  • Czy logi zawierają dane takie jak: IP, ID użytkownika, czas, endpoint?
  • Czy błędy bezpieczeństwa (brak JWT, nieudane logowanie, CSRF) są rejestrowane?

2. Serwer (system operacyjny / runtime)

  • Czy logowanie systemowe (syslog, journald) jest aktywne i skonfigurowane?
  • Czy serwer rejestruje zdarzenia SSH, sudo, crontab, systemd failures?
  • Czy konfiguracja logrotate zapewnia rotację, kompresję i retencję logów?
  • Czy logi są chronione przed modyfikacją przez użytkowników nieuprzywilejowanych?

3. Serwer HTTP / Reverse Proxy

  • Czy nginx/apache zapisuje logi błędów (error_log) i dostępu (access_log)?
  • Czy logi zawierają dane źródłowe (IP klienta, kod odpowiedzi, user-agent)?
  • Czy logi są przesyłane do zewnętrznego systemu monitorującego (np. ELK stack)?

4. Monitorowanie i integracje

  • Czy aplikacja integruje się z systemem SIEM (np. Splunk, Wazuh, ELK)?
  • Czy dostęp do logów jest chroniony (role, ACL, RBAC)?
  • Czy system monitorujący obsługuje alerty dla krytycznych zdarzeń (np. brute-force)?

🧪 Przykładowe kontrole

ObszarPrzykład konfiguracjiWartość oczekiwana
nginxaccess_log włączony
logrotatecykliczna rotacja co 7 dni
app loggerpoziom error zapisuje stacktrace
auditdrejestracja zmian plików systemowych
CI/CDlogowanie nieudanych buildów

🚨 Typowe błędy konfiguracyjne

  • Logi zapisywane tylko lokalnie bez backupu.
  • Brak logowania prób logowania i sesji.
  • Zbyt niski poziom logowania (np. tylko fatal).
  • Logi zawierające dane wrażliwe (np. pełne JWT, hasła).

✅ Rekomendacje

  • Włącz pełne logowanie zdarzeń krytycznych (uwierzytelnienie, błędy HTTP 4xx/5xx, wyjątki).
  • Używaj dedykowanych loggerów z tagowaniem (context, `