2012-11-01 13 views
6

Używam protokołu SSL do przesyłania wszystkich danych. HTTP jest całkowicie wyłączony. Oprócz złośliwego oprogramowania lub dostępu do czyjegoś fizycznego komputera (z których oba są bardzo trudne do uniknięcia po stronie serwera), nie widzę, w jaki sposób osoba atakująca mogłaby ukraść plik cookie logowania.Kradzież plików cookie "zapamiętaj mnie" jako ważnego zagrożenia?

Czy można w takim razie nie martwić się o kradzież pliku cookie służącego do logowania?

Złożoność w zakresie prawidłowego wdrożenia nieulegającego kradzieży pliku cookie służącego do logowania, który nadal pozwala użytkownikom na sesje w różnych przeglądarkach i na różnych komputerach, jest wyższy niż materiał, który jest bezpieczny.

Dlatego uważam, że nie można bezpiecznie strzec się przed kopiowaniem i wklejać plików cookie z urządzenia na maszynę.

Czy to jest ważny interes, czy też nie pamiętam tutaj czegoś krytycznego.

+1

Ludzie OWASP mają kilka porad dotyczących plików cookie [tutaj] (https://www.owasp.org/index.php/Session_Management_Cheat_Sheet#Cookies) – pd40

+1

Och, miałem zamiar połączyć z OWASP - dobre połączenie, @ pd40. –

Odpowiedz

3

Musisz upewnić się, że w Twoim pliku cookie jest ustawiona flaga Secure, ponieważ nie można ogólnie uniemożliwić użytkownikom próby uzyskania dostępu do witryny za pośrednictwem protokołu SSL. W przeciwnym razie uważam, że powinieneś być w porządku.

To powiedziawszy, sugerowałbym podjęcie rozsądnych środków ostrożności. Na przykład:

  • Nigdy nie umieszczaj żadnych danych w plikach cookie ani na drucie, które mogą być użyte do uzyskania hasła użytkownika.
  • Jeśli to możliwe, ustaw flagę HttpOnly na poufne pliki cookie, aby każdy potencjalnie niezaufany skrypt JavaScript nie mógł ich ukraść.
+0

Jeśli spróbuję uzyskać dostęp do witryny za pośrednictwem protokołu HTTP, spróbuje wysłać plik cookie logowania? – Alan

+0

Jeśli nie ustawisz flagi Bezpieczne, to, tak. Zwykle przeglądarki wysyłają pliki cookie na każde żądanie pasujące do domeny i ścieżki, niezależnie od schematu. –

1

Tak, it's a valid threat.

Ciasteczko "zapamiętaj mnie" uniezależnia bezpieczeństwo Twojej usługi od kontroli. Ogólnie rzecz biorąc, każdy (szczególnie zaawansowany atakujący), który może przejąć kontrolę nad tym plikiem cookie, może zalogować się jako ten użytkownik.

Weźmy przykład z prawdziwego świata: Google używa podobnych plików cookie dla swoich usług. Możesz być zalogowany przez kilka tygodni. Z tego, co zauważyłem, sposób na złagodzenie ataków na kradzież plików cookie polega na unieważnieniu pliku cookie, jeśli wykryją podejrzane działania po stronie serwera. Na przykład, jeśli zazwyczaj jestem zalogowany z Kalifornii, a ja nagle loguję się z innego stanu/kraju (lub sesje równoległe z innego miejsca!), Mogę zostać wylogowany i zmuszony do ponownego uwierzytelnienia. Oczywiście nie bez zarzutu, ale można użyć wzorców użycia, aby udaremnić niektóre ataki.

Pamiętaj też, że plik cookie będzie specyficzny dla przeglądarki. Na przykład, jeśli odciski palców przeglądarki zostały użyte do stwierdzenia, że ​​użytkownik właśnie zalogował się z innego systemu operacyjnego/przeglądarki/itd., Może to być dobry moment na unieważnienie pliku cookie. Być może mógłbyś mieć ochotę i pozwolić sobie na pewną swobodę w przypadku aktualizacji mniejszej wersji przeglądarki, ale zgłoś ją, jeśli wersja przeglądarki kiedykolwiek zostanie zmieniona na na starszą wersję.

+0

> "Każdy (szczególnie zaawansowany atakujący), który może przejąć kontrolę nad tym plikiem cookie, może zalogować się jako ten użytkownik". Innym sposobem na wyrażenie mojego pytania jest: czy istnieją inne sposoby programowego przechwytywania sesji przez atakującego.Czy wszystkie są warte ochrony? – Alan

+0

Tak, jeśli przeczytasz stronę wiki, zobaczysz inne metody o różnym stopniu zaawansowania, takie jak ataki typu "człowiek-w-środku" SSL, itp. Ale szczerze, to brzmi dla mnie jak w twoim przypadku, że nie są ". t warty ochrony przed. Gdyby tak było, nie mówiłbyś o tym, że masz ciasteczko "zapamiętaj mnie", bo chciałbyś, aby użytkownicy zawsze logowali się za pomocą hasła. Mógłbyś mówić o możliwości używania certyfikatów klienta SSL do uwierzytelniania klientów. Ale mówisz o wygodzie użytkownika. Więc prawdopodobnie nie jest tego warte. – mpontillo

+0

Nie jestem zaznajomiony z SSL-MITM. Z mojego rozumienia ataków MITM, SSL całkowicie uniemożliwia MITM. – Alan

Powiązane problemy