Rabeb Rapport PDF

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 117

Dédicaces

À cœur vaillant rien d’impossible,

à conscience tranquille
tout est accessible,
malgré les obstacles qui
se posent,

en dépit des difficultés


qui s’interposent, les
études sont avant tout,

notre unique et seul atout,

souhaitant que le fruit de nos


efforts fournis, jour et nuit,
nous mènera vers le bonheur
fleuri, je dédie ce travail à mes
parents,

à mes meilleurs amis,

à tous ceux
qui ont cru en
moi, Je vous
aime ...
Remerciements
Le travail présenté dans ce rapport a été réalisé dans le cadre de mon Projet de Fin
d’Études (PFE) du Mastère professionnel en Réseaux télécom (à la faculté de
science du Tunis el Manar). Le projet a été réalisé au sein de l’entreprise Keystone
Group.

Au terme de ce stage, je tiens à remercier en premier lieu, Monsieur Haythem


EL MIR, directeur général du Keystone Group, pour son encadrement et son suivi
continu et exemplaire au cours du projet. Je le remercie également pour son
dévouement à m’intégrer dans le cadre de l’entreprise ce qui m’a permis de trouver
la motivation et le soutien nécessaires pour mener le projet à ses objectifs.

Mes remerciements les plus sincères vont particulièrement à Monsieur Houssam


Kaabi, pour son suivi et son soutien tout au long de mon projet, ainsi que pour ses
précieux conseils.

J’adresse également ma vive reconnaissance à Monsieur Adnen Cherif, mon


encadrante de l’école, pour sa disponibilité et sa grande patience tout au long de
l’élaboration de ce projet.

Je remercie tous mes enseignants à la faculté de science pour la bonne formation


d’ingénieurs dont j’ai bénéficié durant mon cursus.

Finalement, j’exprime toute ma gratitude aux membres du jury pour m’avoir fait
l’honneur de bien évaluer mon travail.
Liste des acronymes

ELG: Elasticsearch Logstash Graphana


HTTP: Hypertext Transfer Protocol
HTTPS: Hypertext Transfer
Protocol Secure IOT
IP: Internet Protocol

PCI: Payment Card Industry


PME:
SIEM « Security
Information and Event
Management
SIEM:Security Event Information
Management
SIM: Security Information
Management
SSH: Secure
Shell
SSL: Secure Sockets Layer
UML:Unified
Modeling Language
• FP : False Positive

• TP :True Positive

• TN : True Negative

• TPR :True Positive Rate

• TNR : True Negative Rate

• RNN : Recurrent Neural Network

• CNN :Convolutional Neural Network

• ANN :Artificial Neural Network

• ReLU :Rectified Linear Unit


• NN :Neural Network

• ML Machine Learning

• DL :Deep Learning

• JVM :Java Virtual Machine

• JSON :JavaScript Object Notation

• SWIFT: (Society for Worldwide Interbank Financial Telecommunication)

• SEPA: Single Euro Payments Area - Espace unique de paiement en euros).


Résumé

Le présent projet consiste à concevoir et développer une solution de visualisation


du cyber risque, capable de traiter et d’analyser des données hétérogènes en quantité
massive. Une réponse pertinente aux enjeux actuels posés par le Big Data, basée et
le Deep Learning.
Mots clés :Big Data, , Deep Learning, cybersecurity
Table des matières

Introduction générale ................................................................................................................ 1

Chapitre 1 : contexte génerale du projet .............................................................................. 3


Introduction ........................................................................................................................ 4
I. Présentation de l’organisme d’accueil........................................................... 4
1. Pénétration testing : ................................................................................................. 4
2. Virtual Cisco : .......................................................................................................... 5
3. Incident Response .................................................................................................... 5
4. Security Consulting ................................................................................................. 5
5. Controls and Compliance ........................................................................................ 5
6. Capacity Building .................................................................................................... 6
7. Security Audit .......................................................................................................... 6
8. Managed Security Services ..................................................................................... 6
II. Projet proposée .............................................................................................. 7
1. Etude et critique de l’existant ....................................................................... 7
2. Description du projet ............................................................................................... 7
III. Méthodologie de travail ................................................................................. 8
1. Déroulement de projet ............................................................................... 8
Conclusion .......................................................................................................................... 9

Chapitre 2 : Etat de l’art ..................................................................................................... 10


Introduction ...................................................................................................................... 11
I. Définition .................................................................................................... 11
1. Les transactions bancaires : la monétique ............................................................. 11
2. Hiérarchie d’une transaction bancaire......................................................... 12
II. Les différents moyens de paiement .......................................................... 13
a. les virements ponctuels : ............................................................................. 15
b. le virement permanent:................................................................................ 15
III. Les Fraudes bancaires ............................................................................... 16
IV. Les méthodes de détection des fraudes : ................................................... 19
1. De l’approche classique vers le machine Learning ..................................... 20
Conclusion ........................................................................................................................ 22

Chapitre 3 Analyse et spécification des besoins ................................................................. 23


Introduction .................................................................................................................... 24
I. Analyse des besoins ..................................................................................... 24
II. Besoins fonctionnels ................................................................................... 24
III. Besoins non-fonctionnels ........................................................................... 25
1. Définition des cas d’utilisation : ............................................................................ 25
2. Description textuelle des cas d’utilisation .................................................. 26
Conclusion ...................................................................................................................... 27

Chapitre 4 : Conception de la solution ............................................................................... 28


Introduction .................................................................................................................... 29
I. Conception générale de la solution ............................................................. 29
A. Input ............................................................................................................ 30
B. Couche d'analyse (Analysis) ....................................................................... 30
C. Output.......................................................................................................... 30
1. Architecture général de la solution ........................................................................ 31
a. Source de données :..................................................................................... 31
b. L’analyseur de logs de donnés .................................................................... 31
c. Module de l’apprentissage en profondeur ................................................... 31
II. Conception détaillé de la solution .............................................................. 31
2. Conception des tableaux de bord ........................................................................... 34
3. Diagramme de cas d'utilisation "Configurer le tableau de bord" ................ 36
4. Diagrammes de séquence ...................................................................................... 38
5. Diagrammes de séquence "Configurer le tableau de bord" ................................... 39
Conclusion ...................................................................................................................... 42

Chapitre5 : Réalisation environnement de surveillance ............................................. 43


Introduction .................................................................................................................... 44
I. Etude de l’environnement de surveillance .................................................. 44
1. Etude comparative sur les plateformes d’analyse avancée .................................... 44
2.Étude comparative et choix de l’environnement d’analyse .................................... 45
2. Architecture d’ELG Stack ..................................................................................... 47
3.Étude comparative entre les outils de visualisation Kibana et Grafana ................. 50
II. Réalisation de l’environnement de surveillance ......................................... 52
1. Configuration de Logstash .......................................................................... 52
2. Collecte de logs ..................................................................................................... 52
A. Structuration, Normalisation et enrichissement des logs ............................ 53
3. Configuration de l’output ...................................................................................... 54
B. Elasticsearch Cluster ................................................................................... 55
C. Node : .......................................................................................................... 56
III. Visualisation de données ............................................................................. 56
4. Alerte sur les intrusions ......................................................................................... 57
5. Tests et Résultats ................................................................................................... 58
IV. Création et configuration des graphes ......................................................... 60

Chapitre 6 : Étude Expérimentale : Détection de fraude ............................................. 71


Introduction ...................................................................................................................... 72
I. Artificial intelligence (AI), Machine Learning (ML) et Deep Learning
(DL) ............................................................................................................. 72
II. Intelligence Artificielle (IA) ....................................................................... 73
III. Machine Learning (ML) .............................................................................. 73
IV. Deep Learning(DL) ..................................................................................... 73
V. Choix de la technologie à utiliser ................................................................ 74
1. Apprentissage supervisé en DL................................................................... 75
2. Perceptron ................................................................................................... 75
3. Réseau de neurones artificiel (ANN)..................................................................... 76
4. Réseau de neurones convolutifs (CNN) ................................................................ 77
5.Réseau de neurones récurrents (RNN) ................................................................... 78
6. Apprentissage non supervisé en Deep Learning.................................................... 80
VI. Réduction de la dimensionnalité ................................................................. 80
VII. Mesures d'évaluation .............................................................................. 84
1. Matrice de confusion ............................................................................................. 85
VIII. Analyse du log avec DL .............................................................................. 87
1. Analyse de la charge utile ...................................................................................... 88
2. Description du DataSet .......................................................................................... 88
3. visualisation du DataSet ........................................................................................ 89
IX. DL supervisee ............................................................................................. 92
Conclusion : ...................................................................................................................... 96
Conclusion et perspectives ............................................................................................. 97
Annexe ............................................................................................................ 99
Bibliographie ................................................................................................ 104
Listes des figures
Figure 1.1 logo de la société ................................................................................................................... 4
Figure 1.2 : Architecture transaction bancaire...................................................................................... 13
Figure 2.2 : Architecture de phishing .................................................................................................... 18
Figure 3.2 Architecture de skimming .................................................................................................... 19
Figure 4.2 fonctionnement de la machine Learning ............................................................................. 21
Figure 1.3 Diagramme de cas d’utilisation associé au responsable des sécurités ................................ 26
Figure 1.4 – Architecture Solution du système d'analyse de données ................................................. 29
Figure 2.4 Architecture général du système ......................................................................................... 31
Figure 3.4 Architecture détaillée du système ....................................................................................... 32
Figure 4.4: Structure du collecteur[4] ................................................................................................... 33
Figure5.4 Diagramme de cas d'utilisation global[5] ............................................................................. 34
Figure 6.4 : Configurer la plate-forme "diagramme de cas d'utilisation détaillé[6] ............................. 37
Figure7.4 : Diagramme « authentification » ......................................................................................... 39
Figure 8.4 :Diagramme de séquence "Ajouter un graphique" .............................................................. 40
Figure 9.4 : Diagramme de séquence "Ajouter une alerte" .................................................................. 41
Figure 10.4 : Diagramme de séquence "Ajouter un tableau de bord 4’’ .............................................. 42
Figure 2.5 – Architecture d’ELG Stack ................................................................................................... 48
Figure 3.5 – Le pipeline Logstash .......................................................................................................... 48
Figure 4.5 – Architecture du fichier de configuration du Logstash ....................................................... 52
Figure 4.5 – Plugin d’entrée pour logstash ........................................................................................... 53
Figure 5.5 – plugin de filtre de logstash ................................................................................................ 54
Figure 6.5 out put logstash :traitement de données ............................................................................ 55
Figure 7.5 : cluster Elesticsearch ........................................................................................................... 56
Figure 8.5 : serveur nœud ..................................................................................................................... 56
Figure 9.5 – Premier tableau de bord ................................................................................................... 57
Figure 10.5– Exécution de Elasticsearch ............................................................................................... 59
Figure 11.5 – Exécution de Grafana ...................................................................................................... 59
Figure 12.5 – Interface d’authentification de Grafana.......................................................................... 60
Figure.13.5 : Interface de changement de mot de passe...................................................................... 61
Figure 14.5 : Interface d’accueil ............................................................................................................ 61
Figure 14.5 : Première partie de l’interface d’ajout d’une source de données .................................... 62
Figure 15.5 : Deuxième partie de l’interface d’ajout d’une source de données ................................... 62
Figure 16.5 : Ajouter un Dashboard ...................................................................................................... 64
Figure 17.5 : Ajouter un panel ............................................................................................................... 65
Figure 18.5 : Accéder à l’interface de modification d’un panel ............................................................ 65
Figure 19.5 :Configurer la source et la façon d’extraction de données ................................................ 66
Figure 20.5 : Configurer le style d’affichage de données et les colonnes à afficher ............................. 66
Figure 21.5 : Configurer le style d’affichage de données et les colonnes à afficher ............................. 67
Figure 22.5 : Accéder à l’interface de paramètres d’un dashboard ...................................................... 68
Figure 23.5 : Ajouter une variable ......................................................................................................... 68
Figure 24.5 : Sauvegarde du Dashboard pour la première fois............................................................. 69
Figure 1.6 :AI, ML et DL ......................................................................................................................... 72
Figure 6.2 technique DL......................................................................................................................... 74
Figure 3.6 : Structure de Perceptron .................................................................................................... 75
Figure 4.6 structure ANN ...................................................................................................................... 76
Figure 5.6.structure de CNN .................................................................................................................. 78
Figure 6.6 :. Structure RNN.................................................................................................................... 78
Figure 8.6 Structure RNN Many to one ................................................................................................. 80
Figure 9.6 Structure RNN Many to many .............................................................................................. 80
Figure 10.6 : Performance ..................................................................................................................... 81
Figure 11.6 structure de Auto encoder ................................................................................................. 83
Figure 12.6: Description graphique de la machine Boltzmann restreinte ............................................ 84
Figure 13.6: Confusion de Matrix shape ............................................................................................... 85
Figure 14.6Average Amount/ transaction/Day VS "transaction Amount ............................................ 90
Figure 15.6Total number of declines/day VS isHighRiskCountry .......................................................... 90
Figure16.6 : calcul corrélations ............................................................................................................. 91
Figure17.6 : is Fraudulent ...................................................................................................................... 91
Figure 18.6 : l’entrainement du modèle ............................................................................................... 94
Figure19.6. Rapport de classification ................................................................................................... 95
Figure 20.6 : Matrice de confusion........................................................................................................ 95
Liste des tableaux

Tableau 1 :Déroulement du Project ........................................................................................................ 8


