Etude de La Faille DNS Kaminsky

download Etude de La Faille DNS Kaminsky

of 12

  • date post

    24-Jun-2015
  • Category

    Documents

  • view

    678
  • download

    1

Embed Size (px)

description

Etude de la faille DNS decouverte par Dan Kaminsky

Transcript of Etude de La Faille DNS Kaminsky

xx-xx2010-2011

tude de la faille DNS Dan Kaminsky 2008

Propos par: M. xx xx Ralis par: M. Samir ABDELLI

Objectif:Dans ce 3e travail, vous allez tudiez les tenants et aboutissants de la faille DNS mise en vidence par Kaminsky en 2008. Kaminsky a propos une exploitation astucieuse de certaines faiblesses du DNS. Votre travail consistera :

Expliquer ce en quoi consiste cette faille, la faon de l'exploiter, ses impacts, les logicielsimpacts, etc.

Monter une maquette permettant de mettre en vidence la faille. Vous attaquerez la zone shayol.org et fournirez une capture de trame mettant en vidence le rsultat de l'attaque (et incluant au moins une requte de type A pour ns.shayol.org et retournant l'adresse 194.199.90.1). On ne vous demande pas de coder vous-mme les programmes permettant l'attaque. Vous pouvez utiliser des programmes rcuprs sur internet. Vous expliquerez le fonctionnement du programme rcupr (ce qu'il fait, pas la faon dont il est cod). trouver un programme en python serait un plus. Il existe de nombreuses descriptions de la faille. Bien videmment, ce que vous rendrez devra

1

tre votre explication et pas un copier/coller de ressources internet.

Introduction:

