Proibindo endereços IPv6


16

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.

Respostas:


6

A proibição por / 128 não aumenta quando uma sub-rede do tamanho / 64 é usada para um ataque. Você terminará 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

Consulte: https://tools.ietf.org/html/rfc6177 / 128 nunca deve ser atribuído a um servidor / usuário, a atribuição mínima a outra entidade (servidor / cliente vps) deve ser um / 64. A atribuição mínima a um site deve ser um / 56. Distribuir / 128s é fundamentalmente quebrado e deve ser considerado um erro de configuração.

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


11
Bloquear um inteiro /64devido a um IP problemático fará com que usuários legítimos sejam bloqueados.
kasperd

11
Sim, mas apenas se eles estiverem no mesmo site. Portanto, uma VLAN de usuário pode ser bloqueada dentro de um edifício. Ou todas as VMs pertencentes a um cliente se uma delas se comportar mal em uma nuvem. Atribuir um / 64 a vários usuários para servidores é problemático de muitas maneiras, está quebrado. Mas a superfície de ataque de negação de serviço do bloqueio por / 64 é muito menor do que com / 128.
Wilco Baan Hofman

10

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.


11
Quase 5 anos depois, alguma reconsideração de IPv6 e Fail2ban?
Paulo

2

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.


A mesma resposta para sua segunda pergunta. Como você não pode saber qual configuração de rede está definida do outro lado, pode acabar bloqueando muitos usuários.
Pierre-Yves Gillier
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.