Implémentation D'un SIEM Avec ELK Et Machine Learning [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Cycle de formation des ingénieurs en Télécommunications Rapport du projet

Implémentation d’un SIEM avec ELK et machine learning

Table des matières

Introduction générale Chapitre 1 : Etat de l’art 1.1. Problématique 1.2. Solutions existantes 1.3. Solution proposée

Chapitre 2 : Architecture de la solution 2.1. Architecture

Chapitre 3 : Environnement et phases de réalisation 3.1. Environnement logiciel et matériel 3.2. Les phases de réalisation

Conclusion générale

Introduction générale Le suivi et la mesure des indicateurs de performance des applications informatiques constituent un enjeu majeur pour les entreprises. L’évolution des technologies autour de la qualification, du stockage et du traitement du big data ainsi que du machine learning a permis d’améliorer le monitoring dans divers domaines (détection des fraudes dans les transactions financières, dépannage système, facilitation de la détection des bugs dans les applications Big Data...). La surveillance repose fortement sur les journaux. En général, ces journaux peuvent nous servir dans la détection d’anomalies ou d’incidents. Dans notre projet, nous avons essayé d’implémenter une solution SIEM en utilisant la pile ELK (Elasticsearch, Logstash et Kibana) pour la récupération de données, la centralisation des données et la visualisation des données ainsi que l’identification intelligente des anormalités en utilisant des algorithmes de machine learning.

Chapitre 1 : Etat de l’art

Introduction Dans cette partie, nous détaillerons le cadre général de la solution implémentée.

1.1. Problématique Les trois catégories de cyberattaques les plus rencontrées pendant la pandémie selon IBM Security, ont été : les ransomware (23 % des attaques), le vol de données (10% des attaques, augmentation de 160 % depuis 2019), les accès non autorisés au serveur d'une victime (augmentation de 233 % depuis 2019). 79% des entreprises victimes de ransomwares et 61% des victimes de violation de données ont été le résultat d’une vulnérabilité et d’une mauvaise configuration du Cloud, selon la dernière publication du cabinet IDC sur la Cybersécurité 2020. 79% des entreprises victimes de ransomwares et 61% des victimes de violation de données ont été le résultat d’une vulnérabilité et d’une mauvaise configuration du Cloud, selon la dernière publication du cabinet IDC sur la Cybersécurité 2020. Dans ce monde numérique ultra connecté, la mise en place d’un SIEM évolutif offrant une surveillance en temps réel et une détection plus efficace des incidents de sécurité sur tous les systèmes de l’entreprise est devenue une nécessité pour la prise de mesures défensives rapides et une meilleure gouvernance de la sécurité.

1.2. Solutions existantes Il existe plusieurs solutions qui offrent les services de monitoring des systèmes et des applications informatiques et fait l’analyse de données afin d’identifier les anomalies. Nous listons quelques exemples de ces solutions-là : ● Logz.io : Logz.io fournit une plateforme d'analyse de données de machine intelligente et évolutive construite sur ELK et Grafana. Conçu pour la surveillance des applications modernes, Logz.io associe la simplicité et l'évolutivité native du cloud à une intelligence artificielle collaborative pour aider les ingénieurs à identifier les problèmes critiques avant qu'ils ne surviennent et leur permettre de surveiller, dépanner et sécuriser les applications critiques à l'aide d'une plateforme unifiée.

● AlienVault: Unified Security Management (USM) : AlienVault USM est destiné aux petites et moyennes entreprises. Le produit USM fournit un ensemble complet de fonctions et fonctionnalités SIEM de base, telles que la collecte et la journalisation des données associées à des événement, l'évaluation des vulnérabilités, la découverte d'actifs, la détection d'intrusion sur le réseau et les hôtes, la détection et la réponse des points finaux (EDR), la capture de flux et de paquets, la surveillance de l'intégrité des fichiers (FIM), ainsi que la configuration et la gestion centralisées.

1.3. Solution proposée Le SIEM (Security Information and Events Management) est un logiciel de suivi de l’état de sécurité du système d’information et des solutions informatiques utilisées par l’entreprise. Les solutions de security information management (SIEM) collectent des journaux et analysent les événements de sécurité ainsi que d’autres données pour accélérer la détection des menaces et soutenir la gestion des incidents et des événements de sécurité, ainsi que la conformité. En substance, un système technologique SIEM collecte des données provenant de sources multiples, ce qui permet de réagir plus rapidement aux menaces. Si une anomalie est détectée, il peut collecter davantage d’informations, déclencher une alerte ou mettre un bien en quarantaine. Notre solution consiste à implémenter un SIEM, en utilisant Elastic Stack, qui centralise les évènements et permet de distinguer entre les événements normaux et anormaux en temps réel via des algorithmes de machine learning.

Chapitre 2: Architecture de la solution

Introduction Cette partie est consacrée à l’introduction de la conception et de l’architecture de la solution proposée.

