Os artigos refletem a opinião pessoal do autor, e não de seus empregadores.
Mostrando postagens com marcador IPv6. Mostrar todas as postagens
Mostrando postagens com marcador IPv6. Mostrar todas as postagens

quarta-feira, 18 de maio de 2011

Segurança em IPv6 - parte 3 de 4

Mas a implementação de segurança no IPv6 não significa que o problema da segurança de rede estará resolvido, ou que o nivel de risco na web irá baixar sensivelmente. Primeiro porque todo software possui vulnerabilidades, e o IPv6 não está excluido. Em segundo lugar não há uma única implementação e sim centenas ou milhares. Todos os equipamentos e sistemas operacionais que se conectam em rede deverão  implementá-lo e cada fabricante realizou ou está realizando seu próprio desenvolvimento. Mesmo que sejam a partir dos mesmos padrões publicados pelos RFCs cada software é único e sujeito a erros. Um bom exemplo foram as vulnerabilidades encontradas em implementações do ICMPv6, a nova versão do Internet Control Message Protocol, tanto em Windows como em Linux e Mac OS. A vulnerabilidade no Windows permite que um intruso obtenha controle total do alvo  enquanto no FreeBSD  e Mac OS  permite um ataque de denial of service. Outro ponto de preocupação é o suporte de um sistema ao IPv6 não significar que todo o conjunto de especificações do protocolo foram implementadas. A RFC 4191, por exemplo, especifica aperfeiçoamentos no sistema de roateamento que impedem que intrusos desorganizem o esquema de roteamento. Porém sua implementação é opcional. Em geral muitos fabricantes estão lançando seu suporte à IPv6 em fases, aproveitando-se do fato dos clientes somente exigirem as funcionalidades mais elementares. O planejamento terá que ir além de apenas considerar o frágil selo “IPv6 suportado”, e verificar se as funcionalidades necessárias estão ou não implementadas no dispositivo.

Há também problemas com a própria especificação do IPv6, que vem sofrendo atualizações e correções desde a primeira publicação. O caso mais notório é o chamado RH0, ou a funcionalidade de  Routing Header Type 0, desenhada para possibilitar que se especifique no cabeçalho multiplos endereços de nós de rede intermediários. A vulnerabilidade surge ao permitir que um mesmo endereço seja indicado diversas vezes, possibilitando a um hacker sobrecarregar roteadores até a completa exaustão de seus recursos, o que significa um denial of service. A vulnerabilidade é séria a ponto do IETF eliminar por completo a funcionalidade da especificação via a RFC 5095: Deprecation of Type 0 Routing Headers in IPv6 (Desaprovação dos Cabeçalhos de Roteamento Tipo 0).

Outro problema potencial advém de uma funcionalidade criada para facilitar consideravelmente a obtenção de credenciais de rede pelos hosts. Conforme especificado na RFC 4862, os hosts em uma rede IPv6 podem obter sua configuração automaticamente a partir de roteadores por conexão stateless, sem controle de estado da sessão, através do protocolo ICMPv6. A nova funcionalidade não requer configuração no host, servidores e configuração mínima no roteador, o responsável em fornecer o endereço de rede. Para redes que requerem maior controle está disponível a especificação de DHCPv6, entretanto este não exclui a configuração stateless, e ambos podem conviver em uma mesma rede. As implicações de segurança são imediatas, embora perfeitamente controláveis. No entanto uma rede mal configurada (e são muitas) estaria aberta para que um intruso, sem necessidade alguma de autenticação, obtivesse credenciais e se comunicasse. O risco existe também em redes IPv4 com DHCP, porém há mais capacidade de gerenciamento e controle. Há ainda a possibilidade de um ataque denial of service, previsto e documentado na RFC 3756.

Também não podemos esquecer que muitas das ameaças de hoje independem do meio de transporte da Internet e ocorrem no sistema operacional ou na aplicação. É o caso dos novos ataques que surgiram com a Web 2.0, mensagens de phishing e as redes bot, ameaça comum nos últimos anos.  Como essas redes são criadas a partir da infecção de milhares ou milhões de computadores por phising ou downloads involuntários, o meio de transporte não fará diferença. Além disso as vulnerabilidades atuais de rede, mesmo relacionadas ao IPv4, não deixarão de existir, pois não haverá uma migração imediata de um padrão para outro. Por muitos anos ambos irão conviver, com todas as vulnerabilidades que surgem de implementações complexas e novas, cujos riscos ainda não estão totalmente mapeados. Equipamentos de rede, servidores e estações de trabalho irão conviver com ambos por muito tempo via métodos de coexistência. Portanto em um momento inicial é até esperado o aumento de vulnerabilidades como resultado de erros de configuração.

