• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Metoda "double submitted cookie". Bezpieczeństwo dla CORS.

VPS Starter Arubacloud
0 głosów
157 wizyt
pytanie zadane 16 marca 2021 w Bezpieczeństwo, hacking przez Jakub 0 Pasjonat (23,120 p.)
zamknięte 16 marca 2021 przez Jakub 0

Witam, dużo czytałem na temat wspomnianej w tytule metody przeciwdziałania atakom CSRF. Wiem, że po wejściu na stronę, ustawiany jest plik cookie z atrybutem httpOnly zawierający token, dodatkowo ten sam token przesyłany jest na klienta w jakiejś formie (np. jako ukryte pole formularza). Po wysłaniu requesta, oba tokeny muszą się zgadzać. No i niby jesteśmy bezpieczni, bo atakujący tworząc linka z requestem, nie wie jaki token utworzy serwer w pliku cookie u klienta.

Co jednak, jeśli skrypt atakującego najpierw wykona żądanie GET na "atakowaną stronę", sparsuje odpowiednio odpowiedź i wyciągnie z niej CSRF token? Jak wiadomo, pliki cookie ustawiane są zawsze automatycznie. Mamy więc wszystkie informacje, by wykonać krytyczny request.

Wiem, że pogrubiony fragment jest zastrzeżony przez SOP (Single Origin Policy). Zastanawia mnie jednak to, jak sprawa wygląda dla serwera zezwalającego na CORS. Czy w takiej sytuacji całe omawiane zabezpieczenie jest bezskuteczne?

Z góry dziękuje za informację zwrotną czy dobrze myślę laugh

 

 

komentarz zamknięcia: Temat wyczerpany

2 odpowiedzi

+3 głosów
odpowiedź 16 marca 2021 przez Comandeer Guru (599,730 p.)
wybrane 16 marca 2021 przez Jakub 0
 
Najlepsza

Żądanie GET zrobione z poziomu JS-a nie będzie miało dostępu do cookies httpOnly.

Jeszcze lepszym zabezpieczeniem jest użycie ciasteczek SameSite.

komentarz 16 marca 2021 przez Jakub 0 Pasjonat (23,120 p.)
edycja 16 marca 2021 przez Jakub 0

Dziękuje za odpowiedź. 

Żądanie GET zrobione z poziomu JS-a nie będzie miało dostępu do cookies httpOnly.

To prawda, ale dostęp do ciasteczka i tak nie jest konieczny by przeprowadzić atak. Dajmy najprostszy przykład:

Mam request GET /login, który zwraca stronę z formularzem logowania. Wykonanie tego żądania skutkuje stworzeniem ciasteczka HttpOnly (niedostępny dla js). Ten sam token niech się znajdzie w jakimś ukrytym polu input formularza. 

Osoba atakująca ma swoją stronę. Po wejściu na nią, zawarty tam skrypt wykonuje wspomniany request. Z odpowiedzi html wyodrębnia on wartość tokenu (z tego inputa). Jednocześnie powstał plik cookie o takim samym tokenie.

W tym momencie (jeśli mamy dostęp do response bo SOP tego nie powstrzymał) "haker" ma już wszystko czego potrzebuje, żeby wykonać żądanie logowania. W tym przypadku zabezpieczenie przed CSRF nic nie dało.

Chodzi mi o to czy faktycznie tak by było w przypadku serwera zezwalającego na CORS, czy może coś pominąłem. Mam nadzieję, że bardziej rozjaśniłem temat.

Jeszcze lepszym zabezpieczeniem jest użycie ciasteczek SameSite.

 Fajna sprawa, nie słyszałem o tym. Poczytam sobie :)

1
komentarz 16 marca 2021 przez Comandeer Guru (599,730 p.)

Istnieje nagłówek Access-Control-Allow-Credentials, który pozwala ustalić, czy pozwalamy na zwracania cookies przy CORS. Dodatkowo zawsze można sprawdzić, skąd przyszło żądanie i uwalać, jeśli nie z naszej strony (choćby przy pomocy nagłówka Origin czy referrera).

Niemniej samo założenie, że strona logowania będzie dostępna po CORS, jest dość śmiałe. To, że cała witryna jest, nie znaczy, że ta jedna podstrona również.

0 głosów
odpowiedź 16 marca 2021 przez CSSoup Mądrala (6,460 p.)
Ogólnie co do metody GET - jeżeli w appce pojawia się podatność XSS, to MOŻE pojawić się szansa pobrania tokena i wykonania żądania  HTTP.
komentarz 16 marca 2021 przez Jakub 0 Pasjonat (23,120 p.)
To wiem akurat. Żadne zabezpieczenia nie mają sensu jak strona jest podatna na XSS.

Bardziej zastanawiam się nad tym CORS, bo stosunkowo często serwer jest oddzielony od klienta (służy jako zewnętrzne API dla wielu typów aplikacji).

Podobne pytania

0 głosów
1 odpowiedź 573 wizyt
pytanie zadane 23 listopada 2018 w Bezpieczeństwo, hacking przez Adrian1999 Nałogowiec (34,570 p.)
+2 głosów
2 odpowiedzi 287 wizyt
–1 głos
1 odpowiedź 294 wizyt

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...