Préambule
Il est difficile de trouver les mots justes et de s’atteler à un sujet de discussion qui paraîtrait futile par rapport aux terribles attentats qui ont frappé la France, quelques heures avant Beyrouth, hier Bamako. Je tiens en préambule à rendre hommage à toutes les victimes et les familles atteintes par ce drame. Peut-être ai-je, comme beaucoup d’entre nous, croisé certains d’entre eux au cours des dernières années, lors d’une ballade dans Paris. Et il faut rendre hommage aussi aux secouristes, policiers, gendarmes, militaires et aux simples citoyens qui se sont mobilisés chacun à leur façon pour réagir efficacement et solidairement à la violence qui frappait Paris et Saint-Denis, Beyrouth et Bamako.
Au milieu de cette violence, on parle souvent des actions menées sur Internet, et notamment sur les réseaux sociaux. Cette semaine en France et dans le monde, les réactions habituelles d’intolérance, de rumeurs ou de trolling ont été observées, mais elles ont été à mes yeux submergées par une émotion juste et partagée, ainsi que par un usage positif d’Internet pour s’informer très vite sur ses proches ou la meilleure façon de rester en sécurité [n’hésitez pas à me signaler des articles de synthèse pertinents sur ce sujet].
Le travail des enquêteurs et des services de renseignement prend aussi une dimension numérique: découverte de liens sur Internet, analyse d’ordinateurs et de téléphones mobiles (avec des conditions particulières pour les perquisitions administratives de l’Etat d’urgence). On ressent ces jours-là tout le sens des efforts menés depuis de nombreuses années pour former et mobiliser des enquêteurs spécialisés à ces questions en gendarmerie et en police. Je peux aussi témoigner des nombreux messages de soutien reçus du monde entier de nos partenaires privés et publics pour venir immédiatement en aide aux enquêteurs français.
Il a beaucoup été dit au cours des derniers jours qu’il fallait reprendre rapidement le cours d’une vie normale, résister et ne pas se laisser gagner par la peur. Pour les personnes qui comme moi traitent de cybercriminalité, cela veut évidemment dire réévaluer notre action au regard des événements de ces derniers jours et apporter notre aide technique, mais cela veut aussi dire qu’il faut continuer de mener les actions qui permettent de lutter contre ces formes de délinquance, certes en apparence non violentes (même si certaines conséquences de la cybercriminalité sont parfois dramatiques), mais qui ont un coût toujours croissant sur l’économie de nos pays ou la vie privée de nos citoyens.
Quatre années de réflexion et d’échanges
Une aventure commencée voilà quatre ans s’est achevée la semaine dernière avec la soutenance d’une thèse de doctorat en informatique le jeudi 12 novembre 2015, ce qui me permet aujourd’hui de faire le point sur les leçons qu’il reste à tirer en matière de lutte contre les botnets. Il y a 4 ans donc, poussé par David Naccache, professeur à l’Ecole normale supérieure et officier de réserve en gendarmerie, je sautais le pas de l’engagement dans une thèse de doctorat en informatique. J’ai été accueilli par l’équipe Réseaux complexes du Laboratoire d’informatique de Paris 6, dirigée à l’époque par Matthieu Latapy, co-directeur de ma thèse avec David et aujourd’hui par Clémence Magnien.
Posée de façon simple, ma thèse de départ était la suivante:
Les botnets sont l’outil premier de la délinquance numérique. Pour mieux lutter contre eux, les botnets doivent être compris comme des systèmes, au-delà des simples programmes malveillants, en intégrant l’ensemble de leurs composantes.
La conclusion que j’ai pu en tirer après quatre années de réflexion et d’échanges était que cette thèse était juste et partagée, mais qu’elle n’était pas pleinement formulée et c’est ce que je me suis efforcé de faire.
Mon travail a donc commencé à l’hiver 2011 par le lancement d’un Wiki sémantique https://www.botnets.fr/ avec une double ambition: documenter les botnets et partager ce travail, donc rentrer en relation avec la communauté qui traite de ces questions en France sans forcément toujours se connaître. Et il s’est évidemment avéré que je ne connaissais alors pas encore toutes les personnes qui travaillent discrètement et parfois isolément sur ces questions, qu’il s’agisse de chercheurs ou d’acteurs de la sécurité des réseaux.
Un Wiki sémantique permet de donner un sens aux liens entre les différentes informations que l’on y publie. Ces informations sont des propriétés des notions que l’on documente et un grand nombre de ces propriétés peuvent être elles-même documentées. Ainsi, un botnet pourra utiliser un protocole de communication donné que l’on expliquera ou être diffusé par une plateforme d’exploits particulière.
Figure 1 – Extrait de la structure sémantique du Wiki botnets.fr
Un des intérêts concrets a été aussi pour moi de réaliser ma bibliographie au fur et à mesure des travaux et surtout de ne pas perdre la trace de la source de chacune des informations que je collectais. L’autre intérêt du Wiki est que l’on peut partager la saisie d’informations, ce qui fut par exemple le cas avec l’aide de Kafeine qui a beaucoup contribué à ma réflexion sur les rançongiciels (voir cette page reprenant les visuels des rançongiciels ciblant les victimes françaises).
L’observation des rançongiciels, qui ont largement ciblé l’Europe à partir de 2012, a par exemple permis d’observer les différents modes de monétisation des botnets, soit par des systèmes d’affiliation (les affiliés sont par exemple rémunérés à la commission selon le nombre de bots qu’ils ont permis de recruter), soit sous forme de kits (voir figure 2 ci-dessous).
Figure 2 – Différents scénarios de monétisation des botnets, de ceux qui sont implémentés de façon isolée, par l’équipe qui le développe à ceux qui existent sous forme de kits avec des options d’affiliation.
Il peut exister d’autres stratégies de compartimentation que l’affiliation, par exemple la location d’une partie d’un botnet à un client donné.
Ce travail de documentation et d’échanges s’est poursuivi tout au long de la thèse. Ainsi, plus de 400 classes de botnets ont été documentées réparties en 16 catégories. Il s’est concrétisé par de nombreuses présentations, des discussions avec de nombreux chercheurs et l’organisation depuis trois ans d’une conférence internationale sur le sujet de la lutte contre les botnets dont la prochaine édition se tient dans quelques jours – Botconf.
Définitions et concepts
Une fois ce long travail d’observation réalisé, j’ai pu remettre à plat l’ensemble des définitions utiles. Les plus importantes touchent évidemment aux botnets eux-mêmes:
Un logiciel malveillant ou malware est tout programme (directement exécutable ou en langage interprété), inséré dans un système d’information, en général de façon discrète, avec l’intention de compromettre la confidentialité, l’intégrité ou la disponibilité des données de la victime, de ses applications, du système d’exploitation, du matériel contenant le système d’information ou piloté par lui, ou encore de chercher à ennuyer ou perturber la victime.
Un botnet est un ensemble constitué par des systèmes compromis par un logiciel malveillant (appelés alors bots) qui communiquent avec un système de commande et de contrôle donné.
Un système de commande et de contrôle est l’ensemble des dispositions prises pour assurer la transmission de commandes (d’ordres) du maître du botnet vers les bots et/ou la réception en sens inverse d’informations d’état ou du résultat des commandes ou des fonctions automatisées du botnet. Le système de commande et de contrôle peut reposer sur un serveur unique, un ensemble d’infrastructures ou uniquement un protocole de communication entre les bots et le maître.
La synthèse s’est ensuite approfondie en proposant un modèle objet pour représenter les botnets et donc concrétiser la vision systémique recherchée. Ainsi, la menace APT1 telle que documentée dans de nombreux articles (par Mandiant, Malware.lu) peut être synthétisée selon le modèle objet représenté en Figure 3 ci-dessous:
Figure 3 – Modèle objet de la menace APT1 (codes malveillants, infrastructures et botnets mis en place par ce groupe)
L’architecture des systèmes de commande et de contrôle s’est complexifiée avec le temps, passant d’architectures centralisées à des architectures décentralisées (reposant essentiellement sur des technologies pair à pair):
- architecture aléatoire (pour se connecter à ses bots, le maître du botnet doit les contacter lui-même)
- architecture centralisée
- architecture centralisée répartie
- architecture décentralisée
- architecture hybride (qui combine plusieurs architectures)
La définition de la notion d’architecture centralisée répartie est un exemple des contributions de la thèse. Elle recouvre les circonstances où un point individuel de défaillance subsiste, car en réalité centralisé sur un équipement (ou quelques équipements ou l’infrastructure d’un tiers), mais où l’accès à cet échelon central est camouflé et solidifié par un dispositif intermédiaire tels que des relais ou l’utilisation d’algorithmes de génération de noms de domaine (comme je l’évoquais ici avec Conficker).
Figure 4 – Exemples d’architectures centralisées réparties
Des modalités complémentaires permettent d’enrichir ces architectures:
- le sens des communications (univoque montante ou descendante ou réciproque)
- modalité persistante (connexion permanente des bots actifs au système de commande et contrôle) ou sporadique/périodique
- l’abus d’une autre architecture (un réseau social par exemple ou des groupes de discussion)
Pour décrire de façon complète le fonctionnement des botnets, il est important de comprendre leurs modes de diffusion. C’est ce que j’ai fait régulièrement sur ce blog.
Figure 5 – Exemple de scénario de distribution d’un code malveillant. On y voit notamment les systèmes de distribution de trafic qui sont avec les plates-formes d’exploit (exploit kit) un des objets importants qui viennent compléter l’observation des botnets.
Et cette compréhension plus globale passe par une appréhension du cycle de vie des botnets. Celui que je propose intègre de façon intime le cycle de vie d’un botnet à celui de ses bots:
Figure 6 – Modèle proposé de cycle de vie des botnets
Méthodes de lutte
L’étude des méthodes de lutte contre les botnets constitue une partie importante des travaux que j’ai pu mener et des actions auxquelles j’ai pu concrètement participer ou observer.
Ces méthodes passent par la technique (détection, analyse des logiciels malveillants) mais aussi par des organisations (actions isolées ou coordonnées de démantèlement). La thèse propose en conclusion les enjeux importants à prendre en compte dans les stratégies de démantèlement des botnets:
- une bonne détection et une bonne compréhension des cibles considérées – et j’insiste tout particulièrement sur la nécessité de prendre rapidement du recul et d’avoir une vision globale pour bien identifier les architectures, les modes de diffusion, les acteurs potentiellement impliqués et les faiblesses qui pourront être exploitées;
- une coordination et une coopération efficaces, tant entre les acteurs techniques que les acteurs judiciaires, notamment au plan international;
- la possibilité, voire l’obligation pour les fournisseurs d’accès et les hébergeurs de détecter (ou prendre en considération les données qui leur sont transmises) et de prévenir leurs abonnés. Ce point pourrait supposer des évolutions juridiques;
- disposer d’une méthode et d’un plan d’action dont l’efficacité peut être mesurée scientifiquement avec par exemple le souci de limiter les efforts et l’impact collatéral.
Parmi les freins à ces actions, on note une trop faible prise en compte de la nécessité de mettre à jour les logiciels des parcs informatiques (nécessité que j’ai illustrée plusieurs fois ici, à laquelle contribuent en amont les éditeurs de logiciels). Ainsi grâce à une étude menée auprès de responsables informatiques et de la sécurité des systèmes d’information (je remercie ici tous les répondants), nous avons pu voir que:
- les politiques de mise a jour existent dans 80% des cas environ, avec un logiciel de gestion de parc associé;
- la mise a jour concerne assez largement le système d’exploitation (80 a 100% du parc pour 60% des répondants);
- en revanche navigateurs et autres logiciels sont beaucoup moins largement mis a jour de facon automatique (50% des répondants citent un taux de 0 a 10% de leur parc pour les autres logiciels).
Au cours de la thèse enfin, j’ai pu contribuer à des actions de prévention, comme de nombreux articles écrits sur ce blog et les sites stopransomware.fr, Antibot.fr (développé dans le cadre du projet Européen Advanced cyberdefence centre avec le CECyF et Signal Spam). Mais la prévention est encore trop peu efficace, notamment en France, et ce sont de véritables campagnes de communication grand public qui doivent être menées.
Conclusion
Je joins à ce billet une copie de la thèse telle qu’elle sera diffusée d’ici quelques semaines sur le site de l’Université Pierre et Marie-Curie.
Il reste encore beaucoup à faire pour être efficace dans la lutte contre les botnets. Les exemples récents montrent qu’à la fois les délinquants renforcent sans cesse leurs techniques et leurs stratégies et que les actions isolées et n’intégrant pas l’ensemble des étapes de la compréhension au nettoyage des ordinateurs des victimes, en passant par l’arrestation des auteurs ne permettent pas de combattre efficacement ces menaces.
Je tiens à remercier l’ensemble des personnes dont la richesse des échanges et des points de vue m’ont permis d’avancer très rapidement. Vous en retrouverez le détail au début du mémoire de thèse, mais de nombreux autres n’ont pas pu être cités, français et étrangers. Je remercie tout particulièrement mes deux directeurs de thèse David Naccache et Matthieu Latapy qui m’ont soutenu pendant ces quatre années, et les rapporteurs de la soutenance Ludovic Mé et Jean-Yves Marion et enfin les examinateurs du jury Clémence Magnien, Solange Ghernaouti-Hélie et Vincent Nicomette.