Connexion
Abonnez-vous

L’empoisonnement du cache DNS est de retour

L’empoisonnement du cache DNS est de retour

Le 13 novembre 2020 à 10h42

Dan Kaminsky avait présenté en 2008 une technique permettant à des attaquants de modifier la réponse des serveurs DNS, afin d’orienter les internautes vers de faux sites, même après avoir tapé une adresse aussi connue que « google.com ».

Quand DNS a été conçu, ses architectes ont compris que le mécanisme pouvait être abusé. Ils ont donc inclus un ID de 16 bits, afin qu’un résolveur n’accepte en réponse à ses requêtes que celles incluant le même identifiant.

Mais Kaminsky avait perçu la limite : un identifiant codé sur 16 bits ne laisse que 65 536 possibilités. Il ne restait plus qu’à « flooder » le serveur DNS avec des adresses IP pointant vers des domaines présentant de faibles variations avec celui que l’on voulait détourner, par exemple « 1.google.com ». On finissait par obtenir le bon ID, le serveur réorientant alors les requêtes vers la nouvelle adresse et mettant à jour son cache, d’où cette appellation « d’empoisonnement ».

La découverte avait donné lieu à la création de nouveaux mécanismes de sécurité, notamment l’utilisation d’un port aléatoire en combinaison de l’identifiant, alors que les requêtes DNS passaient toutes avant par le port 53. L’entropie de l’ensemble en fut très largement augmentée.

Mais des chercheurs des universités de Riverside (Californie) et de Tsinghua (Pékin) ont remis le couvert, en exploitant un canal auxiliaire (side channel) leur permettant de récupérer le fameux numéro de port.

Le canal en question est la limite d’ICMP (Internet Control Message Protocol). Au-delà d’un certain nombre de requêtes (par seconde) provenant d’un autre serveur, un serveur ne répond plus. Une mesure conçue initialement pour limiter la consommation des ressources.

Comme l'explique Ars Technica, les chercheurs ont trouvé la technique : bombarder un serveur DNS avec un très grand nombre de réponses conçues pour ressembler à celles émises par le serveur de nom du domaine qu’ils cherchent à imiter. Chaque réponse renvoie vers un numéro de port différent.

Quand le serveur reçoit une requête comportant un port qu’il ne peut pas contacter, la limite ICMP, le plus souvent fixée à 1 000, baisse de 1. Si les mille numéros de port sont tous erronés, les chercheurs testent un nouveau lot, la limite étant tombée à 0. Mais si elle est de 1 après coup, c’est que parmi les 1 000 ports testés, l’un était bon. La procédure recommence avec des échantillons de plus en plus petits, jusqu’à mettre la main sur le port gagnant.

Les résultats de recherche ont été envoyés aux nombreux acteurs concernés. Le noyau Linux a notamment été mis à jour avec un changement entrainant une fluctuation aléatoire du nombre de requêtes acceptées, de 500 à 2 000. La technique tablant sur un nombre précis, elle devient inopérante. Cloudflare a également déployé un correctif dans ses services.

Le 13 novembre 2020 à 10h42

Commentaires (4)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

Avec DNS over HTTPS le serveur de cache vérifie aussi le certificat et c’est trés robuste . Ce ne serai pas une couche supplémentaire qui éviterai ce souci ?

votre avatar

Sheepux a dit:


Avec DNS over HTTPS le serveur de cache vérifie aussi le certificat et c’est trés robuste . Ce ne serai pas une couche supplémentaire qui éviterai ce souci ?
DoT et DoH sont conçus pour le client “final”


Ici l’attaque se situe entre ton résolveur DNS (ta box ou un vrai serveur selon ton FAI) et le serveur DNS auquel la requête est transférée (mode récursif)



L’attaque sur un résolveur en mode itératif (racine puis tld etc…) ne fera pas grand chose.



La seule sécurité est d’utiliser DNSSEC sur toute la chaîne, ce qui loin d’être suffisamment déployé, d’où l’échec de certains protocoles comme le chiffrement des mails où DANE qui nécessite DNSSEC s’est gentiment fait dépassé par MTA-STS qui repose sur un certificat TLS posé sur un serveur HTTPS.



Qu’est ce qui pourrait inciter les gens à mettre en œuvre DNSSEC ?
-une déduction fiscale
-Que Google abaisse le score SEO quand DNSSEC n’est pas là
-Que les navigateurs affichent une barre verte quand le certificat est valide et que DNSSEC est présent (la barre verte en plus du cadenas pour les certificats avec preuve d’identité a disparu récemment des navigateurs)

votre avatar

JCLB a dit:


Qu’est ce qui pourrait inciter les gens à mettre en œuvre DNSSEC ? -une déduction fiscale -Que Google abaisse le score SEO quand DNSSEC n’est pas là -Que les navigateurs affichent une barre verte quand le certificat est valide et que DNSSEC est présent (la barre verte en plus du cadenas pour les certificats avec preuve d’identité a disparu récemment des navigateurs)


Le cadenas et la barre verte sont un faux sentiment de sécurité. Cela signifie simplement que le navigateur a “confiance” dans le site et le reconnaît comme “sûr”.



Un fishing certifié sera tout aussi sûr du point de vue du navigateur.

votre avatar

JCLB a dit:


Ici l’attaque se situe entre ton résolveur DNS (ta box ou un vrai serveur selon ton FAI) et le serveur DNS auquel la requête est transférée (mode récursif)



L’attaque sur un résolveur en mode itératif (racine puis tld etc…) ne fera pas grand chose.



La seule sécurité est d’utiliser DNSSEC sur toute la chaîne, ce qui loin d’être suffisamment déployé, d’où l’échec de certains protocoles comme le chiffrement des mails où DANE qui nécessite DNSSEC s’est gentiment fait dépassé par MTA-STS qui repose sur un certificat TLS posé sur un serveur HTTPS.



Qu’est ce qui pourrait inciter les gens à mettre en œuvre DNSSEC ? -une déduction fiscale -Que Google abaisse le score SEO quand DNSSEC n’est pas là -Que les navigateurs affichent une barre verte quand le certificat est valide et que DNSSEC est présent (la barre verte en plus du cadenas pour les certificats avec preuve d’identité a disparu récemment des navigateurs)


J’adore ton commentaire ! Mais tu rigoles en parlant de déduction fiscale, dans une moindre mesure, tu pourrais dire qu’en cas de piratage d’un de tes clients/usagés, si tu n’as mis en place tel ou tel protocole, alors tu n’es pas “à l’état de l’art de la technologie”, et donc tu t’exposerais à une responsabilité partielle. Il y a eu le cas Lazio/Rotterdma et les 2M€ payés au hackeur/usurpateur, la justice (meme si cas plus complexe) à dit tort partagé.
https://www.sofoot.com/un-hacker-a-pirate-la-lazio-lors-du-transfert-de-de-vrij-467849.html

L’empoisonnement du cache DNS est de retour

Fermer