Courte introduction au DNS (passer à une longue explication du DNS)
Les appareils connectés à Internet se voient attribuer des numéros uniques appelés adresses IP. Vous connaissez ce site sous le nom de RouterSecurity.org et son adresse IP est 216.92.136.14. Toutes les communications sur Internet sont basées sur ces numéros uniques, les noms de sites Web et d’ordinateurs ne sont qu’une commodité. Le système qui traduit les noms en adresses IP numériques sous-jacentes est appelé DNS (Domain Name System) et les ordinateurs qui effectuent la traduction sont appelés serveurs DNS.
Les serveurs DNS sont extrêmement importants. Probablement 99 % de toutes les communications entre deux ordinateurs sur Internet, commencent par un appel à un serveur DNS pour traduire un nom d’ordinateur en une adresse IP.
Les serveurs DNS malveillants peuvent faire ce que tout traducteur malveillant peut faire : vous mentir. Par exemple, ils peuvent vous envoyer vers une copie frauduleuse d’un site web. Comme la nourriture, vous ne devriez pas prendre les serveurs DNS d’un étranger.
Vous pouvez vérifier un ordinateur ou un routeur pour voir quels devraient être vos serveurs DNS, mais les pages ci-dessous montrent ce qu’ils sont réellement. Elles signalent les serveurs DNS que votre appareil informatique utilise actuellement. Nous avons besoin de tests comme ceux-ci car les serveurs DNS peuvent provenir de quatre endroits : le routeur auquel un appareil informatique est connecté, l’appareil informatique lui-même, un logiciel client VPN fonctionnant sur l’appareil informatique ou un navigateur Web configuré pour utiliser un DNS crypté (DoH ou DoT). Pour en savoir plus sur le DNS crypté, consultez la rubrique DNS crypté sur mon site Liste de contrôle de l’informatique défensive.
Note : Si un navigateur Web utilise le DNS crypté alors qu’un autre, sur le même appareil informatique, ne le fait pas, attendez-vous à ce que les tests ci-dessous donnent des résultats différents dans chaque navigateur.
Découvrez vos serveurs DNS actuels
- Le test de fuite DNS est sponsorisé par le fournisseur de VPN IVPN. Il propose un test standard rapide et un test étendu plus lent. Les deux rapportent l’adresse IP, le nom d’hôte, le FAI et le pays pour chaque serveur DNS détecté (pas de ville).
- Le DNS Leaktest du fournisseur VPN Perfect Privacy rapporte l’adresse IP, le nom d’hôte, le FAI et le pays d’accueil pour chaque serveur DNS détecté.
- Au site browserleaks.com/ip, vous devez faire défiler vers le bas pour voir le ou les serveurs DNS. Il rapporte l’adresse IP, le fournisseur d’accès, la ville et le pays des serveurs DNS. Il n’indique pas les noms d’hôte des serveurs DNS. La page montre également beaucoup d’autres informations utiles telles que votre adresse IP publique, votre nom d’hôte, votre emplacement et votre FAI.
- Le test de fuite DNS du fournisseur de VPN ExpressVPN rapporte l’adresse IP, le pays et le « fournisseur » pour chaque serveur DNS détecté. Il ne rapporte pas le nom d’hôte ou la ville. Notez qu’il avertit toujours que « Votre DNS est exposé ! », ce qui signifie en réalité que vous n’êtes pas connecté à ExpressVPN.
- Si vous utilisez OpenDNS, vous pouvez le vérifier sur www.opendns.com/welcome/. Plutôt que d’afficher tous les serveurs DNS détectés, il rapporte simplement un statut OUI/NON sur le fait qu’OpenDNS est en cours d’utilisation.
- Cloudflare a une page de test à cloudflare-dns.com/help. Une URL plus mémorable qui fonctionne également est 1.1.1.1/help. La chose la plus importante qu’il rapporte semble être « Connecté à 1.1.1.1 » qui est OUI/NON. Si vous utilisez Cloudflare, il indique l’état du DNS sur HTTPS et du DNS sur TLS. Le « Nom de l’AS » identifie le FAI de votre fournisseur de DNS. Il n’est probablement pas utile lorsque vous utilisez un VPN, mais il indique « Cloudflare » si vous utilisez leur service. Il teste également la capacité de votre ordinateur à se connecter à 1.1.1.1 et 1.0.0.1 et à leurs frères et sœurs IPv6. Une dernière chose : ils fournissent également www.cloudflarestatus.com qui rapporte l’état général de leur service. Ironiquement, si leur service est en panne, cela empêchera leurs utilisateurs de voir ce site Web. Vous ne pouvez pas accéder à cloudflarestatus.com par l’adresse IP (216.146.46.11). J’ai essayé.
Mise à jour. 2 avril 2020 : Cloudflare vient d’annoncer deux nouveaux services DNS de filtrage. Celui ancré à 1.1.1.2 (la sauvegarde est 1.0.0.2) filtre les logiciels malveillants et celui ancré à 1.1.1.3 (la sauvegarde est 1.0.0.3) filtre à la fois les logiciels malveillants et le porno. À ce jour, il ne semble pas y avoir de testeurs spécifiquement pour ces nouveaux services. À partir de juillet 2020, ces nouveaux services ne sont pas disponibles en tant que DNS crypté.
Mise à jour. 27 mai 2020 : Notez que la page de test de Cloudflare ne s’intéresse qu’à Cloudflare. Ainsi, lorsqu’elle indique que ni DoH ni DoT ne sont utilisés, cela signifie qu’ils ne sont pas utilisés avec Cloudflare. Un navigateur Web qui utilise DoH ou DoT avec un autre fournisseur de DNS, sera signalé comme n’utilisant pas DoH ou DoT. - La société NextDNS n’a pas de page Web de test dédiée, mais son site Web sert le même objectif. Pour tester NextDNS, allez sur leur site web et cliquez sur le gros bouton bleu qui dit « Essayez-le maintenant gratuitement ». Le haut de la page qui s’affiche indique « Tout va bien ! Cet appareil utilise NextDNS avec cette configuration » si NextDNS est utilisé. Sinon, la page dira : « Cet appareil n’utilise pas NextDNS. Cet appareil utilise actuellement xxxxxx comme résolveur DNS ». Notez que les deux messages sont mal formulés. Le test ne s’applique pas nécessairement à l’ensemble du système, il n’est garanti que pour le navigateur Web actuellement utilisé. D’autres navigateurs sur le même système et le système d’exploitation lui-même pourraient utiliser différents fournisseurs DNS.
Mise à jour. 14 juin 2020 : Grâce à Reddit, j’ai appris aujourd’hui que NextDNS a bien une page de test : test.nextdns.io. Cependant, je n’ai pu trouver aucune documentation à son sujet. En jouant avec, j’ai découvert qu’un statut « ok » et un protocole « DOH » signifie que le navigateur/OS utilise NextDNS. Un statut de « non configuré » signifie qu’il/ils n’utilisent pas NextNDS.Lorsque NextDNS est utilisé, il indique également votre adresse IP publique (IP client) et l’adresse IP du serveur NextDNS. - Le testeur VPN Tenta rapporte plus de détails sur vos serveurs DNS que n’importe quel autre endroit que je connais. Pour chaque serveur DNS détecté, il rapporte l’adresse IP, le FAI, ainsi que la ville, l’état et le pays. Il ne montre pas le nom d’hôte. Il indique si TLS est activé, si DNSSEC est activé et de nombreux autres attributs de chaque serveur DNS qui sont, franchement, au-dessus de ma tête et non expliqués. Elle donne également une note au serveur DNS. La page teste beaucoup d’autres choses aussi.
- ipx.ac est du fournisseur VPN.ac. Cliquez sur le grand fond orange en bas de la page pour voir l’adresse IP, le pays et le FAI des serveurs DNS détectés. Il ne montre pas les noms de chaque serveur DNS. Il teste bien plus que les DNS.
- Suis-je Mullvad ? est une page de test du VPN Mullvad. En plus de confirmer que vous êtes connecté à leur VPN, elle indique également l’adresse IP, le nom et le pays de vos serveurs DNS. Et, il teste aussi le WebRTC.
- Si vous utilisez AdGuard pour les DNS, leur page de présentation comprend un testeur et confirmera/dira l’utilisation de leur service (c’est quelque part au milieu de la très longue page. En outre, ils ont une page de testeur dédiée qui teste à la fois pour leur service DNS et pour d’autres de leurs logiciels.
- dnsleak.com est parrainé et exploité par London Trust Media, la société derrière le fournisseur de VPN Private Internet Access. Il rapporte l’adresse IP, le nom d’hôte, la ville et le pays pour chaque serveur DNS détecté, mais pas le fournisseur d’accès. L’avantage des résultats du test est qu’ils indiquent votre adresse IP publique juste à côté de l’adresse IP du serveur DNS. Si vous êtes sur un VPN qui utilise le serveur VPN comme serveur DNS, vous pouvez facilement vérifier que c’est le cas. Cependant, lors de mon dernier essai en septembre 2020, le test s’est bloqué et n’a rien signalé. J’ai essayé plusieurs ordinateurs, plusieurs navigateurs.
- Le site www.whatsmydnsserver.com provient de Sericon Technology. Il signale un seul serveur DNS, même si d’autres testeurs en signalent plusieurs. Il indique l’adresse IP et le « propriétaire » du serveur DNS.
- Le F-Secure Router Checker ne vérifie pas vraiment les routeurs, il signale simplement un serveur DNS. Tous les autres vérificateurs de serveurs DNS rendent compte de plusieurs serveurs DNS détectés, mais F-Secure ne rend compte que d’un seul. La société affirme que son objectif est de s’assurer que votre routeur utilise un « serveur DNS autorisé », mais cette notion n’existe pas et elle ne la définit pas.
- Ipleak.net provient du fournisseur de VPN AirVPN. Pour chaque serveur DNS, il signale l’adresse IP et l’emplacement. Pas de fournisseur d’accès ni de nom d’hôte. Il signale également de nombreuses autres choses comme le WebRTC et la résolution de votre écran. C’est l’option que je préfère le moins, car la police utilisée pour les adresses IP est pratiquement illisible. Il est également disponible sur les ports 8000 et 62222.
Tests du système d’exploitation
Pour voir ce que le système d’exploitation utilise pour le DNS, en dehors de tout navigateur web, nous pouvons utiliser la commande nslookup sur les systèmes d’exploitation de bureau (Windows, macOS, Linux). La syntaxe de la commande est très simple : « nslookup domainname ». La première chose renvoyée par la commande est le nom et l’adresse IP du serveur DNS par défaut. Ci-dessous, une capture d’écran de Windows 7 montrant que le système utilise le serveur DNS dns9.quad9.net à l’adresse IP 9.9.9.9.
Les configurations DNS dans le système d’exploitation peuvent être partout sur la carte. Il peut y avoir différents serveurs DNS configurés pour l’Ethernet par rapport au Wi-Fi. Et, chaque réseau sans fil (SSID) peut être configuré pour utiliser différents serveurs DNS. Android 9, 10 et 11 permettent un réglage DNS global pour l’ensemble du système d’exploitation.
Si une connexion réseau/SSID spécifique spécifie bien son ou ses serveurs DNS souhaités, alors elle se voit attribuer des serveurs DNS par le routeur. Mais, là encore, une complication. Le routeur peut fonctionner comme un serveur DNS lui-même, ou il peut simplement transmettre les demandes DNS à un serveur DNS sur Internet.
Dans l’exemple ci-dessus, la connexion réseau a été spécifiquement configurée pour utiliser Quad9. Dans l’exemple ci-dessous, un ordinateur Windows 10 utilise le routeur lui-même comme serveur DNS.
On pense généralement que si le système d’exploitation spécifie des serveurs DNS, ils seront utilisés. Ce n’est pas toujours le cas. Certains routeurs (comme le Pepwave Surf SOHO) peuvent forcer les clients à utiliser les serveurs DNS spécifiés dans le routeur. Cela dit, d’après mon expérience, cela ne s’applique qu’aux anciens DNS. Les navigateurs qui ont spécifié des serveurs DNS de type DoH ont vu leurs demandes honorées.
Cela signifie que le serveur DNS signalé par nslookup ne peut pas être fiable. Dans la première capture d’écran ci-dessus, il semble que Windows utilise 9.9.9.9 pour la résolution DNS. Mais, si Windows est configuré pour utiliser 9.9.9.9 et que le routeur est configuré pour utiliser 1.1.1.1 (par exemple) et que le routeur impose sa volonté à tous les périphériques connectés (une fonction offerte par Peplink et d’autres routeurs), nslookup signalera qu’il utilise 9.9.9.9. Il ne ment pas volontairement, il est trompé par le routeur. Les paquets qui quittent le port WAN seront envoyés à 1.1.1.1 comme le fait le routeur. J’ai appris cela de la manière la plus dure, en faisant des traces pcap des paquets de données quittant le port WAN. Je suppose que la même chose est vraie avec la commande dig sur Linux et macOS.
Et, bien sûr, un VPN complique encore les choses. Vous trouverez ci-dessous une capture d’écran de nslookup effectuée alors qu’un ordinateur Windows 10 était connecté à un VPN. Dans ce cas, nslookup renvoie l’adresse IP du serveur DNS sur le réseau interne du fournisseur VPN. Le serveur n’est pas inconnu, seul son nom l’est.
Les utilisateurs de Windows peuvent tracer toutes les instances du DNS hérité en utilisant le programme gratuit et portable DNSQuerySniffer de Nir Sofer (voir une capture d’écran). Exécutez-le avant d’utiliser un navigateur pour voir si ce dernier utilise d’anciens ou de nouveaux DNS. Fermez tous les navigateurs, exécutez DNSQuerySniffer et attendez, pour voir les anciennes requêtes DNS générées par Windows lui-même.
Une autre approche encore, pour Windows, a été suggérée par Sergiu Gatlan dans son article d’août 2020 Microsoft ajoute la section des paramètres DNS sur HTTPS de Windows 10. Il suggère d’utiliser la commande pktmon pour tracer toute activité sur le port TCP/IP 53. La commande pktmon ne peut pas afficher uniquement les demandes sortantes, elle inclut toujours les réponses aussi, donc elle génère beaucoup d’activité dans la fenêtre de commande. Mais, elle confirmera l’utilisation de l’ancien DNS. Les commandes que Gatlan suggère sont:
pktmon filter remove
pktmon filter add -p 53
pktmon start –etw -l real-time
Je suggère d’abord de faire une liste de filtres pktmon juste pour voir si des filtres sont actifs. La journalisation peut être arrêtée avec Ctrl+C.
Sur Linux et macOS, vous pouvez utiliser la commande dig pour voir quel serveur DNS est utilisé. Sur macOS, faites Applications -> Utilitaires -> Terminal. Pour Linux, voir Comment utiliser la commande dig sous Linux par Dave McKay (avril 2020). Une simple commande dig somedomain.com devrait afficher le serveur DNS utilisé pour répondre à la question. Recherchez « SERVER : » dans la sortie.
SAD DNS
Une nouvelle attaque sur les serveurs DNS, appelée SAD DNS a été rendue publique en novembre 2020. L’attaque tente d’empoisonner les résultats du DNS, c’est-à-dire de pointer les victimes vers un serveur malveillant à la mauvaise adresse IP pour un domaine. L’attaque a été créée par six universitaires de l’Université de Californie, Riverside et de l’Université de Tsinghua. Voir leur article et leurs diapositives.
Vous pouvez tester si vous utilisez un serveur DNS vulnérable en utilisant le lien « Cliquez pour vérifier si votre serveur DNS est affecté » sur la page SAD DNS. Ils préviennent toutefois que leur test n’est pas précis à 100 %.
Le 12 novembre 2020, j’ai effectué quelques tests. Cloudflare, Google et Quad9 étaient tous vulnérables. Le DNS de mon fournisseur de VPN ne l’était pas. NextDNS ne pouvait initialement pas résoudre la page DNS du SAD. Le journal indique qu’il bloque saddns.net parce qu’il s’agit d’un domaine nouvellement enregistré. Il suffit de mettre le domaine en liste blanche. NextDNS a également été signalé comme étant vulnérable.
Pourquoi s’embêter
Le piratage d’un routeur et le changement des serveurs DNS est un type d’attaque très populaire. Quelques rapports dans l’actualité :
- Le Brésil est à l’avant-garde d’un nouveau type d’attaque de routeur par Catalin Cimpanu pour ZDNet le 12 juillet 2019
- Les attaques par drive-by site web sur les routeurs sont bien vivantes. Voici ce qu’il faut faire par Dan Goodin 11 juillet 2019
- Le NCSC émet une alerte sur les attaques actives de détournement de DNS par Ionut Ilascu pour Bleemping Computer 14 juillet 2019
- Les détournements de DNS en cours ciblent Gmail, PayPal, Netflix, les banques et plus encore par Dan Goodin d’Ars Technica 5 avril 2019
Et…
Avertissement aux utilisateurs de Windows : Il existe un problème de mise en cache ou de mise en mémoire tampon impliquant les VPN. Après la connexion à un VPN, les sites ci-dessus affichent généralement à la fois les serveurs DNS pré-VPN et le serveur DNS actuel du fournisseur VPN. Sous iOS 12 et Android 7.1, tous les testeurs ci-dessus fonctionnent bien, seul Windows est buggé. Je n’ai pas testé d’autres systèmes d’exploitation. Dans la capture d’écran ci-dessous, provenant de la page du testeur Express VPN, les quatre serveurs OpenDNS étaient utilisés avant que la connexion VPN ne soit établie et le serveur de Leaseweb USA est celui du fournisseur VPN. J’ai essayé la commande « ipconfig /flushdns » mais cela n’a pas aidé.
Testeur VPN Express alors qu’il est connecté à un VPN
Sur Windows, la seule page de testeur ci-dessus qui a été à l’épreuve des balles dans mon expérience est celle pour OpenDNS. Elle rapporte simplement un OUI/NON sur l’utilisation d’OpenDNS et elle n’est pas trompée par le problème de cache qui perturbe les autres testeurs. À titre d’information, tous les services VPN que j’ai utilisés assignent un seul serveur DNS. En dehors d’un VPN, il y a normalement deux serveurs DNS ou plus utilisés.
Un autre problème est que différents testeurs DNS signalent un nombre différent de serveurs DNS. Certains ne signalent qu’un seul serveur DNS, d’autres signalent plusieurs serveurs DNS. Je ne sais pas pourquoi.
Les serveurs DNS de Cloudflare sont 1.1.1.1.1 et 1.0.0.1. En novembre 2018, Cloudflare a publié des applications iOS et Android qui configurent ces systèmes pour utiliser leurs serveurs DNS. Cela fonctionne en créant une pseudo connexion VPN. Les testeurs ci-dessus ne signalent ni 1.1.1.1 ni 1.0.0.1 comme serveurs DNS en cours d’utilisation. L’application Cloudflare indique qu’il est utilisé, et je suis sûr qu’il l’est, mais les testeurs DNS ci-dessus signalent d’autres adresses IP. Et vous ne pouvez pas non plus vous fier au nom d’hôte, les serveurs utilisés par Cloudflare n’ont pas de nom d’hôte. Le seul indice fourni par ces testeurs est que Cloudflare est le fournisseur d’accès Internet.
L’une des caractéristiques de Cloudflare DNS est le cryptage. La connexion entre votre ordinateur et leur serveur DNS est cryptée en utilisant l’une des deux approches assez récentes : DNS over TLS ou DNS over HTTP. Ce problème ne se pose que si vous n’utilisez pas un VPN. Un VPN chiffre tout (lorsqu’il fonctionne correctement) en provenance et à destination de l’ordinateur, il n’est donc pas nécessaire d’accorder une attention particulière au chiffrement du DNS.
Avertissement aux lecteurs de WIRED : L’article Vous savez quoi ? Allez-y et utilisez le Wi-Fi de l’hôtel par Brian Barrett (18 nov. 2018) aboutit à une conclusion très erronée. Le point principal de l’article est que l’utilisation généralisée du HTTPS (sites Web sécurisés) élimine les anciens dangers de reniflage et d’espionnage des données non cryptées. D’une part, cela montre un manque de compréhension des limites du HTTPS. Les sites Web sécurisés ne méritent pas une telle confiance. Cependant, le plus grand danger est que sur un réseau sans fil public, vous disposez d’une connexion cryptée avec les méchants. Le protocole HTTPS ne vous protège en rien contre un site Web frauduleux qui a l’air assez réel, affiche l’URL correcte dans la barre d’adresse, mais dont le seul but est de récolter des mots de passe. La validation étendue pourrait offrir cette protection, mais dans le monde réel, elle ne le fait pas. D’une part, les navigateurs Web modifient constamment la manière dont ils indiquent EV par rapport à DV (Domain Validation). De plus, certains navigateurs ne donnent aucune indication visuelle de la différence. Et je soupçonne que les non-techniciens ne sont même pas au courant du concept EV/DV. Il est encore plus insidieux d’utiliser le DNS non pas pour falsifier le nom de domaine principal/affiché, mais pour diriger le navigateur vers une copie frauduleuse du code inclus par un tiers. De nombreux sites sont compromis par l’inclusion de code malveillant provenant de tiers piratés. Grâce au DNS, le tiers n’a même pas besoin d’être piraté. Il est donc essentiel d’utiliser des serveurs DNS dignes de confiance, et non ceux de pirates informatiques, d’un café ou d’un hôtel, pour assurer la sécurité informatique. L’article ignore également la question des réseaux jumeaux maléfiques, une attaque pour laquelle il n’existe (à ma connaissance) aucune défense.
Toute personne utilisant un VPN sur Windows 8 ou 10 doit être consciente d’une situation où les requêtes DNS peuvent être envoyées en dehors du tunnel VPN. Pour en savoir plus, consultez le Guide : Prévenir les fuites DNS lors de l’utilisation d’un VPN sur Windows 10 (et Windows 8).
En mai 2017, Trend Micro a fait une remarque intéressante : « Malheureusement, les tests basés sur des sites Web peuvent ne pas être fiables une fois qu’un routeur domestique a été compromis. » En gardant cela à l’esprit, il est logique de vérifier avec le routeur directement, que ce soit avec une interface web ou une application, pour vérifier à nouveau les serveurs DNS.
Les utilisateurs de Windows ont une autre excellente option, le programme DNS query sniffer de Nir Sofer. Ce programme est gratuit, portable et provient d’une source digne de confiance. Il trace simplement les requêtes et les réponses DNS. Avant de vous connecter à un VPN, demandez-lui d’examiner votre connexion Wi-Fi ou Ethernet pour confirmer que le programme fonctionne. Ensuite, connectez-vous au VPN et vous ne devriez plus voir d’activité DNS. Comme preuve supplémentaire que le VPN gère les choses, dites au programme d’examiner votre connexion VPN (Options -> Capture Options) et vous devriez voir toutes vos requêtes DNS.
Pour savoir si un serveur DNS fonctionne réellement bien, nous disposons d’un test d’usurpation de DNS de Steve Gibson. La page n’a pas de date de création et pas de date de dernière mise à jour, mais elle existe depuis longtemps.
C’est un test d’usurpation d’identité.
0 commentaire