Lutte contre les botnets : analyse et stratégie

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 de faux logiciels de sécurité ou l’accès à des contenus illicites tels la pédopornographie.

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.

C’est ce que recouvrent par exemple les articles 226-3 (pour les outils d’interception illégale) et 323-1 du code pénal français. Enfin, on retrouve dans cette même directive une définition précise de ce qui est entendu par système d’information :

système d’information « un dispositif isolé ou un ensemble de dispositifs interconnectés ou apparentés, qui assure ou dont un ou plusieurs éléments assurent, en exécution d’un programme, un traitement automatisé de données informatiques, ainsi que les données informatiques stockées, traitées, récupérées ou transmises par ce dispositif ou cet ensemble de dispositifs en vue du fonctionnement, de l’utilisation, de la protection et de la maintenance de celui-ci ; »

données informatiques « une représentation de faits, d’informations ou de concepts sous une forme qui se prête à un traitement informatique, y compris un programme de nature à faire en sorte qu’un système d’information exécute une fonction ; »

Nous nous proposons de bâtir une définition de ce que pourraient recouvrir les botnets sur la base de ces définitions.

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 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.

Les botnets 

L’objectif de nos travaux étant l’analyse des comportements actifs de programmes malveillents, sous toutes leurs dimensions, il était important de proposer une définition des botnets qui englobe à la fois l’ensemble des situations et l’ensemble des composantes d’un botnet. Enfin, il convient de répondre à la complexité des situations que l’on souhaite décrire : aussi bien les déploiements de botnets que les ensembles logiciels et les infrastructures qui permettent leur déploiement. Nous allons voir que les situations sont encore plus complexes qu’imaginées au départ.

Définitions possibles

Plusieurs définitions ont évidemment été proposées pour les botnets. L’une des plus souvent citées est celle que nous avons reprise dans l’appel à propositions de Botconf dès l’édition de 2013 et issue des travaux d’Abu Rajab et al. présentés à SIGCOMM [ARZMT06] :

“The term botnets is used to define networks of infected end-hosts, called bots, that are under the control of a human operator commonly known as the botmaster. While botnets recruit vulnerable machines using methods also utilized by other classes of malware (e.g., remotely exploiting software vulnerabilities, social engineering, etc.), their defining characteristic is the use of command and control (C&C) channels to connect bots to their botmasters.”

La directive européenne évoquée dans la section précédente [Par13] propose aussi dans son attendu (5) une définition des botnets ou « réseaux zombies » :

« On constate une tendance à la perpétration d’attaques à grande échelle de plus en plus dangereuses et récurrentes contre des systèmes d’information qui peuvent souvent être critiques pour les États membres ou pour certaines fonctions du secteur public ou privé. Parallèlement, des méthodes de plus en plus sophistiquées sont mises au point, telles que la création et l’utilisation de «réseaux zombies», qui impliquent une infraction pénale en plusieurs stades, chaque stade pouvant à lui seul menacer gravement les intérêts publics. La présente directive vise, entre autres, à mettre en place des sanctions pénales en ce qui concerne la création de réseaux zombies, c’est-à-dire l’acte d’établir un contrôle à distance d’un nombre important d’ordinateurs en les contaminant au moyen de logiciels malveillants dans le cadre de cyberattaques ciblées. Une fois créé, le réseau d’ordinateurs contaminés qui constitue le réseau zombie peut être activé à l’insu des utilisateurs des ordinateurs dans le but de lancer une cyberattaque à grande échelle, qui est en général à même de causer un grave préjudice, comme indiqué dans la présente directive. […] »

Sont donc ici mis en avant plusieurs critères qui montre qu’on vise ici en particulier à souligner la circonstance aggravante par l’ampleur des effets :

