Amélioration de la sécurité des systèmes informatiques

ELK Stack : Elasticsearch, Kibana, Beats et Logstash

 

 

 

Sous la direction de M. Brahim SABIRI

Réaliser par :

Abdelati LOTFI

Amine HACHIK

Sommaire

Introduction

1.

2.

Critique de l'existant

3.

Problématique

# whomai

Solution proposée

4.

5.

Objectifs du projet

Méthodologie

6.

Conclusion

7.

Introduction

  • Le contexte de notre Projet de Fin d'Études (PFE) est la nécessité de renforcer la sécurité des systèmes informatiques au sein DEVA PHAR.
  • Dans un monde de plus en plus connecté, les menaces et les attaques informatiques sont devenues une réalité préoccupante.
  • Afin de protéger les infrastructures informatiques et les données sensibles, il est essentiel de mettre en place des solutions de sécurité robustes et efficaces.
# CHAPTER 2

Critique de l'existant

Au cours de notre analyse du système d'information de notre société nous avons identifié des points faibles

Difficultés à assurer un accès constant et fiable au système.

Manque d'outils de surveillance pour suivre les activités des utilisateurs et détecter les intrusions non autorisées.

Besoin d'attention pour améliorer la disponibilité, renforcer la supervision et assurer une meilleure sécurité du système d'information de note societé.

1

Gestion de logs décentralisée

2

Incapacité de bloquer plusieurs types d’intrusions

3

Absence d'un moyen pour mesurer le niveau de sécurité du SI

5

Manque de maturité de la sécurité

4

Absence d’outils de supervision

6

 

 

Vue limitée des activités de sécurité, difficulté à repérer les comportements suspects 

Problématique

# PRESENTING CODE

- Absence d'installation d'une solution SIEM (Security Information and Event Management) dans notre société.

- Lacunes en matière de surveillance, de détection et de gestion des incidents de sécurité. 

- Vue limitée des activités de sécurité, difficulté à repérer les comportements suspects et réagir efficacement aux menaces. 

- Nécessité impérative de mettre en place une solution SIEM pour améliorer la sécurité et protéger le système d'information de notre société.

# cd alias rm

Solution proposé

Il est proposé de déployer un système de gestion d'informations et d'événements de sécurité appelé ELK STACK pour répondre aux problèmes mentionnés précédemment.

Ce système permettrait de gérer de manière centralisée les données provenant de divers outils de sécurité, de les stocker et de les traiter afin de faciliter la tâche des administrateurs dans l'administration et la gestion de la sécurité.

Objectifs du projet:

Mise en place de la solution elastic stack dans une infrastructure reseaux  

En sécurité informatique, l’analyse des logs est une tâche essentielle. Ces journaux d’événements enregistrent l’historique des activités sur les équipements et les logiciels, ce qui permet de détecter d’éventuelles anomalies et d’y remédier efficacement.

La mise en place de contre-mesures adaptées constitue l’un des moyens les plus efficaces pour protéger notre infrastructure réseau contre les menaces. Lorsqu’elles sont bien gérées, ces mesures renforcent significativement la sécurité. Il reste toutefois indispensable de procéder à des vérifications régulières afin de s’assurer que les dispositifs en place sont toujours efficaces et à jour.

L’analyse des logs au sein de l’infrastructure réseau joue donc un rôle clé dans la stratégie de sécurité : sans elle, la détection proactive des incidents et la réaction rapide en cas de problème seraient fortement compromises.

  1. Introduction

2. conditions requises pour le téléchargement

Les besoins en termes de matériel sont étroitement liés au nombre de terminaux protégés et à la charge de travail dans la prod.

Ce nombre permet d'estimer la quantité de données qui seront analysées ainsi que le nombre d'alertes de sécurité qui seront stockées et indexées.

3.Systèmes d'exploitation

Pour l'installation des composants centraux de ELK STACK, il est préférable d'utiliser un système d'exploitation Linux 64 bits. ELK STACK recommande l'utilisation de l'une des versions suivantes du système d'exploitation 

4. ELK stack 

La pile ELK est un ensemble de logiciels open source largement utilisés pour la gestion et l'analyse des journaux (logs) et des données volumineuses. ELK est un acronyme pour Elasticsearch, Logstash et Kibana, les trois composants principaux de cette pile.

Beats : Ce sont de petits agents installés sur les serveurs. Ils sont très légers et servent à collecter les logs (systèmes, applications, etc.) et à les envoyer à Logstash ou directement à Elasticsearch.

Logstash : C’est un outil qui reçoit les données collectées, les filtre ou les transforme si besoin, puis les transmet à Elasticsearch. Il permet de traiter différents formats et sources.

Elasticsearch : C’est une base de données très performante qui stocke les logs au format JSON et permet une recherche rapide des informations. Elle est conçue pour gérer de grandes quantités de données.

Kibana : C’est l’interface graphique utilisée pour visualiser les données stockées dans Elasticsearch. Elle permet de créer des tableaux de bord interactifs, de faire des recherches ou des analyses visuelles.

