Por que devo permitir vários endereços IP em um site para uma única sessão?


18

Espero que minha pergunta corresponda ao escopo deste site.

Estou desenvolvendo um CMS . Atualmente, meus usuários conectados estão bloqueados no endereço IP da sessão. Infelizmente, uma pequena parte da minha base de usuários pula constantemente entre dois ou mais endereços IP. A maioria deles provavelmente usa balanceadores de carga. Tecnicamente, não é necessário bloquear as sessões dos usuários em um endereço IP. Eu não esperava que os clientes alternassem entre vários endereços IP para uma única solicitação de página no meu site.

Gostaria de saber agora, quais são os riscos em permitir que meus clientes saltem constantemente entre endereços IP para uma solicitação de página (por exemplo, arquivos CSS são solicitados por xxx.xxx.xxx.xxx e arquivos JavaScript são solicitados por yyy.yyy.yyy. aaaa)? Devo geralmente permitir ou proibir isso?


39
Você nem precisa de balanceadores de carga para pular IPs. Conecte-se ao telefone no metrô, você pode obter um IP diferente a cada poucos minutos enquanto o trem viaja e depois quando o telefone alterna para o WiFi em um destino.
whatsisname 28/06

13
Também para laptops que se deslocam entre locais (por exemplo, casa> trabalho> starbucks). Além disso: endereços aleatórios IPv6 (extensões de privacidade IPv6 SLAAC).
marcelm 28/06

intuitivamente, eu esperaria que o cliente pulando em diferentes fontes Ips causasse problemas se fosse algo mais do que "ocasionalmente".
Tom H

11
Se você estiver desenvolvendo um aplicativo da Web que será instalado em uma rede que você controla ou se tiver conhecimento, pode decidir fazer isso por segurança, pois poderá dizer "nessa situação vários IPs não acontecerão, pois os usuários precisam acesse isso a partir do WS e não há balanceadores de carga ou outras coisas que possam alterar o IP "... nesse caso, você poderá rastrear os IPs dos usuários, pois o WS sempre pode ter o mesmo (ou pode mudar apenas uma vez a cada dois meses)
Bakuriu

11
@ TomH Não, a grande maioria dos aplicativos da web não se importa com o seu endereço IP, eles aceitam os mesmos cookies em uma solicitação HTTP por uma nova conexão TCP. Somente porcaria demente e mal projetada bloqueiam sua sessão para um IP ou uma conexão.
Navin

Respostas:


35

uma pequena parte da minha base de usuários pula constantemente entre dois ou mais endereços IP.

Causas

Supondo que seus usuários não estejam tentando ocultar ativamente seus endereços IP reais usando um serviço de anonimização ...:

A maioria dos exemplos corporativos que vi são causados ​​por empresas maiores e alguns provedores de serviços de Internet que usam um cluster de servidores proxy, cada um com um endereço IP externo diferente, com solicitações de usuários que equilibram a carga nesse cluster.

Você pode ver os usuários do Dual Stack fazendo solicitações por IPv4 e IPv6 e alternando entre os dois protocolos RFC 8305 para solicitações subsequentes.

O outro cenário é quando estou na faixa extrema de um ponto de acesso Wi-Fi e meu dispositivo alterna "aleatoriamente" entre Wi-Fi e dados de celular.

Soluções

No primeiro cenário, você pode comprometer a manutenção desse "endereço IP" de segurança em suas sessões, considerando apenas os três primeiros octetos, pois normalmente esse cluster de servidores proxy está dentro de uma pequena sub-rede e terá endereços IP vizinhos.

No segundo e terceiro cenário, você verá endereços IP de clientes completamente diferentes, até de provedores não relacionados.

Não vincule suas sessões a um endereço IP específico, com maior probabilidade de interromper a experiência do usuário do que fornecer segurança aprimorada real.


27
Ninguém liga mais as sessões aos endereços IP, exatamente por esses motivos.
Michael Hampton

33
NUNCA amarre sessões a endereços IP, os anos 80 terminaram! Meu provedor de serviços de Internet fornece uma rede completa / 64 ao meu telefone na qual meu navegador salta como um louco.
bjoster 28/06

6
Além de tudo, o Multipath TCP está se tornando cada vez mais comum.
Pode Poyrazoğlu

3
Se você estiver criando seu CMS para usuários técnicos, poderá colocar uma caixa de seleção "limitar esta sessão apenas ao seu ip (xxx.aaa.zzz.iii)" na página de login
Ferrybig