• l’infraction pénale est commise en plusieurs stades
• contrôle à distance
• nombre important d’ordinateurs, capacité de cyberattaque à grande échelle pouvant causer un grave préjudice
• compromission de ces ordinateurs par des logiciels malveillants
• l’utilisation d’attaques ciblées .

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport-gratuit.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction
1 Observation et classification
1.1 Introduction
1.2 Définitions
1.2.1 Les programmes malveillants (ou malwares)
1.2.2 Quelques particularités des logiciels malveillants
1.2.2.1 Variétés de logiciels malveillants
1.2.3 Les botnets
1.2.3.1 Définitions possibles
1.2.3.2 Proposition de définitions complètes
1.2.3.3 Problématique des botnets à usage “légal”
Calcul distribué
Botnets utilisés à des fins incertaines
Captation de données autorisée par la loi
Des victimes parfois consentantes
Logiciels potentiellement indésirables
1.2.3.4 Définitions des typologies de logiciels malveillants et de leurs fonctionnalités
Typologies principales de logiciels malveillants
Principales caractéristiques rencontrées dans les logiciels malveillants
1.2.3.5 Composantes d’un botnet
1.2.3.6 Classes, instances et compartiments d’un botnet
1.2.3.7 Architectures possibles pour les systèmes de commande et de contrôle
Architecture centralisée
Architecture décentralisée
Architectures hybrides
Architecture aléatoire
Sens des communications
Modalités persistantes et périodiques
Profiter d’une autre architecture
Plates-formes mobiles
1.2.3.8 Cycle de vie
Exemple du botnet Gameover
Modèles issus de la littérature
Proposition d’un modèle détaillé de cycle de vie des botnets
1.2.3.9 Utilisation des serveurs DNS
Algorithmes de génération de noms de domaines (DGA)
Fast-flux DNS
Le DNS comme canal caché
1.2.3.10 Taille d’un botnet et autres mesures
Distinguer les bots
Initiatives de mesure
Mesurer dans les réseaux de distribution
Conclusion sur la mesure
1.2.4 Vecteurs de distribution
1.2.4.1 Exemple d’installation d’un code malveillant de botnet
Diffusion du botnet Dridex en août 2015
1.2.4.2 Typologies de méthodes et d’acteurs
Installation physique
Ver
Spam
Par téléchargement et exécution volontaires
Drive-by-download
Traffic distribution services (TDS)
Exploit kits
Via un autre botnet
Synthèse sur les vecteurs de distribution
1.2.5 Autres acteurs de l’écosystème
1.3 Conclusion du premier chapitre
2 Collecte d’informations
2.1 Wiki sémantique
2.1.1 Définition
2.1.2 Structure de données
2.1.3 Stratégie d’alimentation
À partir des publications et actualités
Documentation systématique sur une menace
2.1.4 Partage de données
2.1.5 Quelques éléments statistiques
2.2 Autres modèles de données structurés
2.2.1 Bases de connaissances des éditeurs de solutions de sécurité
2.2.1.1 Référentiels de détection par les produits de sécurité
Le rançongiciel policier “Reveton” chez Microsoft
2.2.1.2 Bases d’échantillons
Bases d’échantillons spécialisées
2.2.1.3 Nommage des logiciels malveillants
2.2.1.4 Les blogs
Blogs de chercheurs indépendants
Blogs des éditeurs de sécurité.
2.2.2 Formats d’échanges du MITRE
2.2.2.1 MAEC
MAEC Bundle
MAEC Package
MAEC Container
Vocabulaires
2.2.2.2 STIX
L’architecture de STIX comporte huit constructeurs
Confrontation à notre problématique de l’investigation des botnets
2.2.3 Autres formats de données
2.2.3.1 YARA
2.2.4 Propositions d’évolution
2.3 Catégories de botnets (et autres menaces)
2.3.1 Proposition de catégorisation
2.3.2 Quelles méthodes pour classifier ?
2.3.3 Conclusion sur la classification des botnets
2.4 Confrontation à des cas concrets
2.4.1 Rançongiciels policiers
2.4.2 Les botnets et campagnes d’espionnage
2.4.3 Botnets bancaires
2.4.4 Les botnets de terminaux de point de vente
2.4.5 Prospective sur les objets connectés
2.5 Conclusion du second chapitre
3 Méthodes de lutte contre les botnets
3.1 Introduction
3.2 Détection
3.2.1 Détection passive
3.2.1.1 Inspection de flux et de paquets
3.2.1.2 Observation du protocole DNS
3.2.1.3 Cas particulier des réseaux pair-à-pair
3.2.1.4 Analyse des données liées au spam
Collecte et analyse du spam
Détecter les abus liés à son infrastructure
3.2.1.5 Retour des éditeurs de sécurité et de solutions antivirus
3.2.1.6 Analyse des journaux d’activité
3.2.2 Pots de miel (honeypots) et simulations
3.2.3 Détection active
3.2.3.1 Sinkholing
3.2.3.2 Infiltration
Activité sur les canaux de commande IRC
Sur les réseaux sociaux
Dans les réseaux pair à pair
Remonter jusqu’à l’attaquant
3.2.4 Défis à venir
3.3 Analyse des logiciels malveillants
3.3.1 L’analyse en bac à sable
3.3.2 L’analyse statique
3.3.2.1 Aller plus loin dans l’analyse dynamique
Plates-formes de simulation
3.3.3 Détecter et contourner les méthodes d’obfuscation
3.4 Développement d’un outil de veille contre les botnets – MALINT
3.4.1 Introduction
3.4.2 Concept
3.4.3 Architecture
3.4.4 Améliorations
3.5 Défense et blocage
3.5.1 Se protéger de la propagation
3.5.2 Blocage dans les réseaux
3.5.3 Protéger les systèmes
3.5.3.1 Antivirus
3.5.3.2 Dans les navigateurs
3.6 Démantèlement
3.6.1 Approches techniques
3.6.2 Actions des acteurs privés
3.6.3 Actions policières et judiciaires, et actions conjointes
3.6.4 Quelle stratégie
3.7 Ethique
3.8 Conclusion du troisième chapitre
Conclusion

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *