Interdire les adresses IPv6

16

Je suis actuellement habitué à utiliser des outils comme fail2ban pour éloigner le trafic indésirable de mes serveurs en interdisant les adresses IPv4: trop de mauvaises entrées de journal par IP, bannissez l'IP.

Cependant, lorsque le monde aura terminé la migration vers IPv6, l'interdiction d'adresses uniques ne fonctionnera probablement plus, puisqu'un ordinateur de botnet "normal" ou un attaquant possède un grand nombre d'adresses IPv6?

Si je veux bloquer les utilisateurs IPv6, quelle serait la meilleure façon d'y parvenir? Utilisez un certain masque IP ou autre chose?

Que diriez-vous de faire des "heuristiques de mise à l'échelle" lorsque vous obtenez plusieurs accès individuels dans IPv6, puis bannissez le bloc entier?

Pour moi, il est plus important d'atténuer la menace. Si certains utilisateurs authentiques pauvres appartiennent au même bloc avec des adresses IP bloquées, c'est un problème entre ces personnes et leur FAI pour obtenir que ce netblock soit effacé.

Mikko Ohtamaa
la source

Réponses:

6

L'interdiction par / 128 n'est pas mise à l'échelle lorsqu'un sous-réseau de taille / 64 est utilisé pour une attaque. Vous vous retrouverez avec 2 ^ 64 entrées dans le tableau, ce qui pourrait entraîner un déni de service.

Les utilisateurs finaux recevront toujours un / 56 par politique d'attribution d'adresse globale. Les entreprises recevront toujours un / 48 par adresse mondiale

Voir: https://tools.ietf.org/html/rfc6177 / 128 ne doit jamais être attribué à un serveur / utilisateur, l'affectation minimale à une autre entité (serveur / client vps) doit être de / 64. L'affectation minimale à un site doit être de / 56. Donner / 128s est fondamentalement cassé et doit être considéré comme une erreur de configuration.

Je recommande donc l'interdiction temporaire par / 64, étant donné qu'un utilisateur final typique n'aura accès qu'à 2 ^ 8 / 64s, il ne devrait pas introduire trop d'entrées dans la table d'interdiction.

Wilco Baan Hofman
la source
1
Le blocage d'un ensemble en /64raison d'une adresse IP problématique entraînera le blocage d'utilisateurs légitimes.
kasperd
1
Oui, mais seulement s'ils se trouvent sur le même site. Donc oui, un VLAN utilisateur pourrait être bloqué à l'intérieur d'un bâtiment. Ou toutes les VM appartenant à un client si l'une des VM se comporte mal dans un cloud. Assigner un / 64 à plusieurs utilisateurs pour des serveurs est problématique à bien des égards, c'est cassé. Mais la surface d'attaque par déni de service du blocage par / 64 est beaucoup plus faible qu'avec / 128.
Wilco Baan Hofman
10

Toute réponse à votre question impliquera une certaine quantité de devinettes. Les déploiements IPv6 sont encore assez peu nombreux pour que nous ne sachions tout simplement pas à quoi ressemblera exactement le scénario de menace.

Le grand nombre d'adresses IPv6 introduira plusieurs modifications au scénario de menace que vous devrez prendre en compte.

Tout d'abord avec IPv4, il est tout à fait possible pour un attaquant de scanner le numéro de port par défaut pour un service vulnérable sur les 3700 millions d'adresses IPv4 routables. De telles attaques non ciblées ne sont pas réalisables avec IPv6. Ces attaques que vous voyez encore devront être plus ciblées. Il reste à voir si cela signifie que nous devrons changer beaucoup dans notre gestion des attaques.

Le but principal de l'interdiction des adresses IP sur la base des messages de journal serait de réduire le bruit dans les journaux et dans une certaine mesure de réduire la charge du système. Il ne devrait pas servir de protection contre les exploits. Un attaquant qui connaît une faiblesse se trouverait à l'intérieur avant l'interdiction, donc pour vous protéger contre cela, vous devez corriger les vulnérabilités - comme vous l'avez toujours fait.

L'interdiction d'adresses IPv6 individuelles peut être suffisante pour réduire le bruit dans les journaux. Mais ce n'est pas acquis. Il n'est pas improbable qu'un attaquant utilise une nouvelle adresse IP de la plage disponible pour chaque connexion. Si les attaquants devaient se comporter de la sorte, interdire des adresses IPv6 individuelles ne serait pas seulement inefficace, mais vous pourriez même provoquer par inadvertance une attaque DoS contre vous-même en utilisant toute votre mémoire pour les règles de pare-feu.

Vous ne pouvez pas connaître la longueur du préfixe disponible pour chaque attaquant individuel. Le blocage d'un préfixe trop court provoquera une attaque DoS en couvrant également les utilisateurs légitimes. Bloquer un préfixe trop long sera inefficace. Les tentatives de force brute de mot de passe en particulier sont susceptibles d'utiliser un grand nombre d'adresses IPv6 clientes.

Afin d'être efficace contre les attaquants qui changent d'adresse IPv6 à chaque demande et afin de réduire l'utilisation de la mémoire, vous devez bloquer les plages et, comme vous ne connaissez pas les longueurs de préfixe à l'avance, vous devez ajuster dynamiquement les longueurs de préfixe.

Il est possible de proposer des heuristiques déjà maintenant. Comment ils fonctionneront, nous ne le savons pas encore.

Une heuristique serait pour chaque longueur de préfixe de définir un seuil du nombre d'adresses IP nécessaires pour bloquer un préfixe de cette longueur. Et le blocage ne doit être appliqué qu'à une longueur spécifique, si un préfixe plus long ne suffit pas. En d'autres termes, vous avez besoin de suffisamment d'adresses IP bloquées individuellement dans chacune des deux moitiés afin d'initier réellement un blocage.

Par exemple, on pourrait décider que pour bloquer un / 48, il doit y avoir 100 IP bloquées dans chacun des deux / 49 composant le / 48. Plus le préfixe est long, plus le nombre d'IP nécessaires pour le bloquer doit être petit, mais dans tous les cas, il doit être réparti sur les deux moitiés.

kasperd
la source
1
Près de 5 ans plus tard, une reconsidération d'IPv6 et Fail2ban?
Paul
2

Vous devez vous en tenir à interdire les adresses uniques.

Le nombre d'adresses à attribuer aux utilisateurs finaux n'est pas défini. Certains FAI peuvent donner un sous-réseau entier et d'autres une seule adresse.

Pierre-Yves Gillier
la source
Même réponse pour votre deuxième question. Comme vous ne pouvez pas savoir quelle configuration réseau est définie de l'autre côté, vous pouvez finir par bloquer un grand nombre d'utilisateurs.
Pierre-Yves Gillier