6
@bjoster isso é porque as extensões de privacidade IPv6, é manter a comutação de endereços para sites não podem segui-lo pelo menos o seu ip (isto não é um problema com o IPv4, como várias pessoas estão por trás do mesmo endereço)
Ferrybig

9

Gostaria de saber agora, quais são os riscos em permitir que meus clientes saltem constantemente entre endereços IP para uma solicitação de página (por exemplo, arquivos CSS são solicitados por xxx.xxx.xxx.xxx e arquivos JavaScript são solicitados por yyy.yyy.yyy. aaaa)? Devo geralmente permitir ou proibir isso?

O risco principal é um usuário mal-intencionado que está invadindo a sessão. Se você pudesse bloquear um ou um pequeno conjunto de endereços IP, poderia impedir que usuários de endereços IP completamente diferentes invadissem a sessão.

O problema é que alguns usuários fazem isso legitimamente. Estejam eles usando um proxy com balanceamento de carga ou estejam nas margens de dois pontos de acesso sem fio (ou o que seja), eles usam vários endereços IP. Então você praticamente precisa permitir isso para esses usuários. E é difícil dizer quais usuários exigem vários endereços IP, exceto quando solicitam de vários endereços IP.

Uma maneira de reduzir o impacto disso é usar HTTPS. Em seguida, o agente mal-intencionado precisa ter uma maneira de comprometer a camada segura e o cookie da sessão. Em uma conexão insegura, o agente mal-intencionado pode simplesmente usar a inspeção de rede para comprometer um cookie de sessão. Porém, no HTTPS, o mesmo agente malicioso precisa ter acesso a um dos fins da conversa. E se o ator malicioso tiver isso, não será necessário usar um IP diferente.

TL; DR : geralmente você deve permitir solicitações de diferentes endereços IP para o mesmo usuário. Existem razões legítimas para isso acontecer. Use HTTPS para se proteger dessa classe de explorações.


4

quais são os riscos em permitir que meus clientes pulem constantemente entre endereços IP para uma solicitação de página

Do ponto de vista da segurança - zero risco.

Agora, do ponto de vista prático. Isso significa que você não pode usar certos tipos de algoritmos para segurança ou proteção contra DoS .

Uma maneira simples de controlar as solicitações do usuário é rastrear pelo endereço IP. Como isso não precisa interagir com o servidor de aplicativos, você pode usar serviços em níveis inferiores para fazer isso. Software como o mod_evasive do Apache faz isso. Você ainda pode usar essas técnicas, mas a alteração dos endereços IP do usuário reduzirá sua eficácia. Por outro lado, os usuários alternarão os endereços IP de qualquer maneira, para que essas técnicas nunca tenham sido realmente eficazes.

Um caso de uso relacionado, mas diferente, está impedindo tentativas de logon com falha. Isso evita a adivinhação de senha de força bruta. Mas, novamente, não há nada que você possa fazer se os usuários alterarem os endereços IP. Um hacker realmente sério nem usaria suas próprias máquinas. Ele acabou de comprar algum tempo em uma botnet (ou usar sua própria botnet infectada anteriormente) e se conectar ao seu serviço através de 10.000 PCs de outras pessoas (endereços IP). Isso não está realmente relacionado à limitação do endereço IP do usuário porque é pré-login, mas é algo a ter em mente.


1

Existem várias razões pelas quais um usuário pode pular para um novo endereço IP.

  1. Com as extensões de privacidade do IPv6, muitos clientes do IPv6 atualmente pulam dentro do / 64 na LAN.
  2. Carregar proxies balanceados, a solicitação do cliente é roteada para um dos vários proxies, cada um com um IP separado.
  3. Pools NAT, o nat de borda é configurado com vários endereços IP e atribui combinações de IP / porta do pool arbitrariamente às conexões TCP do cliente.
  4. O usuário se move entre diferentes redes ou partes de uma rede, comuns nos telefones atualmente.
  5. Os usuários de pilha dupla podem alternar entre IPv4 e IPv6.

Gostaria de saber agora, quais são os riscos em permitir que meus clientes pulem constantemente entre IPs para uma solicitação de página

A vantagem de bloquear as sessões do cliente nos IPs é que torna os ataques de roubo de sessão mais difíceis. Se um invasor tiver um mecanismo que permita roubar os cookies dos clientes, mas não faça conexões com o servidor a partir do endereço IP do cliente, o bloqueio do IP impedirá que eles roubem a sessão.

A desvantagem é que, como você diz, causará falhas para alguns usuários que consideram a sessão invalidada sem motivo óbvio.

Atualmente, a maioria dos sites parece pensar que a quebra supera os benefícios desse bloqueio.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.