- A alegação de que o IPv4 é mais seguro por usar NAT por padrão decorre de uma confusão entre segurança e tradução de endereços
- NAT (Network Address Translation) não é um recurso de segurança, mas sim um mecanismo de economia de endereços criado para lidar com a escassez de endereços IPv4
- O funcionamento do NAT se resume a permitir que vários dispositivos compartilhem um único IP público com base em mapeamento de portas
- Na prática, quem bloqueia o tráfego externo não é o NAT, e sim um firewall com inspeção de estado (stateful firewall)
- Mesmo em ambientes IPv6, o firewall bloqueia por padrão o tráfego não autorizado, portanto a ausência de NAT não significa enfraquecimento da segurança
Confusão entre NAT e segurança
- A ideia de que o IPv4 é mais seguro porque usa NAT é um equívoco
- NAT não é um recurso de segurança, mas uma tecnologia de economia de endereços (address conservation)
- Também é possível usar NAT no IPv6, mas isso não reforça a segurança
- O NAT permite que vários dispositivos de uma rede interna compartilhem um único endereço IP público
- Ele faz o roteamento reescrevendo (rewrite) o IP de destino com base na porta de destino do pacote
- Seu funcionamento segue regras de mapeamento de portas (port mapping) ou encaminhamento de portas (port forwarding) definidas pelo administrador da rede
Como o NAT funciona na prática
- Em um ambiente com NAT, o tráfego que entra vindo de fora não é encaminhado para dispositivos internos quando chega com uma porta de destino inesperada
- Esse tráfego permanece no dispositivo que possui o IP público e não é roteado para a rede interna
- Por isso, pode parecer que o NAT bloqueia o acesso externo, mas isso é apenas um efeito colateral e não um objetivo de projeto voltado à segurança
O papel do firewall
- O efeito de segurança frequentemente atribuído ao NAT na verdade vem de um firewall com inspeção de estado (stateful firewall)
- A maioria dos roteadores modernos inclui por padrão políticas de firewall que bloqueiam tráfego de entrada, independentemente de haver NAT ou não
- O firewall descarta (drop) tráfego de destino inesperado antes de reescrever pacotes ou fazer o roteamento
- Como exemplo, as regras padrão de firewall IPv6 de um roteador UniFi são as seguintes
- Permitir tráfego Established/Related (tráfego de resposta de saída)
- Bloquear tráfego Invalid
- Bloquear todo o restante do tráfego
Segurança em ambientes IPv6
- Mesmo em redes IPv6, as regras padrão do firewall bloqueiam tráfego de entrada não autorizado
- O mesmo nível de proteção se aplica mesmo sem usar NAT
- Para permitir tráfego não solicitado vindo de fora para um dispositivo IPv6, é necessário adicionar explicitamente regras de firewall
- Isso se aplica da mesma forma independentemente do uso de NAT
Conclusão
- Não há fundamento para a afirmação de que o IPv6 é menos seguro por não usar NAT
- A segurança real é determinada não pelo NAT, mas por políticas de firewall e regras de controle de tráfego
- Mesmo em ambientes IPv6, é possível manter uma estratégia de segurança de negação por padrão (default-deny) com a configuração adequada de firewall
1 comentários
Comentários do Hacker News
Recomenda-se dar uma olhada na seção 5 do RFC 4787 antes de participar da discussão
NAT não é firewall, mas ainda assim filtra tráfego e, por isso, fornece um certo nível de função de segurança
Na prática, o NAT evoluiu para além da simples tradução de endereços, e mesmo que o IPv6 não use NAT, é possível implementar a mesma filtragem com um firewall
O netfilter do Linux implementa tanto NAT quanto firewall, e as regras DNAT/SNAT da tabela
natfazem NAT, enquanto as regras REJECT/DROP da tabelafiltercumprem o papel de firewallQuando apenas regras de NAT são aplicadas, até mesmo tráfego que não pertence a conexões existentes passa normalmente
Ela aborda o processo em que o NAT cria uma tabela de estado ao estabelecer conexões para fora e permite os pacotes de entrada correspondentes
Ou seja, o “filtering” desse documento não se refere a conexões de entrada não solicitadas
O IPv6 pode ser tão seguro quanto o IPv4, mas isso depende da configuração
É um mau hábito de segurança quando engenheiros de sistemas e aplicações não entendem o problema como um todo e dependem de NAT e de firewalls de perímetro
Especialmente quanto mais se afastam das implementações reais, menor é a confiabilidade do RFC
Nas redes móveis dos EUA, usam-se endereços IPv6 sem NAT
Por exemplo, a T-Mobile usa 464XLAT para tunelar IPv4 sobre IPv6
Isso mostra que firewalls com estado podem operar em grande escala sem NAT
Isso foi testado com Termux e netcat, e o IPv4 estava atrás de CGNAT, mas o IPv6 permitia conexão direta
Se a capacidade da rede for insuficiente, isso precisa ser resolvido
Quando o IPv6 se tornar universal, as pessoas vão considerar natural se comunicar diretamente
Como engenheiro de redes, uma das primeiras coisas aprendidas foi a relação entre NAT e segurança
Os endereços privados (192.168.0.1) do IPv4 são difíceis de acessar de fora, enquanto os endereços globais do IPv6 podem expor informações do dispositivo
O IPv6 tem alternativas como Prefix Translation, que permitem manter parte das vantagens do NAT e ainda oferecer acesso transparente
Para uma comparação justa, ambos precisam ser alinhados como endereços internos ou externos
Em um ambiente com CGNAT, conexões de entrada não são possíveis, então no IPv6 isso também pode ser restringido da mesma forma
Dá para ocultar prefixos com NAT66, mas o ganho prático de segurança não é grande
Muitos hackers confundem a diferença entre NAT e firewall
NAT não existe para segurança; a segurança é fornecida pelo firewall
NAT é namespacing, e firewall é segurança baseada em políticas
O próprio namespacing também é uma propriedade de segurança poderosa, pois impede que o atacante sequer “saiba o nome” dos recursos
Um firewall IPv6 pode expor tudo ao mundo inteiro por causa de uma única regra errada
Mesmo sem firewall, o NAT por si só pode proteger recursos internos
O NAT reduz a superfície de ataque de uma rede doméstica a um único roteador
Já os firewalls podem ter configurações padrão diferentes, o que faz o IPv6 parecer, para o usuário comum, um retrocesso em segurança
Dizer que o UPnP quebra a segurança do NAT é como dizer que o PCP quebra a segurança do firewall
Sobre a alegação de que a característica de bloqueio padrão do NAT é uma vantagem de segurança do IPv4
Como as regras de bloqueio padrão do IPv6 oferecem o mesmo nível de segurança, não há diferença estrutural de segurança
O NAT no IPv4 e as regras de bloqueio padrão no IPv6 mantêm as mesmas condições invariáveis
Ambos podem se tornar igualmente vulneráveis se forem mal configurados
Houve um caso em que confiaram demais no NAT e um SBC foi invadido por falta de configuração do firewall IPv6
A causa foi um erro de configuração no IPv6, não o NAT
O NAT também cria problemas de segurança
Ele pode causar ataques de reflexão ou dificultar rastreamento por causa da separação entre endereço e endpoint
Houve no passado um caso da AOL, que compartilhava poucos endereços de saída e dificultava o bloqueio de alguns usuários
Mas com o tempo o NAT passou a ser visto quase como uma crença de segurança (cargo cult)
O efeito do NAT varia conforme o ISP e a configuração do roteador
O NAT não foi concebido como recurso de segurança, mas fornece um efeito colateral de segurança
No IPv6, quando cada dispositivo recebe um endereço direto, é necessário um firewall com bloqueio padrão
Link da especificação do UPnP
Sobre dizer que quem afirma que NAT é a base da segurança não entende de redes
Compartilhou um caso em que um servidor SIP falhou por causa do acúmulo de endereços de privacidade
A discussão relacionada ainda continua válida no tópico de VOIP no Reddit
Sobre a alegação de que NAT não descarta tráfego de entrada
O NAT apenas faz tradução de endereços e não descarta pacotes
Foi dito que o texto foi revisado para refletir esse feedback