Comme l'ont dit beaucoup d'autres personnes, les en-têtes IP sont faciles à falsifier, tant que l'on ne se soucie pas de recevoir une réponse. C'est pourquoi on le voit surtout avec UDP, car TCP exige une poignée de main à trois. Une exception notable est le inondation SYN qui utilise le protocole TCP et tente d'accaparer les ressources d'un hôte récepteur ; là encore, comme les réponses sont rejetées, l'adresse source n'a pas d'importance.
Un effet secondaire particulièrement désagréable de la capacité des attaquants à usurper les adresses sources est un rétrodiffusion l'attaque. Il existe une excellente description ici En bref, il s'agit de l'inverse d'une attaque DDoS traditionnelle :
- Prendre le contrôle d'un botnet.
- Configurez tous vos nœuds pour utiliser le même adresse IP source pour les paquets malveillants. Cette adresse IP sera votre victime éventuelle.
- Envoyez des paquets depuis tous vos nœuds contrôlés vers diverses adresses sur Internet, en ciblant des ports qui ne sont généralement pas ouverts, ou en vous connectant à des ports valides (TCP/80) en prétendant faire partie d'une transaction déjà existante.
Dans l'un ou l'autre des cas mentionnés au point (3), de nombreux hôtes répondront par un ICMP unreachable ou un TCP reset, ciblé sur l'adresse de l'utilisateur. adresse source du paquet malveillant . L'attaquant a maintenant potentiellement des milliers de machines non compromises sur le réseau qui effectuent une attaque DDoS sur la victime qu'il a choisie, tout cela grâce à l'utilisation d'une adresse IP source usurpée.
En termes d'atténuation, ce risque est vraiment un risque que seuls les FAI (et en particulier les FAI fournissant l'accès au client, plutôt que le transit) peuvent aborder. Il existe deux méthodes principales pour y parvenir :
-
Filtrage à l'entrée - garantissant que les paquets entrant sur votre réseau proviennent de plages d'adresses situées de l'autre côté de l'interface entrante. De nombreux fournisseurs de routeurs mettent en œuvre des fonctions telles que transfert de chemin inverse unicast qui utilisent les tables de routage et de transfert du routeur pour vérifier que le prochain saut de l'adresse source d'un paquet entrant est l'interface entrante. Cette vérification s'effectue de préférence au niveau du premier saut de couche 3 du réseau (c'est-à-dire votre passerelle par défaut).
-
Filtrage à la sortie - en veillant à ce que les paquets quittant votre réseau proviennent uniquement de plages d'adresses qui vous appartiennent. Il s'agit du complément naturel du filtrage à l'entrée, et cela fait partie intégrante de la notion de "bon voisin" ; il s'agit de s'assurer que même si votre réseau est compromis par un trafic malveillant, ce trafic n'est pas transmis aux réseaux avec lesquels vous êtes en relation.
Ces deux techniques sont plus efficaces et plus faciles à mettre en œuvre lorsqu'elles sont utilisées dans des réseaux de périphérie ou d'accès, où les clients sont en contact avec le fournisseur. La mise en œuvre du filtrage des entrées/sorties au-dessus de la couche d'accès devient plus difficile, en raison de la complexité des chemins multiples et du routage asymétrique.
J'ai vu ces techniques (en particulier le filtrage à l'entrée) utilisées avec beaucoup d'efficacité dans un réseau d'entreprise. Peut-être que quelqu'un ayant plus d'expérience en tant que fournisseur de services peut donner plus de détails sur les défis du déploiement du filtrage ingress/egress sur l'Internet au sens large. J'imagine que le support matériel/firmware est un grand défi, ainsi que l'impossibilité de forcer les fournisseurs en amont dans d'autres pays à mettre en œuvre des politiques similaires...