Tableau2 : Liste des acteurs de transaction bancaire ........................................................................... 12
Tableau 3 : Recevoir une alerte en cas de détection d’intrusion..................................................... 26
Tableau 4 : Description détaillée du cas d'utilisation "Authentifier" .................................................... 34
Tableau 5 : Description détaillée du cas d'utilisation "Tableau de bord d'accès » ............................... 35
Tableau 6 : Description détallédu cas d'utilisation "Configure Dashboard" ......................................... 36
Tableau 7 : Description détaillée du cas d'utilisation "Ajouter un tableau de bord" .......................... 38
Tableau 8 :comparaison entre Haddop et elasticsearch ....................................................................... 47
Tableau 9 : Etude comparative entre Kibana et Grafana ..................................................................... 51
Introduction générale
Aujourd’hui, nous voyons des organismes faire face à des défis sérieux liés à la
sécurité de leurs informations. Avec une majorité de ces informations stockées et
transférées sous forme numérique, il existe un besoin important de sécuriser ces
données. Les différents types de données stockées comprennent les informations
d’identifications personnelles, les informations de comptes bancaires, les transactions
par carte de crédit et les propriétés intellectuelles. Cependant, l’intégrité de ces
informations numériques est constamment remise en question par des attaques
visant à les voler, les exposer ou les manipuler. Ce problème pourrait toucher toute
entreprise dans tous les domaines : l’industrie, la santé, la finance, l’économie,... La
protection de données pourrait causer de grave préjudices et de réputations aux
entreprises en cas de vol de données d’où vient l’importance de la sécurité des
données. Malgré l’augmentation du nombre des organisations cybercriminelles et
l’expansion des cyber-opérations secrètes par les États nations, le volume et la
complexité des attaques depuis 2008, est en croissance exponentielle. En effet, les
acteurs de la menace qui cherchent à attaquer une organisation sont devenus plus
dangereux et utilisent des techniques beaucoup plus sophistiquées que par le passé.
Les menaces externes cherchent généralement à pénétrer les défenses d’une
organisation mises en place dans un périmètre de sécurité, avec l’augmentation de
l’utilisation des appareils connectés, la gamme de points de terminaison possibles, la
surface d’attaque a également augmenté de manière significative. Les organisations
dépensent donc de plus en plus de ressources pour renforcer leur périmètre de
sécurité afin de se protéger contre ces menaces.
Pour lutter contre les menaces internes et externes, les entreprises ont besoin d’une
solution complète d’analyse de la sécurité qui complète leur périmètre et la sécurité
du réseau. L’une des solutions qui aident les entreprises à répondre à leurs besoins
de sécurité et leurs donnent un aperçu de leur environnement est le « Security
Information and Event Management » (SIEM). La technologie SIEM existe depuis
plus d’une décennie et a évolué au départ de la gestion de journal. Il combine la
gestion des « Security Event Management» (SEM) qui analyse les don- nées des
événements en temps réel pour assurer la surveillance des menaces, la corrélation des

1
événements et la réponse aux incidents - avec le « Security Information
Management» (SIM). Ce n’est donc pas un hasard si elasticsearch, logstash et
Gafana (ELG Stack ) aujourd’hui la plate-forme mondiale la plus populaire
d’analyse et de gestion des journaux en open source fait partie intégrante de la
plupart des solutions SIEM open source disponibles. S’occupant de la collecte, de
l’analyse, du stockage et de l’analyse, ELG fait partie de l’architecture d’OSSEC
Wazuh, SIEMonster et Apache Metron. Maintenant, notre solution est
l’implémentation de la plate-forme ELG stack et des algorithmes Deep Learning
pour l’analyse des journaux du systéme du nom de domaines, la détection et la
prédiction des attaques visant ce derniers.

Dans ce qui suit, nous faisons un présentation générale de notre projet, puis l’état
de l’art, ainsi l’analyse et spécification des besoins, aprés la conception de la
solution et enfin la réalisation de notre environnement de surveillance et notre
étude expérimental (Deep Learning).

2
Chapitre 1 : contexte génerale
du projet

3
Introduction
Dans ce chapitre, nous présenterons la société hôte, après nous parlerons de l’objectif du projet
proposée de rapport ce concentrera et tout en exposant la méthodologie de travail utilisée.

I. Présentation de l’organisme d’accueil

Figure 1.1 logo de la société

Keystone groupe est un bureau de conseil en cyber-sécurité et cyberdéfense basé à Tunis, doté
d’une équipe d’experts dans diverses disciplines de la sécurité, allant du conseil au piratage éthique,
en passant par la recherche et le développement. Keystone Group travaille sur la région africaine
pour aider les gouvernements à mettre en œuvre leurs programmes de cyber sécurité et à mettre en
place des structures dédiées. Et fournit également des services aux grandes entreprises pour
développer leurs stratégies de sécurité et également pour mesurer le niveau de sécurité de leur
infrastructure technique et intervient également pour enquêter en cas d'attaque. Pour les PME,
Keystone propose des packages de services permettant de gérer toute leur sécurité.
Keystone Group propose à ses clients 8 services :

1. Pénétration testing :

Les tests de pénétration (pentesting) sont le processus d'évaluation des systèmes informatiques, des
réseaux et des applications pour identifier et résoudre les vulnérabilités de sécurité qui pourraient
être exploitées par les cybercriminels.
 External pénétration tests
 Internal penetration tests

4
 Web application assements
 Social engineering

2. Virtual Cisco :

En raison de la pénurie actuelle de talents, le recrutement d'un professionnel dévoué possédant les
connaissances et le leadership nécessaires pour préparer et exécuter une stratégie de cyber sécurité
réussie est long, coûteux et souvent tout simplement non viable.
 Receive trusted advice
 Achieving compliance
 Mesure Security effectivness
 Developing and implementing threat management strategy

3. Incident Response

Pour toute organisation touchée par une cyberattaque, une compréhension claire de la situation est
nécessaire pour prendre le contrôle de la violation, éviter les mesures de panique qui peuvent
aggraver la situation et mettre en place un plan de réponse efficace aux cyber incidents.
 Threat Hunting
 Malware Investigation
 Computer Forencics
4. Security Consulting

 Strategic Advisory
 Program Management
 Cybersecurity Framework Implementation
 CERT Set-up
5. Controls and Compliance

Nos consultants évaluent et guident la correction des lacunes de conformité en matière de cyber
sécurité, pour vous aider à vous concentrer sur la pertinence des contrôles, du temps et du budget
dans les domaines qui ajoutent de la valeur ou réduisent les risques
 Audit

5
 Maturity Assessment
 ISO 27002
 ISO 223001
 Swift CSP
6. Capacity Building

Le programme de renforcement des capacités de Keystone est le moyen le plus efficace de doter
l'entreprise de l'expertise requise pour protéger le système d'information, couvrant toutes les
couches d'utilisateurs et d'équipes impliquées.
 Cyber Security Awareness
 Cyber Exercices
 Advanced Training
7. Security Audit

Une évaluation de la sécurité est effectuée pour identifier la position de sécurité actuelle d'un
système d'information ou d'une organisation
 Penetration Testing
 Web Application testing
 Read team
 Online Banking Operations Assesement

8. Managed Security Services

Les services de sécurité gérés (MSS) sont une surveillance et une gestion externalisées de vos
systèmes de sécurité. En tant que fournisseur MSS, Keystone peut gérer votre outil SEIM de
sécurité, vos IPS, WAF, pare-feu, antivirus, gestion de la vulnérabilité et de la conformité, etc.
Nous aidons votre organisation à sécuriser votre environnement en surveillant et en gérant en
continu votre réseau, vos systèmes et vos données.
 Security Monitoring
 Threat Intelligence
 Vulnerability Management

6
II. Projet proposée
1. Etude et critique de l’existant

Les fraudes et le trafic de logiciels malveillants augmente chaque année causant beaucoup
de problèmes aux entreprises qui veulent protéger leurs données contre ces derniers. Il
existe essentiellement deux niveaux de protection que de nombreuses entreprises
déploient. Nous les présentons ci- dessous avec leurs avantages et limitations.

2. Description du projet

C’est dans ce contexte que ce projet vise à développer un système d’analyse de données pour les
détections de fraude, qui dispose déjà d’un pool de données généralement inexploité, et à tenter
de détecter toute anomalie pouvant révéler la présence d’activités d’attaque ou de signes de
compromission du système. Ce projet tente de résoudre le problème de visibilité en relation avec
la cyber Security et de proposer des solutions contre l'augmentation constante des cyberattaques
depuis des années et qui touchent aujourd'hui de plus en plus d'entreprises. Le manque actuel de
visibilité sur les systèmes affectés par une attaque / un logiciel malveillant aggrave l’impact et
rend la détection et la neutralisation très difficiles. Ce projet est basé sur le concept Big Data afin
d'analyser un énorme volume de données.

Les principaux objectifs du projet sont :


 Disposer d'une plate-forme intégrée pour collecter et analyser les événements de sécurité sur les
réseaux d'opérateurs de télécommunication et exploiter les données générées à partir des réseaux,
développer des moyens d'analyse des comportements malveillants (extraire des indicateurs et
identifier les menaces) et lancer un processus proactif.
 Développer une bonne visibilité via des tableaux de bord en temps réel : une plateforme d’analyse
et d’investigation pour faire face aux menaces.

7
III. Méthodologie de travail
1. Déroulement de projet

Mar Avri Ma Jui Juillet


s l i n Aou
t
 Recherché sur:
 Les moyens de paiement, l
es fraudes bancaires,
l’elasticsearch,Deeplearnin
g
 Choix de l’environnement
de travail :
Python, Stack ELG
Virtuel Box
Centos
Développement modèle Deep
Learning dédié a la
détection de fraude
bancaire (cas Swift)

Tableau 1 :Déroulement du Project

Le tableau 1 décrit l’avancement du projet. Dans la tâche 01, nous avons analysé la nécessité de
développer ce projet, les lacunes des solutions et la contribution du projet à la protection contre
les cyberattaques, les fraudes (une description plus détaillée est fournie dans ce chapitre (chapitre
1) et le chapitre 4). Tout au long de la tâche 02, nous avons examiné certaines informations
théoriques sur les moyens de paiements, les fraudes bancaires dont nous avons répertorié
certaines techniques de fraudes et déterminé la méthode d'analyse à choisir pour chaque anomalie
(les détails sont décrits au chapitre 2. Dans la tâche 04, des scripts d'extraction de fonctionnalités
ont été développés afin d'extraire les attributs des journaux bruts pour le processus de formation
(le chapitre 3 fournit les informations nécessaires à ce sujet). Dans la tâche 05, nous avons
développé le script de formation du modèle dans lequel les fonctionnalités précédemment

8
extraites sont intégrées au modèle (une description plus détaillée est fournie dans ce chapitre 3).
Dans la tâche 06, nous avons mis en place la plateforme qui contiendra toutes les fonctionnalités
fournies par notre solution (le chapitre 5 décrit les détails de cette tâche). Enfin, la tâche 07
rassemblera les détails de toutes les tâches précédentes de ce rapport.

Conclusion
Dans ce chapitre, nous avons présenté l’organisme d’accueil et ses services
proposés. Puis nous avons annoncé l’étude et critique de l’existant ainsi l’objectifs
du projet et méthodologie de travail adoptée. Enfin, nous avons énoncé le
déroulement temporel des différentes tâches qui constituent notre travail

9
Chapitre 2 : Etat de l’art

10
Introduction

Ce chapitre définira les Transactions Bancaires. il expliquera la signification de transaction, les


différents moyens de paiement,. En outre, il énumérera les différents moyens de sécurisation contre
les attaques et les fraudes dans le divers moyen de paiement. Ce chapitre donnera une brève
définition de la mise en cache Transaction bancaire et expliquera le processus de défense contre
les fraudes. En outre, il décomposera le dataset transaction et le format de log. Enfin, ce chapitre
énumérera quelques anomalies dans les transactions bancaires et proposera une détection de
chacune d'entre elles.

I. Définition

Le système de transaction bancaire, est un actif de niveau 1 essentiel au fonctionnement de


toutes les organisations et sans lequel les réseaux et services informatiques ne peuvent pas
fonctionner

Les analystes n’ont cessé de chercher pour assurer une bonne sécurité d’aujourd’hui.
Malheureusement, il est devenu l’un des domaines d’attaque les plus attrayants pour les fraudes
et les cybercriminels. Tenant l’exemple du skimming autrement dit la copie de la piste
magnétique de la carte a travers un terminal de paiement, le piratage des données dans la carte
au moment de la transaction.

1. Les transactions bancaires : la monétique

Le paiement électronique représente l'ensemble des traitements, informatiques, électroniques et


télématiques nécessaires à la gestion des cartes de paiement ainsi qu'aux transactions associées.
En d'autres termes, la banque électronique regroupe les processus nécessaires à la création d'une
carte, à la lecture des informations associées et à la gestion des transactions monétaires.

11
A ce jour, la banque électronique permet de contrer ces risques grâce à la dématérialisation des
moyens de paiement. Il sécurise les transactions. En effet, sans saisir de code identifiant, la carte
ne sera jamais utilisable dans les ventes locales. Toutefois, si la carte est dupliquée et utilisée
frauduleusement, les victimes se sont assurées et seront remboursées.

De plus, toute personne disposant d'une carte de paiement peut effectuer un achat sans avoir à
avoir sur lui le montant exact de la transaction de manière physique. Le paiement électronique
facilite ainsi les transactions bancaires.

2. Hiérarchie d’une transaction bancaire

La transaction bancaire utilise une hiérarchie pour gérer son système de base de données
distribuée, montrons sous le titre La hiérarchie de transaction suivante :

une transaction bancaire implique les acteurs suivants :

• Un émetteur, ici, la banque du client

• Un titulaire de carte, le client

• Un accepteur du moyen de paiement, le commerçant

• Un acquéreur de données de transaction, la banque émettrice

Acteurs Rôle
Emetteur Le client créé un compte bancaire chez
SaBanque, SaBanque envoie la carte
de paiement associée au compte avec
le code pin.
Porteur Le client va chez le commerçant choisit
un article et le paye
Accepteur le commerçant possède un TPE, le
lecteur de carte qui va transmettre les
données de plusieurs transactions.
Acquéreur la banque émettrice

Tableau2 : Liste des acteurs de transaction bancaire

Une transaction bancaire est définie par les étapes suivantes :


1. Le client crée un compte bancaire avec Sa Banque, Sa Banque envoie la carte de paiement
associée au compte avec le code PIN.

12
2. Le client se rend chez le commerçant choisit un article et le paie (c'est la transaction) Parfois,
il peut y avoir des demandes d'autorisation pour vérifier la solvabilité du compte et si la carte est
valide.
3. Après la transaction, le commerçant dispose d'un TPE, le lecteur de carte qui transmettra les
données de plusieurs transactions. C’est le Telecollect

4. Enfin, une fois la télécollection effectuée. Les deux banques communiquent entre elles pour
effectuer une télécompensation. Autrement dit, un compte sera débité et l'autre sera crédité

Figure 1.2 : Architecture transaction bancaire

II. Les différents moyens de paiement

 Carte bancaire : les cartes bancaires sont payantes, leur montant dépend des services offerts.
Il existe différents types de cartes :

• des cartes de retrait qui vous permettent de retirer de l'argent aux distributeurs automatiques
du réseau bancaire dans lequel le compte est ouvert, de consulter vos comptes, d'effectuer des
dépôts, de commander des chéquiers ;

• Cartes de paiement contrôlées, qui nécessitent un contrôle systématique de la provision du


compte. Si le compte n'a pas le solde nécessaire, le paiement est refusé.

• les cartes de paiement classiques qui, en plus des opérations ci-dessus, vous permettent de
payer directement auprès des commerçants et d'effectuer des achats à distance (Internet et
téléphone). Ils sont débités immédiatement ou différés, c'est-à-dire que le compte est
immédiatement retiré au moment de la transaction, ou les paiements sont regroupés et débités
globalement, une fois par mois. Aujourd'hui, presque toutes les banques commercialisent des

13
cartes de paiement dites «internationales».

 Le chèque: c'est un moyen de paiement classique et largement utilisé, qui vous permet de régler
tous vos achats.

Il existe différents types de contrôles :


• le chèque de paiement : le plus courant
• le chèque certifié qui garantit la reconstitution du compte le jour de l'apposition du visa

 les paiements dématérialisé (Monnaie électronique)

La monnaie virtuelle est une sorte d'unité de compte stockée sur un support électronique
représentant les échanges. Cette monnaie a donc une valeur d'usage. La monnaie virtuelle la plus
connue est le Bitcoin.

La monnaie virtuelle présente 2 avantages éprouvés :

 Les frais de transaction lorsqu'ils sont utilisés sont presque nuls par rapport à ceux engagés par un
système de paiement conventionnel (par exemple une carte bancaire).
 Les transactions sont cryptées et validées par un grand nombre d'ordinateurs, permet de se défendre
contre les hackers (hackers)

 Prélèvement :
Le prélèvement permet de payer automatiquement certaines factures directement en débitant votre
compte de dépôt. Pour mettre en place un prélèvement, il est nécessaire de signer une autorisation
de prélèvement, puis de la restituer au créancier avec un RIB, échantillon.

Le prélèvement automatique est utile pour:


Abonnements (gaz, électricité, eau, téléphone, presse, télévision);
Contributions ;
Crédits mensuels;
Etc.
 Virement

14
Le virement bancaire vous permet de transférer une somme d'argent du compte bancaire de l'émetteur
vers celui du bénéficiaire.
Le virement peut également être effectué sur un compte détenu à l'étranger dans une devise autre que
l'euro.

Il existe généralement deux types de transferts : ponctuels et permanents (automatiques)

a. les virements ponctuels : Avec une utilisation souple, facile et économique, le virement est un
moyen de paiement très utilisé. Que ce soit un virement ponctuel qu’il s’agisse d’un virement
SEPA ou international, avec le succès grandissant d’Internet, l’utilisation du virement bancaire
s’est largement démocratisée.

Caractéristique et Fonctionnalité :

Pour pouvoir effectuer un virement ponctuel, vous devez être en possession des noms et
prénoms du bénéficiaire et de ses Coordonnés bancaires
Code IBAN du compte bénéficiaire (International banking account number) : c'est l’identifiant
international du compte bancaire.
Code BIC e la banque bénéficiaire (Bank identifier code) : c'est l’identifiant international de la
banque.
Si vous effectuez un virement ponctuel international (notre cas), on vous demandera le code
SWIFT de la banque bénéficiaire (du nom de la société qui gère l'enregistrement de ces
numéros, Society for worldwide Interbank Financial télécommunication), également connu
sous le nom de code BIC.

b. le virement permanent :

Un virement est dit permanent (ou automatique) si la banque est sommée de le répéter plusieurs
fois à fréquence régulière. Cette commande peut être programmée pour une durée fixe ou
indéfinie.

15
Caractéristique et Fonctionnalité :

Il existe trois types de transferts permanents :


• virement interne permanent : vous effectuez un virement vers un tiers ou vers l'un de vos
comptes dans la même banque.
• virement permanent international : vous effectuez un virement pour un bénéficiaire dont le
compte est situé à l'étranger.
• le virement permanent externe : dans ce cas, vous mettez en place un virement permanent pour
un bénéficiaire client d'une autre banque que la vôtre ou vers un autre de vos comptes domiciliés
dans une autre banque.

Il existe plusieurs façons de mettre en place un virement permanent, vous pouvez le faire par
mail adressé à votre banque ou conseiller, l'exécuter depuis votre espace client internet, depuis
votre smartphone si vous avez une application mobile, en vous rendant dans votre agence, dans
certaines banques offrir un service client que vous pouvez contacter par téléphone avec des
codes d'accès sécurisés.
Pour effectuer un virement permanent, vous devez être en possession du RIB (relevé de compte
bancaire) du bénéficiaire, de son numéro IBAN (numéro de compte), et éventuellement de son
code BIC qui est l'identifiant international de la banque. Et vous devez choisir une date pour
l'exécution et le retrait du transfert,

III. Les Fraudes bancaires

 fraude a la carte bancaire :

La principale fraude à la carte bancaire est l'utilisation d'une carte volée dont nous avons réussi
à obtenir le code confidentiel.
Malheureusement, les fraudeurs rivalisent d'ingéniosité pour détourner les cartes bancaires. Le
titulaire d'une carte bancaire peut être confronté à plusieurs types de fraude:
• L'utilisation par un tiers de sa carte bancaire suite à une perte ou un vol: la personne qui a
trouvé ou volé la carte l'utilise pour son propre compte.

16
• L'utilisation d'identifiants correspondant à sa carte bancaire: suite à un paiement en ligne, les
"hackers" récupèrent les identifiants de la carte et les utilisent pour effectuer des achats.

• La copie de la bande magnétique de sa carte: cette copie est souvent réalisée à l'aide d'un
copieur placé sur un terminal de paiement ou un GAB: c'est ce qu'on appelle le "skimming".

 Fraude carte bancaire dans les distributeurs automatiques

Il existe plusieurs fraudes liées aux distributeurs automatiques:


• Vol avec violence : vol de la carte bancaire, du code secret et de l'argent retiré.
• Exploitation des défauts : avec la complicité du DAB (responsable du distributeur automatique
de billets).

Le fraudeur introduit un petit appareil dans la fente d'un distributeur, qui conserve toute carte
insérée.
Souvent, le fraudeur espionne la victime pour découvrir le code confidentiel.
Ce dernier croit à un problème technique et s'éloigne de l'appareil lorsque le fraudeur récupère
sa carte bancaire. Paiement à distance et fraude à la carte bancaire
Mise en oeuvre:
Le risque de paiement à distance est le piratage d'informations contenues dans votre carte
bancaire au moment de la transaction. Pour réduire ces risques, vous devez effectuer vos achats
uniquement sur des sites où le paiement par carte bancaire est sécurisé.
Cependant, certains sites marchands conservent vos coordonnées bancaires:
Il existe un risque de récupération de votre numéro de carte bancaire et de sa validité.
Les sites marchands doivent stocker ces données sous forme cryptée et protéger leurs serveurs
informatiques.
Dans ce cas on peut parler d'une technique de fraude très connue, c'est la technique du
phishing :
Il s'agit d'une tentative de vol d'informations sensibles, généralement sous la forme de noms
d'utilisateur, de mots de passe, de numéros de carte de crédit, d'informations de compte bancaire
ou d'autres données importantes afin d'utiliser ou de vendre les informations volées. En se
faisant passer pour une source réputée avec une demande alléchante, un attaquant attire la
victime pour la piéger, de la même manière qu'un pêcheur utilise des appâts pour attraper un
poisson.

17
Les exemples de phishing les plus courants sont utilisés pour prendre en charge d'autres actions
malveillantes, telles que les attaques de script homme-au-milieu et intersites. Ces attaques se
produisent généralement par e-mail ou par message instantané et peuvent être divisées en
quelques catégories générales. Il est utile de se familiariser avec certains de ces différents
vecteurs d'attaque de phishing afin de les repérer dans la nature.

Figure 2.2 : Architecture de phishing

 Fraude à la carte bancaire chez les commerçants

Bien que ce type de fraude est tendance à disparaître au profit d'une fraude informatique plus
sophistiquée et plus importante, soyez prudent. Les traders peuvent utiliser différentes
méthodes :
• Carte bancaire contrefaite : la technique d'écrémage consiste à copier la bande magnétique
d'une carte bancaire à l'aide du terminal de paiement, qui a été modifiée avec la complicité du
commerçant :
• Récupération du numéro de carte bancaire: si ce numéro est tronqué sur la facture que le
commerçant vous remet, il apparaît en intégralité sur la copie qu'il conserve. Il peut facilement
l'utiliser frauduleusement.
Procédure de skimming :
La procédure de skimming se fait en exécutant un travail AC ++ sur CAF et en stockant les
fichiers résultants sur un emplacement durable dans un ensemble de données donné.

18
Figure 3.2 Architecture de skimming

 Les fraudes avec les cartes étrangères

Les commerçants peuvent également être victimes de fraude avec:


• L'utilisation d'une carte bancaire contrefaite.
• Révocation de l'achat: c'est une possibilité légale dans certains pays. Le fraudeur s'oppose
donc au paiement, mais sans restituer l'article acheté.

IV. Les méthodes de détection des fraudes :


Il est clair qu'une gestion inappropriée de la fraude peut avoir des conséquences
extrêmement néfastes :
Impacts financiers d'une transaction frauduleuse non détectée ou impacts
opérationnels (unité de traitement des fraudes, gestion de crise…).Donc Les techniques
de fraude évoluent constamment, tout comme les dispositifs de prévention de la fraude
pour augmenter leur efficacité sans dégrader l'expérience client.
Afin de sécuriser le parcours client, des axes majeurs doivent être intégrés :
 La protection des parcours clients, afin de sécuriser la performance des opérations
sensibles à travers la mise en place de solutions de protection et la sensibilisation des
clients. La réaction suite à la fraude, afin d’alerter, enquêteur et réagir rapidement en cas de
fraude, suite aux alertes questions de la détection.
 La détection de la fraude.

19
 La reaction suite a la fraude.

 T E N D A N C E S D E L A D É T E C T I O N D E FRAUDE EN LIGNE

1. De l’approche classique vers le machine Learning

La collecte d’informations à analyser : Ces données peuvent être soit internes (données
techniques, données comportementales, données métiers…) et provenant d’un ou plusieurs
canaux, soit externes (données issues de réseaux sociaux, de site d’informations, de
partenaires…).

L’apprentissage : Pour apprendre, le modèle se nourrit des données pour établir, en plus ou
moins grande autonomie, des rapprochements statistiques, des règles de décision et des
paramètres précis pour améliorer la finesse de la détection. En plus d’une grande disponibilité
des données, les techniques de machine Learning ne nécessitent pas une fiabilité ou une
complétude absolue au sein de leur base : fonctionnant sur des principes statistiques, une erreur
ou un « manque » ponctuel n’aura pas d’impact significatif sur le résultat de l’apprentissage.
La prédiction : La prédiction correspond à la phase d’exploitation finale de l’intelligence auto
conçue. Les données entrantes sont exploitées en temps réel par le modèle, et la cible à prédire
est souvent un score de risques : de 0 si la transaction est sûre, à 100 si c’est une fraude certaine.

20
Fonctionnement du machine learning :

Figure 4.2 fonctionnement de la machine Learning

Les algorithmes fondés sur le machine learning présentent des résultats nettement plus performants
en matière de détection de fraude lorsqu’ils sont alimentés par un volume important de données et
d’informations pertinentes qui sont, pour la plupart, des données personnelles.

 ALERTES ET CONTRE-MESURES

La mise en œuvre d'outils automatisés de détection des fraudes nécessite d'enquêter sur l'escalade des
alarmes et les contre-mesures connexes. Deux choses sont en jeu pour les entreprises :
D'une part, réagir le plus rapidement possible en cas de fraude et, d'autre part, bloquer définitivement
la transaction frauduleuse avant qu'elle ne devienne effective.
Automatisation des contre-mesures
L'automatisation des contre-mesures permet une réponse immédiate en cas de suspicion de fraude,
mais comporte le risque d'inconvénients pour le client en cas d'erreur. Les solutions actuelles, y
compris celles basées sur des règles " simples " ou des algorithmes d'apprentissage machine, peuvent
générer un nombre important de faux positifs et donc d'erreurs. Le degré de confiance dans les
appareils de détection est donc le premier critère d'automatisation.
Certaines solutions de détection offrent des fonctionnalités de gestion des alarmes, mais celles-ci sont
souvent limitées et l'ajout d'un module supplémentaire est souvent nécessaire. Il peut être matérialisé
par :
un outil interne, notamment par le biais de solutions de gestion des messages et de communication.

21
Conclusion

Dans ce chapitre, nous avons présenté les transactions bancaires ,les attaques et les méthodes de
détection classique, qu’ils sont pas les plus fiable.
Nous présentons dans les chapitres suivants notre solution le plus fiable pour la sécurisation des
transactions à partie des Logs.

22
Chapitre 3
Analyse et spécification des
besoins

23
Introduction
Dans ce chapitre nous analysons et nous spécifions les besoins de notre application.
Dans une première partie, nous définissons les cas d’utilisation, les besoins fonctionnels
et non- fonctionnels du projet. Après, nous dressons les diagrammes des séquences systèmes
relatifs au cas d’utilisation.

I. Analyse des besoins

Nous pouvons distinguer deux types de besoins : les besoins fonctionnels et les besoins non-
fonctionnels.
Les besoins fonctionnels décrivent les différentes fonctions destinées aux utilisateurs de
l’appli- cation. Cependant, les besoins non-fonctionnels correspondent à l’ensemble des
conditions que devrait remplir l’outil dans son fonctionnement interne (conditions de
performance)

II. Besoins fonctionnels


Les besoins fonctionnels expriment l’action que doit effectuer le système en réponse à une
demande. Les besoins fonctionnels de notre application sont :
Enrichir et normaliser les logs transactions en temps réel, le système doit ajouter des
informations supplémentaires (telles que la géolocalisation, les numéros de transaction, les
données d’application, etc.) aux logs afin d’améliorer l’analyse et les tableaux de bord.
Visualiser des logs sous forme de tableaux de bords dynamiques avec la possibilité de filtrer
les données par champs. Ces tableaux de bord :
Collecter et stocker les flux : Le système collecte les informations des transactions
malicieuses depuis les serveurs de transaction (fichier logs), afin d’être utilisés par ailleurs
dans la détection des intrusions et l’alerte de l’utilisateur.
Alerter l’utilisateur en cas de détection transactions malicieuse
Prédire des attaques en utilisant le Deep Learning.
La sécurité : l’application doit assurer la sécurité des informations. La notion de sécurité est
nécessaire dans notre système dans la mesure où seul le responsable de sécurité a le droit
de Consulter les tableaux de bord.

24
III. Besoins non-fonctionnels
Les besoins non fonctionnels ne se rapportent pas au fonctionnement de l’application, mais
ils traitent les conditions d’utilisation que doit remplir notre projet. Dans notre cas, les
besoins non fonctionnels sont les suivants :
L’ergonomie : l’utilisateur doit trouver des tableaux de bord élégants et simples à
manipuler.
L’intégrité : s’assurer que les données sont conservées en ce qui concerne leurs significations,
exhaustivité, cohérence, utilisation prévue et corrélation avec leur représentation.
Disponibilité : s’assurer que les données et le système sont accessibles et utilisables par
des personnes et / ou des processus autorisés.
• La performance en termes de rapidité, sécurité et fiabilité.

1. Définition des cas d’utilisation :

En génie logiciel et en ingénierie des systèmes, un cas d’utilisation définit une manière
d’utiliser le système et permet d’en décrire les exigences fonctionnelles. Il permet de décrire
une séquence d’événements qui définissent un système faisant quelque chose d’utile.
Chaque cas d’utilisation contient un ou plusieurs scénarios qui définissent comment le
système devraient interagir avec les utilisateurs pour atteindre un but ou une fonction
spécifique d’un travail.
Un acteur est l’idéalisation d’un rôle joué par une personne externe, un processus ou une chose qui
interagit avec un système. Dans notre cas nous avons identifié un seul acteur principal. C’est le
responsable de sécurité qui gère la solution en appliquant toutes les opérations existantes. Afin
d’obtenir une modélisation de très haut niveau, indépendante des langages et des environnements,
"Unified Modeling Language" (UML) nous donne la main pour modéliser et concevoir le système
souhaité avec le diagramme de cas d’utilisation. Chacun des scénarios des cas d’utilisation étant décrit
par un ou plusieurs diagrammes dynamiques : diagrammes d’activités, de séquence, diagrammes de
communication ou d’états-transitions. llustre le diagramme de cas d’utilisation global associé au
responsable de sécurité

25
Figure 1.3 Diagramme de cas d’utilisation associé au responsable des sécurités

Nous donnons plus de détails sur cette figure dans la section

2. Description textuelle des cas d’utilisation

Dans ce qui suit, on trouve la description textuelle des cas d’utilisation montrer déjà
dans la figure 1.3.Les tableaux illustrent respectivement les cas d’utilisation.

Titre Consulter les tableaux de bord dynamiques


But Consultation des tableaux de bord
Acteurs Responsable de sécurité
Préconditions • Le responsable est authentifié• Les logs Transactions sont en cours
d’êtregénérés.
• Le serveur de base de données reçoit les logs.
• Les logs sont normalisés et enrichis.
Scénario minimal • Consulter les visualisations
• • Passer d’un tableau de bord à un
Autre
• Filtrer les résultats pour n’afficher que les documents contenant une
valeur particulière dans un champ.
Scénario • Les logs des transactions ne sont pas généré
d’erreur • • Le serveur de base de données n’est pas
Joinable
Post-conditions Tableaux de bords générés

Tableau 3 : Recevoir une alerte en cas de détection d’intrusion

26
Conclusion
Dans ce chapitre, nous avons élaboré une étude détaillée de l’analyse et la
spécification des besoins. Nous avons identifié, en premier lieu, les besoins
fonctionnels et non fonctionnels du projet. Ensuite, nous illustrons les acteurs et les
cas d’utilisations.
Dans le chapitre suivant, nous avons pensé à la conception de notre système.

27
Chapitre 4 :
Conception de la solution

28
Introduction
Après avoir analysé les différents besoins de notre solution, nous élaborons dans
ce chapitre notre démarche conceptuelle. Dans la première partie nous présentons la
conception générale de la solution. Ensuite nous élaborons la conception détaillée
du projet.

I. Conception générale de la solution

Dans le but de répondre aux besoins fixés précédemment, nous avons conçu notre
solution en la décomposant en modules comme indiqué dans la figure ci-dessous.

Figure 1.4 – Architecture Solution du système d'analyse de données

Cette figure montre la solution complète que nous proposons aux problèmes déjà
critiquer. Cette solution est proposée pour l’analyse des données frauduleuses à
base des solutions de Big data open source ELG (Elasticsearch, Logstash,
Grafana) pour faire l’analyse du fraudes, les données de transactions bancaires,
détection des attaques, , et nous faisons la détection et la prédiction des attaques avec
la nouvelle technologie Deep Learning. Ce projet est important et grand, tout un
équipe se charge de travailler ce dernier, nous occupons de la partie analyse de

29
données a cour de les transactions. Nous présentons dans la précédente section la
méthodologie de travail

Le système comporte 3 couches principales qui seront détaillées dans cette section :

A. Input

Aussi appelé couche de collecte et de stockage de données. Big Data joue ici un rôle primordial dans
la collecte de données car il offre la possibilité de disposer d’une grande quantité de stockage de
données, de faire varier les sources et les formats et de déployer des outils de recherche et d’indexation
rapides : données hétérogènes issues de sources multiples scan2, journaux Web, etc.) Sont regroupés
et stockés dans des moteurs de recherche et des bases de données. Les moteurs de recherche sont utilisés
pour des réponses en temps quasi réel lorsque des questions leur sont posées et des bases de données
essentiellement utilisées pour conserver une sauvegarde des données collectées.

B. Couche d'analyse (Analysis)


Dans cette couche, les données collectées sont traitées dans le but d’effectuer une extraction de
caractéristiques, des prédictions, etc. L'analyse est effectuée selon :

Machine/Deep Learning base analyses : certaines anomalies n'ont pas de signature mais un
comportement hors du commun. Le système doit donc être en mesure de faire la distinction entre
comportement normal et comportement anormal. Cela sera mis en œuvre via Machine Learning et
Deep Learning.

C. Output
La couche output contient une base de données contenant des informations frauduleuses via des
(alertes).
Cette couche doit inclure un tableau de bord en temps réel affichant des graphiques décrivant les
résultats d'analyse, les rapports analytiques et les alertes : statistiques, indicateurs de mesure,
métriques.

30
1. Architecture général de la solution

Figure 2.4 Architecture général du système

Nous détaillons cette architecture ci-dessous.


a. Source de données : cette partie dépend totalement du producteur. Cisco (ce qui n’est pas notre
cas)
La génération du données se fait directement, il suffit juste de l’activer dans la configuration
b. L’analyseur de logs de donnés : Faire des fonctionnalités différentes telles que la recherche
spécifique d’une information, générer des tableaux de bord pour la visualisation des statistiques et
filtrer les informa- tirons pour avoir les résultats souhaités.

c. Module de l’apprentissage en profondeur : On utilise ce module pour la détection et la


prédiction des fraudes. Dans ce qui suit, nous allons étudier la conception détaillée du système.
Nous entrons dans les détails de notre solution dans les sections suivantes.

II. Conception détaillé de la solution

Après avoir conçu notre système d’une façon générale, on va maintenant entrer dans
les détails de la solution proposée. En premier lieu, nous allons définir une architecture
détaillée ,Ensuite, nous allons fixer le format des données traitées et des changements
qu’on pourrait faire pour les améliorer, concevoir les tableaux tout en dessinant des
prototypes détaillés et finir par le module de l’apprentissage en profondeur où on va
définir le format des données d’entraînement.

31
E

Figure 3.4 Architecture détaillée du système

 Normalisation
Dans cette étape, lorsque le logstash reçoit les journaux, il utilise des bibliothèques
pour analyser le message. La première partie de l’analyse consiste à reconnaître le type
de message avec des mots-clés uniques. Une fois qu’un type de message est reconnu,
il est normalisé et les données pertinentes sont renseignées dans un schéma
d’événement. Les types de normalisation ne changent pas ils sont entièrement basés
sur la mise à jour du contenu cycle. Par conséquent, cette liste est sujette à changement.

 Enrichissement
Informations de géolocalisation : la géolocalisation est la mise en correspondance
d’une adresse avec l’emplacement géographique d’Internet à partir de l’appareil
connecté. En mappant géographiquement l’adresse IP, notre système ajoutera des
informations sur l’emplacement, telles que le pays, l’état, la ville, le code postal, la
latitude / longitude, le FAI (fournisseur d’accès internet), l’indicatif régional et d’autres
informations. Il existe un certain nombre de bases de données de géolocalisation
disponibles dans le commerce, et leur prix et leur précision peuvent varier. Ip2location,
MaxMind, Tamo Soft, DB-IP, Ipinfo et IPligence offrent des bases de données qui

32
peuvent être facilement intégrées dans un système.

 Le Collecteur de logs
Il traite et stocke les flux collectés à partir des générateurs pour les utiliser par un
analyseur de détections de fraudes.

Figure 4.4: Structure du collecteur[4]

Cette figure présente l’architecture de notre collecteur. En effet, le collecteur est un


ensemble de plugins qui ont différentes fonctionnalités. Le plugin d’entrée consomme
les données à partir des sources, les plugins de filtrage servent à modifier les données
en utilisant les techniques de normalisation et d’enrichissement et le plugin de sortie
envoie les données filtré aux destinations correspondantes.

33
2. Conception des tableaux de bord

Figure5.4 Diagramme de cas d'utilisation global[5]

Title "Authenticate"

Actors Agent/Administrator

Purpose Authentication

Pre-conditions • Disposal of login and password

• Dashboard Interface is reachable

Minimal scenario • Enter login

• Enter password

Error scenario • Login not valid

• Password not valid

Post-conditions Authentication successful

Tableau 4 : Description détaillée du cas d'utilisation "Authentifier"

34
Title "Access Dashboard"

Actors Agent/Administrator

Purpose Consulting dashboards

Pre-conditions • The actors are authenticated

• trasactions logs are being generated.

• Search engine receives and index the logs.

• Logs are parsed and enriched.

Minimal scenario • View graphs

• Switch between dashboards

• Filter output of dashboards

Error scenario • Transactions logs is not generated

• Search engine is not reachable

Post-conditions Dashboards are generated

Tableau 5 : Description détaillée du cas d'utilisation "Tableau de bord d'accès »

35
Title "Configure Dashboard"

Actor Administrator

Purpose Configuring content of dashboards

Pre-conditions • The Administrator is authenticated

• Dashboard is reacha

Minimal scenario • Add graph

• Add alert

• Add dashboard

Error scenario • Dashboard is unreachable

• Graph to add already exist

• Alert to add already exist

• Dashboard to add already exist

Post-conditions Dashboard successfully configured

Tableau 6 : Description détallédu cas d'utilisation "Configure Dashboard"

3. Diagramme de cas d'utilisation "Configurer le tableau de bord"

Le cas d'utilisation "Configure Dashboard" peut être étendu à 3 cas d'utilisation décrits dans la
fig.4.6

36
Figure 6.4 : Configurer la plate-forme "diagramme de cas d'utilisation détaillé[6]

Title "Add Graph"

Actor Administrator

Purpose Adding new graph

Pre-conditions • The Administrator is authenticated

• Dashboard is reachable

Minimal scenario • Set graph name

• Set graph type

• Set axis (X-Axis and Y-Axis)

Error scenario • Dashboard is unreachable

• Search Engine is unreachable

• Graph to add already exist

Post-conditions Graph successfully added and configured

37
Title "Add Dashboard"

Actor Administrator

Purpose Adding new dashboard

Pre-conditions • The Administrator is authenticated

• Dashboard is reachable

Minimal scenario • Set dashboard name

• Add graphs

• Add alerts

• Set authorized Agents

Error scenario • Dashboard is unreachable

• Graph to add already exist

• Alert to add already exist

• Dashboard to add already exist

Post-conditions Dashboard successfully added and configured

Tableau 7 : Description détaillée du cas d'utilisation "Ajouter un tableau de


bord"
4. Diagrammes de séquence

Cette section décrit certains cas d'utilisation à l'aide du diagramme de séquence.

38
Figure7.4 : Diagramme « authentification »

5. Diagrammes de séquence "Configurer le tableau de bord"

Vous trouverez ci-dessous les diagrammes de séquence des 3 cas d'utilisation du cas d'utilisation
"Configurer le tableau de bord".

39
Figure 8.4 : Diagramme de séquence "Ajouter un graphique"

Comme le montre la fig8, L'administrateur peut créer un graphique en spécifiant son nom, son
type et son axe.

40
Figure 9.4 : Diagramme de séquence "Ajouter une alerte"

La Fig9 illustre les étapes à suivre par l'administrateur pour créer et configurer une alerte.

41
Figure 10.4 : Diagramme de séquence "Ajouter un tableau de bord 4’’

Deep Learning

Dans ce module, nous allons utiliser un algorithme de Deep Learning afin de détecter les
transactions fraudeuses. L’architecture générale du module se compose de quatre phases
: paramétrage, entraînement, construction du modèle et la détection Tout d’abord, nous
avons passé par l’étape de paramétrage qui consiste à sélectionner les champs nécessaires
pour l’entraînement et la construction du modèle.

Conclusion
Dans ce chapitre, nous avons présenté la conception générale de notre projet
ainsi que la conception détaille du système en expliquant les différentes parties qui
le composent. Dans le chapitre suivant, nous allons présenter les étapes de
réalisation et les scénarios de tests.
.

42
Chapitre5 :
Réalisation environnement de
surveillance

43
Introduction
Une fois la conception est achevée, nous prenons le soin, dans ce chapitre de présenter
la mise en œuvre de notre application. Dans la première partie, nous présentons
l’environnement de la surveillance. Pour la deuxième partie, nous allons montrer une
étude expérimentale de la technique de l’apprentissage en profondeur adoptée. Dans la
troisième partie, nous présentons le processus suivi pour construire le modèle de détection
et de prédiction des attaques. Dans la dernière partie nous montrons quelques scénarios
de tests.

I. Etude de l’environnement de surveillance

L’environnement de surveillance est un système qui collecte, stocke et analyse les


logs en temps réel afin de fournir des tableaux de bord utile pour la surveillance du trafic
réseau, tout en alertant le responsable de sécurité en cas de détection d’intrusions. Dans ce
qui suit, nous allons établir les étapes de mise en place de l’environnement de surveillance,
allant de la comparaison d’outil pour chaque objectif, jusqu’à la configuration.

1. Etude comparative sur les plateformes d’analyse avancée

L’un des premiers défis que nous avons eu à relever au cours de ce projet a été de
déterminer quelles plateformes d’analyse avancée à utiliser pour notre environnement de
surveillance. Nos superviseurs chez Keystone nous ont recommandé d’examiner ces deux
technologies : Elasticsearch et Hadoop. C’est pour cela une étude comparative a été
nécessaire. Commençons en premier lieu d’introduire ces deux technologies.

 Elasticsearch

Elasticsearch est un moteur de recherche et d’analyse distribué open-source,


RESTful, distribué sur Apache Lucene. Depuis la sortie de la première version
d’Elasticsearch en 2010, il est rapidement devenu le moteur de recherche le plus
populaire. Il est couramment utilisé pour l’analyse des journaux, la recherche en
texte intégral et les cas d’utilisation de l’intelligence opérationnelle. Associé à

44
Kibana, Grafana un outil de visualisation, Elasticsearch peut être utilisé pour fournir
des analyses en temps quasi réel en utilisant de gros volumes de données de journal.
Elasticsearch est également populaire grâce à ses API de recherche faciles à utiliser
qui vous permettent d’ajouter facilement de puissantes fonctions de recherche à vos
applications.

 Hadoop

Hadoop est un Framework de traitement distribué open source qui gèrent le traitement
et le stockage des données pour les grandes applications de données s’exécutant dans des
systèmes en clusters. Il est au centre d’un écosystème croissant de grandes technologies de
données qui sont principalement utilisées pour soutenir les initiatives d’analyse avancée, y
compris l’analyse prédictive, l’exploration de données et les applications d’apprentissage
automatique. Hadoop peut traiter diverses formes de données structurées et non
structurées, ce qui donne aux utilisateurs plus de flexibilité pour la collecte, le traitement
et l’analyse des données que les bases de données relationnelles et les entrepôts de
données.
Dans ce qui suit nous faisons un étude comparative entre ces deux plateformes ainsi
que le choix de notre environnement d’analyse .

2.Étude comparative et choix de l’environnement d’analyse

Hadoop Elastic search


Principe de Basée sur Map Reduce Basé sur JSON et donc sur
fonctionnement un langage spécifique au do-
maine
Complexité Map Reduce est relativement La manipulation de Le DSL
Complexes basé sur JSON est assez
facile à comprendre et à
mettre en œuvre

45
Performance en Pas de problème pour Hadoop Elasticsearch possède une
termes de certaine limite de tampon.
chargement Mais cela pourrait être
(upload) prolongé après analyse de
l’échec
Schema Hadoop est basé sur la Elasticsearch recommande
technologie No SQL, d’où sa que les données soient dans
facilité à charger des données dans le format générique clé-
n’importe quel format clé-valeur valeur avant de les charger
Mise en place 1. la mise en place de Hadoop 1. Contrairement aux résul-
dans un environnement de pro- tats de nos recherches, nous
duction est facile et extensible avons découvert que la mise
2. La mise en place de clusters Ha- en place d’Elasticsearch et
doop est plus flexible qu’Elastic- ses composants était très
search simple et fluide par rapport
à Hadoop
2. Par contre, Elastic-
search pourrait en fait être
beaucoup plus complexe à
mettre en plus quand on a
plus qu’un shard
Recherche Hadoop avec HBase ne dispose L’analyse est plus avancée
pas de capacités de recherche ana- et les requêtes de recherche
lytique aussi avancées qu’Elastic- sont plus développées dans
search Elasticsearch
L’usage le plus Pour le Batch Processing Requêtes et résultats
Frequent en
temps réel
Langages Hadoop n’a pas une variété de Elasticsearch
d langages de programmation le support
e supportant e
programmation beaucoup de langages de
supportés programmation comme

46
Python, Ruby, Lua, Go etc.
qui n’existe pas pour
Hadoop

Fiabilité Hadoop est fiable de l’environne- Elasticsearch est fiable dans


ment de test jusqu’à l’environne- un environnement de petite
ment de production et moyenne taille. Cela ne
convient pas dans un en-
vironnement de production,
où il existe de nombreux
Data Centers et clusters

Tableau 8 : comparaison entre Haddop et elasticsearch

Dans ce tableau nous faisons une étude comparative entre Hadoop et Elasticsearch
Après avoir étudié les différences entre ces des deux technologies sous plusieurs critères.
Nous avons décidé de choisir Elasticsearch. Et cela pour de nombreuses raisons qui font
Elasticsearch réponde parfaitement aux besoins de notre projet. On cite :
Le langage de requête JSON d’Elasticsearch est beaucoup plus facile à maîtriser que
des systèmes plus complexes comme MapReduce de Hadoop.
Elasticsearch fait partie de l’ELG Stack avec Logstash pour le suivi des logs et Graphana
pour la visualisation. Ensemble, ces différents produits open source représente une solution
incontour- nable pour l’analyse de logs. Logstash nous fournit aussi un une bonne
indexation des journaux et l’on peut les mettre à jour ou à corriger s’il y a des erreurs.
Ce qui nous fait gagner le temps
.Elasticsearch est plus adapté à l’analyse et recherche en temps réel.

Après le choix d’Elasticsearch nous illustrons l’architecture d’ELG Stack ci-dessous.


2. Architecture d’ELG Stack

Dans cette partie, nous allons expliquer les différents composants de l’ELG montré
dans la figure 5.1.

En fait, ELG est l’acronyme de trois projets open source qui sont Elasticsearch,
Logstash et Kibana.

47
Elasticsearch est un moteur de recherche et d’analyse de données en temps réel.
Logstash est3. un pipeline de traitement de données côté serveur qui absorbe des
données prove- nant de plusieurs sources simultanément, les transforme, puis les envoie
à une base de données comme Elasticsearch.
Enfin, Grafana permet aux utilisateurs de visualiser des données.

Figure 2.5 – Architecture d’ELG Stack

our bien comprendre cette architecture, nous illustrons l’utilité de ces trois outils open
sources :
Logstash

Figure 3.5 – Le pipeline Logstash

48
La figure 3..5 montre que Logstash est un pipeline de traitement de données open source,
côté serveur, qui collecte des données provenant d’une variété de sources et les transformer,
pour être plus précis, il peut unifier, nettoyer et normaliser les données collectées puis les
envoie à la destination souhaitée.

Elasticsearch
Elasticsearch est un moteur de recherche et d’analyse de données open source. Il permet
de stocker, de rechercher et d’analyser de gros volumes de données rapidement et en temps
réel. Elasticsearch est également populaire grâce à ses API, qui permettent d’ajouter des
fonctions puissantes à l’application.

Grafana
Grafana est un outil de visualisation open source pouvant être utilisé avec une variété de sources
de données, mais il est généralement utilisé avec Graphite, InfluxDB et Elasticsearch.
Il aide les utilisateurs à créer et à modifier facilement des tableaux de bord. Il contient un
analyseur cible Graphite unique qui permet de modifier facilement les métriques et les fonctions.
Les utilisateurs peuvent créer des graphiques complets avec des formats d’axes intelligents (tels
que des lignes et des points) grâce au rendu rapide et côté client de Grafana même sur de longues
plages de temps.

Logs vs metrics : Grafana est conçu pour l’analyse et la visualisation des métriques telles
que l’utilisation du processeur système, de la mémoire, du disque et des E / S.
Installation et configuration : Facile à installer et à configurer. Grafana est configuré en
utilisant un fichier. (plus facile à manipuler par rapport aux fichiers de configuration
YAML sensibles à la syntaxe de Kibana).
Data sources et intégrations : Fonctionne avec plusieurs time séries data stores tels que
Prometheus, Influx DB, MySQL, Postgre SQL et Elasticsearch, et des sources de
données supplémentaires utilisant des plugins.
Contrôle d’accès et authentification : Livré avec des mécanismes intégrés de contrôle et
d’authentification qui vous permettent de restreindre et de contrôler l’accès à vos
Dashboard. La possibilité de retirer les données d’authentification à partir d’un serveur
SQL ou LDAP externe. Assigner des rôles spécifiques à chaque utilisateur.

49
Querying : Pour chaque source de données, Grafana dispose d’un éditeur de requête
spécifique adapté au logique interne de chaque data store.
Dashboard et visualisations : Dispose d’un plus large éventail d’options de
personnalisation et facilite également la modification des différents paramètres.
Alertes : Livré avec un moteur d’alerte intégré. Permet aux utilisateurs d’attacher des
règles conditionnelles aux panneaux de tableau de bord qui déclenchent des alertes à
un point de notification de votre choix.

3.Étude comparative entre les outils de visualisation Kibana et Grafana

Kibana et Grafana sont deux outils open source qui peuvent visualiser et comprendre les
tendances dans de grandes quantités de données de logs. Dans le tableau 9, nous allons
montrer les principales différences entre eux

Kibana Grafana
Information sur Kibana est une plate-forme Grafana est un outil de tableau de
le produit d’analyse et de visualisation qui bord open source qui fonctionne
permet d’explorer, de visualiser généralement avec graphite,
et de créer des tableaux de bord à Influx DB et OpenTSDB
partir des logs stockés dans les
clusters Elasticsearch
Log et statistiques Kibana fonctionne au dessus Grafana se concentre sur la
d’Elasticsearch et peut créer un présentation de graphiques de
tableau de bord analytique séries chronologiques (time-
complet séries) basés sur des métriques
spécifiques telles que
l’utilisation du processeur
Accès basé sur Par défaut, le tableau de bord de Le contrôle d’accès basé sur
les rôles Kibana est public.Il n’y a aucun le rôle intégré de Grafana permet
contrôle d’accès basé sur le rôle de gérer l’accès des utilisateurs
intégré et des équipes aux tableaux de

50
bord

Flexibilité du ta- Kibana a un grand nombre de Grafana contient plusieurs


bleau de bord types de graphiques intégrés avec autres options pour une na-
une navigation flexible vigation flexible et l’utilisa- tion
des cartes
Intégration des L’intégration native de Kibana Grafana prend en charge
sources de don- nées dans ELK Stack rend la confi- de nombreux backends de
guration relativement simple et stockages différents. Pour
conviviale chaque source de données,
Grafana dispose d’un édi- teur de
requête spécifique personnalisé
pour les fonc- tions et les
fonctionnalités incluses dans cette
source de données

Tableau 9 : Etude comparative entre Kibana et Grafana

Nous remarquons que Grafana est très flexible il est un outil supervision simple et
élégant, permettant de s’intégrer à une TSDB, ici Influx DB. Grafana expose dans
des Dashboard les métriques brutes ou agrégées provenant d’Influx DB et permet
de définir de manière honteusement simple des seuils d’alertes et
les actions associées on doit choisir Grafana plutôt que Kibana.
Nous choisissons déjà Elasticsearch et Grafana donc il faut assure la sécurité de
notre environnement ce que nous donnons dans la partie suivante.

51
II. Réalisation de l’environnement de surveillance

1. Configuration de Logstash

Figure 4.5 – Architecture du fichier de configuration du Logstash

Dans cette figure nous présentons un résumé de configuration complète de


logstash. Afin d’utiliser Elasticsearch pour traiter les données de Transactions, ces
données doivent être tout d’abord importées. Dans la partie suivante, on va montrer
les étapes pour collecter et stocker les logs de Transactions.

2. Collecte de logs

La source des logs est d’un organisme sensible que nous ne pouvons pas le
nommer.

52
Figure 4.5 – Plugin d’entrée pour logstash

Nous définissons le Plugin d’entrée pour logstash donc il faut après structurer,
normaliser et enrichir le log.

A. Structuration, Normalisation et enrichissement des logs

Structurer, normaliser et enrichir l’information contenue dans un événement


permet d’extraire l’essentiel, de lui donner un sens, des informations
complémentaires, au sein d’une base homogène.
Dans certains cas, l’événement peut déjà être structuré .

Logstash permet de capter différents types d’événements à travers ses interfaces


d’entrée. Dans notre exemple, nous utilisons l’entrée file. Puis nous utilisons la partie
filtre afin de structurer, normaliser et enrichir
. nous utilisons majoritairement csv, translate, date, syslog-pri ainsi que des filtres
personnels.
nous avons enrichi la base d’expression régulière csv de différents « patterns »
comme avec l’exemple dans la figure ci-dessous.

53
Figure 5.5 – plugin de filtre de logstash

L’étape suivante est la configuration de l’output logstash

3. Configuration de l’output

Après Avoir appliqué les techniques de normalisation et d’enrichissement sur


les logs de transaction, on doit maintenant les indexer ou bien les stocker dans une
base de données. La dernière étape de Logstash et donc d’envoyer les logs de
transactions à Elasticsearch.

54
Cette figure montre le résultat de traitement des données à partir du logstash.

Figure 6.5 out put logstash :traitement de données

B. Elasticsearch Cluster

Un cluster est un ensemble d’un ou plusieurs nœuds (serveurs) qui, ensemble,


contiennent l’intégralité de vos données et fournissent des fonctionnalités
d’indexation et de recherche fédérées sur tous les nœuds. Un cluster est identifié
par un nom unique qui est par défaut "elasticsearch". Ce nom est important car un
nœud ne peut faire partie d’un cluster que si le nœud est configuré pour rejoindre
le cluster par son nom. C’est pourquoi, il ne faut pas réutiliser les mêmes noms de
clusters.

L'indexation des données sera effectuée dans un cluster Elaticsearch. Dans ce


cluster, nous allons définir 2 nœuds à des fins de test. Le premier conteneur est le

55
noeud principal et le second est le code de données.

C. Node :

Un nœud est un serveur unique qui fait partie de votre cluster, stocke vos données
et participe aux fonctions d’indexation et de recherche du cluster. Tout comme un
cluster, un nœud est identifié par un nom qui, par défaut, est un Universal Unique
Identifier (UUID) attribué au nœud au démarrage. Vous pouvez définir n’importe
quel nom de nœud que vous souhaitez si vous ne souhaitez pas utiliser le nom par
défaut. Ce nom est important pour l’administration lorsque vous souhaitez
identifier les serveurs de votre réseau correspondant aux nœuds de votre cluster
Elasticsearch
Ce fichier de configuration d'un nœud est un fichier YAML situé dans "/ etc. /
elasticsearch" montre la configuration que nous avons utilisée pour les deux
nœuds.

Figure 7.5 : cluster Elesticsearch

Figure 8.5 : serveur nœud

III. Visualisation de données


Pour qu’un réseau soit stable, le trafic devrait suivre certains modèles réguliers.
Grâce à la surveillance des statistiques de trafic, les comportements anormaux
peuvent être facilement détectés. Ce sous-chapitre étudie comment ELG peut être

56
utilisé pour surveiller le trafic et résoudre les problèmes de transactions anormaux.
Une fois que Logstash commence à traiter les événements, nous pouvons
immédiatement commencer à utiliser les tableaux de bord Grafana pour explorer et
visualiser les données de flux de notre réseau. En fait, la surveillance du trafic réseau
nécessite donc de regarder les différentes statistiques dans divers tableaux de bord.
Dans la partie suivante, nous illustrons les différents tableaux de bord qu’on a
développés

Figure 9.5 – Premier tableau de bord

4. Alerte sur les intrusions

ELG Stack est indispensable pour la recherche est l’analyse des données. Mais
l’une des fonctionnalités qu’Elastique Stack ne possède pas nativement, est un
système d’alerte . Est ceci est très important puisqu’on a un système qui traite de
gros volumes de données. En fait, on a besoin d’un système d’alerte afin que le
responsable de sécurité sache quand le système détecte une intrusion ou bien un
comportement anormal dans le trafic. Dans ce qui suit nous allons comparer deux
systèmes d’alerte afin de choisir l’un d’eux pour l’implémenter dans notre projet : Le
premier système d’alerte est un Framework open source développé par YELP qui

