Dlaczego powinienem zezwalać na wiele adresów IP w witrynie na jedną sesję?

18

Mam nadzieję, że moje pytanie pasuje do zakresu tej witryny.

Tworzę CMS . Obecnie moi zalogowani użytkownicy są zablokowani na swoim adresie IP dla sesji. Niestety niewielka część mojej bazy użytkowników ciągle przeskakuje między dwoma lub więcej adresami IP. Większość z nich prawdopodobnie używa funkcji równoważenia obciążenia. Z technicznego punktu widzenia nie jest konieczne blokowanie sesji użytkowników na jednym adresie IP. Nie spodziewałem się, że klienci będą przełączać się między wieloma adresami IP dla pojedynczego żądania strony w mojej witrynie.

Zastanawiam się teraz, jakie są zagrożenia, pozwalając moim klientom na ciągłe przeskakiwanie między adresami IP w celu żądania strony (na przykład pliki CSS są wymagane przez xxx.xxx.xxx.xxx, a pliki JavaScript są wymagane przez yyy.yyy.yyy. rrr) Czy ogólnie powinienem na to zezwalać czy zakazać?

yoru
źródło
39
Nie potrzebujesz nawet równoważników obciążenia, aby przeskakiwać adresy IP. Połącz się z telefonem w metrze, możesz dostać inny adres IP co kilka minut podczas podróży pociągiem, a następnie ponownie, gdy telefon przełączy się na Wi-Fi w miejscu docelowym.
whatsisname
13
Także dla laptopów przemieszczających się między lokalizacjami (powiedzmy, dom> praca> starbucks). Ponadto: losowe adresy IPv6 (rozszerzenia prywatności SLAAC IPv6).
marcelm
intuicyjnie oczekiwałbym, że klient przeskakujący na różnych źródłach Ips spowoduje problemy, jeśli będzie to coś więcej niż „okazjonalnie”.
Tom H
1
Jeśli opracowujesz aplikację internetową, która zostanie zainstalowana w kontrolowanej sieci lub masz wiedzę na ten temat, możesz zdecydować się to zrobić ze względów bezpieczeństwa, ponieważ możesz powiedzieć „w tej sytuacji wiele adresów IP nie nastąpi, ponieważ użytkownicy muszą uzyskaj dostęp do tego z ich WS i nie ma żadnych równoważników obciążenia lub innych rzeczy, które mogłyby zmienić ich IP "... w takim przypadku możesz nawet być w stanie śledzić adresy IP użytkowników, ponieważ ich WS może zawsze mieć ten sam (lub może zmieniać się tylko raz na kilka miesięcy)
Bakuriu
1
@TomH Nie, zdecydowana większość aplikacji internetowych nie dba o Twój adres IP, zaakceptuje te same pliki cookie w żądaniu HTTP przez nowe połączenie TCP. Tylko obłąkane i źle zaprojektowane badziewie blokują twoją sesję na adresie IP lub połączeniu.
Navin

Odpowiedzi:

35

niewielka część mojej bazy użytkowników ciągle przeskakuje między dwoma lub więcej adresami IP.

Przyczyny

Zakładając, że Twoi użytkownicy nie próbują aktywnie ukrywać swoich prawdziwych adresów IP za pomocą usługi anonimizacji ...:

Większość korporacyjnych przykładów, które widziałem, są spowodowane przez większe firmy i niektórych dostawców usług internetowych korzystających z klastra serwerów proxy, z których każdy ma inny zewnętrzny adres IP, a żądania użytkowników są równoważone w tym klastrze.

Możesz zobaczyć użytkowników stosu podwójnego, którzy przesyłają żądania zarówno przez IPv4, jak i IPv6 i przełączają się między dwoma protokołami RFC 8305 dla kolejnych żądań.

Drugi scenariusz polega na tym, że jestem w skrajnym zasięgu punktu dostępowego Wi-Fi, a moje urządzenie „losowo” przełącza się między Wi-Fi a danymi komórkowymi.

Rozwiązania

W pierwszym scenariuszu możesz zagrozić utrzymaniu takiego bezpieczeństwa IP w sesjach, biorąc pod uwagę tylko pierwsze trzy oktety, ponieważ zwykle taki klaster serwerów proxy znajduje się w małej podsieci i będzie miał sąsiadujące adresy IP.

W drugim i trzecim scenariuszu zobaczysz zupełnie inne adresy IP klientów, nawet od niepowiązanych dostawców.

Nie łącz sesji z konkretnym adresem IP, który może zepsuć wrażenia użytkownika, a nie zapewnić rzeczywistą poprawę bezpieczeństwa.

