• Aucun résultat trouvé

Partie I État de l’art 19

1.4 Botnets

Une fois qu’une machine est infectée par un malware, il peut installer un programme “bot”. L’ensem-ble des machines réalisant cette tâche se retrouvent alors regroupées dans un grand réseau : un botnet. De manière plus formelle, il est possible de définir les notions suivantes :

Définition 9 : Un programme bot est un logiciel permettant d’accéder et de contrôler à distance la

machine où il est installé. Une telle machine se nomme alors un bot ou un robot.

Définition 10 : Un botmaster ou contrôleur est la personne qui contrôle un bot. Définition 11 : Un botnet est un réseau de bots contrôlés par le même botmaster.

Cette section vise à détailler l’architecture générique d’un botnet, ses fonctionnalités ainsi que les implémentations réelles.

1.4.1 Architecture générale

La figure 1.4 représente les acteurs et le fonctionnement d’un botnet. L’attaquant, le contrôleur ou botmaster, contrôle un grand nombre de machines qui sont ainsi qualifiées de zombies ou robots (bot). Celles-ci peuvent être de diverses natures car tout équipement sur Internet capable de communiquer peut se retrouver compromis pour être transformé en zombie : ordinateurs, téléphones, serveurs, routeurs, imprimantes, modems... Cependant, la plupart d’entre eux sont des ordinateurs basiques de particuliers qui sont utilisés car ils constituent un réservoir énorme de machines peu ou faiblement défendues com-parées aux équipements professionnels. Néanmoins, les ordinateurs d’entreprise sont aussi affectés par le phénomène notamment lors du déploiement d’un vers comme Conficker [20] en 2008. Cependant, les entreprises se doivent d’être plus réactives en mettant rapidement en œuvre des moyens de protection et de décontamination. Le canal de communication utilisé pour envoyer les ordres aux bots se nomme le canal de commande et contrôle (C&C).

Souvent, le déploiement du botnet est réalisé via la propagation d’un vers. Par exemple, pour Storm [31], on parlera du vers ou du botnet Storm.

1.4. Botnets

FIGURE1.4 – Architecture générale d’un botnet

1.4.2 Menaces et impacts

La figure 1.4 met en lumière quelques actions possibles du botmaster parmis un panel indénombrable. Historiquement, Eggdrop [8], le premier robot IRC que l’on peut considérer comme point de départ du développement des botnets, ne fut pas créé à des fins malveillantes mais pour aider à l’administration des canaux IRC. Les premiers botmasters ayant des buts malveillants qui suivirent étaient alors plutôt motivés par l’aspect démonstratif et la reconnaissance par les autres pirates [45]. Rapidement l’intérêt économique [46] a pris le dessus et il devient possible aujourd’hui de louer des botnets [3].

Un botmaster qui a l’emprise sur des machines zombies peut installer différents modules ou applica-tions. Les menaces des botnets sont donc diverses voire infinies. Les exemples les plus courants sont cités dans [62] et peuvent être divisés en deux catégories : les menaces internes ou celles envers les utilisateurs infectés par le bot et les menaces externes envers d’autres machines. De plus, un bref aperçu de l’impact financier des botnets conclura cette partie.

Menaces internes

Majoritairement, les menaces internes consistent à voler des informations en masse aux utilisateurs soit directement en téléchargeant certains fichiers ou données soit en les espionnant avec des logiciels espions (spyware en anglais) qui permettent entre autres de voir ce que font les utilisateurs sur leurs ordinateurs, sur quels sites ils naviguent ou ce qu’ils frappent au clavier grâce à un enregistreur de frappe (keylogger en anglais) [6]. Grâce à ces mécanismes, le vol massif de mots de passe ou de numéros de carte de crédit est une tâche aisée.

Un attaquant peut aussi profiter d’une machine zombie pour générer des revenus notamment en installant des publiciels (adware en anglais) [46] incitant l’utilisateur à cliquer sur certains liens ou di-rectement en téléchargeant des publicités par exemple. Malgré une rémunération individuelle faible, le botnet permet alors de multiplier celle-ci par le nombre de bots utilisés.

Enfin, une fois la machine compromise, elle devient totalement contrôlable notamment pour sup-primer des données, formater des disques durs... Ce dernier type d’action n’est pas discret et profite rarement au botmaster excepté dans le cas où l’utilisateur a découvert le bot et essaye de l’utiliser pour traquer le botnet. À l’inverse, de nombreux programmes bots essayent de se montrer le plus discret

nombre de zombies pour chaque campagne de spam 10 000 - 200 000 nombre moyen de messages envoyés par un botnet 160 millions en 2 heures nombre moyen de messages que peuvent envoyer plusieurs

botnets coordonnées

1 milliard en quelques heures

TABLE1.2 – Les botnets et le spam

possibles en se “cachant” de l’utilisateur, du système et des logiciels de protection [45].

Menaces externes

