Banir endereços IPv6

14

Atualmente, estou acostumado a usar ferramentas como o fail2ban para manter o tráfego indesejado longe de meus servidores banindo endereços IPv4: muitas entradas de log ruins por IP, proíbem o IP.

No entanto, quando o mundo completa a migração para o IPv6, a proibição de endereços únicos provavelmente não funcionará mais, já que um computador ou invasor de botnet "normal" possui muitos endereços IPv6?

Se eu quiser bloquear usuários do IPv6, qual seria a melhor maneira de fazer isso? Use uma determinada máscara de IP ou outra coisa?

Que tal fazer "heurística de upscaling" quando você obtém múltiplos hits individuais dentro do IPv6, então bane todo o bloco?

Para mim, é mais importante atenuar a ameaça. Se alguns usuários genuínos pobres pertencerem ao mesmo bloco com IPs bloqueados, então é um problema entre essas pessoas e seu ISP para obter esse netblock limpo.

    
por Mikko Ohtamaa 25.09.2014 / 12:19

3 respostas

6

Banning por / 128 não é dimensionado quando uma sub-rede de tamanho / 64 é usada para um ataque. Você vai acabar com 2 ^ 64 entradas na tabela, potencialmente causando uma negação de serviço.

Os usuários finais sempre receberão um / 56 por política de atribuição de endereço global. As empresas sempre receberão um / 48 por endereço global

Veja: link / 128 nunca deve ser atribuído a um servidor / usuário, a designação mínima para outra entidade (servidor / vps cliente) deve ser um / 64. A designação mínima para um site deve ser um / 56.  Dar / 128s é fundamentalmente quebrado e deve ser considerado um erro de configuração.

Portanto, eu recomendo o banimento temporário por / 64, dado que um usuário final típico só terá acesso a 2 ^ 8 / 64s, não deve introduzir muitas entradas na tabela de banimento.

    
por 14.12.2014 / 13:29
10

Qualquer resposta à sua pergunta envolverá alguma quantidade de adivinhação. As implementações de IPv6 ainda são poucas o suficiente para que simplesmente não saibamos ainda, como exatamente o cenário de ameaças será.

O grande número de endereços IPv6 apresentará várias alterações no cenário de ameaças que você terá que considerar.

Primeiro de tudo, com o IPv4, é totalmente factível para um invasor verificar o número de porta padrão de algum serviço vulnerável em todos os 3700 milhões de endereços IPv4 roteáveis. Esses ataques não segmentados não são viáveis com o IPv6. Esses ataques que você ainda vê terão que ser mais direcionados. Se isso significa que teremos que mudar muito no manuseio dos ataques, ainda não se sabe.

O objetivo principal de proibir IPs com base em mensagens de log seria reduzir o ruído nos logs e, até certo ponto, reduzir a carga do sistema. Não deve servir como proteção contra exploits. Um atacante que conhece uma fraqueza estaria dentro antes do embarque, então, para se proteger contra isso, você tem que corrigir vulnerabilidades - assim como você sempre teve que fazer.

A proibição de endereços IPv6 individuais pode ser suficiente para reduzir o ruído nos registros. Mas isso não é um dado. Não é improvável que um invasor use um novo endereço IP do intervalo disponível para cada conexão. Se os invasores se comportarem assim, proibir endereços IPv6 individuais não será apenas ineficaz, mas você pode até causar inadvertidamente um ataque DoS a si mesmo usando toda a sua memória para regras de firewall.

Você não pode saber o comprimento do prefixo disponível para cada atacante individual. Bloquear um prefixo muito curto causará um ataque DoS cobrindo usuários legítimos também. Bloquear um prefixo muito longo será ineficaz. As tentativas de força bruta de senha, em particular, provavelmente usarão um grande número de endereços IPv6 do cliente.

Para ser eficaz contra invasores comutando o endereço IPv6 em cada solicitação e para manter o uso de memória inativo, é necessário bloquear intervalos e, devido ao desconhecimento antecipado de comprimentos de prefixo, é necessário ajustar os comprimentos de prefixo dinamicamente.

É possível criar heurísticas já agora. Quão bem eles vão trabalhar, não sabemos ainda.

Uma heurística seria para cada tamanho de prefixo definir um limite de quantos IPs são necessários para bloquear um prefixo desse comprimento. E o bloqueio só deve ser aplicado em um tamanho específico, se um prefixo maior não for suficiente. Em outras palavras, você precisa de IPs bloqueados individualmente em cada uma das duas metades para realmente iniciar um bloqueio.

Por exemplo, pode-se decidir que, para bloquear um / 48, deve haver 100 IPs bloqueados em cada um dos dois / 49s que compõem o / 48. Quanto mais longo for o prefixo, menor será o número de IPs necessários para bloqueá-lo, mas, em todos os casos, eles teriam que ser distribuídos pelas duas metades.

    
por 25.09.2014 / 23:49
2

Você deve continuar banindo endereços únicos.

Não está definido quantos endereços serão fornecidos aos usuários finais. Alguns ISPs podem fornecer uma sub-rede inteira e outros apenas um endereço.

    
por 25.09.2014 / 12:22

Tags