Grosse attaque du weekend contre le DNS : et DNSSEC ?

Bon bha ça y est le weekend est passé et tout le monde a publié son ptit truc concernant la grosse attaque des Internets !

Je vais tenter d'expliquer un peu ce qui s'est passé mais disclaimer je suis pas un crack en DNS et si jamais je dis une bourde, n'hésitez surtout pas à me le signaler !

Mais en gros il s'est passé quoi ?

Bha pas grand-chose au niveau global. C'est pas une attaque contre l'Internet qui a eu lieu mais contre quelques cibles bien précises (des trucs étatiques du Moyen-Orient principalement).

Approximativement, des gens ont réussi à dévier du trafic (dont des mails et des mots de passes) réseau grâce à une attaque au niveau DNS mais pas seulement et c'est bien là où toute la subtilité se trouve. L'ICANN a publié un ptit communiqué de Presse assez … anodin mais qui a été repris un peu partout et amplifié/déformé. À tel point qu'on pourrait croire à un truc démesuré mais bon, laissons aux média faire leur travail de dramatisation outrancière.

Du coup, en fouillant un peu sur les Interouaib on trouve un article de Krebs On Security qui relate un peu plus l'histoire. Donc je vais me baser sur ce qui y est raconté.

Les méchants ont modifié les enregistrements DNS de certains domaines du Moyen-Orient. La plupart pointant vers des serveurs mails. Une fois fait, ils se crée des certifs x509 (le petit cadena vert sur les sites sécurisés) légitimes et n'ont plus qu'à attendre que les gens tentent de se connecter pour récupérer les identifiants et les mots de passe associés. Une fois ça en poche, il leur suffit de se connecter aux vrais serveurs mails et c'est tout.

Hahaha les boulets, ils avaient qu'à utiliser DNSSEC !

Ouaip c'est vrai.

Mais pour certains ils utilisaient DNSSEC et ça a quand même fonctionné ! DNSSEC c'est pas magique. C'est toute une chaîne de confiance. Petit exemple :

bender.lord.re

  • Pour que ce soit valide d'un point de vue DNSSEC, il faut que la racine soit signée donc . est signée par le root server (rapelez-vous, on ne l'écrit jamais, mais il y a un point implicite à l'extrémité droite des noms de domaines).
  • Ensuite .re doit être signé par le registry
  • Puis vient .lord qui est signé par le serveur DNS ayant autorité mais avec une nuance.
  • Et enfin bender. qui lui est signé par le serveur DNS ayant autorité (mais si j'avais délégué ça à un autre serveur DNS, ça aurait à cet autre serveur de signer).

Vous voulez savoir ce qu'est la nuance ? Bon, je vous le dis quand même : il y a un lien entre votre domaine et la zone du dessus (.re dans l'exemple) pour que la chaîne soit complète. C'est l'enregistrement DS qui permet de déléguer la signature de votre zone auprès du registrar, qui lui transmettra ça au registry.

Bref DNSSEC si c'est mis en place et validé aurait dû protéger.

Je remets un peu de suspens encore ? Non je pense que vous en avez eu assez.

Et bhé le registrar s'est fait trouer. Les attaquants ont pu s'infiltrer chez le registrar et modifier le DS et péter le DNSSEC du coup. Et comme le DNSSEC est une chaîne, si elle pète à un endroit, tout ce qui est en aval est compromis. Bref, là, ça a été pété chez le registrar donc les serveurs DNS ayant autorité sont … niqués, faut le dire.

Les attaquants ont donc utilisé leur propre DS et ont pu se refaire du DNSSEC ou carrément le supprimer sans trop d'emmerdes.

Moralité ?

On a beau faire tout comme il faut dans les règles de l'Art, bha si ça pète en amont tu es marron.

Bref, déployer DNSSEC est toujours aussi important et à ne pas sousestimer. Par contre, vous ne serez pas pour autant immunisé contre ce genre d'attaque !

Je rajoute une couche mais le choix du registrar est capital et malheureusement il est très difficile de savoir quel registrar a une bonne sécurité à priori.