Ź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.

-
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).
-
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).
-
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).
-
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).
-
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).
-
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ń.
-
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).
-
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).
-
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).
-
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
- Jamesa Whittakera „How to Break Software Security”.
- https://www.iso.org/standard/80585.html
- https://owasp.org/www-project-web-security-testing-guide/
- ISO/IEC 27005 (ISTQB TAT)