Rapport Final - Amani
Rapport Final - Amani
Rapport Final - Amani
com
2019 - 2020
INFORMATIQUE
Superviseurs :
Signature de
Chaque travail difficile nécessite des efforts personnels ainsi que les
conseils des aînés, en particulier ceux qui étaient très proches de notre
cœur.
Ma mère Nadia
Pour avoir été mon premier professeur, une femme forte et douce qui
m'a appris à faire confiance à Dieu et à croire au travail acharné.
Pour gagner honnêtement notre vie pour nous et pour nous soutenir et
nous encourager.
A toute ma famille.
Reconnaissance
contribué de près ou
Travail. Son aide infinie et ses grands efforts m'ont fourni le parfait
ESPRIT, Dr Imen Aouini pour les conseils et l'assistance qu'elle m'a apportés
dans la réalisation de ce travail.
Les membres du jury qui ont évalué mon travail avec leur sagesse et
Connaissance.
introduction .......................................................................................................................................................... 4
1 Contexte du projet...................................................................................................................................... 4
2 Organisme d'accueil ................................................................................................................................... 4
2.1 Présentation générale ......................................................................................................................... 4
2.2 L'organisation de Qweeby .................................................................................................................. 5
3 Etat de l'existant......................................................................................................................................... 6
4 Énoncé du problème .................................................................................................................................. 7
4.1 Énoncé du problème Sprint 1 ............................................................................................................. 7
4.2 Énoncé du problème Sprint 2 ............................................................................................................. 8
4.3 Énoncé du problème Sprint 3 ............................................................................................................. 9
5 Notre solution ............................................................................................................................................ 9
5.1 Solution Sprint 1.............................................................................................................................. 10
5.2 Solution Sprint 2.............................................................................................................................. 10
5.3 Solution Sprint 3.............................................................................................................................. 12
6 Choix de la méthodologie ........................................................................................................................ 12
6.1 Choix de la méthodologie ................................................................................................................ 13
6.2 Présentation de SCRUM .................................................................................................................. 13
6.3 Rôles de l'équipe.............................................................................................................................. 14
Conclusion .......................................................................................................................................................... 15
introduction ........................................................................................................................................................ 17
1 Système de gestion .................................................................................................................................. 17
1.1 modèle PDCA ................................................................................................................................. 17
1.2 Système de gestion de la sécurité de l'information ............................................................................ 18
1.3 Sécurité des informations................................................................................................................. 19
2 Processus de mise en œuvre du SMSI ....................................................................................................... 19
2.1 Phase du plan PDCA ....................................................................................................................... 20
2.1.1 La portée du SMSI ...................................................................................................................... 20
2.1.2 L'évaluation des risques ............................................................................................................... 20
2.1.3 Traitement des risques ................................................................................................................. 20
2.2 Phase d'exécution du PDCA............................................................................................................. 21
2.2.1 Plan de traitement des risques ...................................................................................................... 21
2.2.2 Mise en œuvre du SMSI .............................................................................................................. 21
2.2.3 Maintenance du SMSI ................................................................................................................. 22
2.3 Phase de contrôle PDCA.................................................................................................................. 22
2.3.1 Évaluation du SMSI .................................................................................................................... 22
2.3.2 Audits internes ............................................................................................................................ 22
2.3.3 revues de direction ...................................................................................................................... 22
2.4 Phase d'acte PDCA .......................................................................................................................... 22
2.4.1 mesures correctives ..................................................................................................................... 23
2.4.2 Actions d'amélioration ................................................................................................................. 23
3 Normes ISO/CEI 27000 ........................................................................................................................... 23
3.1 ISO/CEI 27001 ................................................................................................................................ 24
3.2 ISO/CEI 27002 ................................................................................................................................ 25
3.3 ISO/CEI 27003 ................................................................................................................................ 26
3.4 ISO/CEI 27005 ................................................................................................................................ 27
4 Processus de gestion des risques ............................................................................................................... 28
4.1 Établir le contexte............................................................................................................................ 28
4.2 L'évaluation des risques ................................................................................................................... 29
4.2.1 Identification des risques ............................................................................................................. 29
4.2.2 Analyse de risque ........................................................................................................................ 29
4.2.3 Évaluation du risque .................................................................................................................... 30
4.3 Traitement des risques ..................................................................................................................... 30
4.4 Acceptation des risques ................................................................................................................... 31
4.5 Communication des risques ............................................................................................................. 31
4.6 Suivi et revue des risques ................................................................................................................. 32
5 Méthodologies d'évaluation des risques .................................................................................................... 32
5.1 EBIOS............................................................................................................................................. 32
5.2 MEHARI......................................................................................................................................... 33
5.3 CRAMM ......................................................................................................................................... 33
5.4 OCTAVE ........................................................................................................................................ 33
5.5 Comparaison des méthodologies d'analyse des risques ..................................................................... 34
6 Mise en place du SMSI ISO 27001 dans Qweeby ..................................................................................... 34
6.1 Phase de planification ...................................................................................................................... 34
6.1.1 La portée de la mise en œuvre du SMSI ....................................................................................... 34
6.1.2 Politique de sécurité de l'information ........................................................................................... 35
6.1.3 L'évaluation des risques ............................................................................................................... 35
6.1.4 Mesure de sécurité....................................................................................................................... 36
6.2 Faire la phase .................................................................................................................................. 36
6.2.1 Formation et sensibilisation des employés .................................................................................... 36
Conclusion .......................................................................................................................................................... 36
introduction ........................................................................................................................................................ 38
1 Objectif de sprint ..................................................................................................................................... 39
2 Carnet de commandes de sprint ................................................................................................................ 39
3 Branche fonctionnelle .............................................................................................................................. 40
3.1 Identification des acteurs ................................................................................................................. 40
3.2 Exigences fonctionnelles ................................................................................................................. 41
3.3 Prérogatives non fonctionnelles ....................................................................................................... 41
4 Concevoir ................................................................................................................................................ 41
4.1 Diagramme de cas d'utilisation ......................................................................................................... 41
4.2 Diagramme de classes...................................................................................................................... 42
4.3 Diagramme de séquençage............................................................................................................... 43
4.3.1 Autorisation OAuth2 ................................................................................................................... 43
4.3.2 Authentification .......................................................................................................................... 45
5 Branche technique ................................................................................................................................... 46
5.1 Solutions d'authentification unique................................................................................................... 46
5.1.1 Justification du choix :................................................................................................................. 48
5.2 Protocoles d'authentification unique utilisés ..................................................................................... 48
5.2.1 Comparaison des protocoles d'authentification unique .................................................................. 49
5.2.2 Justification du choix :................................................................................................................. 49
5.3 Architecture logique ........................................................................................................................ 51
5.4 Architecture physique ...................................................................................................................... 51
5.5 Choix technologiques ...................................................................................................................... 52
5.5.1 Frameworks et technologies utilisés ............................................................................................. 52
5.5.2 Outils et serveurs d'occasion ........................................................................................................ 53
6 Mise en place et validation du First Sprint ................................................................................................ 54
6.1 Enregistrer une nouvelle application sur Azure AD .......................................................................... 55
6.2 Implémenter un client OAuth 2.0 dans notre application ................................................................... 56
6.3 Mettre en œuvre l'authentification .................................................................................................... 57
6.4 Résultats des tests ............................................................................................................................ 57
Conclusion .......................................................................................................................................................... 61
introduction ........................................................................................................................................................ 63
1 Objectif de sprint ..................................................................................................................................... 63
2 Carnet de commandes de sprint ................................................................................................................ 63
3 Branche fonctionnelle .............................................................................................................................. 65
3.1 Identification des acteurs ................................................................................................................. 65
3.2 Exigences fonctionnelles ................................................................................................................. 66
3.3 Prérogatives non fonctionnelles ....................................................................................................... 66
4 Concevoir ................................................................................................................................................ 66
4.1 Diagramme de cas d'utilisation ......................................................................................................... 66
4.2 Diagramme de classes...................................................................................................................... 69
4.3 Diagramme de séquençage............................................................................................................... 70
4.3.1 Système d'autorisation ................................................................................................................. 71
4.3.2 Provisionnement des utilisateurs .................................................................................................. 71
4.3.3 Approvisionnement SCIM ........................................................................................................... 72
5 Branche technique ................................................................................................................................... 73
5.1 Solutions SCIM ............................................................................................................................... 73
5.1.1 Comparatif des solutions SCIM ................................................................................................... 74
5.1.2 Justification du choix :................................................................................................................. 74
5.2 Architecture logique ........................................................................................................................ 74
5.3 Architecture physique ...................................................................................................................... 75
5.4 Choix technologiques ...................................................................................................................... 76
5.4.1 Frameworks et technologies utilisés ............................................................................................. 76
5.4.2 Outils et serveurs d'occasion ........................................................................................................ 76
6 Étapes de développement ......................................................................................................................... 78
6.1 Phase 1 : Concevoir un schéma d'utilisateur et de groupe. ................................................................. 79
6.2 Phase 2 : comprendre l'implémentation d'Azure AD SCIM ............................................................... 82
6.2.1 Requêtes et réponses du protocole SCIM : ................................................................................... 82
6.3 Phase 3 : création d'un point de terminaison SCIM ........................................................................... 83
6.3.1 Gestion de l'authentification des points de terminaison ................................................................. 83
6.4 Phase 4 : Intégrer le point de terminaison SCIM avec le client Azure AD SCIM ............................... 84
6.5 phase 5 : publier l'application dans la galerie d'applications Azure AD.............................................. 85
7 Mise en place et validation du deuxième Sprint ........................................................................................ 85
7.1 Tester la connexion.......................................................................................................................... 85
7.2 Provisionnement des utilisateurs : .................................................................................................... 88
7.2.1 Ajouter un utilisateur ................................................................................................................... 89
7.2.2 Mettre à jour le rôle de l'utilisateur ............................................................................................... 92
7.2.3 Désactiver l'utilisateur ................................................................................................................. 93
7.2.4 Supprimer l'utilisateur ................................................................................................................. 94
Conclusion .......................................................................................................................................................... 95
introduction ........................................................................................................................................................ 97
1 Objectif de sprint ..................................................................................................................................... 97
2 Carnet de commandes de sprint ................................................................................................................ 98
3 Branche fonctionnelle .............................................................................................................................. 99
3.1 Identification des acteurs ................................................................................................................. 99
3.2 Exigences fonctionnelles ................................................................................................................. 99
3.3 Prérogatives non fonctionnelles ..................................................................................................... 100
4 Branche technique ................................................................................................................................. 100
4.1 Solutions de gestion des journaux .................................................................................................. 100
4.1.1 Comparatif des solutions de gestion de logs : ............................................................................. 101
4.1.2 Justification du choix :............................................................................................................... 101
4.2 Architecture de vitesse ................................................................................................................... 102
4.3 Choix technologiques .................................................................................................................... 103
4.3.1 Technologies utilisées................................................................................................................ 103
4.3.2 Outils d'occasion ....................................................................................................................... 104
5 Les composants de la pile ELK .............................................................................................................. 104
5.1 Recherche élastique ....................................................................................................................... 104
5.1.1 Présentation d'Elasticsearch ....................................................................................................... 104
5.1.2 Les fonctionnalités d'Elasticsearch ............................................................................................. 104
5.2 Logstash ........................................................................................................................................ 105
5.2.1 Présentation de Logstash ........................................................................................................... 105
5.2.2 Le principe fonctionnel de Logstash........................................................................................... 106
5.3 Kibana........................................................................................................................................... 107
5.3.1 Présentation de Kibana .............................................................................................................. 107
5.3.2 Le principe fonctionnel de Kibana ............................................................................................. 108
6 Mise en place et Validation du troisième sprint ....................................................................................... 108
6.1 Mise en place de l'environnement................................................................................................... 108
6.1.1 Installation de machine virtuelle ................................................................................................ 108
6.2 Installation de la pile ELK ............................................................................................................. 108
6.2.1 Installation de Java 8 ................................................................................................................. 108
6.2.2 Installation d'Elasticsearch ......................................................................................................... 108
6.2.3 Installation de Kibana ................................................................................................................ 109
6.2.4 Installation de Logstash ............................................................................................................. 109
6.3 Configuration de la pile ELK ......................................................................................................... 109
6.3.1 Configuration d'Elasticsearch..................................................................................................... 109
6.3.2 Configuration Kibana ................................................................................................................ 110
6.3.3 Configuration de Logstash ......................................................................................................... 110
6.4 Analyse du journal......................................................................................................................... 110
6.4.1 Configurations de script de journal ............................................................................................ 110
6.4.2 Test d'analyse de log.................................................................................................................. 111
FIGURE 54 : CONNEXION DE TEST NON VALIDE EN RAISON D'UNE URL DE LOCATAIRE NON VALIDE
................................................................................................................................................. 87
FIGURE 55 : CONNEXION DE TEST NON VALIDE EN RAISON D'UN JETON NON VALIDE .................. 88
Dans ce contexte, la société française QWEEBY nous a fait confiance pour améliorer son système
de sécurité de l'information en concevant et en mettant en œuvre un Système de management de
la sécurité de l'information (SMSI) afin d'obtenir la certification ISO 27001.
La mise en œuvre du SMSI nécessite que l'entreprise se conforme à l'annexe A de la norme ISO
27001. Cette annexe nécessite des mesures et des contrôles de sécurité qui doivent être satisfaits
des solutions techniques que nous réaliserons au cours de ce projet, telles que la mise en œuvre de
certains systèmes de gestion des identités et des accès. (IAM) et autres qui assureront un meilleur
contrôle du stockage des données, empêcheront les accès risqués inutiles, détecteront les menaces
internes et externes et maintiendront la conformité en matière de confidentialité des données.
Ce rapport présente l'ensemble des démarches entreprises pour développer la solution proposée
par l'entreprise. Il contient six chapitres organisés comme suit :
1
CHAPITRE 4 : DEUXIÈME SPRINT « METTRE EN UVRE UN SYSTÈME DE
GESTION DES IDENTITÉS INTERDOMAINES ENDPOINT »: présenter
l'architecture, les étapes de développement et la mise en œuvre du deuxième sprint.
CHAPITRE 5 : TROISIÈME SPRINT « METTRE EN UVRE UNE SOLUTION DE
CENTRALISATION DES LOGS » : présenter l'architecture, les technologies utilisées
et la mise en œuvre du dernier sprint.
2
Chapitre 1 : Contexte général
3
introduction
Dans ce chapitre, nous commencerons par présenter le contexte général du projet et notre
organisation d'accueil QWEEBY. Ensuite, nous passerons par une étude introductive du projet,
qui contient une description des produits existants, ses problèmes et la solution proposée.
1 Contexte du projet
Le sujet introduit par ce rapport est intitulé « Implémentation et déploiement du système de gestion
de la sécurité de l'information (SMSI) » qui consiste à mettre en œuvre un système de gestion de
la sécurité de l'information au sein de QWEEBY afin d'assurer la confidentialité, l'intégrité et la
disponibilité des informations, des données et des TI de l'organisation. prestations de service.
Il est obtenu pour obtenir le diplôme national d'Ingénieur Informatique à l'Ecole Supérieure Privée
d'Ingénierie et de Technologie ESPRIT pour l'année académique 2019/2020, réalisé à QWEEBY.
Au cours de cette expérience de stage, j'ai pu développer les compétences que j'ai acquises lors de
mes études d'ingénieur, Aussi j'ai eu la chance de les mettre en pratique dans le monde
professionnel.
2 Organisme d'accueil
Dans cette partie, nous allons présenter une présentation générale de l'entreprise et de son
organisation.
4
tracée et sécurisée des factures au client destinataire sous forme de données directement
exploitables dans ses outils.
Qweeby SAS, a été fondée en janvier 2009 par Eric Wanscoor et Mohamed Aymen Ben Abdallah.
L'entreprise a levé plus de 1,5 million d'euros depuis sa création auprès d'acteurs majeurs du
Capital Innovation Français.
Il existe plusieurs services au sein de Qweeby. Chaque service contribue à la vie quotidienne de
l'entreprise à différents niveaux :
Opérations :Il contient deux éléments principaux. Développement des affaires, qui est
responsable de l'acquisition de nouveaux clients et de nouveaux projets. et Customer
Success, pour assurer la satisfaction des clients Qweeby.
Couler:Répondre aux demandes des utilisateurs et configurer l'accès pour les nouveaux
clients.
Technique:Il contient trois éléments principaux. Architecture applicative, qui définit les
axes techniques pour améliorer le produit en fonction des demandes des clients internes
(marketing, succès client ou exploitation). Développement, Développer les produits selon
5
les demandes de l'architecte applicatif. Et la Production, pour assurer la continuité des
services proposés par Qweeby pour les clients et les internes.
ERP :Mise en place et gestion de l'Enterprise Resource Planning.
Commercialisation:Assurer la promotion et la valorisation de l'entreprise et de ses
produits auprès des clients et prospects.
President
Application
Product Customer Flow Application Resp
Business Dev project
manager Success manager architect Production
manager
Communicati Pilot
Data Pilot Pilote MEP
ons officer Connections
Pilote
Pilote SGBD
Exploitation
3 Etat de l'existant
Les mesures mises en œuvre au fil des ans dans Qweeby consistent en plusieurs types de systèmes
visant à réduire l'accès aux données des clients. Qweeby dispose d'une politique de sécurité et
d'une charte de bonnes pratiques qui rassemble une liste de pratiques générales concernant le
patrimoine de l'entreprise. Mais il n'y a pas de norme bien structurée et il n'y a pas de description
pratique et détaillée de la mise en œuvre des objectifs et des mesures de sécurité.
Qweeby propose une méthode d'authentification traditionnelle pour ses employés où ils utilisent
un nom d'utilisateur et un mot de passe pour accéder aux applications internes. ainsi, l'entreprise
6
n'a pas de solution de connexion sécurisée ou de solution de contrôle d'accès pour ses applications
internes.
De plus, Qweeby ne dispose pas de solution de gestion des identités pour ses applications internes
où il peut gérer les informations d'identité des employés et contrôler l'accès aux ressources de
l'entreprise. D'autre part, Qweeby dispose d'une solution de centralisation des journaux pour
collecter et analyser les données, il a implémenté la pile ELK comme solution mais le problème
est que cette solution n'est pas configurée de manière requise et doit être améliorée.
4 Énoncé du problème
Aujourd'hui, les entreprises sont sur le point d'être attaquées par des pirates informatiques qui ont
l'intention d'attaquer des informations confidentielles sur l'entreprise et les clients. Pour cette
raison, tous les employeurs doivent être conscients de l'importance de comprendre les bonnes
pratiques de sécurité de l'information dans l'entreprise pour garantir la sécurité des données
confidentielles et sensibles.
QWEEBY est toujours conscient de la valeur de la sécurité de l'information, toutes ses activités
affectent également le système de gestion de la sécurité de l'information (SMSI). C'est dans ce
cadre que nous mettrons en place un SMSI au sein de QWEEBY.
Chaque fois qu'un utilisateur se connecte à une nouvelle application. C'est une opportunité pour
les pirates d'accéder à cette application, car cette méthode augmente le risque d'accès non autorisé
à l'application et aux informations.
7
Les mots de passe peuvent être trop faibles, partagés entre différentes applications.
Les utilisateurs écrivent parfois des mots de passe, par exemple sur des notes.
Les mots de passe sont parfois envoyés sur des réseaux non sécurisés, ce qui les rend faciles
à voler.
De plus, il n'est pas facile de mémoriser de nombreux mots de passe qui sont régulièrement
modifiés et qui doivent contenir une combinaison alphanumérique minuscule/majuscule d'au
moins huit caractères et symboles.
Tout cela prouve que cette méthode n'est pas sécurisée et nous avons besoin d'un meilleur
remplacement afin de sécuriser notre application.
Dans ce contexte, l'authentification unique est apparue pour éclairer ces problèmes.
8
De cette façon, nous devrons développer des plug-ins de provisionnement / gestion des utilisateurs
pour chaque service avec lequel nous voulons communiquer puisque chaque système a sa propre
API.
Dans ce cas, les entreprises seront mises au défi de gérer la synchronisation des identités des
utilisateurs sur différents magasins de données. où sont les données ? pourquoi il n'a pas été
supprimé ? etc.
La gestion de l'identité des utilisateurs devient un facteur critique car de nombreux pays ont des
politiques et des réglementations sur la façon dont la date de l'utilisateur doit être traitée en raison
de la sécurité et de la confidentialité des données de l'utilisateur. Alors, comment allons-nous gérer
nos données utilisateur de manière sécurisée, c'est là que SCIM apparaît.
Qweeby a déjà implémenté la pile ELK comme solution de centralisation des journaux, pour
collecter et analyser les données, mais le problème est que cette solution n'est pas configurée de la
manière requise. en particulier la méthode de recherche mise en œuvre, ce n'est pas simple à
utiliser, c'est pourquoi l'équipe a besoin d'une méthode de recherche facile, simple et dynamique
qui facilite le processus de centralisation des journaux.
5 Notre solution
9
Pour renforcer sa sécurité, Qweeby s'est engagé dans une démarche de mise en place d'un système
de management de la sécurité de l'information (SMSI) dans l'ensemble des business units de
l'entreprise afin d'obtenir la certification ISO 27001.
La mise en œuvre du SMSI nécessite que l'entreprise se conforme à l'annexe A de la norme ISO
27001. L'annexe A impose certaines mesures et contrôles qui doivent se satisfaire de solutions
techniques.
Les solutions techniques que nous allons mettre en œuvre dans ce projet sont :
Implémentez une solution d'authentification unique (SSO) via Azure Active Directory.
Mettre en œuvre une solution de gestion des identités SCIM (System for Cross-domain
Identity Management)
Mettre en place une solution de centralisation des logs avec Stack ELK pour faciliter les
audits.
Malgré cela, les organisations tentent de réduire ces risques en mettant en place des mécanismes
de sécurité afin de les éviter.
Dans notre cas, nous avons choisi de mettre en œuvre l'authentification unique (SSO) comme
solution d'authentification et d'autorisation des utilisateurs.
10
La première version de SCIM 1.0 a été publiée en 2011 par un groupe de travail sur la norme
SCIM organisé. La version 2.0 de SCIM a été achevée en septembre 2015 et elle a été utilisée par
de nombreuses entreprises telles que Microsoft, Google, Cisco, Nexus, Salesforce, VMWare,
Oracle, etc.
SCIM est composé de deux choses, un schéma et un protocole. schéma présente à quoi ressemble
la ressource (objet utilisateur/groupe). le protocole présente comment la ressource va être
transférée vers un autre système. les fournisseurs d'identité, les applications basées sur le cloud
s'accordent sur un mode de communication commun à l'aide de SCIM.
avec SCIM, nous pouvons gérer les données de l'identité, ainsi que la création, la mise à jour et la
suppression des comptes utilisateurs avec le service cloud.
11
5.3 Solution Sprint 3
Afin de faciliter le processus de débogage et de recherche dans les journaux Qweeby, nous avons
amélioré la solution de centralisation des journaux mise en œuvre avec les fonctionnalités et le
plug-in de la pile ELK pour permettre à l'utilisateur de rechercher facilement dans les données de
manière structurée et simple.
6 Choix de la méthodologie
Le processus de gestion de projet est guidé par une méthodologie et le choix de la bonne aura un
effet sur le flux de travail et la communication au sein de l'équipe.
12
SCRUM Équipes de Imposez un changement Alors que Scrum détaille
développement de paradigme de la vision en particulier comment
indépendantes, petites de développement gérer le cycle de
et auto-organisées, « défini et reproductible » publication de 30 jours, les
cycles de publication à la « nouveau produit » tests d'intégration et
de 30 jours. de Scrum. d'acceptation ne sont pas
détaillés.
TSA Culture adaptative, Les organisations sont ASD concerne davantage
collaboration, considérées comme des les concepts et la culture
développement itératif systèmes adaptatifs. que la pratique du logiciel.
de base de composants Créer un ordre émergent à
axé sur la mission. partir d'un réseau
d'individus
interconnectés.
Tableau 1 : Comparaison des méthodologies
L'objectif principal de SCRUM est de s'assurer que l'équipe accomplit un ensemble de tâches dans
une itération temporelle bien définie, chaque itération se compose de deux à quatre semaines
appelées sprints, où le but de chaque sprint est de développer une fonctionnalité afin de sortir avec
un produit livrable.
13
Une réunion régulière est organisée chaque jour où les membres de l'équipe tentent de répondre à
ces questions :
14
Figure 5 : Processus SCRUM [1]
Conclusion
Nous avons atteint la fin de ce premier chapitre où nous avons présenté le contexte général de notre
projet, l'organisation d'accueil, et une brève étude du projet.
Dans le chapitre suivant, nous allons présenter l'état de l'art, où nous entrerons plus en détail sur
les méthodes de mise en œuvre d'un système de gestion de la sécurité de l'information.
15
Chapitre 2 : État de l'art
16
introduction
Dans ce chapitre, nous allons introduire les concepts abordés dans notre projet tels que le système
de management, le processus de mise en œuvre du SMSI, la famille ISO 27000, le processus de
gestion des risques, les méthodologies d'évaluation des risques et notre participation à la mise en
œuvre du SMSI ISO 27001. polices à Qweeby
1 Système de gestion
Un système de management est un ensemble de politiques, de processus et de procédures utilisés
par une organisation pour s'assurer qu'elle peut accomplir les tâches requises pour atteindre ses
objectifs. Ces objectifs couvrent de nombreux aspects des opérations de l'organisation (y compris
la réussite financière, la sécurité d'exploitation, la qualité des produits, les relations avec les clients,
la conformité législative et réglementaire et la gestion des travailleurs). Par exemple, un système
de gestion environnementale permet aux organisations d'améliorer leur performance
environnementale et un système de gestion de la santé et de la sécurité au travail (SGSST) permet
à une organisation de contrôler ses risques pour la santé et la sécurité au travail. [2]
ISO 27001 adopte le modèle « Planifier-Faire-Vérifier-Agir » (PDCA) qui est appliqué pour
structurer le processus SMSI. La figure (3) ci-dessous montre comment le système de gestion de
la sécurité prend les exigences et attentes en matière de sécurité de l'information comme entrées
et, tout au long du cycle PDCA, produit des résultats de sécurité de l'information gérée qui
répondent à ces exigences et attentes.
17
Figure 6 : Modèle PDCA appliqué aux processus SMSI [3]
Planifier (établir le SMSI) : Établir la politique, les objectifs, les processus et les
procédures du SMSI relatifs à la gestion des risques et à l'amélioration de la sécurité de
l'information afin d'obtenir des résultats conformes aux politiques et objectifs généraux
d'une organisation.
Faire (mettre en œuvre et exploiter le SMSI): Mettre en œuvre et exploiter la politique,
les contrôles, les processus et les procédures du SMSI.
Vérifier (surveiller et réviser le SMSI) : Évaluer et, le cas échéant, mesurer la
performance des processus par rapport à la politique, aux objectifs et à l'expérience pratique
du SMSI et communiquer les résultats à la direction pour examen.
Agir (maintenir et améliorer le SMSI) :Prendre des mesures correctives et préventives,
sur la base des résultats de l'audit interne du SMSI et de la revue de direction ou d'autres
informations pertinentes, pour parvenir à une amélioration continue du SMSI. [3]
18
Mise en œuvre : consiste à mettre en place un SMSI.
Audit : consiste à évaluer la maturité du SMSI.
Certification : consiste à assurer la conformité du SMSI d'une organisation à la norme
internationale ISO 27001.
Les organisations, comme les gouvernements, les entreprises privées et autres, stockent et traitent
de grandes quantités d'informations sur des ordinateurs. La perte ou la divulgation de données à la
mauvaise personne ou sans protection appropriée peut entraîner des problèmes juridiques et
éthiques pour l'organisation. La sécurité de l'information est principalement axée sur la protection
équilibrée de la confidentialité, de l'intégrité et de la disponibilité des données :
Confidentialité: Pour garantir la confidentialité, vous devez être en mesure d'identifier qui
essaie d'accéder aux données et empêcher les tentatives de personnes sans autorisation.
Intégrité: Cela signifie conserver les données dans leur état correct et éviter qu'elles ne
soient modifiées de manière incorrecte (par exemple, ajouter, supprimer ou modifier) par
accident ou par malveillance.
Disponibilité: Cela signifie que les données doivent être disponibles quand elles sont
nécessaires. Le système informatique qui stocke ces informations, les contrôles de sécurité
utilisés pour les protéger et le système de support doivent fonctionner correctement et
garantir que les données sont entièrement disponibles à ce moment-là.
19
Tout d'abord, il est important d'identifier et de prioriser les objectifs afin de comprendre les
intentions et les intérêts de la direction, les principaux objectifs de l'organisation peuvent être
extraits de la mission de l'entreprise, de ses objectifs informatiques et autres plans stratégiques.
Ensuite, la direction doit s'engager à établir, mettre en œuvre, exploiter, surveiller, réviser,
maintenir et améliorer le système de gestion de la sécurité de l'information.
Cet engagement doit inclure des activités telles que la garantie que les ressources appropriées sont
disponibles pour travailler sur le SMSI et que tous les employés concernés par le SMSI ont la
formation, la sensibilisation et les compétences appropriées.
Dans notre cas, le périmètre ISMS s'applique aux sites Qweeby. Il couvre la gestion des
informations et des activités de Qweeby à l'intérieur et à l'extérieur du bureau. Le champ
d'application comprend le personnel, les biens, les informations et toutes les ressources appartenant
au site.
20
Malgré cela, l'évaluation des risques pourrait être la partie la plus complexe lors de la mise en
œuvre de l'ISO 27001, mais le traitement des risques est certainement la partie la plus stratégique
et la plus coûteuse.
Le traitement des risques a pour objectif de maîtriser les risques identifiés lors de l'évaluation des
risques, c'est-à-dire de diminuer le risque en diminuant la probabilité d'un incident et de minimiser
l'impact sur le patrimoine informationnel de l'organisation.
Après avoir dressé une liste des risques inacceptables, ces options sont généralement appliquées
pour les traiter :
Diminuer le risque: cette option est la plus courante et elle inclut la mise en place de
mesures de contrôle de sécurité.
Éviter le risque: en l'éliminant complètement.
Partager le risque: avec un tiers. (via l'assurance)
Conserver le risque: accepte le risque sans rien faire.
Tout en travaillant sur le traitement des risques, l'organisation doit se concentrer sur les risques qui
sont autrement inacceptables, il serait difficile de déterminer les priorités de tous les risques
identifiés.
21
Après avoir terminé le plan de traitement, des mesures de sécurité doivent être déployées selon ce
plan. Ensuite, une mesure d'efficacité doit être définie pour contrôler le bon fonctionnement du
SMSI.
Le but de l'audit est de vérifier la conformité et l'efficacité du SMSI en recherchant les différences
entre la documentation du système (enregistrement, procédures, etc.) et les activités de
l'organisation. La norme exige que la méthode utilisée pour l'audit soit documentée dans une
procédure et que les rapports soient enregistrés pour être utilisés dans les revues de direction.
23
ISO/CEI 27000: Systèmes de management de la sécurité de l'information — Présentation et
vocabulaire.
ISO/CEI 27002: Code de bonnes pratiques pour les contrôles de sécurité de l'information.
ISO/CEI 27006: Exigences pour les organismes assurant l'audit et la certification des systèmes de
management de la sécurité de l'information.
ISO/CEI 27007: Lignes directrices pour l'audit des systèmes de management de la sécurité de
l'information.
ISO/IEC 27001:2013 comporte 10 chapitres, plus une longue annexe A, qui couvrent :
Chapitre 0 : Présentation
24
Chapitre 3 : Termes et définitions
Chapitre 5 : Diriger
Chapitre 6 : Planification
Chapitre 7 : Assistance
Chapitre 8 : Fonctionnement
Chapitre 10 : Amélioration
Chapitre 0 : Présentation
Chapitre 1 : Portée
25
Chapitre 7 : Sécurité des ressources humaines
Chapitre 10 : Cryptographie
Chapitre 1 : Portée
Chapitre 5 : Diriger
Chapitre 6 : Planification
26
Chapitre 7 : Assistance
Chapitre 8 : Fonctionnement
Chapitre 10 : Amélioration
Chapitre 1 : Portée
Chapitre 5 : Contexte
27
Annexe A : Définition du périmètre et des limites du processus de gestion des risques liés
à la sécurité de l'information
- Définir le périmètre
28
- Compréhension de l'environnement externe et interne
- Impacts estimés
29
- Probabilité d'occurrence estimée
Habituellement, nous utilisons une matrice d'évaluation des risques pour nous aider à identifier les
risques qui méritent d'être traités et à les hiérarchiser.
La plupart des matrices d'évaluation des risques ressemblent à ceci, avec un axe présentant la
probabilité qu'un scénario de risque se produise et l'autre présentant les dommages qu'il causera.
Au milieu, nous avons des scores basés sur leurs totaux combinés.
30
Figure 10 : Options de traitement des risques
- Modifier le risque : Cette option est la plus courante et elle inclut la mise en place de mesures de
contrôle pour réduire la probabilité ou les conséquences du risque à un niveau acceptable.
- Conserver le risque : C'est l'option la moins souhaitable. C'est accepter le risque sans rien faire.
cette option ne doit être utilisée que si la probabilité d'occurrence du risque est trop faible ou si le
coût d'identification du risque est trop élevé pour justifier un traitement.
- Eviter le risque : arrêter d'effectuer certaines tâches ou processus s'ils comportent des risques trop
dangereux.
- Partager le risque : Cette option consiste à transférer le risque à un tiers (par exemple : assurance)
capable de le gérer.
31
- Réduire les malentendus avec les décideurs
5.1 EBIOS
La méthode EBIOS est une méthode d'analyse des risques, développée en 1995 par la DCSSI
(Direction Centrale de la Sécurité des Systèmes d'Information) et maintenue en 2009 par l'ANSSI
(Agence Nationale de la Sécurité des Systèmes d'Information).
32
La méthode EBIOS est conforme aux normes internationales suivantes :
ISO/CEI 27001
ISO/CEI 27005
ISO/CEI 31000
5.2 MEHARI
La méthode MEHARI est une méthode d'analyse des risques en informatique, développée en 1996
par le CLUSIF (Club français de la sécurité de l'information) en France puis le CLUSIQ (Club
québécois de la sécurité de l'information) au Canada.
ISO/CEI 27001
ISO/CEI 27002
ISO/CEI 27005
5.3 CRAMM
La méthode CRAMM est une méthode d'analyse des risques développée par l'organisme
gouvernemental britannique CCTA (Central Agency for Communication and
Telecommunications) en 1985.
ISO/CEI 27001
ISO/CEI 27002
5.4 OCTAVE
La méthode OCTAVE est une méthode d'analyse des risques développée par le SEI (Software
Engineering Institute) de la Carnegie Million University à Pittsburgh aux USA en 1999.
33
5.5 Comparaison des méthodologies d'analyse des risques
Afin de choisir la méthode d'analyse de risque appropriée, nous nous basons sur les critères
suivants :
Sur la base des critères de choix de la méthode d'analyse des risques cités dans le tableau 1., nous
avons choisi la méthode EBIOS pour sa compatibilité avec les normes ISO 27001, ISO 27005,
ISO 31000, très populaire, le pays d'origine est francophone, langue du méthode est française, coût
moyen de mise en œuvre et qualité moyenne de la documentation.
34
Il est nécessaire de déterminer le périmètre sur lequel la direction souhaite établir le système de
management de la sécurité de l'information.
Dans notre cas, le champ d'application du SMSI s'applique au sein de Qweeby comprend les
employés, les actifs, les informations et toutes les ressources de l'entité.
L'une des premières étapes de l'évaluation des risques consiste à identifier les actifs afin de passer
à l'étape suivante d'identification des vulnérabilités et des risques. Dans ce cadre nous avons
organisé une rencontre avec les responsables des cinq départements :
Département commercial
Service réussite client
Département des opérations
Département des ventes
Département de gestion
35
Le but de ces réunions est de collecter et de faire l'inventaire des actifs informationnels de Qweeby
avec la précision du propriétaire ainsi que de donner le degré de confidentialité, d'intégrité et de
disponibilité de chacun des actifs cités par les gestionnaires.
Dans notre cas, l'équipe de recherche a fait une séance de sensibilisation avec l'employé et en
présence du superviseur professionnel concernant deux politiques; la politique d'un bureau propre
et d'un écran blanc ainsi que le processus disciplinaire.
Conclusion
36
Dans ce chapitre, nous avons présenté un aperçu du système de gestion de la sécurité de
l'information, de ses normes, de la gestion des risques et des processus de mise en œuvre.
37
Chapitre 3 : Premier Sprint « Mettre
en œuvre une solution
d'authentification unique »
introduction
Dans ce chapitre, nous allons présenter le premier sprint nommé "Implémenter une solution
d'authentification unique". Tout d'abord, nous allons présenter l'objectif du sprint et le backlog de
38
sprint. Ensuite, nous allons présenter la branche fonctionnelle et technique , le sprint design et
l'expliquer avec des schémas et enfin nous découvrirons la phase de mise en œuvre et de validation
1 Objectif de sprint
L'objectif de ce sprint est de mettre en place une solution de gestion des accès dans une
application cloud via Azure AD. Nous allons implémenter une solution d'authentification unique
dans une application développée en Symfony. L'objectif est de permettre à l'employé de Qweeby
de se connecter à l'application interne via une troisième partie de confiance (Azure). Cette
solution de gestion des accès d'identité éliminera les mots de passe faibles qui peuvent provoquer
des violations de données et garantira que l'utilisateur change fréquemment de mot de passe. En
outre, cela atténuera les menaces internes causées par des initiés malveillants, en veillant à ce
que l'utilisateur n'accède qu'au système avec lequel il permet de travailler et ne peut pas
augmenter ses privilèges et, bien sûr, cela améliorera la satisfaction des employés et augmentera
la productivité.
39
1.1.3 configurer l'octroi
implicite de l'application, le
secret client et les
autorisations API.
1.2 En tant 1.2.1 installer
qu'utilisateur, je KnpU/OAuth2
souhaite me ClientBundle.
connecter à 1.2.2 télécharger la
l'application avec bibliothèque cliente Azure.
Azure AD et 1.2.3 Configurer le
autoriser l'accès. fournisseur.
1.2.4 Configurez
AzureController() pour
vous connecter au service
client.
1.3 En tant 1.3.1 installer et configurer
qu'utilisateur, je l'ensemble Fosuser.
souhaite être
1.3.2 créer un contrôleur
authentifié dans
AzureAuthenticator à l'aide
l'application.
de l'authentificateur de
garde et l'intégrer à
Gestionnaire d'utilisateurs
FriendsOfSymfony.
3 Branche fonctionnelle
3.1 Identification des acteurs
40
Les acteurs sont des entités ou un composant de logiciel ou de matériel qui échangent avec le
système. Dans ce sprint nous n'avons qu'un seul acteur, nos solutions ne seront utilisées que par
les salariés de l'entreprise sur l'application interne.
Authentification
Autorisation
Sécurité et cryptage
Performance: notre système doit répondre en temps réel et conserver un temps d'inactivité
minimum.
Maintenabilité: Notre code est écrit de manière claire, bien commenté et testé, comme
cette erreur facile dans le système peut être trouvée et corrigée.
Extensibilité: Notre système peut être amélioré avec plus de couches de sécurité ou
modifier celui qui existe déjà.
4 Concevoir
4.1 Diagramme de cas d'utilisation
41
Le cas d'utilisation ci-dessous présente ce que l'utilisateur est capable de faire après avoir terminé
ce sprint. L'utilisateur a la possibilité de s'authentifier dans l'application avec un compte local, mais
le plus important, il peut se connecter à l'application avec Azure AD sans avoir besoin de saisir ses
informations d'identification à chaque fois qu'il se connecte ou nous pouvons l'appeler via une
connexion unique .
42
Figure 12 : Diagramme de classes du premier sprint
43
Serveur de ressources : l'interface de programmation d'application (API) ou le service que
le client souhaite utiliser au nom du propriétaire de la ressource (parfois, le « serveur
d'autorisation » et le « serveur de ressource » sont le même serveur).
URI de redirection: URL vers laquelle le serveur d'autorisation redirigera le propriétaire
de la ressource après avoir accordé l'autorisation au client. Ceci est parfois appelé "URL
de rappel". et c'est l'application de la page d'accueil dans notre cas.
Type de réponse: Le type d'informations que le Client s'attend à recevoir. Le type de
réponse le plus courant est le code, où le client attend un code d'autorisation.
Portée: cela présente les autorisations granulaires souhaitées par le client, telles que l'accès
aux données telles que la lecture du profil de l'utilisateur ou pour effectuer des actions.
Consentement: Le serveur d'autorisation prend les portées demandées par le client et
vérifie auprès du propriétaire de la ressource s'il souhaite ou non donner l'autorisation au
client.
identité du client: Cet ID est utilisé pour identifier le Client auprès du Serveur
d'Autorisation.
Secret du client: Il s'agit d'un mot de passe secret que seuls le client et le serveur
d'autorisation connaissent. Cela leur permet de partager en toute sécurité des informations
en privé dans les coulisses.
Code d'autorisation: Un code temporaire de courte durée que le client donne au serveur
d'autorisation en échange d'un jeton d'accès.
Jeton d'accès: La clé que le client utilisera pour communiquer avec le serveur de
ressources.
44
Figure 13 : Diagramme de séquence d'autorisation OAuth2
4.3.2 Authentification
Le diagramme de séquence ci-dessous présente le scénario d'authentification dans notre
application après autorisation d'accès du fournisseur d'identité. quelque chose que nous n'avons
pas mentionné auparavant donnait à l'application l'autorisation d'accéder aux données de
l'utilisateur. le serveur d'autorisation a généré un identifiant d'application (identifiant Azure dans
notre cas) et l'a fourni au client pour qu'il l'utilise pour tous les futurs échanges OAuth et nous
l'avons utilisé pour établir l'authentification dans notre cas.
45
Figure 14 : Diagramme de séquence d'authentification
5 Branche technique
5.1 Solutions d'authentification unique
Il existe de nombreuses solutions d'authentification unique, parmi lesquelles nous pouvons
trouver :
46
Annuaire actif Microsoft Azure : Microsoft Azure Active Directory (Azure AD) est l'une
des applications d'authentification unique les plus utilisées, permettant aux utilisateurs de
se connecter à plusieurs comptes avec leurs informations d'utilisateur Office 365. La plate-
forme est un service de gestion des identités et des accès basé sur le cloud, qui permet aux
employés de se connecter à Office 365, au portail Azure (Azure étant les services
d'application cloud de Microsoft) et à des milliers d'autres applications SaaS.. [8]
Okta :Okta fournit une suite complète de solutions de gestion des identités basées sur le
cloud. Okta permet aux organisations de gérer les identités de leurs utilisateurs avec une
plate-forme d'authentification unique toujours active, qui fonctionne sur tous leurs
comptes d'entreprise. Okta propose également une authentification multifacteur, des
répertoires universels et une gestion des accès aux API dans le cadre d'un réseau
d'intégration complet qui permet aux organisations d'améliorer la gestion et la sécurité
de leurs identités, tout en facilitant l'accès des utilisateurs à tous leurs comptes.. [8]
47
de leurs informations d'identification OneLogin. Les administrateurs peuvent mettre en
œuvre une authentification multifacteur sur tous les comptes d'entreprise d'un utilisateur,
afin de garantir que seuls les utilisateurs autorisés ont accès aux bonnes données. [8]
L'authentification unique est conçue pour authentifier une seule information d'identification sur
divers systèmes au sein d'une même organisation. Les trois principaux protocoles
d'authentification unique sont : OAuth2, SAML et OpenID Connect.
OAuth2 :OAuth 2 est un cadre d'autorisation qui permet aux applications d'avoir un accès
restreint aux comptes d'utilisateurs sur un service HTTP, tel que GitHub, Azure AD et les
médias sociaux.
Ce protocole présente un accès délégué sécurisé. ce qui signifie qu'une application peut
accéder aux ressources d'un serveur du côté de l'utilisateur, et sans avoir besoin de partager
son mot de passe ou ses informations d'identification. Il y parvient en permettant au
fournisseur d'identité de fournir des jetons avec l'autorisation de l'utilisateur à une
application tierce.
SAML :SAML est une norme basée sur XML pour le partage d'informations
d'authentification et d'autorisation entre les fournisseurs d'identité et les fournisseurs de
48
services afin de valider l'identité et les autorisations de l'utilisateur, puis d'autoriser ou de
refuser l'accès aux services.
Connexion OpenID :OpenID est une couche d'identité au-dessus du protocole OAuth 2.0
qui étend OAuth2. Il permet l'authentification des utilisateurs à l'aide d'un service tiers
nommé fournisseurs d'identité. Les utilisateurs peuvent ensuite choisir de se connecter à
des sites Web qui acceptent le schéma d'authentification OpenID en utilisant leurs
fournisseurs OpenID préférés.
49
Deuxièmement, selon la documentation Microsoft intitulée « Options d'authentification unique
dans Azure AD », il nous fournit un organigramme très détaillé, qui nous aide à décider quelle
méthode d'authentification unique correspond le mieux à notre situation. et comme nous
développons un nouvelle application cloud dans Azure AD, le protocole OAuth2 est le meilleur
choix dans notre cas.
50
5.3 Architecture logique
La figure ci-dessous présente l'architecture logique du premier sprint « solution d'authentification
unique ».
51
Figure 20 : Architecture physique du premier Sprint
Notre application est basée sur une architecture à 3 couches. Il s'agit d'un environnement basé sur
l'architecture client-serveur.
• Couche de présentation : elle présente la couche frontale qui interagit avec les utilisateurs et est
disponible via un navigateur Web.
• Couche Application : cette couche contient la logique métier fonctionnelle de la mise en œuvre
de l'autorisation et de l'authentification.
• Couche d'accès aux données : cette couche présente le serveur de base de données. c'est le
système de base de données de stockage qui donne accès aux informations stockées.
52
Annuaire actif Azure :
« Azure Active Directory (Azure AD) est le service de gestion des identités et des accès basé sur
le cloud de Microsoft, qui aide vos employés à se connecter et à accéder aux ressources dans :
Des ressources externes, telles que Microsoft 365, le portail Azure et des milliers d'autres
applications SaaS. Les ressources internes, telles que les applications sur votre réseau d'entreprise
et votre intranet, ainsi que toutes les applications cloud développées par votre propre
organisation »[11]
« PhpStorm est un IDE multiplateforme pour PHP, conçu par la société JetBrains pour créer des
applications Web. »
Serveur Wamp :
53
Figure 24 : Logo du serveur Wamp
Équipes Microsoft :
« Microsoft Teams est une plateforme de communication développée par Microsoft, elle propose
de nombreux services et fonctionnalités tels que le chat, les appels, la visioconférence et la
collaboration.
Nous avons utilisé cet outil dans tous les sprints de ce projet, afin de communiquer avec le
superviseur.
Trello :
« Trello est un outil de gestion de projet en ligne, lancé en septembre 2011. Il repose sur une
organisation de projets en tableaux de fiches répertoriant chacune une tâche précise.
Nous avons utilisé cet outil dans tous les sprints de ce projet, comme outil de gestion de notre
projet.
54
Dans cette partie, nous allons décrire les différentes phases de mise en œuvre de la solution
d'authentification unique dans une application SaaS symphony, en commençant par enregistrer
l'application dans Azure AD, en passant par la mise en œuvre du client OAuth2 pour l'autorisation
et l'authentification et la présentation du résultats.
55
Figure 27 : Inscription d'application dans Azure AD
La différence entre eux est que le bundle hwi/oauth offre plus de fonctionnalités mais c'est un peu
difficile à installer. Le bundle knpU oauth2client prend plus de travail à configurer, mais nous
donne plus de contrôle de bas niveau.
Nous avons d'abord installé le bundle HWO/OAuth mais après l'avoir testé avec Azure AD, il y a
eu quelques problèmes et le plugin n'était pas stable avec notre fournisseur d'identité. Nous avons
donc installé le bundle Knpuniversity via le Composer dans notre application Symfony (V 4.4 car
ce bundle supporte la version 4.4 ou supérieure).
Ensuite, nous devons configurer le client. donc d'abord, nous téléchargeons la bibliothèque cliente
Azure AD. Deuxièmement, nous avons configuré le fournisseur avec les informations
d'identification que nous obtenons de l'application d'enregistrement Azure, telles que l'ID client,
le secret client, la route de redirection.
56
Troisièmement, le client que nous avons configuré doit avoir son service pour communiquer avec
le serveur Oauth2. Ainsi, nous implémentons la route et le contrôleur qui redirigent vers Azure
AD, notre contrôleur doit avoir deux services, le premier pour démarrer le processus de connexion
et le second est l'URL où Azure redirigera l'utilisateur une fois qu'il s'est connecté. Dans notre cas,
le lien http://localhost:8000/connect/azure redirigera l'utilisateur vers Azure AD.
Après avoir terminé le flux OAuth2, nous sommes en mesure de récupérer l'utilisateur, le jeton
d'accès et d'autres éléments que nous utiliserons dans notre phase d'authentification du système.
Mais maintenant, nous voulons authentifier l'utilisateur dans notre application, et pour ce faire,
nous utiliserons l'authentificateur Guard au lieu de mettre tout le travail dans le contrôleur de la
dernière partie, et nous l'intégrerons au gestionnaire d'utilisateurs de FriendsOfSymfony afin de
créer un nouvel utilisateur.
La raison pour laquelle nous avons implémenté le bundle FosUser dans notre application est
l'architecture et les exigences de l'entreprise.
57
Après avoir cliqué sur le bouton Connexion avec Azure, l'application redirige vers la page de
connexion du fournisseur avec certaines informations d'application dans l'URL, telles que l'ID
client, l'URL de redirection, le type de réponse et la portée.
58
Figure 32 : entrez les informations d'identification pour le fournisseur
59
Après la connexion avec Azure, le serveur d'autorisation affichera à l'utilisateur un formulaire de
consentement, basé sur les étendues demandées par le client. où il accorde (ou refuse)
l'autorisation.
Et enfin, l'utilisateur sera authentifié dans l'application comme le montre la figure ci-dessous.
60
Figure 36 : Utilisateur ajouté à la base de données
Toutes les activités de connexion seront affichées dans les journaux Azure, comme illustré dans
la figure ci-dessous.
Conclusion
A la fin de ce sprint, et après avoir expliqué les étapes de développement de cette solution.
Qweeby aura la possibilité d'intégrer cette solution d'authentification unique dans son application
interne et d'en augmenter la sécurité et la gestion des accès utilisateurs.
61
Chapitre 4 : Deuxième sprint « Mettre
en œuvre un système de point de
terminaison de gestion des identités
interdomaines »
62
introduction
Dans ce chapitre, nous allons présenter le deuxième sprint nommé « Implémenter un système de
point de terminaison de gestion des identités interdomaines ». Tout d'abord, nous allons présenter
l'objectif du sprint, le backlog de sprint, la branche fonctionnelle et technique, nous allons
également expliquer quelques cas d'utilisation à l'aide de diagrammes. Ensuite nous expliquerons
les étapes de développement suivies afin de développer notre solution et enfin nous découvrirons
quelques phases de test et de validation.
1 Objectif de sprint
Pour les administrateurs informatiques, l'approvisionnement automatique des comptes sur
différents systèmes a toujours été une panacée.
En tant qu'administrateur d'application Cloud d'une application d'entreprise dans Azure AD, vous
pourrez gérer le provisionnement des utilisateurs de votre application après avoir implémenté notre
solution "SCIM endpoint".
L'administrateur pourra créer un seul compte principal et l'ajouter à d'autres systèmes en utilisant
les mêmes informations utilisateur, où SCIM synchronisera automatiquement la gestion des
utilisateurs entre le fournisseur d'identité (Azure AD) et le fournisseur de services (l'application).
Cette solution fournira une méthode standard pour relier vos systèmes entre eux et facilitera
grandement la gestion des identités dans les applications et les services basés sur le cloud. De plus,
cela libérera votre équipe informatique des demandes répétitives des utilisateurs qui peuvent
désormais être automatisées.
63
Fonctionnalités Caractéristiques Identifiant Histoire de Tâche
d'identification User l'utilisateur
Story
2 Mettre en 2.1 En tant 2.1.1 Créer une
œuvre un qu'administrateur, application hors galerie
système pour le je souhaite et configurer les
point de configurer SCIM informations
terminaison de dans Azure AD et d'identification de
gestion des activer le l'application (URL du
identités provisionnement locataire, mappage,
interdomaines SCIM. étendue)
2.1.2 créer une fonction
getUserByQuery().
64
désactiver
l'utilisateur.
En tant 2.2.8 créer la fonction
qu'administrateur, deleteUser().
je souhaite 2.2.9 tester la
supprimer suppression.
l'utilisateur.
2.3 En tant 2.3.1 Créez l'interface
qu'administrateur, qui contient le générateur
je souhaite de jetons.
obtenir 2.3.2 fonction create
l'autorisation index() pour le
d'accès. générateur de jetons.
3 Branche fonctionnelle
3.1 Identification des acteurs
Cette solution ne sera utilisée que par l'administrateur cloud de l'entreprise sur l'application
interne.
65
3.2 Exigences fonctionnelles
La Solution que nous apportons dans ce sprint offre un ensemble de fonctionnalités répondant au
besoin de l'entreprise, qui sont dans notre cas :
Performance: notre système doit répondre en temps réel et conserver un temps d'inactivité
minimum.
Maintenabilité: Notre code est écrit de manière claire, bien commenté et testé, comme
cette erreur facile dans le système peut être trouvée et corrigée.
Extensibilité: Notre système peut être amélioré avec plus de couches de sécurité ou
modifier celui qui existe déjà.
4 Concevoir
4.1 Diagramme de cas d'utilisation
Dans cette partie, nous allons présenter un ensemble de cas d'utilisation que notre application doit
exécuter à travers un diagramme de cas d'utilisation.
Après s'être authentifié en tant qu'administrateur d'application cloud, l'administrateur doit tester la
connexion d'approvisionnement afin d'avoir l'autorisation de gérer l'approvisionnement des
utilisateurs. Ensuite, il peut ajouter un utilisateur, modifier des rôles, désactiver un utilisateur, les
66
supprimer et le point de terminaison SCIM synchronisera automatiquement la gestion des
utilisateurs entre les deux systèmes.
Description du scénario :
67
Description textuelle :
68
4- Le système vérifie si l'utilisateur est dans le périmètre
(la portée dans notre cas : sont tous les utilisateurs qui sont dans
les fonctionnalités Utilisateur et Groupes)
5- Le système vérifie si l'utilisateur existe dans l'application
cible afin qu'il puisse décider de l'action à entreprendre.
(Action : créer ou mettre à jour)
6- Le système démarre le provisionnement des utilisateurs
toutes les 40 min.
(Si l'utilisateur n'existe pas dans l'application cible, il créera
l'utilisateur, si l'utilisateur existe dans l'application cible, le
système met à jour l'utilisateur)
Scénario alternatif L'utilisateur n'est pas dans le périmètre, le système ne démarre pas le
provisioning.
69
Figure 38 : Diagramme de classes SCIM
70
4.3.1 Système d'autorisation
Afin d'obtenir une autorisation d'accès, l'administrateur doit saisir le jeton de support valide. Le
scénario de cette étape est affiché ci-dessous.
71
Figure 40 : Diagramme de séquence (approvisionnement utilisateur)
72
Figure 41 : Diagramme de séquence (approvisionnement SCIM)
5 Branche technique
5.1 Solutions SCIM
73
Il existe de nombreuses solutions SCIM qui peuvent nous aider à gérer facilement les identités des
utilisateurs dans les applications et services basés sur le cloud. Parmi eux, nous pouvons trouver
cette solution déjà définie dans le sprint précédent :
Azure AD
Okta
OneLogin
74
La figure ci-dessous montre l'architecture logique de notre application basée sur une API REST
backend.
75
Notre application est basée sur une architecture à 3 couches. Il s'agit d'un environnement basé sur
l'architecture client-serveur.
• Couche de présentation : dans ce projet, elle présente l'interface qui interagit spécifiquement avec
les utilisateurs finaux et elle est disponible via un navigateur Web ou Azure AD.
• Application Layer : dans ce projet, il contient l'API REST pour garantir la communication entre
Azure AD et notre application sur le Web.
• Couche d'accès aux données : dans ce projet, cette couche présente le serveur de base de données
d'hébergement. c'est le système de base de données de stockage qui donne accès aux informations
stockées.
Symfony
Annuaire actif Azure
"Apache Web Server est un logiciel de création, de déploiement et de gestion de serveur Web open
source. Initialement développé par un groupe de programmeurs de logiciels, il est maintenant
maintenu par l'Apache Software Foundation. Apache Web Server est conçu pour créer des
serveurs Web capables d'héberger un ou plusieurs sites Web basés sur HTTP. Les fonctionnalités
notables incluent la possibilité de prendre en charge plusieurs langages de programmation, des
scripts côté serveur, un mécanisme d'authentification et la prise en charge de la base de
données.[13]
76
Figure 44 : Logo du serveur Web Apache
Heidi SQL :
"Heidi SQL est un outil d'administration de base de données avec un éditeur SQL et un
générateur de requêtes."
WinSCP :
« WinSCP (Windows Secure Copy) est un client open source SFTP, FTP et WebDAV pour
Microsoft Windows. son rôle principal est d'envoyer des fichiers entre l'ordinateur local et distant
de manière sécurisée.
Facteur:
« Postman est un logiciel conçu pour tester les API de manière simple et concise. »
77
Figure 47 : Logo du facteur
Php Tempête :
Identique au sprint précédent, nous avons utilisé PHP storm comme IDE pour PHP.
6 Étapes de développement
Dans la figure ci-dessous, nous expliquerons le provisionnement SCIM entre Azure AD et d'autres
applications.
78
2. Understand 4. Integrate 5. Publish the
1. Design user
the Azure AD 3. Build a SCIM SCIM endpoint application to
and group
SCIM endpoint. with the Azure the Azure AD
schema
implementation AD SCIM client. app gallery
Ressources SCIM :
SCIM propose un ensemble de ressources partagées via un protocole HTTP. Les ressources
peuvent être Utilisateur et Groupe ou autres. nous pouvons personnaliser les attributs de
l'utilisateur sous Enterprise User.
La figure ci-dessous montre le modèle objet de SCIM 2.0. Comme présenté ci-dessous, Resource
est le dénominateur commun et tous les objets SCIM en sont extraits.
Schéma SCIM :
Avec Azure AD, le schéma utilisateur principal ne nécessite que trois attributs : id (identifiant
défini par le fournisseur de services), externalId (identifiant défini par le client) et meta
(métadonnées en lecture seule gérées par le fournisseur de services), les autres attributs dépendent
79
des besoins de l'application . Pour concevoir notre schéma, nous devons suivre les étapes ci-
dessous :
Le tableau ci-dessous montre un exemple qui explique les étapes mentionnées ci-dessus :
Le schéma présenté ci-dessus serait défini dans la charge utile JSON comme indiqué ci-dessous.
le JSON qui fait que la magie opère.
80
Figure 51 : schéma Json
CARTOGRAPHIE SCIM:
Les attributs dans Azure AD sont généralement mappés à leurs propriétés dans le protocole SCIM.
mais nous pouvons personnaliser la façon dont les attributs sont mappés entre Azure AD et le point
de terminaison SCIM avec les fonctionnalités de MAPPING fournies par Azure Active Directory
Provisioning.
Il existe de nombreux points de terminaison fournis par SCIM. chacun d'eux a un rôle et une
performance spécifiques. Le tableau suivant décrit les différences entre eux.
81
/Schémas L'ensemble d'attributs pris en charge par chaque client et
fournisseur de services peut varier.
/Masse Les opérations en bloc vous permettent d'effectuer des
opérations sur une grande collection d'objets de ressources en
une seule opération.
Dans cette section, nous allons décrire comment le client Azure AD SCIM est développé et
comprendre comment concevoir nos demandes et réponses de protocole SCIM.
Lors de la construction de notre application, nous devons respecter les exigences du protocole
SCIM, que l'on peut retrouver dans les documents RFC 7644 (System for Cross-domain Identity
Management : Protocol) [15]
Il existe de nombreuses exigences à respecter pour assurer la compatibilité avec Azure AD, nous
allons en présenter quelques-unes :
82
Il s'agit des opérations utilisateur que nous devons développer dans le point de terminaison SCIM
afin d'activer le provisionnement de l'utilisateur.
Opérations utilisateur
Dans cette partie, nous allons commencer le développement du point de terminaison SCIM. Après
cela, nous avons conçu notre schéma et compris l'implémentation Azure AD SCIM dans les phases
précédentes.
Nous avons développé un système autorisé qui peut fournir au système SCIM un jeton porteur
valide et actif tous les 30 jours.
83
Figure 51 : Authentification du porteur
Mais dans notre cas, le jeton du porteur est généré par notre application et c'est à cause de
l'architecture SCIM dans Azure AD qui nous permet de créer notre propre jeton et aussi à cause
de l'exigence Qweeby. Le jeton du porteur ne doit être utilisé que sur HTTPS (SSL).
Chaque application prenant en charge le protocole SCIM peut être intégrée à Azure AD avec la
fonctionnalité « application sans galerie » dans Azure AD.
Voici les étapes pour connecter une application qui prend en charge SCIM :
84
10. Si les tentatives de connexion à l'application réussissent, sélectionnez Enregistrer pour
enregistrer les informations d'identification de l'administrateur.
11. Dans la section Mappages, vous pouvez modifier les attributs, les attributs correspondent
aux propriétés utilisées pour faire correspondre les utilisateurs et les groupes de votre
application pour les opérations de mise à jour.
12. le champ Portée définit quels utilisateurs et groupes sont synchronisés.
13. Activez l'état d'approvisionnement.
14. Enregistrez pour démarrer le service de provisionnement Azure AD.
Au cas où l'application développée serait utilisée par plusieurs locataires, elle peut être ajoutée à
la galerie d'applications Azure AD.
85
Tableau 11 : scénarios de connexion du deuxième test de sprint
Résultat du scénario 1 :
L'administrateur doit accéder à une interface d'application sécurisée pour obtenir le jeton de
support actif.
L'administrateur doit copier le jeton actif valide dans le champ du jeton secret. Et devez entrer le
lien URL du locataire valide. Le lien URL du locataire a un format spécifique qui doit être
respecté dans le processus de développement qui est : https:// <>/scim
86
Figure 53 : connexion de test valide au point de terminaison SCIM
Résultat du scénario 2 :
L'administrateur entre une URL de locataire invalide qui ne respecte pas le bon format.
Figure 54 : Connexion de test non valide en raison d'une URL de locataire non valide
87
L'administrateur entre un jeton invalide.
Figure 55 : Connexion de test non valide en raison d'un jeton non valide
88
Figure 56 : Démarrer l'approvisionnement
89
Figure 58 : Ajouter une affectation
Comme nous l'avons mentionné ci-dessus, généralement après avoir ajouté un utilisateur à la
portée, nous attendons le provisionnement automatique pour synchroniser le changement toutes
les 40 minutes, mais à des fins de test et pour comprendre ce qui se passe à l'arrière du système,
Azure AD nous fournit une fonctionnalité très intéressante et utile appelée Provision on demand.
Cette fonctionnalité nous permet de provisionner un utilisateur à la demande et de créer ou
mettre à jour rapidement le compte de l'utilisateur dans l'application cible en fonction de la
configuration d'approvisionnement.
90
La figure ci-dessous présente le résultat de la mise à disposition à la demande, comme nous
pouvons le voir, il y a 4 étapes principales que le client SCIM va lancer avant d'effectuer toute
action de mise à disposition.
Importer l'utilisateur :Cette étape montre l'utilisateur récupéré du système source et les
propriétés de l'utilisateur dans le système source.
Déterminer si l'utilisateur est dans la portée: cette étape affiche les conditions de
portée qui ont été évaluées et celles que l'utilisateur a réussi ou échoué.
Faites correspondre l'utilisateur entre le système source et cible :Cette étape montre
si l'utilisateur a été trouvé dans le système cible ainsi que les propriétés de l'utilisateur
dans le système cible.
Faire une action:Cette étape montre l'action qui a été effectuée dans l'application cible,
telle que la création d'un utilisateur ou la mise à jour d'un utilisateur.
91
Après l'approvisionnement SCIM, l'utilisateur est ajouté avec succès à la base de données de
notre application.
92
Figure 64 : Modifier l'affectation
Le rôle de l'utilisateur est modifié avec succès dans notre application 'base de données.
La figure ci-dessous présente les journaux de l'action précédente dans Azure AD.
Suppression douce: signifie désactiver l'utilisateur, dans ce cas l'utilisateur perd son
accès à l'application.
Suppression définitive: signifie supprimer complètement l'utilisateur de l'application.
93
Figure 67 : Suppression logicielle de l'utilisateur dans l'interface Utilisateurs et groupes
Comme le montre la figure ci-dessous, une fois que nous avons supprimé un utilisateur, il est
supprimé de manière logicielle et son statut change pour désactiver l'utilisateur.
L'utilisateur est correctement désactivé dans les journaux d'approvisionnement Azure AD.
94
Malheureusement, nous ne pouvons pas tester cette étape avec Azure AD SCIM Client car cela
prend du temps.
Mais comme nous avons déjà développé la fonction hard delete, nous la testons avec postman.
Avec postman, nous avons d'abord créé un utilisateur de test, nous ne pouvons pas utiliser un
utilisateur réel car cela affectera la synchronisation entre le client SCIM et le point de
terminaison SCIM.
Nous avons supprimé l'utilisateur avec facteur et reçu la réponse requise (204 Pas de contenu).
Conclusion
95
Dans ce chapitre, nous avons présenté un aperçu détaillé du deuxième sprint où nous avons
expliqué la phase fonctionnelle et technique du sprint. Aussi, nous avons évoqué les étapes de
développement du sprint et donné quelques cas d'utilisation à l'aide de diagrammes et enfin les
phases de test et de validation.
Désormais, Qweeby aura la possibilité d'intégrer la solution SCIM Endpoint dans son application
interne pour une meilleure gestion des identités.
96
Chapitre 5 : Troisième Sprint « Mettre
en place une solution de centralisation
des logs »
introduction
Dans ce chapitre, nous allons présenter le troisième sprint intitulé "Mettre en place une solution
de centralisation des logs". Tout d'abord, nous allons présenter l'objectif du sprint, le backlog du
sprint, la branche fonctionnelle et technique, la phase de conception, nous allons également
expliquer les composants des technologies utilisées. et enfin, nous présenterons les phases de
mise en œuvre et de validation.
1 Objectif de sprint
L'objectif de ce sprint est de mettre en œuvre une solution de centralisation des journaux qui sera
capable de collecter des données à partir d'une source de sortie spécifique et de les transformer
sous la forme nécessaire, dans notre cas, l'entrée est un fichier journal qui contient les factures de
97
l'entreprise mises en non manière structurée. Notre objectif est donc de le transformer en quelque
chose de plus structuré et consultable. Après cela, nous pourrons explorer ces données de manière
simple et facile à l'aide de l'interface Web Kibana.
98
3.4.2 analyser les
données de journal non
structurées en quelque
chose de structuré et
interrogeable à l'aide du
plugin de filtre Grok et du
script d'expression
régulière.
3.5 Envoi des données. 3.5.1 Configurez la
destination dans la
section de sortie.
3.6 Visualisez les 3.6.1 rechercher,
données. analyser et visualiser les
données stockées dans
les index Elasticsearch.
3 Branche fonctionnelle
3.1 Identification des acteurs
Cette solution ne sera utilisée que par les salariés de l'entreprise sur l'application interne.
99
Mettre en œuvre une solution de centralisation des journaux pour faciliter les audits
et permettre à l'utilisateur de rechercher facilement dans les journaux de manière
structurée et simple.
Performance: notre système doit répondre en temps réel et conserver un temps d'inactivité
minimum.
Extensibilité: Notre système peut être amélioré avec plus de fonctionnalités ou modifier
celui qui existe déjà.
Évolutivité : Notre système peut gérer une quantité croissante de travail en ajoutant des
ressources au système.
4 Branche technique
4.1 Gestion des journaux solutions
Pile ELK :
« ELK est l'acronyme de trois projets open source : Elasticsearch, Logstash et Kibana.
Elasticsearch est un moteur de recherche et d'analyse. Logstash est un pipeline de traitement de
données côté serveur qui ingère les données de plusieurs sources simultanément, les transforme,
puis les envoie à une « cachette » comme Elasticsearch. Kibana permet aux utilisateurs de
visualiser les données avec des tableaux et des graphiques dans Elasticsearch »[dix]
Graylog :
100
« Graylog est un puissant outil open source pour centraliser et gérer de grandes quantités de
données de journaux provenant de différentes sources. cette solution de gestion centralisée des
logs composée de trois outils : Elasticsearch qui est le moteur d'indexation des documents,
Mongodb qui est une base de données NoSQL permettant de stocker la configuration et quelques
autres paramètres et Graylog-server et graylog-web-interface pour la collecte et la visualisation
des logs. "
101
4.2 Architecture de vitesse
La figure ci-dessous présente une architecture globale de notre solution de centralisation des
journaux utilisant ELK Stack.
Journaux: dans ce projet, il présente le fichier journal d'entrée qui contient les données à
analyser et c'est un fichier journal des factures de l'entreprise.
102
Logstash: il collecte les journaux. puis il les analyse et les transforme sous la forme
nécessaire.
Recherche élastique: où toutes les données transformées de Logstash sont stockées,
recherchées et indexées.
Kibana: Kibana utilise la base de données Elasticsearch pour découvrir, visualiser et
gérer.
Recherche élastique
Kibana
103
« Kibana permet aux utilisateurs de visualiser les données avec des tableaux et des graphiques
dans Elasticsearch. »
« VMware Workstation est un outil de virtualisation de poste de travail créé par la société
VMware, il peut être utilisé pour mettre en place un environnement de test pour développer de
nouveaux logiciels, ou pour tester l'architecture complexe d'un système d'exploitation avant de
l'installer réellement sur une machine physique.
Dans un cluster Elasticsearch, lorsque vous avez plusieurs nœuds, les données qui y sont stockées
sont répliquées entre eux. Cela permet entre autres de conserver toutes les données en cas de perte
d'un nœud. La réplication se fait automatiquement. L'ajout d'un nœud ou d'une partition déclenche
une réplication automatique.
La recherche dans Elasticsearch est l'une des plus performantes du marché. On parle de recherche
distribuée. Lorsque nous exécutons une recherche sur le nœud principal, le nœud principal renvoie
la recherche sur les autres nœuds et les résultats sont renvoyés au demandeur. Une des
particularités du moteur est qu'il regroupe les éléments indexés selon le contexte des données.
Facettes :
Elasticsearch prend en charge les facettes, qui sont des regroupements de résultats de recherche.
Cela permet aux utilisateurs d'avoir une vue agrégée de leurs données. Il existe plusieurs types de
facettes disponibles dans Elasticsearch, notamment :
5.2 Logstash
105
d'entrée peuvent être choisis, dont les fichiers : dans ce cas, on indique à Logstash où lire les
fichiers journaux. Logstash lit ensuite ces fichiers ligne par ligne. Il est alors possible d'appliquer
des "filtres" sur ces lignes : il ne s'agit pas seulement de sélectionner certaines informations et d'en
écarter d'autres, mais aussi d'effectuer des opérations plus complexes, comme le mappage.
Par exemple, dans le cas d'un journal avec UID, il est possible de résoudre l'ID en « Nom, prénom
» en passant un appel externe. Vous pouvez également extraire des informations spécifiques et les
stocker dans des champs spécifiques, ou même exécuter du code Ruby. Autre exemple : le filtre
GROK permet d'extraire des informations à l'aide de RegEx (expressions régulières) pour
correspondre à certains modèles, comme un numéro de version.
Une fois les points d'entrée et les filtres définis, nous indiquons à Logstash où envoyer les
résultats : plusieurs points de sortie, ou adaptateurs, peuvent être définis.
Le plus utilisé est Elasticsearch, mais il peut s'agir d'une DB, ou d'un fichier... Logstash est bien
un ETL (Extract Transform Load, des entrées, des sorties, un processus entre les deux).
Tous les différents éléments que nous allons détailler sont implémentés sous forme de plugins, ce
qui facilite leur ajout à Logstash. La liste de ces plugins continue de s'allonger.
106
Contributions: Logstash accepte tout ce qui peut être représenté sous forme de chaîne en
entrée ; texte, nombre, date et des plugins plus génériques sont bien sûr disponibles comme
Syslog.
Encodeurs / Décodeurs: Les codecs permettent de standardiser et de conditionner un
ensemble de filtres. Il existe de nombreux codecs, notamment multiligne, qui fusionnent
les messages multilignes en un seul événement.
Filtres: Les filtres vous permettent de formater tout message arrivant dans Logstash. Par
format, on entend découper un message en plusieurs parties et inversement, formater les
dates, standardiser le nom des champs, mais pas que ça. il existe des filtres pour créer des
sommes de contrôle, extraire des nombres, supprimer des messages avant stockage et bien
sûr Grok.
Grok est l'un des outils les plus puissants qui nous permet de structurer n'importe quel
message. Sa force réside dans sa capacité à construire des expressions complexes à partir
d'expressions régulières simples.
% {IP : client}
Dans l'exemple ci-dessus, IP est une expression Grok qui capture l'adresse IP
correspondant aux expressions régulières.
Mais parfois, Logstash n'a pas de modèle dont nous avons besoin. pour cela, nous pouvons
créer notre propre plugin personnalisé. nous pouvons utiliser la syntaxe Oniguruma qui
nous permettra de faire correspondre un morceau de texte et de l'enregistrer en tant que
champ :
(?<field_name>le modèle ici)
Les sorties: Une fois que Logstash a terminé l'opération des messages, il peut maintenant
être routé vers les plugins de sortie qui permettent d'envoyer des messages à un outil tiers,
généralement c'est Elasticsearch.
5.3 Kibana
107
homme-machine nous permettant de consulter des documents d'une base de données Elasticsearch
et de les sortir vers des tableaux de bord.
Comme le montre la figure ci-dessus, nous avons associé Elasticsearch à l'adresse IP localhost
local et avons également affecté le port 9200 en tant que port http.
109
6.3.2 Configuration Kibana
Il est maintenant temps d'appliquer les paramètres nécessaires de Kibana en modifiant son fichier
de configuration "Kibana.yml" qui existe sous le répertoire /etc/kibana/kibana.yml. Comme le
montre la figure ci-dessous, les paramètres spécifiques indiquent à Kibana quelle connexion
Elasticsearch se connectera et quel port sera-t-il utilisé. Cette adresse sera utilisée plus tard afin
que nous puissions nous connecter à l'interface graphique ELK-stack et visualiser les logs.
En fait, la configuration dépend largement du cas d'utilisation et des plugins utilisés. dans la partie
suivante, nous l'expliquerons plus en détail.
Entrée/Fichier: Un plugin d'entrée permet à une source spécifique d'événements d'être lue
par Logstash et dans notre projet, nous diffusons des événements à partir d'un fichier.
Sortir: Logstash, après avoir collecté les journaux, ils doivent être indexés dans une base
de données et un moteur de recherche Elasticsearch. Cette tâche est gérée par la section de
110
sortie, où nous avons indiqué le nom de l'index, l'adresse IP et le port du moteur de
recherche Elasticsearch.
Codec multiligne: Le premier problème que nous avons rencontré était que nos entrées
sont multi-lignes et pas de ligne de journal unique. pour résoudre ce problème, nous avons
utilisé le plugin Logstash codec Multiline pour réduire les messages multilignes et les
fusionner en un seul événement. pour ce faire, nous avons remarqué que chaque facture se
termine par la même ligne de fin et un format de date. ainsi, nous avons créé une expression
régulière pour cette ligne, et nous avons demandé au plugin de codec multiligne de créer
un événement chaque fois qu'il trouve une ligne de journal qui termine cette expression
régulière. comme ça, nous pouvons fusionner chaque facture en un seul événement.
Filtre Grok: le deuxième problème était de savoir comment filtrer un événement avec son
ID. notre fichier journal contient des données non structurées et pour résoudre ce problème,
nous avons utilisé le filtre Grok du plugin Logstash.
Grok est un excellent moyen d'analyser des données de journal non structurées en quelque
chose de structuré et de recherche. ainsi, de la même manière, nous avons créé une
expression régulière personnalisée pour filtrer la facture par son identifiant.
111
Figure 82 : Créer un modèle d'index dans Kibana
Ensuite, nous allons faire une recherche sur chaque facture par son ID. le résultat renverra toutes
les informations sur cette facture, comme indiqué dans la figure ci-dessous.
112
Figure 84 : Test d'analyse du journal ELK-stack
Conclusion
Dans ce sprint, nous avons expliqué l'architecture et les composants de la solution et nous avons
détaillé les étapes d'installation avec les prérequis de l'ELK-Stack. Finir par le test de la solution
d'analyse de logs.
Après avoir mis en œuvre cette solution, nous sommes maintenant en mesure de gérer les
données de manière plus simple et automatisée.
113
Conclusion générale
Dans le cadre de mon projet de fin d'études, j'ai participé à la conception et à la mise en place
d'un système de management de la sécurité de l'information pour l'entreprise QWEEBY.
Dans un premier temps, nous avons commencé par comprendre le contexte de l'entreprise et nous
approprier les normes ISO 27001 et ISO 27002 et déterminer les politiques de sécurité de
l'information.
Deuxièmement, afin d'appliquer ces politiques et de confirmer l'annexe A de l'ISO 27001, nous
nous sommes engagés dans un processus de mise en œuvre de certaines mesures de sécurité et de
contrôle. nous avons mis en place trois solutions techniques afin de mieux contrôler et accéder au
système de gestion des identités de l'entreprise et de mieux centraliser et faciliter la gestion des
logs.
Ce stage a été une bonne opportunité pour moi de mettre en pratique toutes les connaissances que
j'ai acquises au cours de ma vie académique. Cela m'a non seulement permis d'intégrer une
approche de nouveaux standards et de maîtriser un nouveau framework et de nouvelles
technologies mais aussi cela m'a permis d'intégrer le monde professionnel.
114
Bibliographie
[1] Processus Scrum https://shadow-tech.fr/posts/mise-au-point-c-est-quoi-agile
[9] Symfonyhttps://en.wikipedia.org/wiki/Symfony
[16]https://swagger.io/docs/specification/authentication/bearer-authentication/
115