Les menaces externes regroupent les attaques vers d’autres machines sur Internet et sont difficilement détectables car l’attaque est distribuée. En premier lieu, les botnets permettent de réaliser des attaques de déni de service distribuées (DDoS). Ce genre d’attaque fait partie des plus répandues et est aussi le vecteur de nombreuses autres attaques malgré leur léger déclin [33]. Plus précisément, une attaque de déni de service contre une machine est une action qui lui empêche de répondre normalement à celles qui essaieraient en vain de s’y connecter. Cette définition générale regroupe beaucoup d’attaques et décon-necter physiquement une machine du réseau en fait partie. Cependant, on s’accorde généralement à se limiter aux attaque de déni de service par saturation c’est-à-dire celles qui envoient beaucoup de requêtes à un serveur pour augmenter sa charge et ainsi le rendre inutilisable. L’intérêt d’avoir un botnet est donc de pouvoir envoyer massivement ces requêtes de différents endroits ce qui rend le filtrage beaucoup plus difficile. Cette application est représentée dans la partie droite de la figure 1.4. Avec cette méthode, des attaques générant plus de 40 GigaOctets de trafic ont été aperçues [33]. De plus amples détails sur les différents types de DDoS ainsi que les mécanismes de protection correspondants peuvent être consultés dans [66]. On a vu précédemment qu’un vers peut aussi être capable de faire de telles attaques mais la différence ici est que l’ordre est donné par un contrôleur (botmaster) alors pour les vers purs, personne ne contrôle le processus une fois démarré.

La deuxième attaque généralement réalisée par les botnets est l’envoi massif de courriels indésirables ou spam dont l’intérêt économique sera démontré en 1.4.2. L’étude [1] constate que 85% du spam était dû aux botnets en 2006 tout en mettant en évidence les capacités extraordinaires de tels réseaux. Celles-ci sont résumées dans le tableau 1.2 dont les chiffres parlent d’eux-mêmes. Par conséquent, de plus en plus d’études sur les campagnes de spam via les botnets ont été faites [32, 21] dans l’objectif de mieux comprendre les botnets en soi mais aussi de mieux combattre le spam. Par exemple, Xie et al. [32] pro-posent AutoRE, un système générant des signatures de spam à partir des noms de domaines inclus dans les adresses transmises via les spams. L’envoi de courriers indésirables se faisant de manière distribuée à large échelle, il est difficile de les bloquer grâce aux techniques classiques comme l’utilisation d’une liste noire. Les travaux dans [21] montrent par exemple que les campagnes de spam durent classiquement plusieurs jours voire plusieurs mois. Toutefois, pour éviter qu’une adresse IP soit identifiée comme un bot et qu’elle ne soit rajoutée dans une liste noire, chaque bot n’est impliqué que quelques heures seule-ment. La charge d’email à envoyer par chacun d’eux est elle aussi bien distribuée selon leurs capacités. Ces observations montrent clairement la dangerosité des botnets dans le cadre de l’envoi de courriels indésirables.

Enfin, un botnet est aussi une base solide pour chercher des vulnérabilités sur d’autres machines (bal-ayage ou scanning) [62] ou lancer un nouveau malware, tel qu’un vers, car un botnet permet d’infecter rapidement de nombreuses machines en même temps. De plus, il peut chercher lui même à se “propager”, c’est-à-dire trouver de nouvelles machines à infester, pour agrandir la population du botnet. Dans [53], les auteurs observent deux types principaux de propagation de botnets :

1.4. Botnets – ceux dont le déclenchement de la propagation est dépendant d’un ordre du botmaster.

Intérêts financiers

L’étude menée dans [46] met en lumière les intérêts financiers que l’on peut tirer d’un botnet et plus particulièrement via la diffusion de publicités : paiement par affichage, par clic ou par vente. Considérons le premier cas avec Ir affichages réalisés sur la machine d’un utilisateur réel, If ceux sur des machines compromises (bots), Rc la probabilité de conclure une vente suite à un affichage dans le cas d’un util-isateur réel et P le gain que rapporte une vente. Du point de vue de l’acheteur, le prix Ci d’un affichage (d’où est dérivé le revenu du botmaster) doit alors être au plus égal à :

Ci=Rc×P×Ir

Ir+If

Ainsi, quand le nombre d’affichages non réels If augmente, ce prix a tendance à diminuer et oblige de ce fait les annonceurs à réduire leur coûts.

Cependant, quand le botnet occupe une part trop importante des affichages, cet équilibre n’est pas respecté, ce qui oblige le client payant la publicité à renégocier son contrat avec l’annonceur. Cette renégociation peut avoir lieu plusieurs fois de suite et déboucher sur la résiliation du contrat qui n’est bénéfique pour personne car plus aucun revenu n’est dégagé. Il y a donc un certain équilibre à respecter et c’est en jouant sur cet équilibre grâce à un réseau de machines virtuelles que les auteurs proposent de déstabiliser le botnet.

Un modèle économique plus évolué est exposé dans [28]. Sans rentrer dans les détails, il inclut la participation de pots de miel au botnet ce qui réduit son efficacité lors d’une attaque et donc son attrait. Ainsi, un attaquant à la recherche de la location d’un botnet ne paiera pas aussi cher si celui-ci contient des pots de miel.