All-in-one deployment

Le serveur ELK (Elasticsearch, Logstash, Kibana) est installé sur un hôte dédié.
Cette solution permet de centraliser l’ensemble des journaux provenant de différents équipements réseau et systèmes. Elle est idéale pour la surveillance, l’analyse et la détection d’anomalies.

Le serveur ELK, composé de :

  • Elasticsearch (base de données NoSQL pour stocker les logs),

  • Logstash (collecte et traitement des logs),

  • Kibana (visualisation des données via des tableaux de bord interactifs).

  • Sur les machines Windows :
    Installation de l’agent Winlogbeat pour collecter les logs d’événements Windows (système, sécurité, application) et les transmettre au serveur ELK.

Sur les équipements réseau (pare-feux, routeurs, switchs) :
Configuration de l’envoi des journaux via le protocole Syslog vers le serveur ELK.

Configuration Syslog sur Fortigate 

Switch# configure terminal
Switch(config)# logging enable
Switch(config)# logging host 172.16.10.2
Switch(config)# logging trap warnings
Switch(config)# end
Switch# show logging

Configuration Syslog sur Switch CISCO

# CHAPTER 2

Méthodologie 

Pour assurer la sécurité de l'entreprise, nous suivrons une méthodologie en plusieurs étapes.

ont a utilisée All-in-one deployment 

c'est la meilleur solution pour répondre au besoins 

apt-get install apt-transport-https zip unzip lsb-release curl gnupg
# PRESENTING CODE

Certains packages supplémentaires sont nécessaires pour l'installation, tels que curl ou unzip, qui seront utilisés dans les étapes suivantes.

Installer Elasticsearch

curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch |
gpg --no-default-keyring 
--keyring gnupg-ring:/usr/share/keyrings/elasticsearch.gpg
--import && chmod 644 /usr/share/keyrings/elasticsearch.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch.gpg] 
https://artifacts.elastic.co/packages/7.x/apt stable main" |
tee /etc/apt/sources.list.d/elastic-7.x.list
# PRESENTING CODE

Ajoutez le repository

Mettez à jour les informations sur le package 

apt-get update
apt-get install elasticsearch=7.17.9
# PRESENTING CODE

Installez le package Elasticsearch :

Téléchargez le fichier de configuration /etc/elasticsearch/elasticsearch.yml comme suit :

curl -so /etc/elasticsearch/elasticsearch.yml 
https://packages.wazuh.com/4.4/tpl/elastic-basic
/elasticsearch_all_in_one.yml
curl -so /usr/share/elasticsearch/instances.yml https://packages.wazuh.com/4.4/tpl/elastic-basic/instances_aio.yml
# PRESENTING CODE

Télécharger le fichier de configuration pour créer les certificats

Dans les étapes suivantes, un fichier contenant un dossier nommé d'après l'instance définie ici sera créé. Ce dossier contiendra les certificats et les clés nécessaires pour communiquer avec le nœud Elasticsearch en utilisant SSL.

/usr/share/elasticsearch/bin/elasticsearch-certutil 
cert ca --pem --in instances.yml --keep-ca-key 
--out ~/certs.zip
# PRESENTING CODE

Les certificats peuvent être créés à l'aide de l'outil elasticsearch-certutil

Extrayez le fichier certs.zip généré à l'étape précédente.

