Os artigos refletem a opinião pessoal do autor, e não de seus empregadores.

terça-feira, 17 de maio de 2011

Segurança em IPv6 - parte 2 de 4

Aperfeiçoamentos em Segurança

Mas o IPv6 não é apenas um novo sistema de endereçamento e sim uma toda nova suíte de protocolos para Internet resolvendo vários dos problemas que surgiram com o crescimento da rede mundial, segurança entre eles. O IPv4 foi criado sem maiores preocupações com segurança. Inicialmente porque na época isso realmente não era um problema. O conjunto de protocolos começou a ser definido ainda no início dos anos 70 e oficializado em 1981 pela RFC 791 do IETF, quando a Internet tal qual a conhecemos hoje, acessivel literalmente de qualquer lugar, ainda estava na imaginação de alguns visionários. Outro motivo é que por definição o IPv4 foi criado com o intuito de ser um protocolo totalmente transparente. Dessa forma segurança deveria ser implementado pelas “pontas” da comunicação, o que realmente ocorreu. Já o IPv6 implementa nativamente duas características de segurança. A primeira delas é a obrigatoriedade da criptografia IPSec em toda a rede, o que aumentará significativamente a segurança dos dados em trânsito. A implementação inclui o IKE (Internet Key Exchange), protocolo encarregado da troca de chaves de criptografia entre as pontas da comunicação. No IPv4 sua implementação é opcional e ocorre apenas em alguns seguimentos de rede ou aplicações consideradas críticas. Outra funcionalidade é a de autenticação de origem e integridade. Ambas funções são implementadas através de dois cabeçalhos extendidos (extension headers): Encrypted Security Payload (ESP) e Authentication Header (AH) respectivamente.

O conceito de cabeçalho extendido é uma das inovações do novo protocolo. O objetivo dos engenheiros era simplificar o cabeçalho dos pacotes e assim foi definida uma parte fixa, de 40 octetos ou 320 bits, e uma parte variável. O primeiro contém os campos de versão (version), indicador de prioridade de entrega (traffic class),  informação de roteamento (flow label), tamanho (payload lenght), indicação do próximo cabeçalho (next header), o contador de roteamento que substituiu o time to live do IPv4 (hop limit) e endereços de origem e destino. Apesar de ser maior o novo cabeçalho possui menos informação e é processado mais rapidamente que o anterior.

Comparativo de cabeçalhos IPv4 e IPv6. Fonte: Cisco
Informações adicionais para processamento dos pacotes estão armazenadas nos cabeçalhos extendidos, que podem ser nenhum, um ou vários. Entre estes cabeçalhos estão os Encrypted Security Payload (ESP) e Authentication Header (AH). Além disso considero como aperfeiçoamento a implementação mandatória e nativa de QoS, que embora não seja totalmente relacionado à segurança, impede alguns dos problemas de tráfego indesejado que ocorrem hoje. Também a nova estrutura de endereçamento dificulta algumas práticas comuns, como o port scanning, e a distribuição automática dos worms, que teriam que atualizar seus métodos de distribuição a fim de manter o grau de eficiência. No IPv4, para que um port scanning ou worm cubra toda uma subnet típica seria necessário o envio de  256 testes de identificação de máquinas ativas, como uma simples mensagem de ping. Já no IPv6 o tamanho default de uma subnet é 264 ou mais de 18 quintilhões  de endereços possíveis. Varrer todo esse espaço passar a ser questão de anos ao invés de segundos. Entretanto isso não significa o fim dos worms ou de técnicas de mapeamento de rede, que com certeza irão evoluir.

Outra vantagem do IPv6 é a quase erradicação da fragmentação de pacotes, típico recurso usado por hackers para evadir sistemas de proteção como firewalls e sistemas de prevenção de intrusos. A RFP 2460 especifica 1280 octetos como tamanho mínimo para os pacotes que trafegam em rede, além de também especificar que os pacotes maiores que o limite especificado no MTU serão fragmentados no host de origem via um cabeçalho extendido e não mais por roteadores ao longo do caminho.

Por outro lado há mudanças que podem levar administradores de rede a cometer erros e abrir brechas. No IPv4 nos acostumamos a mascarar os hosts de nossa rede através do NAT, que embora criado como paliativo para a falta de endereços IP se tornou um recurso a mais de segurança. Pois não há nada parecido com o NAT em IPv6, que implementa o conceito de comunicação ponta a ponta no qual cada host ou elemento terá um endereço válido, não mascarado. Dessa forma o seu computador pessoal em sua casa e escritório, seu celular e seu carro  terão endereços válidos de Internet.  Isso nos leva a uma outra questão: DNS. Estamos acostumados a conhecer endereços IP de servidores e outros dispositivos conectados à rede. Assim dizemos facilmente “conecte-se ao 192.168.125.10”. Isso em IPv6 seria convertido a “conecte-se ao 3ffe:1900:4545:3:200:f8ff:fe21:67cf”! Mesmo sendo possível algumas simplificações, será na prática impossivel o uso de endereços IP para nomear computadores, o que implicará no uso extensivo de DNS, hoje utilizado normalmente apenas para servidores.

Há mudanças menores, mas que devem também ser conhecidas. O tradicional broadcast também deixou de existir, sendo substituido por um endereço multicast que se comunica com todos os hosts locais, o link-local. Outra alteração foi no ARP, substituído pelo neighbor discovery. A função é semelhante porém uma vez mais a configuração mal feita poderá comprometer a rede e permitir que um intruso possa mais facilmente mapeá-la. Seja uma mudança radical ou pequena, elas abrem brechas para a mais comum das vulnerabilidades: os erros humanos. Não é a toa que é esperado um aumento de vulnerabilidades nos primeiros anos de migração.

(continua)

Nenhum comentário:

Postar um comentário