Titre de l'article : Les Fast-Flux Networks : comment remonter à la source des attaques ?
Auteur : Adrien GUINAULT, consultant sécurité XMCO
Couriel : adrien.guinault@xmco.fr
Date : Janvier 2008
Version complète en PDF : Actusécu n°18


Les techniques de piratage sont de plus en plus complexes et diverses. Chaque groupe de pirate se spécialise dans des domaines variés  : carding, phishing,  Spamming, cracking de logiciels, déni de services, etc . Leur but est clair : générer un maximum de profit sans toutefois être clairement identifié et contrôlé.

Depuis quelques mois, une nouvelle méthode nommée fast-flux a vu le jour. En quelques mots, cette technique profite des caractéristiques du protocole DNS afin d'associer de nombreuses adresses IP à un nom de domaine particulier.


RAPPEL DU FONCTIONNEMENT DU PROTOCOLE DNS

Les bases

Rappelons tout d'abord le fonctionnement du protocole DNS.

Le protocole DNS (Domain Name Service) permet d'associer un nom de domaine à une adresse IP. En effet, tous les ordinateurs connectés sur un réseau possèdent une adresse IP qui leur permet de communiquer avec les autres machines. Le protocole DNS a été mis en place afin de simplifier les échanges. Une adresse IP (209.85.135.147) est souvent difficile à retenir contrairement aux noms de domaines (www.google.Fr).

Les serveurs DNS ont donc pour rôle d'assurer cette correspondance. La résolution d'un nom de domaine est transparente pour un utilisateur qui ne connait généralement que le nom de domaine lorsqu'il navigue sur Internet.

Requêtes récursives/itératives

Chaque machine accessible sur Internet possède une adresse IP et un nom de domaine ou FQDN (Fully Qualified Domain Name, ou Nom de Domaine Pleinement Qualifié) de la forme : hôte.domaine.tld com.

veille.xmco.fr :

-com : correspond au Top Level Domain, c'est-à-dire au domaine de niveau supérieur
-xmcopartners : correspond au domaine
-veille : est le nom de la machine demandée

La résolution de l'adresse IP de cette machine peut alors être réalisée par deux méthodes appelées résolution récursive et résolution itérative. Dans le mode récursif, notre machine qui souhaite joindre veille.xmco.fr va demander à son serveur DNS local de résoudre ce nom. Les serveurs DNS jouent également le rôle de cache et peuvent immédiatement répondre s'ils possèdent l'enregistrement dans leur base.