DNS Domain Name System est un style de nommage dans pour les htes dans un domaine [RFC 1034]. Le but de DNS est de fournir un mcanisme de nommage des ressources d'une faon ce que ces noms soit utiliss sur diffrents htes, rseaux, protocole, internet, etc. [RFC 1035] Ce non servira rfrencer des ressources dans un rseau. DNS manient des noms DNS dans ne base de donnes DNS qui contient le nom DNS d'un hte et son adresse IP correspondante. Cette base est souvent mise jour. Pour des raisons de performances (surtout dans le ca s ou la taille de la base DNS est trs importante) une Cache DNS est maintenue par le serveur de noms DNS qui contient les adresses IP des noms DNS qui ont taient recensement demander par un client de rseau. Un lment de cette cache sera supprim si le TTL Time To Live est nul (la valeur de TTL est dfinie par l'administrateur de serveur DNS) Avant d'aller plus loin et voir comment DNS Domain Name System fonctionne, on va introduire des termes qui seront utiliss dans la suite de ce rapport pour viter toute confusion avec d'autres termes;

Zone: dun point de vu de serveur de noms DNS , le domaine est constitu d'un ensemble dinformations locales appeles zones . Le Serveur de noms doit mettre jour priodiquement ces zones partir de copie des fichiers locaux de zones de son serveur DNS matre ou d'autres serveurs de noms [RFC 1034]. Serveur de nom: se serveur rpond des questions de la part des clients (les requtes: Quelle est l'adresse IP de shayol.org ? ). Parfois le serveur de nom rpond directement aux requtes de ces clients (cas d'un serveur autoritaire de la zone ou bien le nom shayol.org est dans sa cache DNS) , et parfois le serveur ce charge de la recherche de la rponse la question de client sur internet afin de trouver des serveurs de noms autoritaire sur le domaine shayol.org . Serveur autoritaire: Pour chaque zone, un fichier contenant une liste de nom de hte/IP ( ns.shayol.org est 194.199.90.1 , et ainsi de suite). Gnralement c'est une tache administrative sur une seule machine. C'est la zone matre . Resolver (Client DNS): c'est le moyen qui permet un client de poser des questions sur un serveur propos d'un nom dhte. Serveur de nom rcursif: Cest un serveur qui se permet d'aller sur Internet pour rechercher sur d'autres zones sur lesquelles il n'est pas autoritaire pour rpondre une requte client, c'est un service offert par les serveurs de noms pour ces clients (cas d'un ISP). Parfois les serveurs de noms ne sont pas configurs pour fournir ce service aux clients (sauf les abonns d'un ISP par exemple). Il y a encore des cas o le client demande son serveur de noms de ne pas jouer le rle d'un serveur de noms rcursif et le laisser lui-mme se dbrouiller d'interroger d'autres serveurs de noms. Cache DNS: Un serveur de nom local rcursif qui accde internet pour rpondre une requte client, rcupre une rponse aprs une srie de requte vers les serveurs de noms sur internet jusqu'au serveur autoritaire pour le nom dhtes recherch. Ensuite le serveur de nom local satisfait le client demandeur et enregistre ce nom de hte et son adresse IP dans un espace appel cache DNS , pour que d'autres client qui font la mme requte reoivent la mme rponse que le premier client mais cette fois ci plus rapidement (rponse directe), malgr que le serveur de noms n'est pas autoritaire de nom recherch. Le TTL: Time To Live d'un lment dans le cache est spcifie par administrateur de la zone pour chaque type d'enregistrement.Ex: Interroger le serveur de noms de systme (/etc/resolv.conf) host -a shayol.org (le client demande au serveur de noms de rechercher shayol.org )

2

dig shayol.org +trace (le client demande au serveurs de noms de ne pas rechercher shayol.org sur internet s'il n'est pas autoritaire mais de le laisser se dbrouiller pour le faire, pour cela le client contactera les serveurs ROOT au nombre de 13 (de a jusqu' m ) qui garantissent le bon fonctionnement de Internet l'chelle mondial.

3

Enregistrement DNS: DNS propose plusieurs types d'enregistrement, tel que: une adresse IP (enregistrement A ), NS(nameserver: serveur de noms), MX(mail exchanger), SOA(start of authority) Dlgation: Dans un cas o le serveur de noms ne trouve pas le nom de hte dans sa zone, il se permet de rpondre au client et de lui suggrer un autre serveurs de noms qui peut lui son tour luis suggrer un autre serveur de noms qui est autoritaire sur la zone. C'est gnralement le cas des serveur dits ROOT : domaine racine et des serveur GTLD: Global Top Level Domain , domaine de premier niveau qui son responsable des domaines .com , .net , et .org

Fonctionnement de DNS:

Connatre toute les tapes de fonctionnement de DNS et les changes de requtes DNS (questions et rponses) sont trs importante pour mieux comprendre la suite de ce document.

Resolver(client DNS):

Un client fait une requte (question) Quelle est l'adresse IP de shayol.org ? son serveur de noms (dans Linux c'est gnralement /etc/resolv.conf). Cette question recherche donc une rponse de type A : adresse IP. A la rception le serveur de nom vrifie sil est autoritaire sur la zone de shayol.org , et comme ce n'est pas le cas, le serveur consultera sa cache DNS locale pour voir sil peut trouver une adresse IP de shayol.org rcemment consulte. Donc le serveur ne peut pas rpondre au client, mais gnralement les serveurs de nom (par exemple des ISP) sont configurs chercher une rponse sur Internet pour pouvoir rpondre aux requtes clients(ou uniquement pour

4

ces abonns). Mais si le serveur de noms est autoritaire pour shayol.org une rponse est directement envoye au client demandeur, et si le serveur de noms consulte sa cache DNS et trouvera le nom DNS shayol.org il renvoie l'adresse IP associe directement au client sans accder internet. Chaque client DNS, quand il fait une requte de question au serveur de noms il prend un identifiant de cette requte appele QID: Query ID, ou TXID: Transaction ID pour que le serveur de noms puisse rediriger la rponse de sa requte vers le client, mais l encore le serveur de noms doit grer plusieurs QID de plusieurs clients et peut tre plusieurs QID en mme temps. Dans notre cas on supposera que notre serveur de noms n'est pas autoritaire pour shayol.org et qu'il n'est pas dans sa cache DNS, et donc le serveur recherchera ce nom sur Internet (sauf cas contraire, dans le cas o le serveur DNS n'est pas configur comme serveur de noms rcursif ou que le client veut se dbrouiller lui-mme pour trouver l'adresse IP de shayol.org ).

Requte de Serveur de noms local vers l'extrieur:

prsent notre serveur de nom local jouera le rle d'un client DNS sur Internet. Les serveurs de noms rcursifs sont configurs avec les 13 serveurs de noms qui grent Internet (requtes DNS) ROOT Servers , la plupart sont aux tats Unies, de la forme A.ROOT-SERVERS.NET. IN A 198.41.0.4 (de A M), et qui, heureusement ne changent pas d'adresse IP trs souvent, et jamais en mme temps. Et qui peuvent grs plusieurs requtes DNS la fois et en mme temps.

Notre serveur de nom local va choisir, alatoirement, un serveur DNS racine sur Internet root, et envoie sa requte DNS Mon client veut savoir l'adresse IP de shayol.org? vers b.rootservers.net (IP: 192.228.79.201)

Le serveur b.root-servers.net n'a pas d'information sur shayol.org , mais il peut envoyer des informations de type NS: NameServer au serveur de noms local. Ces informations sont des noms 5

de serveurs de noms responsable des noms de domaine .com , .net , et .org appels GTLD: Global Top Level Domain . Le domaine .org est gr depuis le 1er janvier 2003 par Public Interest Registry . Afilias assure la gestion technique du registre .org tout comme le nom de domaine .info , en vertu d'un contrat avec Public Interest Registry . Le serveur b.rootservers.net fournit aussi les adresses IP des serveurs GTLD pour viter une autre recherche sur les adresse IP de GTLD de la part de serveur de noms local

Aprs la rception d'une liste des serveurs de noms GTLD de la part de b.rootservers.net , le serveur de noms local choisit, encore une fois, au hasard, un serveur GTLD, b2.org.afilias-nst.org , et envoie la mme question (requte question) au serveur b2.org.afiliasnst.org , Mon client veut savoir l'adresse IP de shayol.org? Maintenant son tour le nouveau serveur de noms b2.org.afilias-nst.org n'a pas de rponse exacte la requte question de serveur de noms local, mais il peut donner des informations sur le serveur autoritaire pour shayol.org , et donc il va envoyer des enregistrements de type NS , serveur