Źródła ryzyka

Klasyfikacja według źródeł ryzyk to podejście polegające na grupowaniu zagrożeń w oparciu o warstwę architektury. Podejście to ułatwia odpowiedź na pytanie: „co należy testować?”. Określenie potencjalnych wektorów ataku oraz komponentów o podwyższonym ryzyku umożliwia opracowanie specyfikacji testów ukierunkowanych na konkretne elementy systemu. Taki podział nie tylko wspiera efektywne zarządzanie ryzykiem, ale także pozwala lepiej priorytetyzować działania testowe.

Example

  1. Ryzyka związane z interfejsem użytkownika (UI Risks)(wejście (input, user, interaction))

    • Brak walidacji i sanityzacji danych wejściowych (np. XSS jako punkt wejścia oraz pośrednio SQL Injection).
    • Brak zabezpieczeń przed atakami typu CSRF.
    • Błędne lub niewystarczające mechanizmy uwierzytelniania i autoryzacji.
    • Nieprawidłowe zarządzanie sesją (np. session fixation, brak flag HttpOnly, Secure, SameSite).
    • Wycieki informacji przez komunikaty błędów lub elementy debugujące.
    • Clickjacking (manipulacja interfejsem poprzez nakładanie niewidocznych elementów).
  2. Zaawansowane ryzyka po stronie klienta (Client-Side/Frontend Risks)(runtime (JS, DOM, browser))

    • DOM-based XSS wynikający z manipulacji DOM przez JavaScript.
    • Niewłaściwe przechowywanie danych (localStorage, sessionStorage, cookies).
    • Ataki na łańcuch dostaw frontendowy (npm, CDN, zewnętrzne skrypty).
    • Prototype pollution i manipulacja obiektami JavaScript.
    • Błędy konfiguracji lub brak polityki CSP (Content Security Policy).
    • Nadmierne zaufanie do logiki po stronie klienta.
    • Niewłaściwe wykorzystanie API przeglądarki (np. postMessage, Service Workers).
  3. Ryzyka związane z systemem plików (File System Risks)

    • Przechowywanie wrażliwych danych w postaci niezaszyfrowanej (np. hasła, tokeny, klucze, pliki .env).
    • Wycieki sekretów poprzez repozytoria, logi lub pipeline’y CI/CD.
    • Niewłaściwie skonfigurowane prawa dostępu do plików i katalogów.
    • Możliwość przeprowadzenia ataku typu path traversal.
    • Niezabezpieczony upload plików (ryzyko RCE).
    • Ataki z wykorzystaniem dowiązań symbolicznych (symlink attacks) oraz race conditions (TOCTOU).
    • Nadmiarowo szczegółowe logi oraz podatności typu log injection.
    • Błędna konfiguracja systemów plików w środowiskach chmurowych i kontenerowych (np. publiczne storage).
  4. Ryzyka związane z systemem operacyjnym (Operating System Risks)

    • Brak aktualizacji i łat bezpieczeństwa dla znanych podatności.
    • Błędna konfiguracja systemu (np. brak zasady least privilege, nadmierne uprawnienia).
    • Podatności umożliwiające eskalację uprawnień (privilege escalation).
    • Brak odpowiedniej ochrony danych w pamięci (memory leaks, memory dumps).
    • Niewłaściwa konfiguracja środowisk kontenerowych i hostów (np. container escape).
    • Brak mechanizmów monitorowania i detekcji (np. EDR, logowanie zdarzeń).
    • Słabe zarządzanie kontami uprzywilejowanymi (root/administrator).
  5. Ryzyka związane z zewnętrznym oprogramowaniem (Third-Party Software Risks)

    • Wykorzystywanie podatnych lub nieaktualnych zależności (np. Log4j – CVE-2021-44228).
    • Ataki na łańcuch dostaw (supply chain), np. złośliwe aktualizacje (SolarWinds).
    • Dependency confusion – instalacja złośliwych pakietów zamiast wewnętrznych zależności.
    • Typosquatting – wykorzystanie podobnych nazw pakietów do dystrybucji malware.
    • Złośliwe pakiety w repozytoriach publicznych (npm, PyPI).
    • Błędy w integracjach z systemami zewnętrznymi (API, usługi).
    • Brak kontroli nad komponentami (brak SBOM, brak weryfikacji pochodzenia pakietów).
  6. Ryzyka związane z API (API Risks)

    • Brak kontroli dostępu do zasobów (BOLA / IDOR).
    • Błędy uwierzytelniania (Broken Authentication).
    • Brak kontroli dostępu do funkcji (BFLA).
    • Podatność typu Mass Assignment.
    • Ataki SSRF (Server-Side Request Forgery).
    • Brak mechanizmów rate limiting (brute force, DoS).
    • Nadmierne ujawnianie danych (excessive data exposure).
    • Błędy konfiguracyjne (security misconfiguration).
    • Niewłaściwe zarządzanie endpointami i wersjami API.
    • Brak monitoringu i logowania zdarzeń.
  7. Ryzyka związane z siecią (Network Risks)

    • Brak lub niewłaściwa konfiguracja TLS (np. stare wersje, słabe szyfry, brak HSTS).
    • Ataki Man-in-the-Middle (MITM) oraz błędy walidacji certyfikatów.
    • Błędy konfiguracji infrastruktury (firewalle, porty, brak segmentacji sieci).
    • Ataki na DNS (spoofing, subdomain takeover, DNS tunneling).
    • Podatności w protokołach sieciowych (SMB, LDAP, RPC, HTTP/2).
    • Ataki DoS/DDoS ukierunkowane na sieć i API.
    • Brak kontroli komunikacji wewnętrznej (east-west traffic, lateral movement).
  8. Ryzyka związane z chmurą (Cloud Risks)

    • Błędna konfiguracja usług chmurowych (np. publiczne zasoby storage).
    • Nadmierne uprawnienia i błędy w zarządzaniu IAM (brak least privilege).
    • Wycieki kluczy API, tokenów i danych uwierzytelniających.
    • Ataki na metadane instancji (np. poprzez SSRF).
    • Błędy konfiguracji środowisk kontenerowych (np. Kubernetes).
    • Brak monitoringu i logowania zdarzeń w chmurze.
    • Nieautoryzowane wykorzystanie zasobów (np. cryptojacking).
    • Podatności wynikające z błędów w Infrastructure as Code (IaC).
  9. Ryzyka związane z logiką aplikacji (Application Logic Risks)

    • Ominięcie procesów biznesowych (workflow bypass).
    • Manipulacja parametrami operacji (np. ceny, rabaty, ilości).
    • Brak walidacji stanów aplikacji (state validation issues).
    • Warunki wyścigu (race conditions).
    • Brak ograniczeń (rate limiting, anti-automation).
    • Nadużycia funkcjonalności (abuse cases).
    • Niespójna logika w architekturach rozproszonych (np. mikroserwisy).
  10. Ryzyka związane z tożsamością i kontrolą dostępu (Identity & Access)

  • Słabe mechanizmy uwierzytelniania (brak MFA, podatność na brute force, credential stuffing).
  • Błędy w autoryzacji (np. IDOR, BOLA, brak weryfikacji uprawnień po stronie serwera).
  • Niewłaściwe zarządzanie sesją (session hijacking, fixation, brak wygasania sesji).
  • Nieprawidłowa implementacja tokenów (JWT, OAuth).
  • Brak spójności kontroli dostępu w systemach rozproszonych.
  • Nadmierne uprawnienia (brak zasady least privilege).


References