Blog IT, Blog Marketing

Cross Site Request Forgery

Cross Site Request Forgery

Marcin Sarna , 19.08.2021 r.

Czym jest ten atak i jak się przed nim chronić?

Atakujący korzysta z Twojego loginu i hasła nie znając go

Cross Site Request Forgery lub w skrócie CSRF to atak polegający na tym, że zainfekowana strona lub program powoduje, że przeglądarka użytkownika wykonuje niepożądane działanie w zaufanej witrynie, gdy użytkownik jest uwierzytelniony. Wszelkie złośliwe działania są ograniczone do możliwości witryny internetowej, w której użytkownik jest uwierzytelniany.

Na przykład ktoś może zalogować się do swojego portalu bankowości internetowej podczas sprawdzania poczty e-mail. Będąc tam, może kliknąć łącze w wiadomości phishingowej (prawdopodobnie link taki będzie ukryty przed użytkownikiem z wykorzystaniem któregoś z serwisów skracających URLe). Taki klik będzie zaś bardzo kosztowny – może zawierać prośbę do banku o przelanie pieniędzy na konto kontrolowane przez atakującego. Ponieważ nasz użytkownik jest już uwierzytelniony w swoim banku, bank może automatycznie przeprowadzić transakcję.

Parę słów przypomnienia

Żeby wyjaśnić mechanikę ataku przypomnijmy kilka podstawowych terminów. Żądanie HTTP GET to żądanie używane do pobierania danych z serwera WWW a żądanie HTTP POST służy do wysyłania danych na serwer WWW (na przykład przesłanie formularza internetowego). Ważne jest to, że niektóre takie żądania GET i POST są wyzwalane automatycznie, bez interakcji użytkownika (np. pobieranie sugestii wyszukiwania lub ładowanie zawartości obrazu z atrybutem img src).

Z kolei pliki cookie sesji zawierają unikalny identyfikator użytkownika po to aby strony mogły ich następnie użyć do identyfikacji użytkowników powracających na stronę i utrzymywać ich sesje. Po ustawieniu takiego pliku przeglądarka użytkownika przesyła plik cookie do serwera przy każdym żądaniu identyfikacji użytkownika na danej stronie. Osoba atakująca może wykorzystać plik cookie do podszywania się pod użytkownika, zmuszając przeglądarkę użytkownika do wykonania określonego żądania. Jeśli użytkownik jest już zalogowany w serwisie, plik cookie zostanie wysłany automatycznie wraz z żądaniem.

Jak działa CSRF?

Aby osoba atakująca mogła przeprowadzić atak CSRF, musi być spełnionych kilka rzeczy:

  1. Możliwe jest na stronie podjęcie czynności, którą osoba atakująca chce wykonać - na przykład zmiana hasła czy przelanie środków.
  2. Nie ma nieprzewidywalnych parametrów żądania, tzn. atakujący może odgadnąć (lub zna) wszystkie parametry, których aplikacja oczekuje od tego typu żądania. Krótko mówiąc: atakujący jest w stanie spreparować żądanie.
  3. Akcja może być wykonana z użyciem żądania HTTP a uwierzytelnienie użytkownika opiera się tylko na plikach cookie.
  4. CSRF może więc być wykonane niemal w każdym przypadku gdy aplikacja automatycznie dołącza poświadczenia lub tożsamość użytkownika do żądania. Atak może wykorzystać żądanie GET lub POST (chociaż atak z wykorzystaniem żądania POST jest bardziej skomplikowany i dlatego też rzadziej spotykany).

    Ochrona

    Przede wszystkim ostrożnie wybierz stosowany framework. Zdecyduj się na taki, który ma wbudowane zabezpieczenia przed CSRF, jak na przykład .NET. Prawidłowa konfiguracja strony jest kluczowa. Jeśli używany framework nie ma ochrony przed CSRF, możesz dodać ochronę za pomocą tokenów Anti-CSRF. Te tokeny (znane także jako synchronizer token patterns) to rodzaj ochrony po stronie serwera, polegający na tym, że serwer zapewnia przeglądarce użytkownika unikalny, losowo generowany token i sprawdza każde żądanie, aby sprawdzić, czy przeglądarka odsyła go przed wykonaniem żądania.

    Token Anti-CSRF jest wysyłany przez ukryte pole i powinien być nieprzewidywalną, losową liczbą, która wygasa po krótkim czasie i nie może być ponownie wykorzystana. Tokeny powinny być porównywane w bezpieczny sposób (na przykład przez porównywanie hashy) i nie powinny być wysyłane w żądaniu HTTP GET, aby nie stać się częścią adresu URL.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej