Ver Feed RSS

Tecnologia de Redes, Mobilidade e Inovação

Como um cliente IPv6 pode, sem querer, derrubar um servidor IPv4

Avalie este Post de Blog
Existem hoje várias rede IPv6 no mundo, no entanto muitos serviços e sites só estão disponíveis via IPv4. Então se usa o NAT ou Proxy como mecanismo para permitir com que as redes IPv6 "enxerguem" o mundo IPv4. Até ai tudo bem.

No entanto existe risco de, alguma forma, um cliente IPv6 causar transtorno (mesmo que involuntariamente) em servidores IPv4? A resposta é sim, desde que esse servidores IPv4 estejam mal configurados ou mal preparados.

Quando a aplicação IPv4 utiliza apenas os parâmetros vindos da camada de transporte (ex.: TCP ou UDP) e camadas inferiores, não existe grande risco, porque essas informações são seguras (ou foram criadas na rede local ou transformadas adequadamente pelo NAT/Proxy).

O problema é quando a aplicação utiliza informações de endereçamento vindas da camada de aplicação. O NAT não altera as informações da camada de aplicação e o Proxy pode alterar, mas para pior: pode incluir informações sobre o IPv6 da estação que originou a requisição.

Vamos exemplificar: os servidores Proxy normalmente utilizam o cabeçalho "Via" para informar do seu trabalho (informar que a requisição passou por um Proxy) e normalmente inserem o IP original nesse cabeçalho.

Alguns sites usam a informação do cabeçalho Via em suas aplicações. As vezes para tentar bloquear usuários indesejados atrás de NAT (sem bloquear os demais usuários do mesmo Proxy), outras vezes para algo mais simples como log e track (saber qual usuários acessou cada página, mesmo estando ambos atrás do mesmo Proxy).

Toda e qualquer informação da camada de aplicação pode ser falsificada pelo usuário, então deveria ser tratada com cuidado e verificada antes de ser processada. No entanto sabemos que isso não ocorre na vida prática: na pressa, o desenvolvedor cria a aplicação da maneira mais rápida possível, então fica sem tempo de fazer verificações e IFs nos parâmetros de entrada.

O que ocorre então, se um servidor web, que usa o cabeçalho Via para fazer log detalhado dos usuários, encontra um IPv6?No pior caso, pode derrubar o servidor, mas acho pouco provável que alguém escreva uma aplicação tão ruim.

O mais provável é que o usuário IPv6 atrás de um Proxy receba uma mensagem de erro ou simplesmente não receba nada (página em branco).

E qual o efeito disso para o administrador do servidor web? Ele vai começar a receber reclamações de problemas de acesso misteriosos. Primeiro, serão poucos (poucos usuários com IPv6 atrás de Proxy), então será considerado "algum problema na rede do usuário". Mas com o passar do tempo, o número de rede IPv6 atrás de Proxies irá crescer, e a quantidade de reclamações aumentar.

Se considerarmos que a maioria dos usuários nem vai saber que está usando IPv6, raramente alguém irá ligar uma coisa com a outra. Por outro lado, o servidor web não irá gerar nenhum aviso ao administrador do que está acontecendo. Serão dias e dias de caçada até que o administrador finalmente descubra o que está acontecendo.

Resumo

Existe várias aplicações que, em algum momento, podem transportar o IP original na sua camada de aplicação, para citar algumas: HTTP, FTP e SIP.

Qualquer desenvolvedor ou administrador de rede deve pensar com muito carinho quando for realizar alguma lógica de processamento baseado no IP de origem do usuário, principalmente se essa informação for retirada do payload de aplicação (das informações da aplicação) e não do cabeçalho TCP/IP.

Caso contrário, podem surgir no futuro breve problemas causados por esses falhas. E são problemas difíceis de depurar.
Categorias
Não Categorizado

Comentários


+ Enviar Comentário