Lutte contre les botnets : analyse et stratégie
Introduction
Les botnets, ou réseaux d’ordinateurs zombies, constituent l’un des premiers outils de la délinquance sur Internet aujourd’hui. La création d’un botnet consiste à prendre le contrôle d’un maximum de systèmes informatiques connectés à Internet, par la diffusion d’un logiciel malveillant qui se connecte à un système de commande, placé sous le contrôle du malfaiteur. Ces systèmes de commande peuvent être de nature différente, mais le plus souvent il s’agira de l’utilisation du protocole HTTP (celui du Web) ou IRC (Internet relay chat, protocole permettant la discussion ou l’échange de fichiers). Celui qui contrôle un tel réseau est traditionnellement appelé « pasteur ». Par la suite, l’ensemble de ces machines, lorsqu’elles sont connectées à Internet, répondent aux directives de leur « pasteur » à l’insu de leur utilisateur légitime et peuvent être utilisées pour conduire des attaques en déni de service distribué, la distribution de contenus illicites ou malveillants, la diffusion de courriers électroniques non sollicités (ou « spam »), la collecte des données personnelles des usagers de ces machines, du calcul distribué ou toute autre activité qu’il souhaitera. Ces botnets constituent, selon les juridictions, l’élément matériel d’infractions contre des systèmes informatiques — et en particulier en France de l’ensemble des infractions d’atteintes aux systèmes de traitement automatisé de données. Ils peuvent être aussi les outils permettant d’effectuer toutes les activités illégales décrites précédemment et donc permettent la commission de l’ensemble des infractions correspondantes. Ils permettent aussi de concrétiser le développement d’un nouveau type d’activités criminelles : le crime comme un service (ou « crime as a service », CaaS), avec ici la possibilité de louer un botnet pour quelques heures ou quelques jours : sa puissance de calcul, sa puissance de frappe ou sa capacité à collecter des données personnelles ou diffuser des contenus illicites discrètement et efficacement. Les botnets constituent un défi en matière de répression. D’abord par l’importance de leur impact sur la sécurité des réseaux et la commission d’infractions sur Internet. Ensuite par la dimension extrêmement internationale de leur diffusion et donc une certaine difficulté à mener des investigations. Enfin, par le grand nombre des acteurs qui peuvent être impliqués (les codeurs qui écrivent les programmes du logiciel malveillant, le pasteur évoqué plus haut, les mules chargées éventuellement de relayer les gains financiers issus des activités illégales, les commanditaires ou les commerçants de services). On retrouve même parfois de véritables sociétés, chargées de gérer des infrastructures pour ces botnets ou de commercialiser leurs services. Elles sont souvent liées à d’autres activités illégales telles que la commercialisation 20 Introduction de faux logiciels de sécurité ou l’accès à des contenus illicites tels la pédopornographie. La réponse à l’enjeu des botnets rassemble de nombreux acteurs : les opérateurs de communications électroniques, des entreprises de sécurité des systèmes d’information, des éditeurs de solutions de sécurisation, les services de police et la justice ; et comme souvent en matière de sécurité sur Internet les usagers jouent un rôle important. Les méthodes employées sont pour l’instant assez inefficaces et le nombre d’interpellations d’auteurs et de gestionnaires de botnets est limité par rapport à l’ampleur du phénomène. Une fois employées dans une première affaire elles se révèlent rapidement inefficaces car les techniques des délinquants eux-mêmes évoluent à un rythme qui paraît s’accélérer. Organisation des travaux Lors de la rédaction du sujet de la thèse, l’objectif initiale était de couvrir trois parties : la description des botnets, les réponses et le développement d’une stratégie d’ensemble. Le résultat de nos travaux s’avère beaucoup plus pragmatique avec trois propositions : la constitution d’un corpus de connaissance et d’une méthode de classification des botnets, l’analyse critique des méthodes de lutte et enfin la proposition d’un outil concret pour la détection et l’investigation. Les travaux ont été conduits à la fois par un travail personnel, de nombreux échanges et discussions, participation à des conférences et la confrontation à des situations réelles permises par notre métier. Échanges De façon classique, les échanges avec la communauté scientifique et technique ont été nombreux. On pourra citer en particulier la richesse de la coopération engagée avec le laboratoire de haute sécurité du LORIA et les conseils particulièrement éclairés de nombreux observateurs du secteur privé ou indépendants, en particulier Charlie Hurel qui a développé une connaissance très avancée des méthodes de diffusion des menaces. Moins traditionnelle en revanche a été la constitution d’une communauté autour du Wiki botnets.fr, dont une partie des membres s’est investi dans l’organisation d’une conférence internationale dédiée à la lutte contre les botnets. Botconf a réuni 150 personnes en 2013 et 200 en 2014, de toutes les régions du monde, avec une qualité croissante des contributions présentées. Contributions Nos travaux apportent plusieurs contributions à la recherche et à la compréhension du phénomène des botnets. Ainsi, nous avons regroupé et, quand c’était nécessaire, créé les définitions de tous les éléments clés de l’observation des botnets. Parmi les définitions originales, la notion de communications univoques et réciproques dans les infrastructures de commande et de contrôle (cf. page 42). Nous apportons ensuite un nouveau modèle plus détaillé que l’état de l’art du cycle de vie des botnets (cf. page 48). Introduction 21 Nous avons collecté de façon structurée (sous forme de Wiki) et rendu public un corpus d’informations sur les botnets 1 . Enfin, la synthèse des méthodes de défense et de lutte contre les botnets que nous proposons s’est concrétisée par le développement d’un site Web d’information sur la prévention et la mitigation des logiciels malveillants liés aux botnets 2 , puis, est conclue par un certain nombre de recommandations pour le chemin à suivre. Nos contributions écrites prennent la forme d’un chapitre d’un ouvrage sur la cybercriminalité [Fre12a], de nombreuses présentations et des publications dans des revues d’intérêt scientifique (dont la revue du GRASCO [Fre13b]) et plus récemment un article de réflexion conjoint sur les botnets de mobiles [MFB15] (avec le centre de recherches de la Commission européenne à Isrpra) retenu pour une présentation dans une conférence scientifique (EISIC 2015).
Les programmes malveillants (ou malwares)
Tout au long de ce mémoire, nous utiliserons indifféremment les termes malware ou programme malveillant. Une des définitions de référence est celle du Guide to malware incident prevention and handling du National Institute of Standards and Technologies (NIST) [MKN05] : « Malware, also known as malicious code and malicious software, refers to a program that is inserted into a system, usually covertly, with the intent of compromising the confidentiality, integrity, or availability of the victim’s data, applications, or operating system or otherwise annoying or disrupting the victim. » On retrouve donc uniquement, dans cette définition, des composants logiciels spécifiquement conçus pour porter atteinte à l’intégrité d’un système. Par programme on entend évidemment les programmes directement exécutables par le système ou dans un langage interprété (scripts notamment). Pour embrasser plus de situations, nous prendrons aussi en compte les atteintes au matériel qui sont parfois recherchées, notamment vis à vis des systèmes industriels [CAL+11], [YLB15]. C’est soit le système piloté, soit les données qu’il contient qu’on cherche le plus souvent à détruire, toutefois, en 2011, Charlie Miller montra à la conférence Black Hat qu’il est possible de détruire des batteries d’ordinateurs portables [Mil11], on n’est donc pas à l’abri d’une telle évolution. D’autres définitions nous sont données par les différents textes juridiques. Ainsi, la directive 2013/40/UE relative aux attaques contre les systèmes d’information [Par13] définit dans son article 7 les outils qui doivent être rendus illégaux par les législations nationales : « Les États membres prennent les mesures nécessaires pour ériger en infraction pénale punissable la production, la vente, l’obtention pour utilisation, l’importation, la diffusion ou d’autres formes de mise à disposition intentionnelles d’un des outils suivants lorsque l’acte est commis sans droit et dans l’intention de l’utiliser pour commettre l’une des infractions visées aux articles 3 à 6, au moins lorsqu’il ne s’agit pas de cas mineurs : a) un programme informatique, principalement conçu ou adapté pour permettre la commission de l’une des infractions visées aux articles 3 à 6 ; b) un mot de passe, un code d’accès ou des données informatiques similaires permettant d’accéder à tout ou partie d’un système d’information. » Les articles 3 à 6 de cette directive portent respectivement sur : – l’accès illégal à des systèmes d’information ; – l’atteinte illégale à l’intégrité d’un système ; – l’atteinte illégale à l’intégrité des données ; – l’interception illégale.
Quelques particularités des logiciels malveillants
Avant cela, pour compléter cette description des logiciels malveillants, il convient d’aborder aussi leur variété.
Variétés de logiciels malveillants
Il est difficile de donner une classification claire des logiciels malveillants. En effet, très souvent, ceux-ci vont combiner les qualités de plusieurs des catégories qu’on cherchera à définir. Ainsi, dans le guide du NIST [MKN05] souvent cité en référence, sont décrites les catégories suivantes de programmes malveillants : • un virus est conçu pour s’auto-répliquer en insérant des copies de son code dans d’autres fichiers, programmes ou systèmes ; – un virus compilé a été transformé à partir d’un code source, par un compilateur, dans une forme directement exécutable par le système d’exploitation du système cible ; – un virus interprété a contrario est dans un code source qui doit être interprété par une application ou un service disponible dans le système cible ; • un ver (worm) se propage de machine en machine par les connexions réseau ou toute autre forme de partage de ressources ; • un cheval de Troie (trojan horse) sont des programmes non-reproductifs, apparemment bénins et qui présentent des fonctionnalités cachées malveillantes ; • les codes malveillants mobiles (malicious mobile code) sont capables de s’exécuter indifféremment dans différents environnements – systèmes d’exploitations ou applications – grâce notamment à l’utilisation de langages de script tels que Java, ActiveX, JavaScript et VBScript ; • les attaques mixtes ou combinées (blended attacks) sont des logiciels malveillants capables d’utiliser différentes méthodes pour réaliser infections ou transferts ; Le NIST présente encore les cookies de traçage (tracking cookies) ou les mouchards Web (web bugs) comme des composants utilisés par des logiciels malveillants pour traquer 26 Chapitre 1. Observation et classification l’activité des utilisateurs ciblés. Enfin, on y lit la description des différents outils d’attaque qui peuvent être intégrés ou additionnés à un virus (portes dérobées, enregistreurs de frappe au clavier, rootkits, extensions de navigateurs Web, générateurs de courriers électroniques, techniques d’obfuscation, etc.). En réalité, on ne peut que partager le constat de Robert Hensing [Hen05] qui cherchait à définir plus précisément ce qu’est un rootkit et dès le titre souligne que des caractéristiques décrites comme discriminantes sont souvent mêlées au sein des mêmes logiciels malveillants. Ainsi, on pourra rencontrer un ver qui se comporte comme un virus en se répliquant aussi dans différents fichiers d’un système. Cela nous amène donc à voir ces différentes catégories de logiciels malveillants comme des caractéristiques ou fonctionnalités combinées.
s |