Rabeb Rapport PDF
Rabeb Rapport PDF
Rabeb Rapport PDF
à conscience tranquille
tout est accessible,
malgré les obstacles qui
se posent,
à 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.
Finalement, j’exprime toute ma gratitude aux membres du jury pour m’avoir fait
l’honneur de bien évaluer mon travail.
Liste des acronymes
• TP :True Positive
• TN : True Negative
• ML Machine Learning
• DL :Deep Learning
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.
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
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.
7
III. Méthodologie de travail
1. Déroulement de projet
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
I. Définition
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.
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.
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 :
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
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é
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 ;
• 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.
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.
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.
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.
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 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,
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".
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.
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
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
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 :
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.
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)
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é.
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
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.
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.
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.
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.
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
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
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.
33
2. Conception des tableaux de bord
Title "Authenticate"
Actors Agent/Administrator
Purpose Authentication
• Enter password
34
Title "Access Dashboard"
Actors Agent/Administrator
35
Title "Configure Dashboard"
Actor Administrator
• Dashboard is reacha
• Add alert
• Add dashboard
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]
Actor Administrator
• Dashboard is reachable
37
Title "Add Dashboard"
Actor Administrator
• Dashboard is reachable
• Add graphs
• Add alerts
38
Figure7.4 : Diagramme « authentification »
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.
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
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 .
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
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.
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.
our bien comprendre cette architecture, nous illustrons l’utilité de ces trois outils open
sources :
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.
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
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
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.
53
Figure 5.5 – plugin de filtre de logstash
3. Configuration de l’output
54
Cette figure montre le résultat de traitement des données à partir du logstash.
B. Elasticsearch Cluster
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.
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
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
59
IV. Création et configuration des graphes
Cette annexe décrira les étapes pour créer et configurer un
graphique sur Grafana
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).
61
Ajouter 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)
3. On fournit l’URL de la source qui doit être sous la forme suivante : http
://adresse IP :port.
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.
63
Créer un Dashboard
64
Ajouter un panel
Pour ce faire, on fait un clic sur « add panel ». Puis, on choisit le panel adéquat (fig.17.5)
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).
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).
67
Ajouter une variable
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).
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 »
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
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.
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.
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).
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
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)
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
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.
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)
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.
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.
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.
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.
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).
• Moins de dimensions signifient moins d’informatique. Moins de données signifient que les
algorithmes s'exercent plus rapidement.
81
• Supprime les caractéristiques redondantes et le bruit.
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
82
Figure 11.6 structure de Auto encoder
L'auto-codeur essaie d'apprendre une fonction hW, b (x) = xj. En d'autres termes, il essaie
d'apprendre
83
RBM: Restricted Boltzmann Machine
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.
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
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 :
Accuracy = TP + TN
Précision= TP
TP + FP
Sensibilité= TP
TP +FN
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 :
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é
.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
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
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).
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
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:
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.
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
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 ).
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
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
101
Activer Elasticsearch (fig. B.5)
102
Annexe C
Grafana
C.2 Installation
C.3 Activation
C.4 Lancement
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].
[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].
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].
105
[31] Pipeline logstash. https://www.elastic.co/guide/en/logstash/current/multiple-
pipelines.html. [Consulté en mai 2019].
106