57
s’appelle ElastAlert. Il s’agit d’un Framework qui possède un ensemble des règles
pour alerter sur les intrusions, les piques et d’autres comportements anormaux dans
le trafic. En plus, ElastAlert fonctionne bien si on a des données stockées dans
Elasticsearch et qu’on veut être averti lorsque ces donnes correspondent à certains
modèles Le deuxième système d’alerte est Watcher qui est développé par Elastic.
Cet outil peut envoyer des alertes si le comportement dans le trafic correspond à
l’une de ces règles :
• Le même utilisateur s’est connecté à partir de trois emplacements différents en une
• heure. Les numéros de carte de crédit sont visibles dans les fichiers logs de
l’application.
• Le produit est en tendance sur les réseaux sociaux.
• Mal fonctionnement dans le système Les deux systèmes d’alerte sont très
performants et peuvent traiter la plupart des scénarios d’alerte.
Evidemment, Watcher est payé tandis qu’ElastAlert est gratuit, et comme on n’a
pas une licence payée pour Elasticsearch, on doit travailler avec ElastAlert. En plus,
ElastAlert s’intègre correctement avec ELK Stack, aussi, il peut même faire mieux
que Watcher pour beaucoup de scénarios puisqu’on peut développer des règles
personnalisées selon notre besoin. On a utilisé ElastAlert pour alerter sur les
intrusions. En fait, lorsque le comportement de DNS correspond à certaines règles,
ElastAlert envoi des notifications sur mail pour informer le responsable de sécurité.
Cette notification contienne beaucoup d’informations qui expliquent les causes de
l’alerte survenue.
Nous présentons dans la sous-section suivante les tests et les résultats de notre travaille.

5. Tests et Résultats

Dans cette partie, nous allons montrer la démarche que nous avons suivi pour
tester notre système. Ensuite, on doit exécuter le moteur de recherche Elasticsearch
pour pouvoir exécuter Logstash et Grafana. Comme nous illustrons respectivement
dans les figure ci-dessous.

58
Figure 10.5– Exécution de Elasticsearch

Figure 11.5 – Exécution de Grafana

59
IV. Création et configuration des graphes
Cette annexe décrira les étapes pour créer et configurer un
graphique sur Grafana

Figure 12.5 – Interface d’authentification de Grafana

Pour accéder au page web Grafana, au niveau du navigateur, on tape l’adresse


ip de la machine suivie du numéro du port de Grafana qui est le port 3000. Dans
cette page, il faut saisir le login est le mot de passe par défaut (fig. 12.5).

60
Figure.13.5 : Interface de changement de mot de passe

Après cette phase, pour des mesures de sécurité, Grafana nous oblige à
changer le mot de passe (fig.13.5).

Figure 14.5 : Interface d’accueil

Finalement, on se trouve dans la page d’accueil (fig.14.5).

61
Ajouter une source de données

Figure 14.5 : Première partie de l’interface d’ajout d’une source de données

Figure 15.5 : Deuxième partie de l’interface d’ajout d’une source de données

62
Pour ajouter une source de données (Data source), on fait un clic sur « Add data
source » ou bien on fiat un clic sur l’engrenage à gauche. Dans cette page, on configure
notre source de données qui se fait sur 7 étapes : (fig. D14) et (fig. D.15)

1. On fournit le nom de la source de données.

2. On spécifie le type de la source de données. Dans notre cas, Elasticsearch est


notre source.

3. On fournit l’URL de la source qui doit être sous la forme suivante : http
://adresse IP :port.

4. On spécifie le type d’accès à la source de données. Il est de type "server" par


défaut qui le type recommandé.

5. On spécifie la méthode d’authentification lors de l’accès à la source de


données (Cette étape est optionnelle).

6. Par défaut, Grafana ne transfère pas les cookies à la source de données. Dans
cette étape, on spécifie la liste des cookies à autoriser pour les transférer à la
source de données.

7. Dans cette étape (Elasticsearch détails), on fournit des informations relatives


à l’extraction des données à partir d’Elasticsearch qui sont :
— L’index dans lequel les données sont stockées
— L’attribut dans lequel on trouve une information sur la date
et l’heure — La version d’Elasticsearch déployé.
— Le min time intervalle qui représente l’espacement en temps entre deux
valeurs successives stockées dans Elaticsearch

63
Créer un Dashboard

Figure 16.5 : Ajouter un Dashboard

Pour ajouter un Dashboard, à gauche, on fait un clic sur le bouton « + », puis


une clique sur Dashboard (fig. 16.5).
On se trouve dans cette page (fig17.5). Dans laquelle on va ajouter des panels.
Ces panels nous permettent des visualiser les données stockées dans la source de
données configurée.

64
Ajouter un panel

Figure 17.5 : Ajouter un panel

Pour ce faire, on fait un clic sur « add panel ». Puis, on choisit le panel adéquat (fig.17.5)

Figure 18.5 : Accéder à l’interface de modification d’un panel

65
Dans ce cas, on a choisi le panel « Table ». Pour le configurer, on fait un clic
sur « Panel Tite » suivit de « Edit » (fig18.5).

Figure 19.5 : Configurer la source et la façon d’extraction de données

Tout d’abord, dans l’onglet "Metrics", on doit spécifier la source de données à


utiliser (fig19.5).

Figure 20.5 : Configurer le style d’affichage de données et les colonnes à afficher

66
Ensuite, dans l’onglet "Options", on choisit « JSON Data » dans la propriété «
Table Transform » et ceci afin de personnaliser les colonnes à afficher dans le
tableau (fig20.5).

Figure 21.5 : Configurer le style d’affichage de données et les colonnes à afficher

Finalement, on fait le choix des colonnes à visualiser (fig.21.5).

67
Ajouter une variable

Figure 22.5 : Accéder à l’interface de paramètres d’un Dashboard

Les variables servent à filtrer les mesures à afficher sur le Dashboard. Pour
créer une variable, on fait un clic sur « settings » situé à côté du bouton de
sauvegarde (fig22.5).

Figure 23.5 : Ajouter une variable

68
A gauche, on clique sur « variable » suivie d’une clique sur « add variable »
(fig23.5).

Sauvegarder le Dashboard
Pour sauvegarder la Dashboard, on fait un clic sur la disquette à côté du bouton
« Add panel »

Figure 24.5 : Sauvegarde du Dashboard pour la première fois

Si c’est la première fois qu’on sauvegarde une Dashboard, on doit insérer son
nom et le répertoire dans laquelle on va la sauvegarder (fig24.5).

69
Figure 25.5 : Sauvegarde du Dashboard

Sinon, Grafana intègre la fonction de gestion de version. C’est pourquoi, on doit insérer
un tag qui décrit les différentes modifications faites dès la dernière sauvegarde (fig25.5).

70
71
Introduction

Nous allons montrer une brève description du concept d'intelligence artificielle (IA),
d'apprentissage automatique (ML) et d'apprentissage en profondeur (DL). Ensuite, nous
décrirons plus en détail la technologie utilisée afin de mettre en œuvre le modèle de détection
et nous énumérerons les mesures d'évaluation que nous utiliserons pour mesurer la performance
du modèle. Enfin, nous énumérerons toutes les étapes nécessaires à la création du modèle de
détection pour les deux approches définies au chapitre présidente

I. Artificial intelligence (AI), Machine Learning (ML) et


Deep Learning (DL)

Avec le développement d'Internet, les cyberattaques évoluent rapidement et la situation en


matière de cyber sécurité n'est pas optimiste. Chaque semaine, les cyberattaques augmentent
strictement, un tiers du trafic Internet étant constitué de paquets malveillants générés par des
routines logicielles. En conséquence, de grands défis naissent et doivent être traités.
Heureusement, les technologies progressent rapidement. Les solutions AI, ML et DL évoluent
les unes après les autres pour bloquer rapidement ces attaques.

Figure 1.6 :AI, ML et DL

72
Comme le montre la fig1.6, il existe une relation entre AI, ML et DL, à savoir que chacun est
un sous-ensemble. Ci-dessous, ces technologies sont plus détaillées.

II. Intelligence Artificielle (IA)


L'intelligence artificielle est la science qui consiste à rendre les choses intelligentes ou, en
d'autres termes, les tâches humaines exécutées par des machines (par exemple, la
reconnaissance visuelle, le traitement du langage naturel, etc.). Le point principal est que l'IA
n'est pas exactement un apprentissage automatique ou des choses intelligentes. Ce peut être un
programme classique installé dans votre robot nettoyeur, comme la détection de bord. En
gros, l'IA est en quelque sorte une tâche humaine.

Une machine artificielle intelligente peut voir ce qui l’entoure (avec une caméra), écouter les
autres (avec un microphone), toucher des objets (avec des bras robotiques), parler aux autres
(avec un haut-parleur) et faire tout cela intelligemment, comme le ferait l’humain.

III. Machine Learning (ML)

ML est un sous-ensemble de l'IA qui utilise un système capable d'apprendre de l'expérience


(méthodes statistiques pour améliorer l'expérience). Il est destiné non seulement aux objectifs
de l'intelligence artificielle (copie du comportement humain, par exemple), mais peut
également réduire les efforts et / ou le temps consacré aux tâches simples et difficiles telles
que la prévision du prix des actions. En d'autres termes, ML est un système qui peut
reconnaître des modèles en utilisant des exemples plutôt qu'en les programmant. Ainsi, un
Machine Learning (ML) est un système qui apprend en permanence, prend des décisions
basées sur des données plutôt que des algorithmes et modifie son comportement.

IV. Deep Learning(DL)

DL est un ensemble de techniques permettant de mettre en œuvre un apprentissage


automatique qui reconnaît des modèles de modèles tels que la reconnaissance d'images. Les
systèmes identifient principalement les bords de l'objet, une structure, un type d'objet, puis un
objet lui-même.

73
DL s’inspire des fonctionnalités de nos cellules cérébrales appelées neurones qui ont conduit
au concept de réseau de neurones artificiels (RNA).

V. Choix de la technologie à utiliser

Figure 2.6 : technique DL

Les logs que nous allons procéder sont très volumineux (environ 212 Go de taille) et comme le
montre la figure DL est la clé pour détecter le trafic malveillant.
DL est basé sur la façon dont les humains apprennent et traitent l'information. Tout ce que les
humains font, chaque souvenir que les humains ont, chaque action que les humains prennent
est contrôlé par son système nerveux composé de neurones !
Toutes les informations que le cerveau traite et stocke se font par le biais de connexions entre
différents neurones et leur force relative. C’est le concept sur lequel est basé le réseau de neurones
(NN). Et au niveau de base, les NN ne sont qu'un groupe de neurones connectés les uns aux
autres. Cela présente un concept intéressant : la structure d’un NN est indépendante du travail
qu’elle doit accomplir. Les seules choses qui changent sont les paramètres de ces interconnexions
entre différents neurones. Donc, un NN créé pour faire un travail. Il peut aussi faire autre chose,

74
il lui faut tout apprendre du nouvel emploi.
Dans DL, les NN peuvent être formés sur la base de données supervisées et / ou non supervisées
à l'aide de n dimensions et ces dimensions peuvent être réduites à une valeur inférieure en
fonction du problème à résoudre.
1. Apprentissage supervisé en DL

L'apprentissage supervisé est la forme la plus répandue d'apprentissage à distance. Avec


l'apprentissage supervisé, un ensemble d'exemples, l'ensemble de formation, est soumis en tant
qu'entrée au système pendant la phase de formation. Chaque entrée est étiquetée avec une valeur
de sortie souhaitée. Le système sait ainsi quelle est la sortie lorsque l'entrée est arrivée. La
formation est réalisée en minimisant une fonction de coût particulière qui représente la liaison
de l'entrée xi et de la sortie souhaitée yi
En apprentissage supervisé, il existe 3 types de NN que nous pouvons former afin de faire des
prédictions: réseau de neurones artificiels (ANN), réseau de neurones convolutionels (CNN) et
réseau de neurones récurrents (RNN). Tous ces NN sont composés de perceptrons au lieu de
neurones. Vous trouverez ci-dessous une description détaillée de chaque type.
2. Perceptron

Figure 3.6 : Structure de Perceptron

75
Un perceptron est une unité NN (un neurone artificiel) qui effectue certains calculs pour détecter
des caractéristiques ou des informations commerciales dans les données d'entrée. Il se compose
de 5 parties:
1. Valeurs d'entrée : (la taille dépend du nombre d'entités dans le jeu de données)

2. Poids : montre la force de l'entrée particulière

3. Biais (Bias est le poids w0): décaler la courbe de la fonction d'activation vers le haut ou le
bas

4. Fonction Somme

5.Activation: elle est utilisée pour déterminer la sortie du réseau neuronal comme oui ou non.
Il mappe les valeurs résultantes entre 0 et 1 ou -1 pour 1, etc. (en fonction de la fonction).
Certaines des fonctions d'activation les plus utilisées sont la fonction d'activation Sigmoid, la
fonction d'activation Tanh et la fonction d'activation Relu

Le perceptron fonctionne sur 3 étapes:

1. Toutes les entrées sont multipliées par leurs poids w.

2. Ajouter toutes les valeurs multipliées.

3. Appliquez le résultat de l'étape précédente à la fonction d'activation correcte, qui est la


fonction d'activation Sigmoid

3. Réseau de neurones artificiel (ANN)

Figure 4.6 structure ANN

76
La structure ANN est illustrée à la fig. 4.6 Le plus simple des ANN peut être créé à partir de
trois couches de perceptrons. Le calque d'entrée, le calque masqué et le calque de sortie. Les
informations circulent de la couche d'entrée à la couche de sortie, puis de la couche cachée à la
couche de sortie.

Un numéro est associé à chaque connexion, appelé poids de connexion, et une formule spéciale
est associée à chacun des perceptrons, appelée fonction d'activation. Ce sont les paramètres du
NN.

Lorsqu'un NN est formé, il est doté d'un ensemble d'entrées ainsi que des sorties
correspondantes. Il exécute les entrées à travers les perceptrons sur chacune des couches du
réseau et, à l'aide des paramètres ci-dessus, chaque perceptron transforme l'entrée d'une manière
ou d'une autre et la transmet à la couche suivante, etc. Le résultat reçu sur la couche de sortie
est ensuite comparé aux sorties indiquées ci-dessus. Il vérifie la distance qui les sépare et ajuste
en conséquence les paramètres de chacun des neurones au moyen d'algorithmes spéciaux
(Gradient Descent, Back Propagation) conçus pour produits réels et produits aussi proches que
possible les uns des autres. Il apprend à ajuster ses valeurs de pondération pour obtenir la sortie
correcte. C’est ce que nous appelons «apprendre» pour l’ANN. Ce processus est répété un
nombre (très élevé) de fois jusqu'à ce que les sorties produites et attendues soient aussi proches
que possible. Cela complète la formation.