En revanche, si aucun résultat n'est trouvé dans leur cache, le client doit alors faire appel au domaine du niveau supérieur à savoir le DNS chargé de résoudre l'extension ‘.com'. Le serveur DNS qui contrôle la zone ".com" va ensuite fournir l'adresse IP du serveur ayant autorité sur la zone xmcopartners (que l'on appelle NS ou Name Server). Enfin, la dernière étape consiste à demander au serveur NS l'adresse IP désirée. Le serveur NS reçoit la requête "adresse IP de veille.xmco.fr" cherche dans sa base l'adresse associée.

Les requêtes DNS itératives sont différentes et reposent cette fois sur des interrogations successives du client. Ce dernier va faire toutes les requêtes nécessaires pour obtenir l'adresse IP désirée.

Les champs DNS

Tous les serveurs DNS, mis en jeu lors de la résolution d'une adresse IP, écoutent sur le port 53 afin de satisfaire aux requêtes des clients. Ces serveurs possèdent une base de données permettant d'associer chaque nom de domaine à un ensemble d'informations dont voici les principaux que nous utiliserons dans la suite de cet article.
-Champ A : adresse IP d'un hôte
-Champ PTR : inverse du champ A
-Champ MX : nom de domaine des serveurs de mail associés
-Champ CNAME : nom canonique d'un alias
-Champ AAAA: adresse IP (ipv6) associée à ce nom de domaine
-Champ NS : serveur de nom autorisé pour le domaine



PRESENTATION DES FAST FLUX

Qu'est ce qu'un Fast-Flux?

Entrons à présent dans le vif du sujet. Les pirates ont compris l'intérêt de jouer avec le protocole DNS pour réduire le risque de se faire bannir.<

En effet, les serveurs à l'origine d'envois d'email massif ou hébergeant des sites d'achat de produits illégaux, sont rapidement bannis et fermés par les autorités.

Les pirates devaient alors trouver une solution simple mais efficace, limitant les coûts et assurant une disponibilité optimale de leurs serveurs.

La solution a donc été trouvée dans l'utilisation ingénieuse du protocole DNS en associant un même nom de domaine à plusieurs IP différentes : les réseaux fast-flux.

Ces adresses IP appartiennent généralement à des machines compromises sur Internet qui sont alors utilisées comme des relais entre le client et le véritable serveur du pirate.

Cette architecture va éviter toute divulgation de l'adresse IP réelle du pirate et donc de compliquer toutes interventions des autorités.

Fonctionnement

Le rôle d'un fast-flux est d'associer, à un instant t, une adresse IP à un nom de domaine. Cette adresse IP sera différente à t+1.
Les pirates utilisent plusieurs enregistrements "A" (IP) pour un seul nom de domaine. Cette méthode combine le "Round Robin DNS" (technique DNS de répartition de la charge utilisée par les grands sites web comme Google) avec des limites de temps réduites (TTL) qui permettent de changer continuellement la liste d'adresses IP associées à un nom de domaine.

Cette correspondance nom-de-domaine/adresse-IP change donc continuellement (toutes les 5 minutes) en fonction de plusieurs paramètres imposes par les pirates (charge, disponibilité...).
Ces changements DNS pointent alors vers un grand nombre de machines préalablement compromises, machines fonctionnant tels des reverse-proxies.  Ces dernières redirigent les requêtes des clients et camouflent l'adresse IP du serveur réel appelé "MotherShip".

Les cybercriminels sont alors à l'abri d'un simple WHOIS qui révélerait leur identité. Le WHOIS d'un site fastfluxé indique le plus souvent un accès ADSL d'un particulier innocent.

Différents types de Fast-Flux

Les réseaux fast-flux peuvent être implémentés de deux manières.
La première appelée "single flux" utilise les machines compromises afin de rediriger uniquement les requêtes web. La seconde est plus complexe et est décrite plus loin dans cet article.
Le schéma présente un exemple d'une requête au site  xmco.fr. Nous imaginons que nous avons mis en place une architecture fast-flux avec deux machines compromises d'adresses IP 93.93.93.93 et 80.80.80.80.

Notes : Dans la réalité, un réseau de fast-flux possède un nombre important de machines compromises.

Lorsqu'un internaute souhaite accéder à notre site web, le serveur DNS ayant autorité sur notre domaine (que nous contrôlons également) choisit aléatoirement un des deux enregistrements "A" (dans notre exemple l'adresse IP 80.80.80.80) et le renvoie à l'internaute. Des optimisations peuvent être réalisées en choisissant la cible en fonction de la charge des machines. Le navigateur de l'internaute peut alors établir une connexion avec l'adresse IP 80.80.80.80. La machine compromise n'implémente pas de serveur web mais uniquement un proxy qui va rediriger la connexion vers un serveur central appelé "Mothership".

Le "Mothership" est le véritable serveur dont l'adresse est connue uniquement des proxies. Cette redirection est transparente pour l'utilisateur qui ne connaît la réélle IP du serveur (X.X.X.X) hébergeant le site web. La disponibilité de cette première solution repose essentiellement sur un serveur DNS complice. Une fois ce dernier identifié par les autorités, il suffira de couper ce serveur DNS pour anéantir le site web pirate.

Le second mode se nomme "double flux". Le principe reste le même, cependant, le serveur de noms (NS) ne possède pas de tables de correspondance IP/nom-de-domaine mais redirige, lui aussi, les requêtes DNS sur le port 53 du serveur "Mothership".

De plus, les réseaux fast-flux les plus évolués incluent également le serveur NS dans cette architecture "double-flux" si bien que son adresse IP change également à intervalle de temps régulier...