Alors que les études précédentes avaient pour but d’établir un modèle économique, [29] évalue l’im-pact financier d’un botnet de manière pratique. En effet, Kanich et al. détournent le contrôle de Storm [31] pour lancer une campagne de spam proposant des produits pharmaceutiques. Les destinataires des courriels sont redirigés vers un site spécifique qui permet de comptabiliser réellement le nombre d’util-isateurs prêts à payer. Sur 350 millions de spams envoyés en 26 jours, seulement 28 ventes auraient pu aboutir, soit environ 2700 dollars. Cependant, seulement une partie du réseau de Storm a été détournée et en extrapolant le résultat précédent, il semble que la campagne de spam aurait pu dégager entre 7000 et 9500 dollars de bénéfice. De plus, en corrélant ces résultats avec l’évolution du nombre de machines infectées, Storm aurait permis de générer 3,5 millions de dollars par an. Enfin, compte tenu des prix du marché de la “location” (80 dollars pour envoyer 1 million d’emails [11]), les auteurs concluent que seuls les opérateurs de Storm eux-mêmes sont capables d’en tirer profit.

1.4.3 Botnets IRC

Historiquement, la renommée des botnets s’est faite grâce aux réseaux IRC (Internet Relay Chat) [8]. Ce protocole, bien que légèrement tombé en désuétude, est une messagerie instantanée. Chaque personne connectée à un serveur peut alors joindre certains canaux (channels en anglais) ou parler en privé avec une personne spécifique. Bien que ce système repose sur des serveurs, son fonctionnement assez simple permet facilement de déployer une architecture robuste composée de multiples serveurs. Ainsi, on peut considérer que les réseaux IRC sont pseudo centralisés tel que le montre la figure 1.5(a) où les serveurs forment un arbre de diffusion sur lesquels les clients, en l’occurrence des machines zombies,

(a) Architecture IRC (l’ordre du botmatser est re-layé par les serveurs qui se chargent de les délivrer aux machines zombies)

(b) Architecture P2P (l’ordre du botmatser est re-layé de machine zombie en machine zombie

FIGURE1.5 – Les deux principaux types d’architecture des botnets

sont connectés. Lorsque l’attaquant envoie un ordre, celui-ci est relayé via les différents serveurs qui le transmettent également à leurs clients.

[59] donne un historique de tels botnets. Le vers PrettPark [4] (1999) semble être le premier à avoir in-stallé un client IRC sur une machine infectée pour réceptionner des commandes. Ses actions se limitaient principalement à récupérer des données de l’utilisateur. De nombreux botnets plus évolués, notamment grâce à la capacité de pouvoir lancer diverses attaques, sont apparus au début des années 2000 [14, 65]. C’est à cette époque que les botnets se sont révélés dangereux. D’ailleurs, la détection et l’exclusion de machines zombies connectées sur des serveurs normaux a alors commencé. Ainsi, les attaquants se sont tournés vers la création de réseaux IRC dédiés.

[45] étudie en détails différents botnets IRC évolués dont les caractéristiques communes sont : – leur modularité : il est facile pour un attaquant de coder un nouveau module pour un botnet ; – leur capacité à récupérer des données sensibles : mots de passe, numéro de cartes de crédit, emails ; – leur capacité à mener des attaques de déni de service (fonctionnalité “de base”) ;

– la possibilité de trouver de nouveaux ordinateurs à infecter pour agrandir le botnet ; – leurs méthodes pour éviter leur détection.

La modularité permet de créer rapidement de nouvelles variantes d’un bot [58]. Ainsi on estime à plus de 4000 les variantes de SDBot.

1.4.4 Vers de nouveaux botnets

Quelques temps après les botnets IRCs, les botnets HTTP apparurent à l’instar de BlackEnergy [12, 41]. Les commandes sont généralement postées à une adresse Web que le bot télécharge et celui-ci retourne des informations en se connectant à une certaine adresse également. Certains botnets construits sur la base de messageries instantanées, autre que IRC, auraient vu le jour [41]. Cependant, ils restent anecdotiques parce qu’ils étaient beaucoup moins souples et n’apportaient rien de plus par rapport aux botnets IRC. Le véritable changement intervient avec les botnets pair-à-pair (peer-to-peer ou P2P).

Contrairement à IRC, une architecture P2P se passe de l’utilisation de serveurs car les différents bots sont directement interconnectés entre eux. Cependant, ce nouveau type d’architecture est plus compliqué car ajouter ou enlever un bot du réseau, tout en préservant son efficacité, est plus difficile. Les ordres sont alors routés dans le réseau par les machines elles-mêmes comme illustré sur la figure 1.5(b). En réalité, chaque machine est associée à un identifiant unique sur lequel se base l’algorithme de routage. De la même manière que pour les réseaux IRC, un botnet peut s’appuyer sur un réseau P2P préexistant avec

1.5. Détection et mesure des botnets

Documents relatifs