2.1. Architecture 2.1.1. Définitions 2.1.1.1. SIEM Security Information and Event Management (SIEM) est une solution logicielle qui agrège et analyse l’activité de nombreuses ressources différentes sur l’ensemble de l’infrastructure informatique. SIEM collecte des données de sécurité à partir de périphériques réseau, de serveurs, de contrôleurs de domaine, etc. SIEM stocke, normalise, agrège et applique des analyses à ces données pour découvrir les tendances, détecter les menaces et permettre aux organisations d’enquêter sur les alertes.

2.1.1.2. ELK L’acteur principal dans notre solution proposée est la pile ELK. En fait, ELK nous donne la permission de rechercher, analyser et visionner les données du journal (ou log) en temps réel. La pile ELK est composée de trois composants: Elasticsearch, Logstash et Kibana. Bien que chacun de ces produits serve un objectif important individuellement, leur puissance réelle est mieux exploitée lorsqu’ils sont utilisés ensemble.

● Elasticsearch: C’est un outil utilisé pour indexer, stocker et extraire vos données. Elasticsearch offre une recherche en texte intégral, des analyses en temps réel, une évolutivité et une haute disponibilité, ce qui en fait une solution formidable pour tous vos besoins d’extraction de données. ● Kibana: Un tableau de bord frontal qui permet de visualiser les données à l’aide de camemberts, de graphiques, de nuages de points, de cartes et plus encore. Avec Kibana, il est facile de repérer les modèles et les tendances émergents dans les ensembles de données volumineuses qui seraient autrement fastidieux à parcourir. ● Logstash: Quel que soit le type de journaux générés actuellement, ils peuvent être traités par Logstash. C’est un outil de travail capable de collecter et d’analyser les journaux, puis de les envoyer à Elasticsearch pour indexation.

2.1.2. Architecture de la solution proposée

figure 1: Architecture de ELK

Il s’agit d’une architecture simple de la pile ELK. Dans le cas d’une grande quantité de données, la structure peut impliquer plusieurs journaux de machine du serveur d’applications et Logstash. Une fois ELK est bien installé et fonctionnel, nous avons essayé d’utiliser un serveur vulnérable qui va être sujet d’attaques .

figure 2: Architecture de la solution

L’architecture de notre solution est présentée par le schéma ci dessus où dans notre cas, au lieu d’utiliser Beats, nous avons utilisé Filebeat qui va récupérer les logs et les indexer vers Logstash. Puis nous avons intégré notre modèle Machine Learning au niveau d’elasticsearch pour être appliqué dans ELK sur les fichiers log et afficher le résultat sur le dashboard de Kibana. Le modèle Machine Learning vise à détecter les attaques de type Brute Force et de les classifier en différents niveaux de criticités selon le nombre de tentatives de login suspicieux.

Chapitre 3 : Environnement et phases de réalisation Introduction Dans cette partie, nous montrons les outils logiciels et les technologies utilisés afin de réaliser et implémenter sur le plan pratique l’architecture déjà proposée ainsi que les étapes qui ont été effectuées afin d’implémenter la solution.

3.1. Environnement logiciel et matériel 3.1.1. Environnement logiciel Pour le fonctionnement du kit ELK, il faut avoir le bon JDK qui va est défini ci-dessous : OpenJDK 8 Java : OpenJDK est un projet open source, implémentant les spécifications Java, les JSR et les JEP qui définissent la plate-forme Java. Elasticsearch est construit à l'aide de Java et nécessite au moins Java 8 pour fonctionner. Seuls Java d'Oracle et OpenJDK sont pris en charge. Il inclut une version groupée d'OpenJDK des mainteneurs JDK (GPLv2+CE) dans chaque distribution. La JVM fournie est la JVM recommandée et se trouve dans le répertoire jdk du répertoire de base d'Elasticsearch.

3.1.2. Environnement matériel Nous montrons ci-dessous l’environnement matériel sur lequel l’architecture proposée a été réalisée : Propriétés

Machine physique

Système d’exploitation

Windows 10

Mémoire

8 Go

Stockage

1 To

Tableau 1 : Les propriétés de la machine virtuelle

3.2. Les phases de réalisation Cette partie présente les étapes du projet.

3.2.1. Installation ELK Avant de commencer la conception de la solution, nous devons d'abord préparer l’infrastructure et l’environnement de travail ceci est fait par l’installation de JDK 8, Elasticsearch, logstash et Kibana. Ci-dessous les figures qui montrent l’exécution de ces produits là : La première capture montre le lancement de ElasticSearch:

figure 3: Lancement de Elasticsearch

La deuxième capture montre le lancement de Logstash :

figure 4: Lancement de Logstash

La troisième capture montre le lancement de Kibana :

figure 5: Lancement de Kibana

3.2.2. Recherche d’un dataset On a trouvé après recherche approfondie une dataset adéquate pour le projet qui consiste sur les logs exprimant le nombre de tentatives de connexion de la part d'un client La figure ci-dessous présente l’importation de dataset

figure 6: Téléchargement du dataset

