Vous êtes sur la page 1sur 17

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

Vous aimerez peut-être aussi