HBruijn
źródło
27
Nikt już nie wiąże sesji z adresami IP, właśnie z tych powodów.
Michael Hampton
33
NIGDY nigdy nie łącz sesji z adresami IP, lata 80. zakończone! Mój ISP dostarcza do mojego telefonu kompletną sieć / 64, w której moja przeglądarka przeskakuje jak szalona.
bjoster
6
Oprócz tego, Multipath TCP staje się coraz bardziej popularny.
Czy Poyrazoğlu
3
Jeśli tworzysz CMS dla użytkowników technicznych, możesz zaznaczyć pole wyboru „ogranicz tę sesję tylko do adresu IP (xxx.yyy.zzz.iii)” na stronie logowania
Ferrybig
6
@bjoster to dlatego, że rozszerzenia prywatności IPv6 zmieniają adres, więc strony internetowe nie mogą śledzić cię samym IP (to nie jest problem z IPv4, ponieważ wiele osób
stoi
9

Zastanawiam się teraz, jakie są zagrożenia, pozwalając moim klientom na ciągłe przeskakiwanie między adresami IP w celu żądania strony (na przykład pliki CSS są wymagane przez xxx.xxx.xxx.xxx, a pliki JavaScript są wymagane przez yyy.yyy.yyy. rrr) Czy ogólnie powinienem na to zezwalać czy zakazać?

Podstawowym ryzykiem jest złośliwy użytkownik przejmujący sesję. Jeśli możesz zablokować jeden lub niewielki zestaw adresów IP, możesz zablokować użytkownikom całkowicie różne adresy IP przed przejęciem sesji.

Problem polega na tym, że niektórzy użytkownicy robią to zgodnie z prawem. Niezależnie od tego, czy używają proxy z równoważeniem obciążenia, czy znajdują się na marginesie dwóch bezprzewodowych punktów dostępowych (lub cokolwiek innego), używają wielu adresów IP. Więc prawie na to musisz pozwolić tym użytkownikom. I trudno powiedzieć, którzy użytkownicy wymagają wielu adresów IP, z wyjątkiem sytuacji, gdy żądają wielu adresów IP.

Jednym ze sposobów zmniejszenia tego wpływu jest użycie HTTPS. Następnie złośliwy aktor musi mieć sposób na złamanie bezpiecznej warstwy oraz pliku cookie sesji. W przypadku niepewnego połączenia złośliwy aktor może po prostu skorzystać z inspekcji sieci, aby skompromitować sesyjny plik cookie. Ale w przypadku HTTPS ten sam złośliwy aktor musi mieć dostęp do jednego z końców rozmowy. A jeśli złośliwy aktor to ma, nie trzeba używać innego adresu IP.

TL; DR : należy zasadniczo zezwolić na żądania z różnych adresów IP dla tego samego użytkownika. Istnieją uzasadnione powody, dla których może się to zdarzyć. Zamiast tego użyj HTTPS, aby chronić przed tą klasą exploitów.

mdfst13
źródło
4

jakie są zagrożenia, pozwalając moim klientom na ciągłe przeskakiwanie między adresami IP dla żądania strony

Z punktu widzenia bezpieczeństwa - zero ryzyka.

Teraz z praktycznego punktu widzenia. Oznacza to, że nie można używać niektórych rodzajów algorytmów ani do ochrony, ani do ochrony DoS .

Prostym sposobem na ograniczenie żądań użytkowników jest śledzenie według adresu IP. Ponieważ nie wymaga to interakcji z serwerem aplikacji, możesz w tym celu korzystać z usług na niższych poziomach. Robią to programy takie jak mod_evasive Apache. Nadal możesz korzystać z tych technik, ale zmiana adresów IP przez użytkownika zmniejszy ich skuteczność. Z drugiej strony użytkownicy i tak zmienią adresy IP, aby techniki te nigdy tak naprawdę nie były skuteczne.

Powiązanym, ale innym przypadkiem użycia jest ograniczanie nieudanych prób logowania. Zapobiega to zgadywaniu hasła z użyciem siły brute-force. Ale znowu nic nie możesz zrobić, jeśli użytkownicy zmienią adresy IP. Naprawdę poważny haker nawet nie używałby własnych maszyn. Po prostu kupi trochę czasu w botnecie (lub użyje swojego wcześniej zainfekowanego botnetu) i połączy się z twoją usługą za pośrednictwem komputerów 10 000 innych osób (adresy IP). Nie jest to tak naprawdę związane z ograniczaniem adresu IP użytkownika, ponieważ jest to logowanie wstępne, ale należy o tym pamiętać.

Slebetman
źródło
1

Istnieje kilka powodów, dla których użytkownik może przejść na nowy adres IP.

  1. Rozszerzenia prywatności IPv6, wielu klientów IPv6 będzie teraz przeskakiwać w obrębie / 64 w sieci LAN.
  2. Załaduj zrównoważone serwery proxy, żądanie klienta jest kierowane do jednego z kilku serwerów proxy z oddzielnym adresem IP.
  3. W pulach NAT granica nat jest skonfigurowana z wieloma adresami IP i przypisuje kombinacje adresów IP / portów z puli arbitarilly do połączeń TCP klientów.
  4. Użytkownik porusza się między różnymi sieciami lub częściami sieci, tak jak obecnie w telefonach.
  5. Użytkownicy korzystający z dwóch stosów mogą przeskakiwać między IPv4 i IPv6.

Zastanawiam się teraz, jakie jest ryzyko, że pozwalam moim klientom stale przeskakiwać między adresami IP w celu żądania strony

Zaletą blokowania sesji klienta na adresy IP jest utrudnienie kradzieży sesji. Jeśli atakujący ma mechanizm, który pozwala mu ukraść pliki cookie klientów, ale nie pozwala im nawiązywać połączeń z serwerem z adresu IP klienta, blokada IP zablokuje je przed kradzieżą sesji.

Minusem jest to, jak mówisz, spowoduje uszkodzenie niektórych użytkowników, dla których sesja zostanie unieważniona bez wyraźnego powodu.

Obecnie wydaje się, że większość witryn uważa, że ​​złamanie zabezpieczeń przewyższa zalety takiego blokowania.

Peter Green
źródło