3.2.3. Installation des plugins nécessaires au niveau ELK Les plugins qui sont nécessaires filebeat, x-pack et ingest-geoip existent par défaut dans la version 7.0.0 d’ Elasticsearch ● X-pack : X-Pack est une extension d'Elastic Stack qui fournit des fonctionnalités de sécurité, d'alerte, de surveillance, de reporting, d'apprentissage automatique et bien d'autres. ● Ingest-geoip : Ingest-geoip ajoute des informations sur l'emplacement géographique des adresses IP, sur la base de données provenant des bases de données Maxmind. Ce processeur ajoute ces informations par défaut sous le champ geoip. Le processeur geoip peut résoudre les adresses IPv4 et IPv6. ● Filebeat : Définit les chemins d'accès par défaut aux fichiers journaux, utilise un pipeline d'ingestion Elasticsearch pour analyser et traiter les lignes de journal, en mettant en forme les données dans une structure adaptée à la visualisation dans Kibana.

3.2.4. Mise en place d’un Job Machine Learning Une fois que nous avons téléchargé le dataset choisi, nous avons implémenté notre modèle Machine Learning. En fait, celui-ci vise à classifier les actions d’authentification suivant le nombre de tentatives chaque fois. Chaque essai d’authentification se voit attribuer un score d'anomalie normalisé, et est annoté avec les valeurs d'autres champs dans les données qui ont une influence statistique sur l'anomalie. Les comportements d'attaque élémentaires qui partagent des influenceurs statistiques communs sont souvent liés à une progression d'attaque commune. Nous avons intégré notre modèle dans l’architecture de la solution sous forme d’un job au niveau d’Elasticsearch:

figure 7: intégration du Job

Une fois créé, celui-ci figure au niveau du dashboard de Kibana sous la partie Jobs Management.

figure 8: Affichage du job sur le dashboard de Kibana

Il suffit de cliquer sur le job que nous avons nommé “suspicious_login_activity” pour avoir le résultat de l’exécution du job. Il s’agit de statiques formulés à partir des résultats ainsi qu'un tableau comportant les différents cas détectés classifiés selon leur criticités suivant les critères définis par le modèle.

3.2.5. Une cas d’utilisation Cette cas d’utilisation identifie les clients associés à des volumes inhabituels de tentatives de connexion échouées. Elle détecte les anomalies associées à des comportements d'attaque élémentaires. Chaque anomalie détectée se voit attribuer un score d'anomalie normalisé, et est annotée avec les valeurs d'autres champs dans les données qui ont une influence statistique sur l'anomalie. Les comportements d'attaque élémentaires qui partagent des influenceurs statistiques communs sont souvent liés à une progression d'attaque commune. Après l’intégration de dataset et le modèle de machine learning, l’exécution de job créée permet l’affichage suivant dans le dashboard où chaque couleur a une signification selon le nombre de tentative de connexion non réussite tel que : Rouge : le nombre de tentative est supérieur à 75 c’est à dire le niveau de sévérité est critique Orange : le nombre de tentative est entre 75 et 50 c’est à dire le niveau de sévérité est important

Jaune : le nombre de tentative est entre 50 et 25 c’est à dire le niveau de sévérité est moyen Bleu : le nombre de tentative est entre 25 et 0 c’est à dire le niveau de sévérité est faible

figure 9: Affichage du cas d’utilisation sur Kibana

On remarque qu’en 29 Mars 2022, le niveau de sévérité est critique puisque le nombre de tentatives de connexion non réussies est égale à 89 c’est à dire supérieur à 89.

figure 10: datagramme affiché par Kibana représentant les statistiques de la détection

Concernant la date dans le champ temps au niveau des anomalies détectées, la date affichée est 2022 parce que au niveau du fichier log que nous avons utilisé, l’année de la journalisation n’est pas spécifiée et donc l’ELK l’a choisie par défaut.

Conclusion générale Ce projet est un SIEM qui intègre des fonctionnalités ML qui aident à la détection des attaques Brute Force. Malgré, l’avancement des techniques de détection, les attaques de Brute Force existent toujours. Ce qui rend ce genre de solution toujours important. Durant ce projet, nous avons acquis des compétences techniques comme l’installation de l’ELK, l’implémentation d’un modèle Machine Learning et son intégration dans ELK ainsi que la modification des fichiers de configuration et des compétences humaines. Le pouvoir de coordonner et communiquer entre nous crée sans doute une valeur ajoutée à notre carrière professionnelle en créant un aperçu sur cette dernière. Enfin nous espérons que ce rapport soit à la hauteur de la confiance accordée à notre égard.

Références : https://www.comparitech.com/net-admin/elastic-siem-review-alternatives/ https://www.capterra.fr/directory/31239/siem/software https://www.elastic.co/guide/en/elasticsearch/reference/6.8/setup.html https://www.ijeast.com/papers/324-330,Tesma412,IJEAST.pdf https://www.elastic.co/fr/what-is/elasticsearch-machine-learning