Nous n'entrerons pas dans les détails, mais pour cela, les pirates doivent avoir une infrastructure DNS à plusieurs niveaux et la possibilité de changer régulièrement auprès du registrar (bureau d'enregistrement permettant le dépôt du nom de domaine) l'association NS-IP. Notons qu'il existe des registrar peu regardants sur les activités de leurs clients (voir article dans ce même numéro sur les hébergeurs offshore). Contrairement à la première architecture, le double flux assure une disponibilité optimale. En arrêtant un serveur de nom, d'autres peuvent rapidement voir le jour.

Les avantages des Fast-Flux

L'utilisation de ce type d'architecture DNS comporte de nombreux avantages pour les pirates et les spammeurs.

En utilisant ce procédé, les pirates peuvent camoufler le serveur qui héberge l'application frauduleuse. Les services de Police ne peuvent déterminer l'adresse IP finale et voient seulement les adresses IP des machines compromises positionnées aux quatre coins de la planète. Une investigation sur ces machines compromises est alors nécessaire pour potentiellement identifier la source.

Le second avantage est bien entendu le coût de l'infrastructure. En effet, les pirates doivent maintenir le serveur Mothership (DNS et HTTP) sans avoir à dupliquer leurs mises à jour sur les autres machines. Un seul serveur puissant est nécessaire pour répondre aux requêtes.

Les inconvénients des Fast-Flux

D'après nos essais, les sites fastfluxés sont lents. Ce constat provient du fait que les machines constituant le réseau de fast-flux sont le plus souvent des ordinateurs de particuliers avec des accès ADSL et donc de faibles débit en upload. Lorsque l'on visite un site web fastfluxé, il est possible d'avoir la sensation que le site s'ouvre "à la façon puzzle".

EXEMPLE D'UN SITE FASTFLUX

Morningcan

Beaucoup de sites de vente en ligne de produits comme Viagra ou autres stimulants interdits (produits dopant, hormones de croissance) utilisent le principe des fast-flux. Les exemples sont nombreux. Une simple recherche dans notre boite email va démontrer l'ampleur de ce genre de réseau.
Premier SPAM, première touche, on nous propose du Viagra à prix cassé...

Le type d'URL utilisé est intéressant mais sera présenté dans un prochain numéro.

En suivant le lien proposé, nous arrivons sur un site nommé "Canadian pharmacy" très long à charger…premier signe avant-coureur des fast-flux…la lenteur car nos requêtes passent toutes par des reverse- proxies avant d'arriver au serveur final.

Afin de déterminer l'adresse du site web morningcan.com, nous utilisons un plugin Firefox qui révèle l'origine de l'image téléchargée.

La première connexion au site morningcan.com atteint l'adresse IP 61.10.60.5. Le site est hébergé à Hong Kong ( noté Unknown city, HK ).

Quelques minutes plus tard, nous nous reconnectons sur ce même site. L'adresse IP n'est plus la même… Le site est, cette fois, hébergé à Corée (KR). CQFD !

Une petite résolution via l'outil nslookup nous confirme nos soupçons. Plusieurs réponses correspondent à la résolution du nom de domaine demandé. Même constatation pour les nameserver (NS) :

Un coup d'oeil sur les enregistrements WHOIS de la première IP retournée (89.178.113.126) indique un FAI Russe nommé CORBINA-BROADBAND dont la description est "Broadband customers in Moscow", soit des accès ADSL pour particuliers.

La seconde IP (91.33.237.109) correspond à un accès dial-up (modem) du FAI allemand Deutsche Telekom, la troisième à un fournisseur d'accès TV et Internet par câble chinois (HK Cable TV Ltd). Etc.

Nous ne sommes donc pas sur les serveurs web d'une pharmacie qui n'a rien à se reprocher...

StormWorm utilise des Fast-Flux

Le groupe de pirate à l'origine de la célèbre attaque "Storm Worm" (voir notre article du numéro 17 de l'Actu-Sécu) utilise également ces architectures DNS de fast-flux. Ceci leur permet d'envoyer des SPAM à grande échelle sans être blacklisté par les sociétés dédiées comme Spamhaus, Spamcop...

CONCLUSION

Les cybercriminels utilisent donc des méthodes de camouflage de plus en plus évoluées qui rendent difficiles leurs traques et leurs arrestations. Aujourd'hui certains hébergeurs proposent même ces services à leurs clients. Un article de ce numéro d'Actu-Secu leur est consacré.