Data publikacji: 18-05-2025
Inne nazwy:
Cross-Site Request ForgeryFałszerstwo żądań międzywitrynowychAtak CSRF
Definicja CSRF
Cross-Site Request Forgery (CSRF) to typ ataku polegający na wymuszeniu przez napastnika nieautoryzowanego działania w aplikacji webowej, które wykonuje zalogowany użytkownik. Ofiara – najczęściej nieświadoma – zostaje skłoniona do kliknięcia spreparowanego linku lub załadowania obrazu, który wywołuje żądanie HTTP do zaufanej aplikacji, wykorzystując jej autoryzację (np. ciasteczka sesyjne).
Przykład ataku
- Użytkownik loguje się do panelu bankowości online.
- Następnie odwiedza złośliwą stronę, która w tle przesyła żądanie
POST
do serwisu bankowego z poleceniem wykonania przelewu.
- Przeglądarka automatycznie dołącza ciasteczka sesyjne, przez co bank traktuje żądanie jako legalne.
Skutki ataku CSRF
- Nieautoryzowane działania – np. zmiana adresu e-mail, hasła, przelewy.
- Trwała eskalacja dostępu – przy braku dodatkowych weryfikacji.
- Zagrożenie dla reputacji – użytkownicy mogą stracić zaufanie do serwisu.
Kluczowe czynniki ryzyka
Czynnik |
Znaczenie |
Brak tokenów CSRF |
Brak dodatkowego zabezpieczenia formularzy i żądań POST/PUT/DELETE. |
Brak nagłówków SameSite |
Ciasteczka dostępne w kontekście innych stron umożliwiają wykonanie ataku. |
Brak uwierzytelnienia 2FA |
Możliwość wykonania wrażliwych akcji bez dodatkowego potwierdzenia. |
Mechanizmy ochronne
- Tokeny anty-CSRF – unikalne i jednorazowe, weryfikowane po stronie serwera.
- Nagłówek
SameSite=Strict
lub Lax
– ogranicza przesyłanie ciasteczek z zewnętrznych źródeł.
- Weryfikacja źródła (
Referer
, Origin
) – dodatkowe sprawdzanie kontekstu żądania.
- CAPTCHA lub 2FA – mechanizmy dodatkowej autoryzacji.
Standardy i rekomendacje
Źródło |
Zakres |
Znaczenie |
OWASP Top 10 |
Lista najgroźniejszych klas podatności |
CSRF był do 2017 na liście głównej |
CWE-352 |
Common Weakness Enumeration |
Klasyfikacja podatności typu CSRF |
RFC 6265 |
Standard ciasteczek HTTP |
Wprowadzenie atrybutu SameSite |
Powiązania z innymi atakami
- XSS (Cross-Site Scripting) – może zostać użyty do pozyskania tokena CSRF.
- Session fixation – CSRF może być skuteczniejszy, jeśli sesje są źle zarządzane.
- Clickjacking – może zwiększyć skuteczność CSRF w atakach socjotechnicznych.
Wyzwania w obronie
- Kompatybilność przeglądarek – różne interpretacje nagłówków
SameSite
.
- Aplikacje legacy – brak implementacji nowoczesnych zabezpieczeń.
- Ukryte punkty końcowe API – niezabezpieczone interfejsy wewnętrzne narażone na CSRF.
Trendy i rekomendacje
- Domyślne
SameSite=Lax
w przeglądarkach – coraz szersze wsparcie od 2020 r.
- Zastępowanie sesji JWT i SPA – zmniejszenie ryzyka poprzez architekturę aplikacji.
- Automatyzacja testów bezpieczeństwa – np. z wykorzystaniem ZAP, Burp Suite, OWASP CSRFTester.