Maintenant, lorsque de nouvelles entrées sont fournies au NN, nous pouvons affirmer avec
confiance que les sorties prévues du réseau seront assez proches des sorties réelles.

4. Réseau de neurones convolutifs (CNN)

Un CNN (ConvNet) est un NN Deep Learning qui peut prendre en charge une image d'entrée,
attribuer une importance (poids apprises et biais) à divers aspects / objets de l'image et être
capable de se différencier les uns des autres. Le prétraitement requis dans un ConvNet est
beaucoup plus faible que celui d’autres algorithmes de classification. Alors que dans les
méthodes primitives, les filtres sont conçus à la main, avec une formation suffisante,
ConvNets a la capacité d'apprendre ces filtres / caractéristiques.

77
Figure 5.6.structure de CNN

Il existe 3 types principaux de couches pour construire des architectures ConvNet: couche
convolutionnelle, couche de regroupement et couche entièrement connectée (un ANN):
Couche de convolution : prenez en entrée une matrice à 3 dimensions (par exemple, une
image) et exécutez une opération de convolution entre la matrice et les filtres afin d’extraire de
nouvelles caractéristiques. Ces filtres seront mis à jour par le système de la même manière que
les ANN pour les poids. Grâce à la formation, le réseau détermine les fonctionnalités qu’il juge
importantes pour pouvoir numériser des images et les catégoriser de manière plus précise.
Couche de pooling : réduit les dimensions spatiales sur un CNN. En conséquence, le système
gagne en performances de calcul et a moins de chance d’être trop bien construit (en raison de
moins de paramètres).
Couche entièrement connectée: prenez des données en les flattant et combinez les
caractéristiques dans une plus grande variété d'attributs permettant au CNN de mieux classer
les matrices.
5.Réseau de neurones récurrents (RNN)

Figure 6.6 :. Structure RNN

78
Un RNN est les perceptrons de la couche cachée sont connectés à eux-mêmes au fil du temps.
L'idée sous-jacente aux RNN est que le perceptron possède une sorte de mémoire à court terme,
ce qui lui permet de se souvenir de ce qu'il y avait dans ce perceptron tout à l'heure. Ainsi,

les neurones peuvent se transmettre des informations à l'avenir et analyser des choses.

Il existe 4 types de RNN:

One to Many: Il s’agit d’un réseau avec une entrée et plusieurs sorties. Par exemple, cela
pourrait être une image (entrée), qui est décrite par un ordinateur avec des mots (sorties). Vous
pouvez voir un tel exemple dans l'image ci-dessous.

Figure 7.6 Structure RNN Un a plusieurs

Many to one : Il s’agit d’un réseau avec plusieurs entrées et une sortie. L’analyse
des sentiments, par exemple, lorsque vous avez beaucoup de texte, par exemple un
commentaire de client, et que vous devez évaluer le degré de satisfaction de ce
commentaire, est un exemple de cette relation.

79
Figure 8.6 Structure RNN Many to one

Many to Many : Il s’agit d’un réseau avec plusieurs entrées et plusieurs sorties.

Les traductions de texte peuvent être un bon exemple de plusieurs types de réseaux.

Figure 9.6 Structure RNN Many to many

6. Apprentissage non supervisé en Deep Learning

Dans l’apprentissage non supervisé, les exemples de formation fournis au système ne sont pas
étiquetés avec la classe d’appartenance. Ainsi, le système développe et organise les données,
en recherchant des caractéristiques communes entre elles et en évoluant en fonction des
connaissances internes.

L’apprentissage non supervisé par la commune est constitué des systèmes de réduction de la
dimensionnalité et de recommandation.

VI. Réduction de la dimensionnalité

La réduction de dimensionnalité est le processus de réduction de la dimension de l'ensemble de


fonctions. Cet ensemble de fonctionnalités pourrait être une dataset comportant une centaine de

80
colonnes.
La réduction de la dimensionnalité peut réduire le nombre de colonnes (par exemple, De n
entités à 2 pour les tracer dans un graphique).

Figure 10.6 : Performance

La complexité du modèle est proportionnelle au nombre de fonctionnalités. En conséquence,


plus le nombre de fonctionnalités est important, plus les chances de suréquipement sont
importantes : un modèle d’apprentissage approfondi, formé sur un grand nombre de
fonctionnalités, dépend de plus en plus des données sur lesquelles il a été formé et, à son tour,
suréquipé, ce qui engendre de faibles performances. Performances sur des données réelles,
dépassant les objectifs.

Éviter la suralimentation est une motivation majeure pour la réduction de la dimensionnalité.


Moins il y a de caractéristiques dans nos données d’entraînement, moins le modèle repose sur
d’hypothèses et plus il sera simple.

La réduction de la dimensionnalité présente de nombreux autres avantages, à savoir :

• Moins de données trompeuses signifient que la précision du modèle est améliorée.

• Moins de dimensions signifient moins d’informatique. Moins de données signifient que les
algorithmes s'exercent plus rapidement.

• Moins de données signifient moins d'espace de stockage requis.

• Moins de dimensions permettent l'utilisation d'algorithmes impropres à un grand nombre de


dimensions

81
• Supprime les caractéristiques redondantes et le bruit.

 (SOM) Self-Organizing Map

MOS est un type de NN formé à l'aide d'un apprentissage non supervisé afin de produire une
représentation discrétisée de l'espace de saisie des échantillons d'apprentissage, appelé carte, et
constitue par conséquent une méthode de réduction de la dimensionnalité.

 Encodeur Automatique
Un auto encodeur NN est un algorithme d’apprentissage non supervisé qui applique la
propagation arrière1, en définissant les valeurs cibles comme étant égales aux entrées.

L'auto-codeur essaie d'apprendre une fonction hW, b(x) = xi. En d'autres termes, il essaie
d'apprendre

Une approximation de la fonction d’identité, de manière à produire x qui soit similaire à x. La


fonction identité semble être une fonction particulièrement triviale à essayer d’apprendre ; mais
en imposant des contraintes au réseau, par exemple en limitant le nombre d'unités cachées, nous
pouvons découvrir une structure intéressante des données.

82
Figure 11.6 structure de Auto encoder

Un auto encodeur NN est un algorithme d’apprentissage non supervisé qui applique la


propagation arrière1, en définissant les valeurs cibles comme étant égales aux entrées.

L'auto-codeur essaie d'apprendre une fonction hW, b (x) = xj. En d'autres termes, il essaie
d'apprendre

une approximation de la fonction d’identité, de manière à produire x ’qui soit similaire à x. La


fonction identité semble être une fonction particulièrement triviale à essayer d'apprendre; mais
en imposant des contraintes au réseau, par exemple en limitant le nombre d'unités cachées, nous
pouvons découvrir une structure intéressante des données.

83
 RBM: Restricted Boltzmann Machine

Figure 12.6: Description graphique de la machine Boltzmann restreinte

Les RBM sont des NN à deux couches peu profondes. La première couche du RBM est appelée
la couche visible, ou couche d'entrée, et la seconde est la couche cachée. Chaque cercle
représente un perceptron ou un nœud. Les nœuds sont connectés les uns aux autres à travers les
couches, mais deux nœuds de la même couche ne sont liés. La GAR peut être utilisée dans de
nombreux cas, tels que la réduction de la dimensionnalité, les systèmes de recommandation,
Classification, régression, filtrage collaboratif, apprentissage des fonctionnalités et
modélisation des sujets.

VII. Mesures d'évaluation

L'évaluation d'un algorithme DL est une partie essentielle de tout projet. Tout modèle peut
donner des résultats satisfaisants lorsqu'il est évalué à l'aide d'une métrique spécifique mais peut
donner des résultats médiocres lorsqu'il est évalué par rapport à d'autres métriques. La plupart
du temps, nous utilisons la précision de la classification pour mesurer les performances du
modèle. Toutefois, il ne suffit pas de véritablement juger les performances du modèle. Il existe
de nombreuses catégories de mesures d'évaluation. Mais nous ne nous concentrerons que sur

84
les métriques de classification car nous essayons de résoudre le problème de classification.

1. Matrice de confusion

Également appelé "matrice d'erreur".


C'est un tableau qui décrit les performances d'un modèle d'apprentissage automatique supervisé
sur les données de test, où les valeurs vraies sont inconnues. Chaque ligne de la matrice
représente les instances d'une classe prédite, tandis que chaque colonne représente les instances
d'une classe réelle (et inversement). Il s’appelle "matrice de confusion" car il permet de repérer
facilement les endroits où votre système confond deux classes

Figure 13.6: Confusion de Matrix shape

Il y a 4 termes importants:

1. Vrai Positif (TP): les cas dans lesquels nous avions prédit OUI et où le résultat réel était
également OUI

2. True Négative (TN): les cas dans lesquels nous avons prédit NO et la sortie réelle était NO

3. Faux Positif (FP) (Erreur de type I): les cas dans lesquels nous avons prédit OUI et où le
résultat réel était NON

4. Faux négatif (FN) (erreur de type II): les cas dans lesquels nous avons prédit NON et la
sortie réelle était OUI

85
À partir de la matrice de confusion, nous pouvons calculer 5 mesures d’évaluation :

1. Accuracy : nombre d'éléments correctement identifiés par rapport au nombre total


d'éléments :

Accuracy = TP + TN

Nombre total d’éléments

 Précision: nombre d'éléments correctement identifiés comme positifs par rapport au


total des éléments identifiés comme positifs:

Précision= TP

TP + FP

 Sensibilité ou Taux de Vrai Positif (TPR): nombre d’éléments correctement


identifiés comme positifs par rapport au total des vrais positifs:

Sensibilité= TP

TP +FN

 Spécificité ou vrai taux négatif (TRN): nombre d’éléments correctement identifiés


comme négatifs par rapport au total des négatifs:

Spécificité= TN

TN + FP

 Taux de faux positifs : nombre d'éléments identifiés à tort comme positifs par

86
rapport au total des véritables négatifs :

Taux de faux positifs = FP


FP + TN
 Taux de faux négatifs : nombre d’items identifiés à tort comme négatifs par rapport
au total des vrais positifs :

Taux de faux négatifs = FN

FN + TP
 Score F1

