Atualmente, estou acostumado a usar ferramentas como o fail2ban para manter o tráfego indesejado longe dos meus servidores ao banir endereços IPv4: muitas entradas de log ruins por IP, banir o IP.
No entanto, quando o mundo concluir a migração para o IPv6, a proibição de endereços únicos provavelmente não funcionará mais, pois um computador ou atacante 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 certa máscara de IP ou algo mais?
Que tal fazer "escalar heurísticas" quando você recebe vários hits individuais dentro do IPv6 e depois bane todo o bloco?
Para mim, é mais importante mitigar a ameaça. Se alguns usuários genuínos pobres pertencerem ao mesmo bloco com IPs bloqueados, é um problema entre essas pessoas e seu ISP obter esse bloqueio de rede limpo.
/64
devido a um IP problemático fará com que usuários legítimos sejam bloqueados.Qualquer resposta à sua pergunta envolverá uma certa quantidade de suposições. As implantações de IPv6 ainda são poucas o suficiente para que ainda não saibamos como será exatamente o cenário de ameaça.
O grande número de endereços IPv6 introduzirá várias alterações no cenário de ameaça que você precisará considerar.
Antes de tudo, com o IPv4, é totalmente viável para um invasor verificar o número da porta padrão em busca de algum serviço vulnerável em todos os 3700 milhões de endereços IPv4 roteáveis. Tais ataques não direcionados não são viáveis com o IPv6. Os ataques que você ainda vê terão que ser mais direcionados. Ainda não se sabe se isso significa que teremos que mudar muito a maneira como lidamos com os ataques.
O objetivo principal de banir IPs com base em mensagens de log seria reduzir o ruído nos logs e, em certa medida, reduzir a carga do sistema. Não deve servir como proteção contra explorações. Um invasor que conhece uma fraqueza estaria dentro antes da proibição, para se proteger contra isso, é necessário corrigir as vulnerabilidades - exatamente como você sempre teve.
A proibição de endereços IPv6 individuais pode ser suficiente para reduzir o ruído nos logs. Mas isso não é um dado. Não é improvável que um invasor possa usar um novo endereço IP do intervalo disponível para cada conexão. Se os invasores se comportarem dessa maneira, banir endereços IPv6 individuais não será apenas ineficaz, mas você pode até causar um ataque de negação de serviço a si próprio, usando toda a sua memória para regras de firewall.
Você não pode saber o tamanho do prefixo disponível para cada invasor individual. O bloqueio de um prefixo muito curto causará um ataque de negação de serviço, cobrindo também usuários legítimos. 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 que alternam o endereço IPv6 em cada solicitação e para manter o uso da memória baixo, é necessário bloquear os intervalos e, por não saber antecipadamente o comprimento do prefixo, você deve ajustar o comprimento do prefixo dinamicamente.
É possível criar heurísticas já agora. Até que ponto eles funcionam ainda não sabemos.
Uma heurística seria para cada tamanho de prefixo definir um limite de quantos IPs são necessários para bloquear um prefixo desse tamanho. E o bloqueio deve ser aplicado apenas em um comprimento específico, se um prefixo mais longo não for suficiente. Em outras palavras, você precisa de IPs bloqueados individualmente o suficiente em cada uma das duas metades para realmente iniciar um bloco.
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 maior o prefixo, menor o número de IPs necessários para bloqueá-lo, mas em todos os casos eles teriam que se espalhar pelas duas metades.
fonte
Você deve proibir endereços únicos.
Não está definido quantos endereços serão dados aos usuários finais. Alguns ISPs podem fornecer uma sub-rede inteira e outros apenas um endereço.
fonte