Além das questões de vulnerabilidades e ameaças, há outro impacto imediato para administradores de segurança: a compatibilidade de seus dispositivos de proteção de rede, entre firewalls, sistemas de prevenção de intrusos, controle de conteúdo e outros. O perigo não é o de quebra da rede, já que como dissemos as empresas conviverão por muito tempo com ambos os protocolos, mas o de invasões através dos túneis que poderão ser criados para passar tráfego IPVv6 encapsulado em IPv4. O tunelamento é um método que permite que dois dispositivos ou redes IPv6 se conectam via uma rede IPv4 através de um tunel onde o IPv6 é encapsulado em pacotes IPv4. Um sistema de segurança de rede que não reconheça o tunelamento nem os protocolos IPv6 nele encapsulados não poderá detectar ataques ou conteúdo indesejado. Certamente esse será um problema menor já que os administradores de segurança poderão controlar facilmente a situação, porém é possivel que em redes mal configuradas usuários ou mesmo invasores possam habilitar serviços de tunelamento sem conhecimento dos gerentes de rede, e poderão trafegar conteúdo não autorizado ou ataques facilmente.

(continua)

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)

quarta-feira, 11 de maio de 2011

Segurança em IPv6 - parte 1 de 4


Em 1 de Fevereiro de 2010 o último grupo de endereços livres disponiveis do sistema atual de endeçamento da Internet, conhecido como IPv4, foi concedido pela IANA (Internet Assigned Numbers Authority) ao APNIC, o comitê gestor dos endereços Internet para a Ásia e Pacífico. O fato é significativo mas não foi surpresa para ninguém. Há pelo vinte anos o fim do endereçamento tradicional da Internet é esperado e desde 1998 há uma solução: o IPv6. Quando criado, o IPv4 possuía uma quantidade de endereços que parecia inatingível para uma Internet ainda engatinhando e restrita: 4 bilhões. No entanto o crescimento vertiginoso da rede mundial fez com que essa quantia fosse insuficiente para todos os dispositivos de usuários, empresas e provedores de Internet, problema resolvido através do uso de NAT. Já o IPv6 possui 2128 (dois elevado a cento e vinte e oito) endereços, ou a formidável quantia de 340.282.366.920.938.463.463.374.607.431.768.211.456, suficiente para tudo e mais um pouco.

O fim dos endereços IPv4 nos leva portanto à fase seguinte do endereçamento Internet. Desde que foi lançado, há treze anos, o IPv6 foi muito pouco solicitado e implementado. Agora espera-se que o processo de adoção se inicie, liderado pelos provedores de serviço. Será uma migração lenta e gradual, onde ambos sistemas de endereços irão conviver por muitos anos, e que exigirá a atualização da infraestrutura de rede das empresas, muitas ainda utilizando equipamentos e sistemas antigos e incompatíveis. 

A adoção do IPv6 no Brasil também é incipiente, como se pode deduzir de pesquisa realizada entre os AS (Sistemas Autônomos) brasileiros pelo Centro de Estudos e Pesquisas em Tecnologias de Redes e Operações – certpro.br – ligado ao Comitê Gestor da Internet no Brasil, em fevereiro de 2010, e que obteve 237 respostas de 217 Sistemas Autônomos:
  • Apenas 33% possuiam bloco IPv6 próprio
  • Dos 99% que julgam necessário treinamento em IPv6, aproximadamente apenas 37% realizaram o curso ministrado pelo NIC.br ou algum outro treinamento
  • Apenas 16% anunciaram bloco IPv6 na Internet, sendo que 68% deles (ou 11% do público total) o fizeram por trânsito nativo IPv6
  • Apesar dos itens anteriores, 66% responderam que seu sitio web era naquele momento acessível por IPv6 e 63% ofereciam trânsito nativo a seus clientes corporativos
A pesquisa completa pode ser consultada no site http://ipv6.br mantido pelo NIC.br e não difere muito dos resultados em outros países, como mostram dados estatísticos dos RIR - Regional Internet Registries – os órgãos regionais responsáveis por endereçamento. O ARIN – responsável pelo América do Norte – reporta que recebeu em Janeiro e Fevereiro de 2011 o total de 499 requisições de endereços IPv4 contra 147 para IPv6. 

(continua)