Quelques jours après le FIC (Forum International
sur la Cybersécurité, où on avait beaucoup parlé de méchants hackers,
forcément djihadistes), un article
du Monde nous rappelle que les plus grandes attaques contre la
sécurité de l'Internet viennent des États. L'article révèle l'existence du programme MoreCowBell
(« davantage de cloche à vache ») de la NSA,
programme d'espionnage du DNS. L'article du
Monde est assez flou, questions détails techniques, donc voici
quelques explications supplémentaires.
Vous pouvez également en trouver, et jusqu'à saturation, dans « NSA’s MORECOWBELL:
Knell for DNS », écrit par les personnes qui ont préparé
l'article du Monde (Grothoff est l'auteur de
GNUnet, Ermert est une excellente journaliste
connaissant bien l'Internet, Appelbaum travaille sur Tor). Dans cet article en anglais (il y a
une traduction en français, vous aurez tous les
détails sur MoreCowBell mais aussi sur les travaux de
l'IETF pour améliorer le DNS, sur les systèmes
alternatifs de nommage comme GNUnet, etc. Au
cas où vous n'ayez pas envie de changer de page Web, voici mes informations à moi.
Pour résumer l'article du Monde, la NSA espionne le DNS de deux
façons :
- Récolte passive de données, probablement via une écoute
directe du trafic Internet (quelque chose que la NSA fait souvent), suivie d'une dissection automatique des
paquets DNS et stockage dans une base de données. Rien
d'extraordinaire, le trafic DNS étant en clair, et des services moins
secrets le font depuis longtemps, comme DNSDB ou PassiveDNS.cn.
- Récolte active de données par des attaques par dictionnaire, où une
sonde (dans le cas de la NSA, la sonde passe par des résolveurs DNS
ouverts, comme Google Public DNS, pour mieux dissimuler ses traces) interroge des serveurs DNS
sur des noms possibles ou vraisemblables (en utilisant tous les mots
du dictionnaire, par exemple). C'est ce que le Monde, curieusement,
appelle « adresses fictives mais plausibles ». Les serveurs DNS reçoivent ce genre
d'attaques très souvent (ce sont en général des spammeurs qui
cherchent à se constituer des listes de noms de domaine).
Comme toujours avec la NSA, rien de surprenant (seuls les naïfs seront
étonnés), des techniques classiques, mais déployées à grande
échelle.
Maintenant, sur quelques points obscurs de l'article du Monde :
- « Serveur DNS interne » est apparemment un néologisme du Monde
pour résolveur.
- « Les numéros IP "en chiffres", correspondant aux adresses "en
mots", sont gérés par l’Internet Assigned Numbers Authority
(IANA) » C'est tellement résumé que c'est
quasiment faux : si l'IANA attribue bien les préfixes (et encore,
c'est fini depuis longtemps en
IPv4), ce sont les RIR qui font le gros
du travail et définissent les politiques d'attribution.
- La phrase « quand ils reçoivent une demande pour une adresse qui
n’existe pas, ils renvoient un message d’erreur accompagné de deux
suggestions » est probablement une allusion aux possibilités
d'énumération liées à l'ancienne technologie NSEC, possibilités
décrites (avec la solution) dans mon article sur le RFC 5155.
- MoreCowBell, si on se fie aux PowerPoint
de la NSA, n'utilise pas que le DNS, mais aussi HTTP. Quand le Monde
écrit « quand une attaque est déclenchée, l’interrogation des serveurs
DNS va servir à évaluer son efficacité en temps réel. Grâce à
MoreCowBells [sic], la NSA saura si le service attaqué continue à
fonctionner ou s’il a été coupé », il confond probablement ces deux protocoles. Le DNS ne
peut pas servir à savoir si un serveur a cessé de fonctionner.
- En revanche, « s’il a été déplacé vers un autre serveur par
mesure de protection, elle va le repérer à nouveau, ce qui permettra
de reprendre l’attaque » peut en effet se faire avec le DNS mais cela
n'a rien d'extraordinaire : bien des attaquants qui font des
dDoS font pareil.
Par-delà ces détails dans les explications, voilà pourquoi il est
essentiel de travailler à améliorer la protection de la vie privée
dans le DNS (il faut aussi travailler à mettre fin aux délirants
pouvoirs de la NSA, une menace pour tout le monde, mais c'est une
autre histoire). À l'IETF, le principal effort, dans la lignée du RFC 6973,
est fait dans le groupe de travail
DPRIVE. Son premier RFC sera sans doute
le document de description
du problème. Pour le chiffrement des
requêtes DNS, afin d'assurer leur
confidentialité, ma proposition préférée est
T-DNS
mais l'idée d'utiliser
l'ALPN de TLS est également tentante.
Une partie de l'effort IETF est également faite
dans le groupe de travail
DNSOP, où se fait l'élaboration de la proposition de minimisation
des données envoyées.
Et, bien sûr, une autre solution serait d'utiliser des systèmes
alternatifs au DNS, prenant mieux en compte le respect de la vie privée. Ils existent (Namecoin, Tor / dot-onion, etc) mais ils posent de redoutables problèmes.
Un autre article en français sur ce programme est dans
01 Net.