Ministère de l'enseignement
supérieur
et de la Recherche Scientifique
2019/2021
Département Informatique
Mémoire de Projet de Fin d'Etudes
Présenté pour l'obtention du
Diplôme National de Mastère
professionnel Mention Cybersécurité
Réalisé par :
Joseph DEMBELE
Intitulé :
Sujet : Mise en place d'un système de gestion
centralisé des logs et des évènements « SIEM
»
Encadré Par :
Mr Nizar BEN NEJI Université Centrale Encadreur
Universitaire
Mr Bilel ARFAOUI Auditeur Cybersécurité Encadreur
Industriel
Dédicaces
Avec l'expression de ma reconnaissance, je dédie ce
modeste travail à la mémoire de mon père disparu trop
tôt. A ma chère mère Agathe qui a souffert sans me
laisser souffrir et dont le mérite, les sacrifices et les
qualités humaines m'ont permis de vivre ce jour. A mes chers
frères et soeurs pour leur grand amour et leur soutien qu'ils
trouvent ici l'expression de ma haute gratitude A tous mes proches et
tous ceux qui, de près ou de loin, m'ont apporté
leurs sollicitudes pour accomplir ce travail.
|
II
REMERCIEMENTS
Après avoir rendu grâce à Dieu le Tout
Puissant, je tiens à remercier vivement tous ceux de près ou
de loin ont participé à la rédaction de ce document. Je
tiens à remercier mes parents, je remercie le personnel de l'Agence
Nationale de la Sécurité Informatique (ANSI) pour
l'expérience enrichissante et pleine d'intérêt qu'ils
m'ont fait vivre durant ma période de stage. Je tiens à
remercier vivement mon maitre de stage, Mr Bilel ARFAOUI, Auditeur cyber
sécurité au sein de l'ANSI, pour son accueil, le temps
passé ensemble et le partage de son expertise au
quotidien. J'exprime mes profonds remerciements au Dr. Nizar Ben NEJI, mon
encadreur pour son assistance, ses directives, sa formation et ses conseils
précieux. Je saisi cette occasion pour adresser mes profonds
remerciements aux responsables et aux personnels de l'Université
Centrale (Ecole Centrale d'informatique et de
Télécommunications). Un grand merci à ma famille, pour
leurs conseils ainsi que leur soutien inconditionnel, à la fois moral
et économique.
III
IV
Table des matières
INTRODUCTION GENERALE 1
CHAPITRE I - ETAT DE L'ART 5
1 Cybersécurité 5
1.1 Définition 5
1.2 Objectifs de la sécurité informatique 6
1.3 Services principaux de la cybersécurité 6
2 Cyberattaques 7
2.1 Différents types de cyberattaques les plus courants
7
2.2 Conséquences d'une cyberattaque 7
3 Security Operations Center (SOC) 9
3.1 Définition 9
3.2 Modèles de SOC 9
3.3 Comment fonctionne un SOC 10
4 Security Information and Event management (SIEM) 11
4.1 Fonctionnement 11
4.2 Solutions disponibles 12
4.3 Etude comparative des solutions 13
4.4 Critères de choix des solutions SIEM 15
4.5 Choix de la solution et justification 15
4.6 Architecture de la solution 15
4.7 Critères techniques de la solution 18
CHAPITRE II : REALISATION 21
1 Environnement de travail 21
1.1 Environnement matériel 21
1.2 Environnement logiciel 22
1.3 Présentation de la topologie 23
2 Installation d'Elastic Stack 24
2.1 Installation de Java 24
2.2 Installation d'Elasticsearch 25
2.3 Installation du tableau de bord Kibana 25
2.4 Installation de Nginx et httpd-tools 26
2.5 Installation de Logstash 26
2.6 Installation de Filebeat 26
3 Configuration de la pile Elastic 27
3.1 Configuration d'Elasticsearch 27
3.2 Configuration de Kibana 29
3.3 Configuration du chiffrement SSL 30
3.4 Configuration de Logstash 31
3.5 Configuration Nginx 33
3.6 Configuration de Filebeat 33
3.7 Installation des outils d'aide à la détection
des attaques 40
CHAPITRE III : TESTS ET EVALUATIONS 48
1 Prise en main et exploration des données sur Kibana
48
2 Visualisation des données 53
2.1 Création d'une visualisation sur Kibana 53
2.2 Création d'un tableau de bord (dashboard) 55
2.3 Exploration des tableaux de bord Kibana fournit par Filebeat
56
3 Scénarios d'attaque et détection des attaques
59
3.1 Attaque par brute force SSH 59
3.2 Attaque par Denis de service(DOS) 64
3.3 Attaques locales de types système 66
3.4 Attaque réseau : Scan des ports Nmap 69
3.5 Attaque de Brute force des répertoires d'un serveur
Web (Fuzzing Web) 72
3.6 Attaque par malwares 74
CONCLUSION ET PERSPECTIVES 78
REFERENCES 80
V
VI
Liste des Figures
Figure 1 : Architecture d'Elastic Stack 16
Figure 2 : Topologie de l'infrastructure
23
Figure 3 : Commande d'affichage de la version
de Java 24
Figure 4 : Variable d'environnement Java
24
Figure 5 : Affichage de la version de Java
25
Figure 6 : Fichier de configuration
Elasticsearch 27
Figure 7 : Fichier de configuration
Elasticsearch (suite) 28
Figure 8 : Réponse http de curl sur le
port Elasticsearch. 29
Figure 9 : Configuration du fichier
kibana.yml 29
Figure 10 : Génération des
clé SSL 30
Figure 11 : Copie du certificat Logstash vers
la machine cliente Ubuntu 31
Figure 12 : Fichier de configuration input de
Logstash 31
Figure 13 : Fichier de configuration filter
de Logstash 32
Figure 14 : Configuration du fichier output
de Logstash 32
Figure 15 : Génération du mot
de passe 33
Figure 16 : Configuration de Nginx pour le
reverse proxy 33
Figure 17 : Configuration du fichier
filebeat.yml sur CentOS 34
Figure 18 : Configuration de l'output vers
Logstash du fichier Filebeat sur CentOS 35
Figure 19 : Installation de Filebeat
côté client 35
Figure 20 : Configuration du fichier
filebeat.yml 36
Figure 21 : Configuration du fichier
filebeat.yml (Partie Kibana) 36
Figure 22 : Configuration du fichier
filebeat.yml (Partie Elasticsearch) 36
Figure 23 : Configuration du fichier
filebeat.yml (Partie Logstash) 37
Figure 24 : Téléchargement de
Winlogbeat sur Windows 37
Figure 25 : Configuration de Winlogbeat
(Partie Kibana) 38
Figure 26 : Configuration de Winlogbeat
(Partie Logstash) 38
Figure 27 : Exécution du fichier
d'installation des services Winlogbeat 39
Figure 28 : Interface de connexion web de
Kibana 39
Figure 29 : Interface des status de Kibana
40
Figure 30 : Configuration de la variable
HOME_NET 42
Figure 31 : Définition de l'interface
réseau dans le fichier suricata.yaml 42
Figure 32 : Définition de la variable
default-rule-path 42
Figure 33 : Vérification du GRO et du
LRO 43
Figure 34 : Test de la configuration de
Suricata 43
Figure 35 : Configuration du fichier de
configuration de Auditbeat output Elasticsearch 45
Figure 36 : Configuration du fichier de
configuration de Auditbeat output vers Logstash 45
Figure 37 : Création des
modèles d'index de Winlogbeat 48
Figure 38 : Page `Discover' de Kibana (index
filebeat) 49
Figure 39 : Page `Discover' de Kibana (index
Filebeat) 49
Figure 40 : Visualisation des logs sous forme
de table 50
Figure 41 : Filtrage des authentifications
réussies du 25/05/2021 51
Figure 42 : Paramétrage du
sélecteur de temps selon le mode "Relative" 51
Figure 43 : Paramétrage du
sélecteur de temps selon le mode "Absolute" 52
Figure 44 : Exemple de filtre de recherche
52
Figure 45 : Types de visualisation
disponibles dans Kibana 53
Figure 46 : Menu de sélection pour les
types de visualisation 54
Figure 47 : Première visualisation
créée 54
Figure 48 : Onglet de création d'une
nouvelle visualisation Kibana 55
Figure 49 : Première Dashboard
crée sur Kibana 55
Figure 50 : Liste des dashboards Filebeat
56
Figure 51 : Première partie du
dashboard de Suricata 57
Figure 52 : Deuxième partie du
Dashboard de Suricata 57
Figure 53 : Troisième partie du
Dashboard de Suricata 58
Figure 54 : Quatrième partie du
Dashboard de Suricata 58
Figure 55 : Manage detection rules 60
Figure 56 : Configuration de la règle
section "Define rule" 61
Figure 57 : Configuration de la règle
section "Define rule" 2 61
Figure 58 : Configuration de la règle
brute force SSH `About rule' 62
Figure 59 : Configuration de la règle
section "Schedule rule" 63
Figure 60 : Configuration de la règle
section "Actions" 63
Figure 61 : Aperçu de la règle
créée 63
Figure 62 : Attaque Brute force avec l'outil
Hydra 64
Figure 63 : Attaque par brute force SSH
détecté avec succès par Kibana 64
Figure 64 : Attaque DoS avec l'outil Hping3
sur Kali Linux 65
Figure 65 : Détection de l'alerte par
le dashboard Suricata 65
Figure 66 : Détails de l'attaque DoS
dans le dashboard 66
Figure 67 : Maps de localisation des IP de
l'attaque 66
Figure 68 : Chargement des règles par
défaut 67
Figure 69 : Activation de la règle
"Sudoers File Modification" 68
Figure 70 : Modification du fichier sudoers
68
Figure 71 : Alerte "Sudoers File
Modification" détecté par Kibana 68
Figure 72 : Activation de la règle
"Attempt to Disable IPTables or Firewall" 69
Figure 73 : Alerte pour la
désactivation du firewall 69
Figure 74 : Création de la
règle pour la détection de scan Nmap section "Define rule " 70
Figure 75 : Création de la
règle pour la détection de scan Nmap section "Schedule rule "
71
Figure 76 : Scan Nmap sur Kali Linux 71
Figure 77 : Alerte "Nmap scan Detected" 72
Figure 78 : Création de la
règle pour la détection du fuzzing web "Define rule" 73
Figure 79 : Création de la
règle pour la détection du fuzzing web "About rule" 73
Figure 80 : Attaque avec dirb sur notre
serveur web 73
Figure 81 : Détection de l'attaque
"Web Fuzzing Attack Detected" par Kibana 74
Figure 82 : Configuration de l'antivirus pour
Winlogbeat 74
Figure 83 : Création de la
règle pour la détection de malware 75
Figure 84 : Création de la
règle pour la détection de malware section "About rule" 75
Figure 85 : Création de la
règle pour la détection de malware section "Schedule rule" 76
Figure 86 : Détection du malware par
l'antivirus Windows 76
Figure 87 : Alerte "Un malware a
été détecté" par Kibana 76
VII
Liste de tableau
Tableau 1 : Comparaison des solutions SIEM 14
VIII
IX
Liste des abréviations et acronymes
Abréviation Signification
ANSI Agence Nationale de la Sécurité
Informatique
DHCP Dynamic Host Configuration Protocol
DNS Domain Name Server
DOS Denial Of Service
ELK Elasticsearch Logstash Kibana
EQL Event Query Language
FTP File Transfert Potocol
GPG GNU Private Guard
GRO Generic Receive Offload
HTTP HyperText Transfert Protocol
HTTPS HyperText Transfert Protocol Secure
IBM International Business Machines
ICMP Internet Control Message Protocol
IDS Intrusion Detection System
IP Internet Protocol
IPS Intrusion Prevention System
JDK Java Development Kit
JSON JavaScript Object Notation
KQL Kibana Query Language
LRO Large Receive Offload
LTS Long Term Support
MSSP Managed Security Service Provider
NAT Network Adress Translation
NFS Network File System
NMAP Network Mapper
NOC Network Operations Center
OSSIM Open Source Security Information Management
PDG Président Directeur Général
PHP Hypertext Preprocessor
REST Representational State Transfert
RSA Rivest-Shamir-Adleman
RSSI Responsable Sécurité des Systèmes
D'information
SEM Security Event Management
SIEM Security Information and Event Management
SIM Security Information Management
SMB Server Message Block
SMS Short Message Service
SOC Security Operations Center
SQL Structured Query Language
SSH Secure Shell
SSL Secure Sockets Layer
SYN Synchronize
TCP Transmission Communication Protocol
TLS Transport Layer Security
UDP User Datagram Protocol
URL Uniform Ressource Locator
XSS Cross-site Scripting
X
YUM Yellowdog Updater, Modified
1
INTRODUCTION GENERALE
Les exigences de la sécurité de l'information au
sein des organisations ont conduit à deux changements majeurs au cours
des dernières décennies. Avant l'usage
généralisé d'équipements informatiques, la
sécurité de l'information était assurée par des
moyens physiques (classeurs fermés par un cadenas) ou administratifs
(examen systématique des candidats au cours de leur recrutement).
Le second changement majeur qui affecte la
sécurité est l'introduction de systèmes distribués
et l'utilisation de réseaux et dispositifs de communication pour
transporter des données entre un terminal utilisateur et un ordinateur,
et entre ordinateurs.
Avec ces avènements, le besoin de protéger les
données a donné vie à la cybersécurité.
La cybersécurité représente l'ensemble
des outils, politiques, concepts de sécurité, mécanismes
de sécurité, consistant à protéger les ordinateurs,
les serveurs, les appareils mobiles, les systèmes électroniques,
les réseaux et les données contre les attaques malveillantes. Les
systèmes d'information sont sensibles aux menaces qui pourront
entraîner la perte d'informations vitales ou même des dommages
physiques aux machines.
Afin de faire face à ces menaces informatiques, les
organisations et entreprises de toutes tailles doivent pouvoir surveiller leurs
réseaux et systèmes d'information, afin d'identifier les actions
malveillantes qui les menacent et de se prémunir de potentielles
attaques avant qu'elles ne causent de graves dommages.
Bien que les dispositifs de sécurité à
point unique puissent facilement détecter les attaques courantes, ils
sont plus susceptibles de passer à côté de vecteurs
d'attaque lents, distribués et ciblés. Au cours des
dernières années, nous avons vu de nombreux incidents au cours
desquels il a fallu des mois aux entreprises pour se rendre compte qu'elles
avaient été violées.
Les données de journal générées
par ces appareils jouent un rôle crucial dans la détection des
activités suspectes sur un réseau. L'exploration manuel de chaque
entrée de journal devient une tâche fastidieuse pour les
équipes de sécurité. Cela diminue considérablement
leur efficacité et entraîne de la fatigue. C'est là que le
SIEM intervient pour aider les équipes de sécurité
à détecter les incidents de sécurité et à
répondre dans des délais négligeables.
De l'anglais Security Information and Event Management, ou
gestion des informations et des événements de
sécurité en français, si la définition de ce terme
peut échapper à certains, il est aujourd'hui dans toutes les
bouches quand il s'agit d'aborder des sujets de cybersécurité.
2
|