Détection et analyse de botnets grâce à des honeypots

<

Les botnets

Présentation générale

Selon Wikipedia, un botnet est un ensemble de machines zombies qui sont exploitées de manière malveillante.

Le terme « botnet » vient de la concaténation des mots « robot » et « network ».

Plus précisement, un botnet correspond à un réseau de machines compromises, appelées bots ou robots dans le jargon, et contrôlées à distance par un ou plusieurs pirates. Le contrôle des machines se fait par l'intermédiaire d'un serveur de commande où toutes les machines ainsi que les pirates y sont connectés. Le serveur de commande peut être centralisé ou non. Les machines servent alors aux pirates pour accomplir des tâches malveillantes que nous détaillerons dans la partie sur l'analyse de botnets.

Le terme « botnet » est apparu en 1999 à la suite du ver PrettyPark qui introduisait le concept de contrôle via le protcole IRC. Ce mécanisme fut alors repris et amélioré par différentes générations de vers dont les plus connus actuellement appartiennent à la famille AgoBot, SDBot et PhatBot. Leur modularité en fait des outils très simple à modifier et à utiliser. C'est à partir des années 2000 que l'on a commencé à voir de plus en plus de botnets se former. Certains d'entres eux sont même à l'origine des plus grosses attaques par déni de service de la dernière décénie. L'attaque qui a réussi à mettre à terre le moteur de recherche Yahoo pendant 2 heures, en 2000, a été menée depuis un botnet.

Aujourd'hui, le nombre de botnets en activité est d'environ 4000 et ne cesse de grimper. Nous voyons de plus en plus de botnets de faible taille. En effet, les pirates préfèrent avoir plusieurs botnets de petite taille qu'un énorme, ceci afin d'éviter de se faire repérer ou de tout perdre lorsqu'un botnet est mis à terre par la police cybercriminelle ou une société spéciliasée. Les botnets sont essentiellement utilisés pour réaliser du profit.

Il existe différentes générations de botnets qui tournent essentiellement autour de deux types de protocoles qui sont les protocoles de type centralisé et les protocoles de type décentralisé.

Les botnets centralisés

Les botnets centralisés sont les botnets de la première génération et sont généralement assez peu évolués. Les machines piratées se connectent tous à un serveur unique sur lequel se trouve également le pirate. C'est à partir de ce serveur que le pirate passe ses commandes qui seront exécutées sur chaque machine piratée. Le protocole de communication utilisée est dans la plupart des cas IRC (Internet Relay Protocol), le plus vieux protocole de tchat.

Chaque machine infectée se connecte sur un salon de discussion (channel) privé du serveur IRC afin de signaler leur existence. A partir de ce moment là, le pirate se connecte sur le même channel où il peut passer ses commandes à l'ensemble des machines.

Les commandes du pirate peuvent être envoyées des manières suivantes :

Les avantages de l'utilisation de botnets reposant sur ce protocole de communication sont les suivants :

Malgré tous ces avantages, IRC souffre d'importants inconvénients qui tournent autour de la sécurité. Tout d'abord, le côté centralisé du protocole fait que le cycle de vie du botnet repose uniquement sur le ou les serveurs IRC sur lequel sont connectés les machines zombies. De plus, IRC n'a pas été conçu dans l'optique d'être sécurisé. Toutes les communications passent en clair sur le réseau et il est assez aisé de les identifier dans un flux réseau. Un autre inconvénient est que le protocole IRC nécessite une connexion TCP permanente avec le serveur ce qui peut être facilement détectée par un administrateur.

Pour palier à ces inconvénients, certains pirates ont décidé d'implémenter du chiffrement au dessus d'IRC et de modifier légerement le protocole IRC afin de le rendre plus sécurisé ( impossible de voir les personnes connectées sur un salon, désactivation des commandes inutiles comme whois, ...). D'autres pirates ont tout simplement décidé de laisser tomber ce protocole au profit des protocoles de peer to peer.

Les botnets décentralisés

Pour ne plus dépendre d'un seul serveur, les pirates ont adopté une architecture décentralisé basée sur des protocles de peer to peer connus. Historiquement, c'est le botnet, nommé PhatBot, qui a lancé la mode en utilisant le protocole waste pour passer les commandes entre les machines zombies et le pirate. Waste est un protocole de peer to peer qui permet de créer un mini réseau isolé de l'extérieur où tous les échanges entre les membres du réseau sont sécurisés. D'autres botnets de ce type sont apparus par la suite notamment en se basant sur le protocole Gnutella.

L'avantage de l'utilisation du peer to peer est que cela rend le botnet plus furtif et donc bien plus difficile à détecter. Au lieu de se connecter à un unique serveur, le pirate n'a qu'à se connecter à un membre du réseau et s'authentifier pour envoyer ses commandes aux machines infectées.

L'inconvénient restant avec ce type de botnets est qu'ils ne sont pas complétement décentralisés. En effet, une liste, dite de démarrage, est présente dans chaque robot avec les serveurs à contacter pour récupérer une liste des noeuds du botnet. Une fois la connexion établie avec un noeud, la liste de démarrage n'est plus nécessaire. Ainsi, la propagation d'un botnet peut être bloquée si on banni les serveurs fournissant la liste des noeuds connectées.