CSRF, czyli Cross-Site Request Forgery (fałszowanie żądania między witrynami), to atak, który zmusza uwierzytelnionego użytkownika do nieświadomego wykonania nieautoryzowanej operacji w aplikacji webowej. Mechanizm jest prosty, lecz skutki mogą być poważne: atakujący nie przejmuje konta ofiary bezpośrednio, lecz wykorzystuje jej aktywną sesję jako narzędzie do własnych działań. OWASP przez lata umieszczał CSRF w zestawieniu top 10 najgroźniejszych zagrożeń dla aplikacji webowych, a ochrona przed nim pozostaje standardowym wymogiem bezpiecznego tworzenia oprogramowania.
Najważniejsze informacje:
- CSRF to atak, który zmusza uwierzytelnionego użytkownika do nieświadomego wysłania złośliwego żądania HTTP do serwera aplikacji.
- Atak jest możliwy, ponieważ przeglądarka użytkownika automatycznie dołącza ciasteczka sesyjne do każdego żądania kierowanego do danej domeny.
- Narażone są wszystkie aplikacje webowe opierające uwierzytelnianie wyłącznie na ciasteczkach sesji bez dodatkowej weryfikacji pochodzenia żądania.
- Obrona wymaga stosowania tokenów CSRF, atrybutu SameSite w ciasteczkach i weryfikacji nagłówków Origin/Referer.
- MFA oraz edukacja pracowników uzupełniają techniczne zabezpieczenia jako dodatkowe warstwy ochrony.
Spis treści:
- Czym jest Cross Site Request Forgery?
- Jak działa Cross Site Request Forgery (CSRF)? Mechanizm ataku krok po kroku
- Kto jest narażony na atak CSRF?
- Jakie skutki może mieć atak CSRF?
- W jaki sposób bronić się przed atakami CSRF?
- CSRF – jak działa fałszowanie żądania między witrynami i jakie są sposoby obrony? Podsumowanie
Czym jest Cross Site Request Forgery?
Cross Site Request Forgery (CSRF) to atak na aplikacje webowe, który polega na nakłonieniu uwierzytelnionego użytkownika do nieświadomego wysłania złośliwego żądania HTTP do serwera, z którym posiada aktywną sesję. Nazwa tego incydentu bezpieczeństwa dosłownie opisuje jego mechanizm: „fałszowanie żądania między witrynami”, ponieważ atakujący buduje sfałszowane żądanie na jednej witrynie, które jest wykonywane w kontekście innej witryny, w której ofiara jest zalogowana. Największą podatnością, którą atak CSRF wykorzystuje, jest to, że przeglądarki internetowe automatycznie dołączają ciasteczka sesyjne do każdego żądania HTTP kierowanego do danej domeny, niezależnie od tego, z jakiej strony to żądanie pochodzi.
CSRF atakuje funkcjonalności powodujące zmiany stanu po stronie serwera: zmianę adresu e-mail, hasła administratora, przelewy pieniędzy czy modyfikację uprawnień użytkowników. Serwer nie potrafi odróżnić fałszywego żądania od prawdziwego, bo oba zawierają ważne ciasteczka sesyjne i wyglądają identycznie z jego perspektywy. Rozumienie tego mechanizmu jest fundamentem skutecznej ochrony, dlatego Cyrek 4 Cyber wspiera organizacje w komunikowaniu zagrożeń, edukowaniu zespołów, a przede wszystkim budowaniu świadomości bezpieczeństwa w obszarze aplikacji webowych.
Jak działa Cross Site Request Forgery (CSRF)? Mechanizm ataku krok po kroku
Cross Site Request Forgery działa, ponieważ przeglądarka użytkownika z założenia dołącza ciasteczka sesyjne do każdego żądania kierowanego do domeny, dla której je wydano. Atakujący nie musi znać tych ciasteczek ani hasła ofiary, zaś wystarczy, że przeglądarka ofiary je posiada i wyśle razem z fałszywym żądaniem. Mechanizm ataku przebiega wieloetapowo, a każdy krok logicznie wynika z poprzedniego.
Uwierzytelnienie ofiary i aktywna sesja
Atak CSRF jest możliwy wyłącznie wtedy, gdy przeglądarka użytkownika posiada ważne ciasteczko sesyjne dla podatnej aplikacji. Sesja może być aktywna w banku, serwisie społecznościowym, panelu administracyjnym bądź dowolnym systemie przechowującym sesję w ciasteczku. To sprawia, że ofiarą może stać się każdy zalogowany użytkownik, który nieświadomie odwiedzi odpowiednią stronę.
Przygotowanie złośliwego żądania przez atakującego
Atakujący przygotowuje stronę internetową zawierającą ukryty formularz HTML, tag obrazka lub skrypt JavaScript, który automatycznie wysyła żądanie HTTP do podatnej aplikacji. Żądanie jest skonstruowane tak, by wykonać określoną operację: zmienić hasło, przelać środki lub zmodyfikować konfigurację. Dostarczenie ofierze linku do złośliwej strony może nastąpić przez e-mail, wiadomość prywatną bądź umieszczenie treści na zaufanej platformie.
Automatyczne dołączenie ciasteczek przez przeglądarkę i przetworzenie żądania przez serwer
Gdy ofiara odwiedza złośliwą stronę, przeglądarka automatycznie wysyła żądanie do aplikacji docelowej i dołącza do niego ciasteczko sesyjne, bez wiedzy oraz zgody użytkownika. Serwer odbiera żądanie z ważnym ciasteczkiem, po czym wykonuje operację jako działanie legalnego użytkownika, bo nie posiada mechanizmu pozwalającego zakwestionować jego autentyczność. Analogię stanowi atak Man in the Middle, a w obu przypadkach atakujący korzysta z uprawnień ofiary bez jej świadomości, tylko że w CSRF robi to przez przeglądarkę samej ofiary.
Kto jest narażony na atak CSRF?
Na atak CSRF narażone są wszystkie aplikacje webowe opierające uwierzytelnianie wyłącznie na ciasteczkach sesji i nieweryfikujące dodatkowo pochodzenia przychodzących żądań. Zagrożenie dotyczy zarówno użytkowników końcowych korzystających z popularnych serwisów, jak i firm utrzymujących własne systemy, szczególnie te z interfejsem administracyjnym dostępnym przez przeglądarkę.
Na atak CSRF narażone są następujące podmioty i typy aplikacji:
- administratorzy systemów i paneli CMS – konta z podwyższonymi uprawnieniami są priorytetowym celem; skuteczny atak CSRF na konto administratora może dać atakującemu pełną kontrolę nad aplikacją bądź całą infrastrukturą,
- aplikacje e-commerce oraz platformy płatnicze – narażone na nieautoryzowane transakcje, zmiany adresów dostawy lub danych płatniczych wykonane w imieniu zalogowanego klienta,
- aplikacje SaaS, jak też systemy CRM – środowiska przetwarzające wrażliwe dane biznesowe, w których nieautoryzowana zmiana konfiguracji lub eksport danych mogą prowadzić do poważnych strat,
- instytucje finansowe, a także systemy bankowe – klasyczny cel ataków CSRF; atak może skutkować wykonaniem przelewu bądź zmianą danych do logowania bez wiedzy właściciela konta,
- platformy społecznościowe i komunikacyjne – podatne na ataki skutkujące publikowaniem treści, wysyłaniem wiadomości lub zmianą ustawień prywatności w imieniu ofiary,
- użytkownicy końcowi pracujący w kilku zakładkach przeglądarki jednocześnie – osoby utrzymujące równolegle otwarte sesje w wielu serwisach są szczególnie narażone, ponieważ każda nowo otwarta karta może nieświadomie wysłać żądanie do dowolnej z aktywnych połączeń.
Ocena podatności własnych systemów na atak CSRF powinna być integralnym elementem audytu bezpieczeństwa informacji, który pozwala zidentyfikować luki w mechanizmach uwierzytelniania i weryfikacji żądań przed ich rzeczywistym wykorzystaniem przez atakującego.
Jakie skutki może mieć atak CSRF?
Atak CSRF może powodować skutki od pozornie niegroźnych modyfikacji ustawień aż po poważne naruszenia bezpieczeństwa i straty finansowe. Zakres szkód zależy od uprawnień zaatakowanego konta oraz funkcjonalności podatnej aplikacji: im szersze uprawnienia, tym większy potencjalny zasięg. Ponieważ atak CSRF tworzy funkcjonalności powodujące zmiany stanu po stronie serwera, każda operacja modyfikująca dane jest potencjalnym celem.
Nieautoryzowane zmiany danych konta i przejęcie konta
Najczęstszym bezpośrednim skutkiem ataku CSRF jest zmiana danych konta: adresu e-mail, hasła lub numeru telefonu powiązanego z uwierzytelnianiem. Po zmianie adresu e-mail atakujący może zainicjować procedurę odzyskiwania hasła i w ten sposób całkowicie przejąć konto ofiary bez konieczności znajomości jej oryginalnego hasła.
Transakcje finansowe i nieautoryzowane przelewy
W systemach bankowych, a także platformach płatniczych atak CSRF może skutkować wykonaniem przelewu na konto atakującego lub modyfikacją danych odbiorcy cyklicznych płatności. Ofiara, będąc zalogowaną i odwiedzając spreparowaną stronę, może nieświadomie autoryzować transakcję finansową. Właśnie dlatego cyberbezpieczeństwo dla pracowników musi obejmować wiedzę o tym, dlaczego odwiedzanie nieznanych stron podczas aktywnych sesji w ważnych serwisach jest ryzykowne.
Eskalacja uprawnień i sabotaż aplikacji
Gdy atak CSRF jest skierowany na konto administratora, skutki wykraczają poza szkody dotykające jednej osoby. Atakujący może zmienić własne uprawnienia, wyłączyć mechanizmy bezpieczeństwa bądź opublikować treści w imieniu organizacji. Samo kliknięcie w podejrzany link podczas aktywnej sesji administratora może uruchomić złośliwe żądanie HTTP w tle, prowadząc do przejęcia kontroli nad całym systemem.
W jaki sposób bronić się przed atakami CSRF?
Obrona przed atakami CSRF opiera się na dodaniu do żądań HTTP dodatkowej informacji weryfikacyjnej, której przeglądarka nie może dołączyć automatycznie. Żadna pojedyncza technika nie zapewnia stuprocentowej ochrony przed CSRF, dlatego standardem branżowym jest stosowanie obrony warstwowej łączącej kilka metod jednocześnie.
Najważniejsze metody obrony przed atakami CSRF obejmują:
- atrybut SameSite w ciasteczkach – ustawienie SameSite=Strict gwarantuje, że ciasteczka są wysyłane wyłącznie w żądaniach z tej samej witryny; SameSite=Lax, domyślne w nowoczesnych przeglądarkach, blokuje ciasteczka w większości żądań cross-site, zachowując je jedynie dla bezpiecznych nawigacji najwyższego poziomu,
- double submit cookie – technika polegająca na dołączaniu tokenu zarówno w ciasteczku, jak i w parametrze żądania; serwer weryfikuje zgodność obu wartości bez przechowywania stanu sesji; szczególnie przydatna w aplikacjach SPA i żądaniach AJAX zawierających niestandardowe nagłówki HTTP,
- token CSRF (Synchronizer Token Pattern) – serwer generuje unikalny, losowy token dla każdej sesji użytkownika i umieszcza go w ukrytym polu formularza (input type hidden name) lub nagłówku HTTP; przy każdym żądaniu modyfikującym dane serwer weryfikuje obecność i poprawność tokenu, odrzucając żądania bez prawidłowej wartości,
- uwierzytelnianie wieloskładnikowe (MFA) – MFA stanowi dodatkową warstwę ochrony dla operacji o krytycznym znaczeniu: nawet jeśli fałszywe żądanie zostanie wysłane, krytyczne akcje wymagają dodatkowego potwierdzenia tożsamości niemożliwego do sfałszowania przez skrypt,
- weryfikacja nagłówków Origin i Referer – aplikacja sprawdza, czy żądanie pochodzi z oczekiwanej domeny; żądania bez nagłówka Origin lub z nieznaną wartością Referer są odrzucane przez serwer jako potencjalnie złośliwe,
- zakaz wykonywania operacji zmieniających stan przez żądania GET – metody GET powinny służyć wyłącznie do pobierania danych; wszystkie operacje modyfikujące stan (POST, PUT, DELETE) muszą być chronione tokenem CSRF, co eliminuje najprostsze wektory ataku.
Organizacje, które chcą sprawdzić, czy ich aplikacje webowe są odporne na ataki CSRF, powinny regularnie prowadzić testy aplikacji, przeglądy mechanizmów sesji oraz edukację zespołów. Cyrek 4 Cyber może wspierać ten obszar od strony komunikacji zagrożeń i budowania świadomości bezpieczeństwa.
CSRF – jak działa fałszowanie żądania między witrynami i jakie są sposoby obrony? Podsumowanie
CSRF to atak, który w prosty sposób przekształca mechanizm automatycznego dołączania ciasteczek przez przeglądarkę w narzędzie atakującego. Nie wymaga przejęcia konta ani zaawansowanych technik, ponieważ wystarczy, że ofiara jest zalogowana i odwiedzi odpowiednio spreparowaną stronę internetową. Skuteczna obrona przed CSRF wymaga wdrożenia tokenów CSRF, atrybutu SameSite, weryfikacji nagłówków Origin i Referer oraz, dla operacji krytycznych, dodatkowego uwierzytelniania przez MFA. Cyrek 4 Cyber wspiera organizacje w komunikowaniu zasad bezpieczeństwa aplikacji webowych, edukowaniu zespołów i budowaniu kultury bezpieczeństwa wśród deweloperów, administratorów oraz użytkowników.
FAQ
Czym jest atak CSRF i jak działa?
CSRF (Cross-Site Request Forgery) to atak, który zmusza uwierzytelnionego użytkownika do nieświadomego wysłania złośliwego żądania HTTP do aplikacji webowej, z którą posiada aktywną sesję. Atak jest możliwy, ponieważ przeglądarka użytkownika automatycznie dołącza ciasteczka sesyjne do żądań kierowanych do danej domeny, niezależnie od tego, z jakiej strony pochodzi żądanie. Serwer odbiera takie żądanie jako autentyczne i wykonuje operację w imieniu ofiary, nie mając możliwości odróżnienia fałszywego csrf attack od prawdziwego działania użytkownika.
Jakie są najlepsze metody obrony przed atakami CSRF?
Najskuteczniejsze metody obrony obejmują stosowanie tokenów CSRF (Synchronizer Token Pattern), konfigurację atrybutu SameSite=Strict lub SameSite=Lax w ciasteczkach oraz weryfikację nagłówków Origin i Referer przez serwer. Dla operacji o krytycznym znaczeniu rekomendowane jest wdrożenie uwierzytelniania wieloskładnikowego (MFA), które wymaga potwierdzenia tożsamości niemożliwego do sfałszowania przez skrypt. Stosowanie obrony warstwowej, kombinacji kilku metod jednocześnie, minimalizuje ryzyko skutecznego ataku CSRF, ponieważ żadna pojedyncza technika nie zapewnia pełnej ochrony.
Kto jest najbardziej narażony na atak CSRF?
Na ataki CSRF narażone są przede wszystkim aplikacje webowe opierające uwierzytelnianie wyłącznie na ciasteczkach sesji bez dodatkowej weryfikacji żądań, systemy bankowe, panele administracyjne, aplikacje e-commerce oraz platformy SaaS. Szczególnie podatne są konta z podwyższonymi uprawnieniami, ponieważ skuteczny atak CSRF wykonany na koncie administratora może dać atakującemu pełną kontrolę nad całą aplikacją. Użytkownicy końcowi utrzymujący jednocześnie aktywne sesje w wielu serwisach są szczególnie narażeni, ponieważ każda odwiedzona karta w przeglądarce może nieświadomie wysłać żądanie do aktywnej sesji w innym serwisie.
Źródła:
https://owasp.org/www-community/attacks/csrf
https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html
https://developer.mozilla.org/en-US/docs/Web/Security/Attacks/CSRF
https://cwe.mitre.org/data/definitions/352.html
https://capec.mitre.org/data/definitions/62.html
Chcesz poznać
szczegółową ofertę?
Skontaktuj się z nami!
NAJNOWSZE POSTY NA BLOGU



