Rapport Stage Application Final
Rapport Stage Application Final
Stage d’Application
Elève Ingénieur En 2ème Année Génie Télécommunication et Réseaux
SUJET
Mise en place d’une solution SIEM pour la gestion des logs
Réalisé par :
Encadré par :
EL AMRANI Samira
Mme CHETIOUI Kaouthar
Je tiens à remercier mon encadrante, Mme CHETIOUI Kaouthar, qui m’a soutenu et
Sans oublier dans mes remerciements tout le corps professoral de l’ENSA de Fès, pour la
Que tous ceux qui m’ont aidé trouvent ici l’expression de mes meilleurs sentiments.
Durant ce stage, mon encadrante m’a chargé de réaliser un projet sous le thème de «
Mise en place d’une solution SIEM pour la gestion des logs ».
Dans notre démarche, il sera donc question pour nous de présenter dans le premier
chapitre la problématique et l’objectif de la réalisation de notre projet, ensuite une
étude sur les journaux et comment peut-on les collecter et gérer. De plus, on va choisi
un logiciel qui permet de gérer les logs. Enfin, nous allons procéder à la mise en œuvre
du logiciel choisi.
Mais ces informations sont souvent noyées au milieu d'une multitude d'autres
informations et ne sont pas accessibles facilement par une simple lecture des logs.
III. Problématique
Notre problématique s’articulera autour de la conception et la réalisation d’un
système permettant une analyse des logs générés par des machines distantes. Cette
analyse doit pouvoir se faire en temps réel afin de permettre d'alerter
immédiatement s'il y a une détection de problème à partir des logs enregistrés dans
des fichiers de sauvegarde, afin de permettre une identification des alertes sur un
problème survenu.
Par conséquent, En cas d’une panne par exemple, on aura une intervention rapide
afin de limiter l’impact du problème survenu sur la productivité.
Alors, jusqu’à quelle point ce projet est réalisable ? Est-ce que la conception et la
réalisation de ce système sera-t-il une solution efficace pour les contraintes de la
distance et du temps ? Et que sera son avantage sur le plan économique ?
En effet, Mise en œuvre d’un outil de gestion des journaux des équipements réseaux,
qui a pour fonction, la collecte et l’analyse des journaux envoyés par les machines du
réseau afin d’avoir une vue générale de système et d’avertir si cet outil a détecté des
anomalies pouvant causer un arrêt des services réseau.
V. Conclusion
Ce chapitre a été conçu pour présenter le cadre général du projet, ainsi que la
problématique et la solution pour remédier à ce problème.
Log : Un log, aussi appelé journal d’événement, est la notification d’un événement
envoyé par une application, un système, un service ou une machine sur le réseau. La
résolution des pannes nécessite en général d’étudier les logs des applications,
équipements réseaux ou autres, ils permettent donc de comprendre ce qu’il s’est
passé et de pouvoir retracer les actions d’un système. Ils sont donc très importants
en informatique, car ils peuvent donner des explications sur une ou plusieurs erreurs,
sur un crash ou une anomalie. Ils nous permettent de comprendre certains
fonctionnements d’un système par exemple, ils retracent la vie d’un utilisateur, d’un
Rapport de stage d’application | 10
paquet ou d’une application sur le réseau et peuvent aussi notifier une action
quelconque. Les logs sont donc indispensables pour bien comprendre d’où
proviennent certains dysfonctionnements.
Fichiers log : ce sont des ensembles séquentiels de messages émis par un programme
informatique ou un périphérique qui rendent compte de leur exécution.
Journalisation : c’est le fait de stocker les fichiers logs dans une base de données ou
autres supports.
Informatif : Les messages de ce type sont conçus pour que les utilisateurs et les
administrateurs sachent qu'un événement bénin s'est produit.
Erreur : ces messages sont utilisés pour relayer les erreurs qui se produisent à
différents niveaux dans un système informatique ; de nombreux messages d'erreur
ne donnent qu'un point de départ pour expliquer pourquoi ils se sont produits. Une
enquête plus approfondie est souvent nécessaire afin de rechercher la cause
fondamentale de l'erreur.
Rapport de stage d’application | 11
Alerte : une alerte indique qu'un événement intéressant s'est produit.
Données : il n’existe pas de format standard pour la représentation des données dans
un message de journal. Parmi les éléments de données les plus courants que l’on peut
trouver dans un message de journal figurent les adresses IP source et destination, les
ports source et destination, les noms d’utilisateurs, les noms de programmes etc.
4.1) Syslog
C’est un protocole qui se compose d'une partie cliente et d'une partie serveur. La
partie cliente émet les informations sur le réseau, via le port UDP 514. Les serveurs
collectent l'information et se chargent de créer les journaux.
De nombreux périphériques réseau sont capables d’envoyer des informations sur les
événements via syslog, mais pas tous, en particulier lorsqu’on utilise les anciens
périphériques. Par conséquent, les interruptions et les notifications SNMP permettent
d’obtenir des informations sur les événements des périphériques que nous n’aurions
pas pu collecter.
En plus de masquer les pistes, les attaquants peuvent trouver des informations dans
les journaux qui sont utiles en elles-mêmes, ou des informations pouvant aider à
attaquer d'autres systèmes, tels que des mots de passe ou des numéros de compte.
Les attaques contre l'infrastructure de journalisation peuvent être effectuées à tout
moment et peuvent cibler n’importe quelle entité de l’infrastructure :
La source : le ou les hôtes sur lesquels les messages de journal sont générés.
Lors du transfert du fichier journal : au niveau du réseau entre les sources et l'hôte-
journal, ou entre le traitement et le stockage.
Le collecteur ou l'agent qui collecte les journaux : là où sont collectés les journaux de
différentes sources.
Dans ce qui va suivre nous allons explorer les attaques qui peuvent être menées sur
les systèmes de journalisation ainsi que les mesures de protection qui peuvent être
prises pour les en empêcher.
Intégrité à la source : Comme pour les problèmes de confidentialité que nous avons
déjà explorés, des autorisations inappropriées peuvent permettre à un attaquant de
modifier directement les données du journal à mesure qu'elles sont stockées. Par
exemple, disons qu'un utilisateur «anton» sur un système fait quelque chose de
néfaste et ne veut pas que l'activité lui soit associée. Si anton peut modifier les fichiers
journaux où ils sont stockés, il pourrait remplacer toutes les occurrences de «anton»
dans les journaux par «marcus», en transférant la responsabilité de l'activité sur
quelqu'un d'autre.
Intégrité lors du transfert : les messages Syslog Unix standard sont transportés via
UDP. Il n'y a pas d'authentification des adresses IP dans les en-têtes de paquets UDP,
et le serveur n'envoie aucun accusé de réception au client. Un attaquant ayant accès
au réseau peut injecter des messages Syslog falsifiés semblant provenir d'hôtes
légitimes sur le réseau. A titre d’exemple l’utilisation de l’outil Packit qui permet de
créer des paquets réseau arbitraire. Il est aussi possible d’intercepter et de modifier
le trafic IP («pirater la session») en utilisant une attaque par l'homme-au-milieu
Spoofing ARP. La meilleure défense contre toutes ces attaques basées sur le réseau
consiste à utiliser un mécanisme qui vérifie l'intégrité des messages.
Un des moyens les plus simples d’inonder un réseau qui peut facilement passer
inaperçu est le « ping flooding », exemple :
Ils pourront retracer le parcours d’une attaque plus facilement car ils seront d’une
part tous regroupés et d’autre part exportés de la zone d’effet de l’attaquant, il sera
donc difficile pour le pirate de supprimer les logs pour effacer ses traces. La
centralisation permet également de garantir la pérennité des logs, il est nécessaire de
ne pas les stocker sur un système en production qui peut tomber à tout instant car s’il
devient injoignable, la récupération des logs devient plus compliquée alors que, s’ils
sont exportés sur une machine disponible, la vitesse de récupération de ces derniers
sera beaucoup plus rapide et le problème sera traité plus facilement.
La technologie SIEM fournit une analyse en temps réel des alertes de sécurité
générées par le matériel et les applications réseau. Les solutions SIEM sont fournies
sous forme de logiciels d’Appliance ou de services gérés. Elles sont également utilisées
pour consigner les données de sécurité et générer des rapports à des fins de
conformité.
1) Graylog
Graylog est un logiciel libre développé et écrit en langage Ruby et Java par Lennart
Koopmann en mai 2010, qui permet de centraliser tous les logs d’un parc
Une importante communauté s'est fondée autour de cette solution, grâce au suivie
régulière des développeurs. Actuellement la version 2.0 est sortie en Avril 2016. Son
but est de pouvoir répondre rapidement en cas de problème sur le parc informatique.
Il a une plage d’action large. Il peut prévenir l’apparition d’un problème, nous prévenir
lorsqu’un problème survient, et il permet d'analyser les derniers logs de la machine si
elle s‘est éteinte subitement. La suite Graylog est alors composée de quatre parties :
2) Fluentd
Fluentd est un outil open source permettant de collecter
des événements et des journaux. Son architecture
permet de collecter facilement les journaux provenant
de différentes sources d'entrée et de les rediriger vers
différents récepteurs de sortie. Certains exemples
d'entrée sont des journaux HTTP, syslog ou apache, et
certains puits de sortie sont des fichiers, du courrier et
des bases de données (aussi bien SGBDR que NoSQL). Aussi, il permet d'analyser les
logs et d'extraire seulement les parties significatives de chacun d’eux ; La sauvegarde
de ces informations structurées sur une base de données permet une recherche et
une analyse beaucoup plus simples.
de base :
3) ELK stack
ELK stack est une solution de centralisation et d’analyse de journaux, proposée par
l’entreprise Elastic. ELK stack se compose des trois logiciels suivants : Elasticsearch,
Logstash et Kibana.
Logstash
Est un outil de gestion des logs. Il prend en charge pratiquement tous les types de
journaux y compris les journaux système, les journaux d'erreurs et les journaux
d'applications personnalisées. Il peut recevoir des journaux provenant de nombreuses
sources, y compris syslog, messagerie (par exemple, rabbitmq) et jmx, et il peut
produire des données de différentes manières, y compris par courrier électronique,
websockets et Elasticsearch.
Kiabana
Est une interface graphique basée sur le Web permettant de rechercher, d'analyser
et de visualiser les données du journal stockées dans les index Elasticsearch. Il utilise
l'interface REST d'Elasticsearch pour extraire les données, aussi il permet aux
utilisateurs de créer des vues de tableau de bord personnalisées de leurs données,
mais leur permet également d'interroger et de filtrer les données.
1) Caractéristiques
Le premier tableau comparatif ci-dessous a été effectué en fonction de
caractéristiques.
2) Fonctionnement
On vous présente simultanément, un deuxième tableau, qui réalise une comparaison
en terme de :
Installation
Configuration
Fonctionnalités
MongoDB est une base de données orientée documents (mongodb). Graylog l’utilise
pour stocker nos données de configuration, pas nos données de journal. Seules les
métadonnées sont stockées, telles que les informations utilisateur ou les
configurations de flux. Aucun de nos messages de journal n'est stocké dans MongoDB.
MongoDB s’exécutera simplement en parallèle des processus de notre serveur
Graylog et n’utilisera pratiquement aucune ressource.
Graylog utilise MongoDB pour stocker nos données de configuration. Telles que les
informations utilisateur ou les configurations de flux.
Elasticsearch
Elasticsearch est un moteur de recherche et d'indexation Open Source nouvelle
génération. Basé sur la librairie Apache Lucene, ce moteur de recherche offre des
fonctionnalités avancées telles que les recherches par coordonnées géographiques,
l'analyse et la catégorisation par agrégations, le filtrage de résultats ou encore la
recherche sur plusieurs index et types de documents différents. Taillé pour le Cloud,
ElasticSearch a été spécialement conçu pour indexer de très gros volumes de données
tout en assurant une montée en charge performante et une forte tolérance aux
pannes.
Tandis que les géants du Web utilisent des moteurs d’indexation propriétaires, dans
le monde de l’open source, Apache Lucene, une bibliothèque d’indexation
développée en Java s’est fait une grosse réputation, et est devenue aujourd’hui le
standard sur lequel se basent les meilleurs moteurs d’indexation. C’est le cas
d’Elasticsearch, lui aussi basé sur Apache Lucene, qui est aujourd’hui un des meilleurs
moteurs d’indexation du marché.
Serveur Graylog
Graylog est une solution de gestion de journaux centralisée de premier plan construite
selon des normes ouvertes pour la capture, le stockage et l’analyse en temps réel de
téraoctets de données machine.
IX. Conclusion
Ce chapitre, a été consacré pour la définition des systèmes SIEM et de la notion de la
gestion des journaux, ainsi que la réalisation d’une étude comparative entre les
produits SIEM les plus utilisés, finissant par le choix de la solution Appropriée à
l’accomplissement du notre projet.
Chapitre 3
La mise en place de la solution
Graylog
Ce chapitre présentera les démarches à suivre pour installer le serveur Graylog sous
l’environnement Linux pour qu’on puisse par la suite gérer les logs.
Noeuds Graylog Server : Sert de travailleur qui reçoit et traite les messages et
communique avec tous les autres composants.
Noeuds Elasticsearch : stocke tous les journaux / messages.
MongoDB : stocke les métadonnées et ne supporte pas beaucoup de charge.
Interface Web : l’interface utilisateur.
2.1) Installation de Java 8 et autres paquets prérequis
Il faut tout d’abord mettre à jour la liste des paquets disponibles depuis les dépôts
pour prendre en compte la branche nouvellement ajoutée.
des SGBDR) sont enregistrés aux formats BSON et JSON dans des collections
(équivalentes des tables des SGBDR).
Pour l’installation du MongoDB on procède de la manière suivante :
En premier lieu, il faut configurer le référentiel officiel MongoDB qui permet de fournir
la version la plus récente et il est recommandé pour installer MongoDB :
On exécute les commandes suivantes pour importer la clé GPG publique Elasticsearch
dans apt et pour créer la liste des sources d’Elasticsearch :
« admin ».
Alors on a bien installé notre serveur Graylog, ainsi que ses composants.
Comme montre la figure suivante l’interface web de notre serveur Graylog se lance
automatiquement :
Rapport de stage d’application | 41
Lorsqu’on remplit les champs de nom d’utilisateur et de mot de passe, on accède à
notre serveur Graylog :
Après avoir cliqué sur « Launch new input », la fenêtre suivante apparait, que nous
remplissons en spécifiant un port supérieur à 1024 car les ports situés en-dessous de
cette valeur sont réservés :
[2] https://fr.wikipedia.org/wiki/Security_information_management_system
[3] https://www.harmonie-technologie.com/siem-security-information-and-event-management
[4] https://www.centreon.com/blog/graylog-et-centreon-votre-supervision-it-a-un-
incroyable-talent/
[5] https://www.cesar-conference.org/wp-
content/uploads/2019/11/20191120_J2_270_L-D-
ORAZIO_Evaluation_systèmes_de_masses_de_données_dans_le_cadre_d_analys
e_de_logs.pdf