unzip ~/certs.zip -d ~/certs
mkdir /etc/elasticsearch/certs/ca -p
cp -R ~/certs/ca/ ~/certs/elasticsearch/* /etc/elasticsearch/certs/
chown -R elasticsearch: /etc/elasticsearch/certs
chmod -R 500 /etc/elasticsearch/certs
chmod 400 /etc/elasticsearch/certs/ca/ca.* /etc/elasticsearch/certs/elasticsearch.*
rm -rf ~/certs/ ~/certs.zip
# Presenting

L'étape suivante consiste à créer le répertoire /etc/elasticsearch/certs, puis à y copier le fichier CA, le certificat et la clé :

Activer et démarrer le service Elasticsearch

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

Modifier le fichier de configuration de elasticsearch 

systemctl restart elasticsearch
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
# PRESENTING CODE

Générez des informations d'identification pour tous les rôles et utilisateurs prédéfinis de la Suite Elastic

curl -XGET https://172.16.10.2:9200 -u elastic:YaIlvmcXVAv0HBAqD66v -k
# PRESENTING CODE

Pour vérifier que l'installation s'est bien déroulée

# PRESENTING CODE

Installation de WinLogBeat

Winlogbeat est un agent léger développé par Elastic qui permet de collecter les logs d’événements Windows (sécurité, système, application) et de les envoyer vers Logstash ou Elasticsearch.

🧩 Étapes d'installation

  • 🔽 Téléchargement :

  • 📂 Installation :

    • Extraire le fichier ZIP dans un dossier, par exemple :
      C:\Program Files\Winlogbeat

# PRESENTING CODE

   Configuration :

  • Ouvrir le fichier winlogbeat.yml avec un éditeur (ex : Notepad++)

  • Définir les logs à collecter :

# ================== Winlogbeat Configuration ==================
winlogbeat.event_logs:
  - name: Application
  - name: Security
  - name: System
# ================== Output vers Logstash ==================
output.logstash:
  hosts: ["172.16.10.2:5044"]
# ================== Logging ==================
logging.level: info
logging.to_files: true
logging.files:
  path: C:/ProgramData/winlogbeat/Logs
  name: winlogbeat
  keepfiles: 7
  permissions: 0644

Lancement de Winlogbeat Powershell

.\install-service-winlogbeat.ps1
Start-Service winlogbeat
apt-get install kibana=7.17.9
# PRESENTING CODE

Kibana installation and configuration

Kibana est une interface Web flexible et intuitive pour l'exploration et la visualisation des événements et des archives stockés dans Elasticsearch.

Installer le package Kibana

mkdir /etc/kibana/certs/ca -p
cp -R /etc/elasticsearch/certs/ca/ /etc/kibana/certs/
cp /etc/elasticsearch/certs/elasticsearch.key /etc/kibana/certs/kibana.key
cp /etc/elasticsearch/certs/elasticsearch.crt /etc/kibana/certs/kibana.crt
chown -R kibana:kibana /etc/kibana/
chmod -R 500 /etc/kibana/certs
chmod 440 /etc/kibana/certs/ca/ca.* /etc/kibana/certs/kibana.
# PRESENTING CODE

Copiez les certificats Elasticsearch dans le dossier de configuration de Kibana :

Téléchargez le fichier de configuration Kibana :

curl -so /etc/kibana/kibana.yml https://packages.wazuh.com/4.4/tpl/
elastic-basic/kibana_all_in_one.yml
# PRESENTING CODE

Modifiez le fichier /etc/kibana/kibana.yml

Créez le répertoire /usr/share/kibana/data

mkdir /usr/share/kibana/data
chown -R kibana:kibana /usr/share/kibana
# CHAPTER 2

Résultat de la collecte des logs

 la fin de l’implémentation, les logs sont bien collectés, centralisés et visualisés dans l’interface Kibana.

✔️ Le serveur ELK est opérationnel : Elasticsearch, Logstash et Kibana fonctionnent correctement sur le serveur central.

✔️ Winlogbeat est installé sur la machine Windows et remonte en temps réel les journaux d’événements (sécurité, système, application).

✔️ Les équipements réseau (pare-feux, switchs, routeurs) peuvent également transmettre leurs logs via Syslog.

✔️ L’interface Kibana Discover permet de :

  • Rechercher les événements par date, hôte, type ou utilisateur

  • Filtrer les résultats avec précision selon les champs souhaités

  • Visualiser les événements au fil du temps (graphiques)

  • Examiner les logs détaillés ligne par ligne

  • Créer des tableaux de bord personnalisés pour la surveillance

Example de mon  dashboard KIBANA

Text

Example d'un évènement réel 

Lors de la consultation des logs dans Kibana, un événement de type 4672 a été observé. Ce type d’événement indique qu’un compte s’est vu attribuer des privilèges spéciaux lors de l’ouverture de session.

 Détails de l’événement 4672 (extrait de Discover) :

  • Utilisateur concerné : Système (SID : S-1-5-18)

  • Domaine : AUTORITE NT

  • Machine : DESKTOP-PGM1QET

  • Privilèges attribués :
    SeDebugPrivilege, SeTakeOwnershipPrivilege, SeBackupPrivilege, SeRestorePrivilege, etc.

➡️ Il s’agit d’un compte système local auquel Windows attribue des privilèges très sensibles. Ces types d’événements sont essentiels à surveiller, car une attribution de ces droits à un utilisateur non autorisé peut représenter un risque de sécurité majeur.

💡 Grâce à cette architecture ELK + Winlogbeat, nous avons donc la capacité de :

Centraliser les journaux provenant de différentes sources

Visualiser en détail l’activité du système et du réseau

Identifier les événements critiques comme l’attribution de privilèges élevés

Préparer une base solide pour des audits ou alertes de sécurité

Conclusion 

# PRESENTING CODE

La mise en place de la solution ELK STACK permettra à notre entreprise de renforcer sa sécurité informatique en détectant et en prévenant les incidents de sécurité de manière proactive. Ce projet de PFE représente pour nous une opportunité unique d'approfondir nos connaissances en matière de sécurité informatique et de contribuer activement à la protection des systèmes et des données de l'entreprise.

Je tiens à remercier toutes les personnes qui m’ont accompagné durant la réalisation de ce projet, notamment mon encadrant pour ses conseils précieux, ainsi que l’ensemble de l’équipe pour leur soutien.

Merci également pour votre attention et votre temps lors de cette présentation.

N’hésitez pas si vous avez des questions !

Remerciement

PFE ELK stack

By amine hachik