Przejdź do głównej zawartości

Weryfikacja konfiguracji aplikacji i serwera – Security Logging and Alerting 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, `