Pourquoi devrais-je autoriser plusieurs adresses IP sur un site Web pour une seule session?

18

J'espère que ma question correspond à la portée de ce site.

Je développe un CMS . Actuellement, mes utilisateurs connectés sont verrouillés sur leur adresse IP pour la session. Malheureusement, une petite partie de ma base d'utilisateurs passe constamment entre deux ou plusieurs adresses IP. La plupart d'entre eux utilisent probablement des équilibreurs de charge. Techniquement, il n'est pas nécessaire de verrouiller les sessions des utilisateurs sur une seule adresse IP. Je ne m'attendais pas à ce que les clients basculent entre plusieurs adresses IP pour une seule demande de page sur mon site Web.

Je me demande maintenant, quels sont les risques de permettre à mes clients de basculer constamment entre les adresses IP pour une demande de page (par exemple, les fichiers CSS sont demandés par xxx.xxx.xxx.xxx et les fichiers JavaScript sont demandés par yyy.yyy.yyy. aaaa)? Dois-je généralement autoriser ou interdire cela?

yoru
la source
39
Vous n'avez même pas besoin d'équilibreurs de charge pour contourner les adresses IP. Connectez-vous sur votre téléphone dans le métro, vous obtiendrez peut-être une IP différente toutes les quelques minutes pendant le trajet en train, puis à nouveau lorsque votre téléphone passera au WiFi à destination.
whatsisname
13
Aussi pour les ordinateurs portables se déplaçant entre les emplacements (par exemple, maison> travail> Starbucks). Aussi: adresses aléatoires IPv6 (extensions de confidentialité IPv6 SLAAC).
marcelm
intuitivement, je m'attendrais à ce que le client sautant sur différentes sources Ips cause des problèmes si c'était plus qu'occasionnellement.
Tom H
1
Si vous développez une application Web qui sera installée sur un réseau que vous contrôlez ou si vous avez connaissance de vous, vous pouvez décider de le faire pour des raisons de sécurité, car vous pourrez peut-être dire "dans cette situation, plusieurs adresses IP ne se produiront pas car les utilisateurs doivent accéder à cela à partir de leur WS et il n'y a pas d'équilibreurs de charge ou d'autres choses entre les deux qui peuvent changer leur IP "... dans ce cas, vous pourriez même être en mesure de suivre les IP des utilisateurs puisque leur WS peut toujours avoir le même (ou pourrait ne changer qu'une fois tous les deux mois)
Bakuriu
1
@TomH Non, la grande majorité des webapps ne se soucient pas de votre adresse IP, elles accepteront les mêmes cookies dans une requête HTTP via une nouvelle connexion TCP. Seule la merde démente et mal conçue verrouille votre session sur une IP ou une connexion.
Navin

Réponses:

35

une petite partie de ma base d'utilisateurs saute constamment entre deux ou plusieurs adresses IP.

Les causes

En supposant que vos utilisateurs n'essaient pas activement de cacher leurs vraies adresses IP en utilisant un service d'anonymisation ...:

La plupart des exemples d'entreprise que j'ai vus sont causés par de plus grandes entreprises et certains fournisseurs de services Internet utilisant un cluster de serveurs proxy, chacun avec une adresse IP externe différente, les demandes des utilisateurs étant équilibrées en charge sur ce cluster.

Vous pouvez voir des utilisateurs Dual Stack faire des demandes sur IPv4 et IPv6 et basculer entre les deux protocoles RFC 8305 pour les demandes suivantes.

L'autre scénario est lorsque je suis à la portée extrême d'un point d'accès Wi-Fi et que mon appareil bascule "au hasard" entre le Wi-Fi et les données cellulaires.

Solutions

Dans le premier scénario, vous pourriez faire des compromis sur le maintien de cette "sécurité" d'adresse IP dans vos sessions en ne considérant que les trois premiers octets, car généralement un tel cluster de serveurs proxy se trouvent tous dans un petit sous-réseau et auront des adresses IP voisines.

Dans les deuxième et troisième scénarios, vous verrez des adresses IP de client complètement différentes, provenant même de fournisseurs indépendants.

Ne liez pas vos sessions à une adresse IP spécifique, qui est plus susceptible de perturber l'expérience utilisateur que de fournir une sécurité réellement améliorée.

HBruijn
la source
27
Personne ne lie plus les sessions aux adresses IP, exactement pour ces raisons.
Michael Hampton
33
NE JAMAIS lier des sessions à des adresses IP, les années 80 sont terminées! Mon FAI fournit un réseau complet / 64 à mon téléphone dans lequel mon navigateur saute comme un fou.
bjoster le
6
En plus de tout, Multipath TCP devient de plus en plus courant.
Can Poyrazoğlu
3
Si vous créez votre CMS pour les utilisateurs techniques, vous pouvez mettre une case "limiter cette session à votre ip (xxx.yyy.zzz.iii) uniquement" sur la page de connexion
Ferrybig
6
@bjoster c'est parce que les extensions de confidentialité IPv6, il continue de changer d'adresse afin que les sites Web ne puissent pas vous suivre par votre ip seul (ce n'est pas un problème avec IPv4, car plusieurs personnes sont derrière la même adresse)
Ferrybig
9

Je me demande maintenant, quels sont les risques de permettre à mes clients de basculer constamment entre les adresses IP pour une demande de page (par exemple, les fichiers CSS sont demandés par xxx.xxx.xxx.xxx et les fichiers JavaScript sont demandés par yyy.yyy.yyy. aaaa)? Dois-je généralement autoriser ou interdire cela?

Le risque principal est un utilisateur malveillant détournant la session. Si vous pouviez vous limiter à une ou à un petit ensemble d'adresses IP, vous pourriez empêcher les utilisateurs d'adresses IP entièrement différentes de détourner la session.

Le problème est que certains utilisateurs le font légitimement. Qu'ils utilisent un proxy à charge équilibrée ou qu'ils soient en marge de deux points d'accès sans fil (ou autre), ils utilisent plusieurs adresses IP. Vous devez donc à peu près le permettre à ces utilisateurs. Et il est difficile de dire quels utilisateurs ont besoin de plusieurs adresses IP, sauf lorsqu'ils demandent à partir de plusieurs adresses IP.

Une façon de réduire l'impact de ceci est d'utiliser HTTPS. Ensuite, l'acteur malveillant doit avoir un moyen de compromettre la couche sécurisée ainsi que le cookie de session. Sur une connexion non sécurisée, l'acteur malveillant pourrait simplement utiliser l'inspection du réseau pour compromettre un cookie de session. Mais via HTTPS, le même acteur malveillant doit avoir accès à l'une des extrémités de la conversation. Et si l'acteur malveillant le possède, il n'est pas nécessaire d'utiliser une adresse IP différente.

TL; DR : vous devez généralement autoriser les demandes provenant d'adresses IP différentes pour le même utilisateur. Il y a des raisons légitimes à cela. Utilisez HTTPS à la place pour vous protéger de cette classe d'exploits.

mdfst13
la source
4

quels sont les risques de permettre à mes clients de basculer constamment entre les adresses IP pour une demande de page

Du point de vue de la sécurité - zéro risque.

Maintenant, d'un point de vue pratique. Cela signifie que vous ne pouvez pas utiliser certains types d'algorithmes pour la sécurité ou la protection DoS .

Un moyen simple de limiter les demandes des utilisateurs consiste à effectuer un suivi par adresse IP. Comme cela n'a pas besoin d'interagir avec votre serveur d'applications, vous pouvez utiliser des services à des niveaux inférieurs pour ce faire. Un logiciel comme mod_evasive d'Apache le fait. Vous pouvez toujours utiliser ces techniques, mais la modification des adresses IP des utilisateurs réduira leur efficacité. Là encore, les utilisateurs changeront de toute façon les adresses IP, de sorte que ces techniques n'ont jamais vraiment été efficaces.

Un cas d'utilisation connexe, mais différent, limite les tentatives de connexion infructueuses. C'est pour empêcher la devinette du mot de passe par force brute. Mais encore une fois, vous ne pouvez rien faire de toute façon si les utilisateurs changent d'adresse IP. Un pirate vraiment sérieux n'utiliserait même pas ses propres machines. Il venait d'acheter du temps sur un botnet (ou d'utiliser son propre botnet précédemment infecté) et de se connecter à votre service via 10 000 PC (adresses IP) d'autres personnes. Ce n'est pas vraiment lié à la limitation de l'adresse IP de l'utilisateur car c'est une pré-connexion, mais c'est quelque chose à garder à l'esprit.

Slebetman
la source
1

Il existe plusieurs raisons pour lesquelles un utilisateur peut passer à une nouvelle adresse IP.

  1. Extensions de confidentialité IPv6, de nombreux clients IPv6 vont de nos jours sauter dans le / 64 sur le réseau local.
  2. Charger des proxys équilibrés, la demande des clients est acheminée vers l'un des plusieurs proxys dotés chacun d'une IP distincte.
  3. Pools NAT, le border nat est configuré avec plusieurs adresses IP et attribue des combinaisons IP / port du pool arbitrairement aux connexions TCP client.
  4. L'utilisateur se déplace entre différents réseaux ou parties d'un réseau, ce qui est courant avec les téléphones de nos jours.
  5. Les utilisateurs à double pile peuvent sauter entre IPv4 et IPv6.

Je me demande maintenant, quels sont les risques de permettre à mes clients de sauter constamment entre les IP pour une demande de page

L'avantage de verrouiller les sessoins des clients sur les adresses IP est qu'il rend plus difficile les attaques par vol de session. Si un attaquant dispose d'un mécanisme qui lui permet de voler les cookies des clients mais ne leur permet pas de se connecter à votre serveur à partir de l'adresse IP des clients, le verrouillage IP les empêchera de voler la session.

L'inconvénient est que, comme vous le dites, cela entraînera une rupture pour certains utilisateurs qui trouvent leur session invalidée sans raison évidente.

De nos jours, la plupart des sites semblent penser que la rupture l'emporte sur les avantages d'un tel verrouillage.

Peter Green
la source