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?
Réponses:
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.
la source
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.
la source
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.
la source
Il existe plusieurs raisons pour lesquelles un utilisateur peut passer à une nouvelle adresse IP.
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.
la source