F1-Score
Il s’agit d’une mesure combinant précision et rappel (également appelée score F). Le score F1
est vraiment utile si on veut comparer 2 classificateurs. Il est calculé en utilisant la moyenne
harmonique entre précision et rappel. La plage pour le score F1 est [0, 1]. Il vous indique la
précision de votre classificateur (combien d'instances il classifie correctement), ainsi que sa
robustesse (Il ne manque pas un nombre important d'instances).

F 1 − Score = 2 ∗ 1

1 1

P rescision + Spécificité

VIII. Analyse du log avec DL

.L'ensemble de données que nous traitons sont des journaux bruts datés. Ainsi, afin de mettre
en œuvre l'ANN pour la détection du trafic malveillant, et pour l'approche d'analyse de charge
utile et l'approche d'analyse de trafic, nous devons passer par 4 étapes :

87
1. Journalisation des étiquettes : distingue les domaines malveillants des domaines légitimes.
2. Extraction de fonctionnalités : écriture d'un script générant des fonctionnalités à partir de
journaux bruts
3. Visualisation des données : traçage de graphiques basés sur les caractéristiques extraites afin
de visualiser la distribution des données

4. Construction du modèle : configurez l'ANN, formez-le et testez-le pour les prévisions


Pour effectuer le traitement des données, nous utiliserons Python en tant que langage de
programmation pour développer nos scripts, car il s’agit d’un langage puissant qui fournit de
nombreuses bibliothèques pour résoudre les problèmes de data science et de DL.

1. Analyse de la charge utile

Dans cette section, nous allons décrire comment nous avons construit une IA qui fait des
prédictions basées sur l'approche d'analyse de la charge utile.

2. Description du DataSet

Dans cette approche, nous allons transformer chaque entrée des logs de transaction en 10
Attributs qui sont :

a. Merchand_id : c’est le code unique fourni aux marchands par leur processeur de
paiement. Souvent abrégé en MID, ce code est transmis avec les informations de titulaire
de carte aux parties concernées pour un rapprochement des transactions

b. Average Amount : c’est le montant de transaction, c’est le résultat obtenu en additionnant


deux ou plusieurs montants de transactions

c. Transaction date : c’est la date à laquelle a lieu la négociation d'une


transaction financière.

88
d. Is declined : les transactions qui sont rejetées a cause de plusieurs problèmes comme une
éventuelle sur @IP ,le cas de dépassement de plafond d’achat normal, ..

e. Total Number of declines/day : le nombre total des transactions refusées par jours

f. Is foreign transaction : désigne une transaction initiée à l’aide d’une carte libellée dans
une devise autre que la devise locale du commerçant (à l’exclusion des cartes émises sur le
même territoire désigné que le point de vente du commerçant où la transaction a lieu).

g. is fraudulent : La fraude dans les paiements s'accompagne de transactions fausses ou


illégales. Lorsque le client paie en ligne, le code PIN ou la signature ne sont pas demandés.
Il est donc difficile de confirmer l’identité du titulaire de la carte comme dans un magasin
virtuel.

3. visualisation du DataSet

Il y a 11 attributs que nous pouvons tracer. Mais nous en rechercherons certains à analyser.
Dans la légende de chaque graphique, "0" signifie un nom d’hôte légitime et "1" signifie un
nom d’hôte malveillant.

Pour le premier tracé, nous avons choisi de visualiser le graphique "Average Amount/
transaction/Day" VS "transaction_Amount"

89
Figure 14.6Average Amount/ transaction/Day VS "transaction Amount

Figure 15.6Total number of declines/day VS isHighRiskCountry

Figure 15.6. montre le graphique "Total number of declines/day VS isHighRiskCountry". Les


transactions totales malveillantes ont un écart type inférieur à celui des transaction extérieures,

90
Figure16.6 : calcul corrélations

Figure17.6 : is Fraudulent

91
Figue montre le graphique "is Fraudulent: toutes les transactions frauduleuses, dans les
paiements s'accompagne de transactions fausses ou illégales.

IX. DL supervisee
Pour construire une ANN, il faut choisir 8 paramètres qui sont:

1. Avons-nous besoin de couches cachées ? "Dans les


réseaux de neurones artificiels, des couches cachées sont
nécessaires si et seulement si les données doivent être
séparées de manière non linéaire". D'après la , les données
doivent être séparées non linéairement. Nous devons donc
définir des couches cachées.

2. Nombre de couches masquées dans chaque couche : les


meilleures pratiques indiquent que la plupart des
problèmes peuvent être résolus à l'aide de 2 couches
masquées. Ainsi, nous allons commencer à tester notre
modèle avec 2 couches cachées.

3. Nombre de nœuds (perceptrons) dans chaque couche


masquée : selon certaines pratiques recommandées, ce
paramètre dépend du nombre de nœuds dans les couches
d'entrée et de sortie (nombre d'entités et résultat attendu de
l'ANN). Dans notre cas, nous avons 31 caractéristiques et
nous prévoyons une sortie binaire, ce qui signifie 31 nœuds
dans la couche d'entrée et 1 nœud dans la couche de sortie.
La couche masquée doit donc contenir la moitié de la
somme des nœuds des couches d’entrée et de sortie: (11 +
1 = 16), soit 16 nœuds dans chaque couche masquée.

4. La fonction d'activation de chaque couche cachée: afin


d'éviter les problèmes les plus courants en apprentissage du

92
modèle, à savoir le gradient en voie de disparition(1) et le
gradient explosif(2), il est recommandé d'utiliser Relu en
tant que fonction d'activation dans les couches masquées.
Pour la couche de sortie, nous utiliserons la fonction
sigmoid car elle traite des sorties binaires.

5. Méthode d’initialisation du poids de chaque couche


masquée: l’une des pratiques recommandées en matière de
développement local, les poids sont initialisés à l’aide de
valeurs proches de 0 mais non nuls, avec l’ordre 0, les
problèmes de gradient de fuite et de gradient explosant.
C’est pourquoi nous allons utiliser l’initialiseur "uniforme"
dans chaque couche cachée.

6. L'optimiseur(3) pour la correction du poids:


l'optimiseur le plus puissant utilisé récemment est
l'optimiseur "Adaptive Moment (Adam)", car il offre toutes
les fonctionnalités de tous les optimiseurs précédents.

7. La fonction de perte pour la correction de poids(4) nous


attendons dans la sortie de l'ANN un résultat binaire. Ainsi,
nous devrions utiliser "binary_crossentropy" comme une
fonction de perte car elle est conçue pour décrire une sortie
binaire.

8. Metrics pour la correction du poids : la seule mesure que


nous utiliserons pour améliorer les performances de l'ANN
est celle de la "précision".

Après avoir défini notre modèle, l’étape suivante consiste à l’entraîner et à le tester.

93
(1) Gradient de disparition : lorsque nous effectuons une rétro-propagation, c’est-à-dire un recul du réseau et le calcul des
gradients de perte (Errer) par rapport aux poids, les gradients tendent à devenir de plus en plus petits au fur et à mesure que
nous reculons. Cela signifie que les neurones des premières couches apprennent très lentement par rapport aux neurones des
dernières couches de la hiérarchie. Les premières couches du réseau sont les plus lentes à s'entraîner

(2) Gradient explosifs : dans les réseaux de perceptrons multicouches profonds, des gradients explosifs peuvent entraîner une
instabilité réseau qui au mieux ne peut pas apprendre des données d’entraînement et au pire résultats en valeurs de poids NaN
qui ne peuvent plus être mises à jour. L'explosion se produit par la croissance exponentielle en multipliant de manière répétée
les gradients à travers les couches réseau ayant des valeurs supérieures à 1,0.

(3)Les optimiseurs mettent à jour les paramètres de poids afin de minimiser la fonction de perte

(4)La fonction de perte sert de guide au terrain indiquant à l’optimiseur s’il se déplace dans la bonne direction pour atteindre
le fond de la vallée, le minimum global

L’entrainement du modèle

Figure 18.6 : l’entrainement du modèle

94
Afin de tester les performances de l'ANN, nous utiliserons le "rapport de classification"
(fig19.6. ) et la "matrice de confusion" (fig.20.6 ).

Figure19.6. Rapport de classification

Figure 20.6 : Matrice de confusion

Selon les chiffres ci-dessus, notre modèle a une précision de 0,99, ce qui semble très prometteur.
Mais en réalité, l’ANN doit encore être amélioré. Ainsi, l’amélioration du modèle doit être
effectué. Au cours de mon projet, nous n'avons pas amélioré les performances de l'ANN car la
puissance de calcul dont nous disposons ne nous permet pas d'exécuter des tâches énormes et
nous ne pouvons pas utiliser les services accessibles au public car le téléchargement des
données prendra beaucoup de temps et le plus important c’est que nous traitons avec des
données confidentielles et que nous ne pouvons pas les externaliser.

95
conclusion :

Nous avons parlé toute au long de ce chapitre sur l’importance d’ELG Stack et
comment on a utilisé ces différents composants pour la surveillance . C’est vrai que le
système qu’on a développé a une grande performance, C’est pour cela qu’on va utiliser
apprentissage en profondeur pour améliorer la performance de détection du notre système et
pour la prédiction des fraudes .

96
Les fraudes et Les attaques que les entreprises rencontrent aujourd’hui sont de plus
en plus complexes, persistantes, ciblées et difficiles à détecter par les solutions
traditionnelles de sécurité. Nous avons montré dans ce projet de fin des études l’importance
de l’analyse de données pour avoir une bonne protection contre ces problèmes . En effet, Il
y a une pression croissante pour protéger les réseaux informatiques contre les intrusions
non autorisées, et certains travaux dans ce domaine concernent les systèmes d’ingénierie
qui sont robustes aux attaques. Cependant, aucun système ne peut être rendu
invulnérable. Notre solution se concentre sur la surveillance et l’analyse des données de
transaction bancaire, avec l’intention de prévenir ou d’identifier rapidement les activités
malveillantes. Ce travail implique l’intersection de la statistique, de l’exploration de
données et de l’informatique. Beaucoup d’entreprises utilisent des solutions payantes,
or, notre solution, étant entièrement Open Source, permet une utilisation facile sans
engendrer des coûts pour l’entreprise. Les premiers résultats de tests qu’on a effectués
sont prometteurs et nous encourage à terminer la solution dans un environnement de
production. Bien que les outils qu’on a choisis après avoir effectuent des études
comparatives étaient à la hauteur de nos attentes, on pourrait intégrer des outils
supplémentaires pour avoir une architecture bien solide à long terme. Comme travail
futur, nous améliorerons dans notre environnement de surveillance en intégrant Hadoop
avec Elasticsearch. En effet, après l’étude comparative entre ces plateformes, notre
choix était d’utiliser Elasticsearch, mais il faut dire que s’il y a une demande importante
de scaling (Mise à l’échelle) et un plus grand volume de données, Hadoop serait plus
approprié. Donc nous sommes en cours d’intégrer ces deux technologies ensemble, qui
vont ouvrir un nouveau monde pour l’analyse de logs pour la sécurité. L’exploitation de
la pleine puissance de Hadoop et Elasticsearch peut donner une bonne plateforme pour
enrichir au maximum la valeur des Big Data.

97
98
Annexe A

Logstash

A.1 Installer Java

Figure A.1 – Commande d’installation de JAVA

Installer Java (fig. A.1)

A.2 Installer Logstash

Figure A.2 – Commande de téléchargement d’RPM logstash

Figure A.3 – Commande d’installation de l’RPM logstash

Télécharger et installer le package de Logstash (fig. A.2)(fig. A.3)

Figure A.4 – Commande d’activation de logstash

Figure A.5 – Commande de lancement de logstash

Lancer et activer Logstash (fig. A.4)(fig. A.5)

99
Figure A.6 – Commande de vérification
logstash Vérifier l’état de Logstash comme le montre la figure
suivante (fig. A.6)

100
Annexe B

Elasticsearch

B.1 Installer JDK

Figure B.1 – Commande d’installation de JAVA

Installer Java (fig. B.1)

Figure B.2 – Commande de vérification de JAVA

Vérifier la version de java installé (fig. B.2)

B.2 Installer Elasticsearch

Figure B.3 – Commande de telechargement du package Elasticsearch

Télécharger le package d’Elasticsearch (fig. B.3)

FigureB.4 – Commande d’installation d’Elasticsearch

Installer Elasticsearch (fig. B.4)

Figure B.5 – Commande d’activation de l’Elasticsearch

101
Activer Elasticsearch (fig. B.5)

Figure B.6 – Commande de lancement d’Elasticsearch

Lancer Elasticsearch (fig. B.6)

102
Annexe C

Grafana

C.1 Téléchargement du package

Figure C.1 – Commande de téléchargement du package

Télécharger le package de Grafana (fig. C.1)

C.2 Installation

Figure C.2 – Commande d’installation de Grafana

Installer le package Grafana (fig. C.2)

C.3 Activation

Figure C.3 – Commande d’activation de Grafana

Activer Grafana afin qu’elle se lance automatiquement avec l’instance (fig.


C.3)

C.4 Lancement

Figure C.4 – Commande de lancement de Grafana

Lancer Grafana (fig. C.4)

103
Bibliographie

[1] [1] Les 3 meilleures méthodes d’optimisation dans les réseaux de neurones
https://towardsdatascience. com/the-3-best-optimization-methods-in-neural-networks-
40879c887873 [Consulté en Juin 2019].

[2] Keystone Group . https://www.keystone.tn/ . [Consulté mars 2019}.

[3] Antivirus. https://www.webroot.com/blog/2019/12/13/cybersecurity-tips-for-online-


holiday-shopping/. [Consulté mars 2019].

[4] Les avantages et inconvénients de l’essai computer science sur les pare-feu
https://www.ukessays.com/essays/computer-science/ advantages-and-disadvantages-
of-firewalls-computer-science-essay.php [ consulté en avril 2019].

[5] Elasticsearch https://github.com/elastic/elasticsearch [ Consulté en avril 2019]

[6] Kibana. https://www.elastic.co/fr/products/kibana. [Consulté en avril 2019].

[7] Grafana. https://grafana.com/docs/grafana/latest/tutorials/. [consulté en juillet 2019].

Hadoop – tout savoir sur la principale plateforme big data https://www.lebigdata.


fr/hadoop [consulté en mai 2019]

[8] Artificial neural networks et deep learning. https://becominghuman.ai/ artificial-neural-


networks-and-deep-learning-a3c9136f2137 [Consulté en mai 2019]

[9] A beginner’s guide to dimensionality reduction in machine


learning. https://towardsdatascience.com/ dimensionality-reduction-for-machine-
learning-80a46c2ebb7e [Consulté en mai 2019]

[10] Logstash–tout savoir sur le principe de logstash


https://www.elastic.co/guide/en/logstash/current/ pipeline.html

[11] Machine learning for cybersecurity 101. https://towardsdatascience.com/ machine-


learning-for-cybersecurity-101-7822b802790b [Consulté en juin 2016].

[12] Metrics to evaluate your machine learning


algorithmhttps://towardsdatascience.com/metrics-to-evaluate-your-machine-learning-
algorithm-f10ba6e38234
[Consulté en juin 2019].
[13] Node. https://www.elastic.co/guide/en/elasticsearch/reference/current/ modules-
node.html >. [Consulté en juin 2019].
[14] Apercu des différents optimisuers pour les réseaux de neurones. https://medium.com/
datadriveninvestor/overview-of-different-optimizers-for-neural-networks-
e0ed119440c3. [Consulté en juin 2019].

104
[15] Recurrent neural networks (rnn) - the idea behind recurrent neural networks.
https://www.superdatascience.com/blogs/the-ultimate-guide-to-recurrent-neural-
networks-rnn [Consulté en juin 2019].
[16] Supervised, unsupervised and deep learning. https://towardsdatascience.com/
supervised-unsupervised-and-deep-learning-aa61a0e5471c. [Consulté en juin 2019].
[17] Why deep learning over traditional machine learning? .
https://towardsdatascience.com/why-deep-learning-is-needed-over-traditional-
machine-learning-1b6a99177063
[ Consulté en juin 2019].

[18] How to debug your logtash configuration file. https://How to debug your Logstash
configuration file | Logz.io>. [Consulté en juin 2019].
[19] List all Indices elesticsearch references. https:// List All Indices | Elasticsearch Reference
[6.1] | Elastic. [Consulté en juin 2019].
[20] Concept de base grafana. http://docs.grafana.org/guides/basic_concepts/ >. [Consulté
en juin 2019].
[21] How to import from csv into elsticsearch via logstash. https://qbox.io/blog/import-csv-
elasticsearch-logstash-sincedb [Consulté en juin 2019].

[22] Les différents techniques de paiement swift .https:// système Swift: Les différentes
techniques de paiement - WikiMemoires. [Consulté en juin 2019].

[23] CNN. http://deeplearning.net/tutorial/lenet.html. [Consulté en juin 2019].

[24] Filebeat overview. https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-


overview.html [Consulté en juin 2019].

[25] Grafana vs kibana. https://stackshare.io/stackups/grafana-vs-kibana#pros. [consulté en


juin 2019].

[26] Skiming. https://banque.ooreka.fr/astuce/voir/293298/attention-au-


skimming-de-carte-bancaire. [consulté en juin 2019].

[27] syslog-ngopen source edition 3.16 -administration guide.


https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-
edition/3.16/administration-guide [Consulté en juin 2019].

[28] [syslog-ng]system requirements for syslog-ng.


<https://lists.balabit.hu/pipermail/ syslog-ng/2012-May/018864.html>. [Consulté
en juin 2019].

[29] Choosing a size for nodes.


https://qbox.io/support/article/ choosing-a-size-for-nodes.[Consulté en juillet
2019].

[30] RNN. http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-


1-introduction-%20to-rnns /. [Consulté en juin 2019].

105
[31] Pipeline logstash. https://www.elastic.co/guide/en/logstash/current/multiple-
pipelines.html. [Consulté en mai 2019].

[32] Un systme d’alerte. https://elastalert.readthedocs.io/en/latest/. [Consulté en


juin 2019].

[33] Uml actor. https://www.uml-diagrams.org/use-case-actor.html. [Consulté en juin


2019].

[34] Uml use case. https://www.uml-diagrams.org/use-case.html. [consulté en juillet


2019].

[35] Tableau débord. https://www.usinenouvelle.com/expo/guides-d-achat/tableau-


de-bord-et-reporting-223. [consulté en mai 2019].

[36] What the hell is perceptron?. https://towardsdatascience.com/what-the-hell-is-


perceptron-626217814f53. [Consulté en juillet 2019].

[37] How to set up a production elasticsearch cluster on Centos


https://www.digitalocean.com/community/tutorials/how-to-set-up-a-production-
elasticsearch-cluster-on-centos-7 [Consulter juillet 2019]

[38] Configuration nœuds elasticsearch luster. https://sysadmins.co.za/how-to-


setup-a-2-node-elasticsearch-cluster-on-centos-7-with-some-example-usage/
[Consulter juillet 2019}.

106

Vous aimerez peut-être aussi