Upload
zakaria-smahi
View
1.112
Download
1
Embed Size (px)
Citation preview
Ecole nationale Supérieure d’InformatiqueEx : (Institut National de formation en Informatique)
Projet de Fin d’Etudes
Sécurisation des Web Services SOAP contre les attaques par injection par la
méthode de Khi-2 (χ²)
Présenté par
Mr. SMAHI Zakaria
Septembre 2014
Option : Systèmes Informatiques (SIQ)
Encadré par
Mr. AMROUCHE Hakim
1Introduction
Problématique
Background
Objectifs
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Background
Portail
Construit
Web Service de l’Usine Banque du Client
Vérifie la solvabilité
Banque Centrale
www.newcar.com Organisme
de Crédit
Cherche un créditCherche les taux
Les web services utilisent des standards et protocoles comme XML et SOAP.
Ces protocoles les rend vulnérables à plusieurs types d’attaques.
La plupart de ces attaques sont des attaques par injection.
Le problème avec les attaques par injection est l’absence de mécanismes de validation des données entrées par l’utilisateur.
2Introduction
Problématique
Background
Objectifs
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Problématique
3
Identifier les différentes attaques par injection contre les web services.
Faire une étude sur la représentation en n-grammes et le test de Khi-2 (χ²).
Concevoir et Implémenter Firewall XML pour sécuriser les web services contre les attaques par injection utilisant la méthode de Khi-2.Effectuer des tests et interpréter les résultats.
Introduction
Problématique
Background
Objectifs
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Objectifs
Plan de PrésentationWeb Services
Attaques par injection sur les Web Services
Conception
Réalisation
Conclusion et Perspectives
Tests et Résultats
Les n-grammes et test de Khi-2
Étude Bibliographique
4Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Acteurs du Web Services
Définition
Messages SOAP
Programmes accessibles à distance, qui peuvent être déployés sur n’importe quelle plateforme.
Il s’agit d’une forme d’un intergicielle (middleware) qui s’appuie sur des standards définis et proposés par le W3C comme XML.
Conçus pour supporter l’interaction entre des groupes hétérogènes au sein d'un réseau via un échange de messages appelés SOAP, basées sur le langage XML
Les Web Services
5Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Acteurs du Web Services
Définition
Messages SOAP
Les Acteurs du Web Service
6Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Acteurs du Web Services
Définition
Messages SOAP Protocol header
SOAP envelopeSOAP header
SOAP body
SOAP fault
Protocol de transport (ex : http)
Définit le document XML comme un message SOAP
Optionnelle : stockage des informations spécifique à la
transaction
Contenant des données à transporter
Gestion des erreurs
Message SOAP
7Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Attaques sur les web Services
Attaques par injection
Les Web Services sont vulnérables à un certain type d’attaques.
Ces attaques sont dites « Attaques à base XML » ou « XML-based Attacks ».
La plupart de ces attaques sont de types Injection, d’où l’appellation « Attaques par injection » ou « Injection Attacks ».
Les Attaques sur les Web Services (1/2)
8Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Attaques sur les web Services
Attaques par injection
Attaques à base XML
XDOS
Oversize/Récursive
XML Bombe
Référence externe
Envoi massif de messages SOAP
Injections
Injection SQL
Injection de commandes OS
Injection XML
Injection XPath
Les Attaques sur les Web Services (2/2)
9Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Attaques sur les web Services
Attaques par injection
les attaques prédominantes contre les web services aujourd’hui.
Il n’existe aucune séparation stricte entre les instructions d’un programme et les données qu’un utilisateur y saisit.
un utilisateur malveillant peut injecter du code malicieux, dans le but d’extraire ou de modifier des données confidentielles.
Les Attaques par injection (1/2)
10Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Attaques sur les web Services
Attaques par injection
Attaques par injection
Injection SQL Injection Commandes OS Injection XML Injection XPath
<soapenv :Body><Login><username> ’ OR 1 = 1 --</username><password></password></Login></soapenv :Body>
<return>(zsmahi, zsmahi) , (user,password) , (Bob, #12jA) , (Alice, azerty)</return>
<soapenv :Body><Ping><host>127.0.0.1 ; cat /etc/passwd</host></Ping></soapenv :Body>
<return>Ping Resultroot :x :0 :0 :root :/root :/bin/bashpassword daemon :x :1 :1 :daemon :/usr/sbin :/bin/shbin :x :2 :2 :bin :/bin :/bin/sh</return>
<users><user><username>Charly</username></user><user><username>Alice</user><user></username></user></users>
Utilisateurs enregistrés:CharlyAlice
<soapenv :Body><Search><item>zsmahi’ or ’1’ =’1</item></Search></soapenv :Body>
<return>Zsmahi , user1 , anotherUser1</return>
Les Attaques par injection (2/2)
11Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2
Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Un n-gramme est une sous-séquence de n éléments construite à partir d’une séquence donnée.
A partir d’une séquence de lettres donnée, il est possible d’obtenir la fonction de vraisemblance de l’apparition de la lettre suivante.
Les n-grammes sont utilisées souvent dans le domaine de la Recherche d’Information.
Les n-grammes
Test de Khi-2
Les n-grammes (1/2)
12
A partir d’une chaîne « parExemple » voici la liste des uni-grammes (n=1) et bi-grammes (n=2) possibles:
Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2
Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les n-grammes
Test de Khi-2
Uni-grammes Bi-grammes
P : 2/10 « pa » : 1/9
E : 3/10 « pl » : 1/9
X : 1/10 « pe » : 0/9
Les n-grammes (2/2)
13
Le test du Khi-2 (χ²) fournit une méthode pour déterminer la nature d’une répartition, qui peut être continue ou discrète.
Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2
Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les n-grammes
Test de Khi-2 utilisé dans différents domaines tels que la comparaison des échantillons, Recherche de liaison entre les données ou Recherche de l’influence d’une donnée autre que celle étudiée.
Le Test du Khi-2
14Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2
Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les n-grammes
Test de Khi-2
Principe du Test du Khi-2
1 Etape• Formuler l’hypothèse H0 « Hypothèse nulle ».• Formuler H1 « Hypothèse alternative ».
2 Etape
• Répartir les données en classes• Déterminer le nombre de degrés de liberté à partir du
nombre de classes.
3 Etape• Fixer un seuil s (souvent le 5%)
4 Etape• Calculer Algébriquement la distance de Khi-2
5 Etape
• Déterminer la Khi-2 théorique P à l’aide de la table Khi-2• SI P <= s on accepte H0• Sinon On rejette H0. Accepter H1
Conception
15Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Architecture générale du Firewall
16Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Administration du Firewall
Administration
Ajouter Un Profil Web
Service
Modifier la configuration
du firewall
Visualiser le Journal des évènements
17Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Ajouter un Profil Web Service (1/2)
1ére Etape
• L’administrateur fournit le nom du Web Service et l’URL de son fichier WSDL.
2éme Etape
• Récupérer les méthodes du web service à partir du fichier WSDL• Récupérer les logs du serveur pour extraire les bons messages.
3éme Etape
• Extraire les différents n-grammes et leurs fréquences pour chaque message.
4éme Etape
• Calculer Algébriquement (moyenne arithmétique) le vecteur moyen des fréquences des n-grammes des bons messages.
5éme Etape• Sauvegarder le profil Web Service
18Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Ajouter un Profil Web Service (2/2)Administrateur
Gestionnaire des Profils WS
Calcul du Vecteur Moyen
Création du Profil WS
Profils WS
(Nom WS, URL WSDL)
Log du serveur
Bons Messages SOAP
Vecteur Moyen
Profil Crée
19Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Calcul du vecteur moyen Vecteur1 de
Fréquences de n-grammes
Vecteur2 de Fréquences de
n-grammes
Vecteur3 de Fréquences de
n-grammes
Vecteur n de Fréquences de
n-grammes
Vecteur Moyen de tous les n-grammes
existants dans les messages bons
20Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Configuration du Firewall
L’administrateur peut modifier la taille dun-gramme utilisée (n=2,3, …etc.) par défaut n=3.
L’administrateur peut modifier le seuil de détection utilisé ( par défaut 0.05)
21Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Journal des évènements
On sauvegarde tous les évènements ( messages bons, messages malveillants).
L’administrateur peut visualiser le journal des évènements pour pouvoir suivre le fonctionnement du firewall.
22Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Noyau de Protection
1 Etape• Intercepter le message SOAP.
2 Etape• Extraire les différents n-grammes du message.
3 Etape• Calculer la distance χ² entre le vecteur moyen et le
message intercepté.
4 Etape
• Comparer la probabilité p de χ² avec le seuil utilisé α.• Si (p <= α) -> Message Malveillant• Sinon -> Message Bon• Journaliser l’évènement
23Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Algorithme de distance de Khi-2
La distance de Khi-2 est donnée par la formule: avec: • O : Vecteur observé (message intercepté).• E : Vecteur attendu (vecteur moyen).
Un n-gramme X
X existe dans E et O:La formule sera :
X existe seulement dans E:La formule sera : (Ox=0)
X existe seulement dans O:La formule sera :
24Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Administration
Architecture générale
Protection
Algorithme de Protection
Paramètres en entrée :(VecteurMoyen, n, seuil) Résultat: Message Bon/MalveillantDébut dist = 0 Pour chaque message SOAP entrant M faire
1. vect = n-gramme(M,n) 2. Normaliser le vecteur M par la taille du message.
FinPour Pour chaque n-gramme ng faire 1. dist = Khi2Dist(vect,VecteurMoyen) FinPour Si (khi2(dist,ddl)<= seuil) faire 1. Message Malveillant Sinon 1. Message Bon Fsi Fin
Réalisation
25Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les Outils de Réalisation
Web Services « Users »
Les outils de réalisation
Firewall NetfilterQueue CGI-BIN
26Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Web Services « Users » (1/2)
Web Services « Users »
Les outils de réalisation
Firewall
Développement du Web Service « Users ».
Ce Web Service comporte 4 méthodes:1. Login (username:string, password:string):string2. Subscribe (nom&prénom:string, …etc.):void3. Search(item:string):string4. Ping(host:string):string
27Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Web Services « Users » (2/2)
Web Services « Users »
Les outils de réalisation
Firewall
‘ OR 1 = 1 -- Injection SQL
28Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Noyau de Protection
Web Services « Users »
Les outils de réalisation
Firewall
# iptables -I INPUT -d 192.168.0.0/24 -j NFQUEUE –queue-num 1
from netfilterqueue import NetfilterQueuefrom verification import verifier def verif(pkt) : if not (SOAPmessage(pkt.get_payload()) : pkt.accept() else : if verifier(pkt.get_payload()) : pkt.accept() else : pkt.drop()nfqueue = NetfilterQueue()nfqueue.bind(1, verif)try : nfqueue.run()except KeyboardInterrupt : print
29Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Noyau d’Administration
Web Services « Users »
Les outils de réalisation
Firewall
L’administrateur doit s’authentifier, pour pouvoir accéder au panneau d’administration.
L’administrateur peut consulter les profils Web Service afin d’ajouter un nouveau profil, modifier ou supprimer un déjà existant.
L’administrateur peut consulter la configuration et le journal des évènements
Tests et Résultats
30Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les données utilisées
Résultats
Les données utilisées
Synthèse
Données d’Apprentissage Données de Test
1000 messages 500 messages
5000 messages 500 messages
10000 messages 500 messages
Test Méthode Login
Injections SQL 170 messages
Injections de commandes OS
30 messages
Messages Bons existants dans le Vecteur Moyen
150 messages
Messages Bons nouveaux
150 messages
Total 500 message
Test Méthode Subscribe
Injections XML 123 messages
Injections XPath 78 messages
Messages Bons existants dans le Vecteur Moyen
151 messages
Messages Bons nouveaux
150 messages
Total 502 messages
31Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les mesures de performances
Résultats
Les données utilisées
Synthèse
Mesure Signification
Taux de Faux Positifs (FP) le taux d’instances identifiés à tort comme « malveillant »
Taux de Faux Négatifs (FN) le taux d’instances « malveillant » identifiés comme « bon »
Matrice de Confusion Courbe de ROC et son AUC
32Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les résultats (1/14)
Résultats
Les données utilisées
Synthèse
N=2 N=3 N=4 N=55
12
44
68
0
7 912
Méthode Login 1000 messages
FP FN
33Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Résultats
Les données utilisées
Synthèse
Les résultats (2/14)
34Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les résultats (3/14)
Résultats
Les données utilisées
Synthèse
N=2 N=3 N=4 N=53
7
56
81
5
18
52 53
Méthode Login 5000 messages
FP FN
35Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Résultats
Les données utilisées
Synthèse
Les résultats (4/14)
36Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les résultats (5/14)
Résultats
Les données utilisées
Synthèse
N=2 N=3 N=4 N=53
23
76
132
5 8 8
20
Méthode Login 10000 messages
FP FN
37Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Résultats
Les données utilisées
Synthèse
Les résultats (6/14)
38Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Résultats
Les données utilisées
Synthèse
Echantillon N=2 N=3 N=4 N=5
1000 1949 9642 17926 22721
5000 2936 17794 35314 46578
10000 2965 18936 41686 59865
Les résultats (7/14)
Les différents Tailles du Vecteur Moyen méthode login
39Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les résultats (8/14)
Résultats
Les données utilisées
Synthèse
N=2 N=3 N=4 N=5
1523
53
97
13
52
104
131
Méthode Subscribe 1000 messages
FP FN
40Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Résultats
Les données utilisées
Synthèse
Les résultats (9/14)
41Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les résultats (10/14)
Résultats
Les données utilisées
Synthèse
N=2 N=3 N=4 N=58
1624
31
13
0
52
102
Méthode Subscribe 5000 messages
FP FN
42Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Résultats
Les données utilisées
Synthèse
Les résultats (11/14)
43Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Les résultats (12/14)
Résultats
Les données utilisées
Synthèse
N=2 N=3 N=4 N=55
16 161113
0
45
60
Méthode Subscribe 10000 messages
FP FN
44Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Résultats
Les données utilisées
Synthèse
Les résultats (13/14)
45Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Résultats
Les données utilisées
Synthèse
Echantillon N=2 N=3 N=4 N=5
1000 922 6741 22535 37705
5000 1086 8530 39219 97168
10000 1130 9064 46020 133118
Les résultats (14/14)
Les différents Tailles du Vecteur Moyen méthode subscribe
46Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et Résultats
Conclusion et Perspectives
Résultats
Les données utilisées
Synthèse
Synthèse
L’utilisation de la méthode khi-2 avec les n-grammes donne une bonne détection des attaques par injection contre les web services.
L’augmentation de l’échantillon d’apprentissage permet d’augmenter la précision du firewall en réduisant le taux des faux négatifs.
L’utilisation du seuil 0.05 et les bigrammes (n=2) et les trigrammes (n=3) donne la meilleure détection.
Conclusion et Perspectives
47Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et RésultatsConclusion et Perspectives
Conclusion
Les Web services sont confrontés à plusieurs types d’attaques qui sont de types injection.
La représentation en n-grammes et le test de Khi-2 sont utilisées dans plusieurs de domaines.Concevoir et implémenter un Firewall XML utilisant les n-grammes et le test de Khi-2 pour détecter les attaques par injection sur les web services.Résultats de tests très satisfaisants.
Conclusion
Perspectives La configuration proposée est n=3 et seuil=0.05.
48Introduction
Web Services
Attaques par injection sur les Web Services
Les n-grammes et test de Khi-2Conception
Réalisation
Tests et RésultatsConclusion et Perspectives
Perspectives
Conclusion
Perspectives
Réduire la taille du vecteur moyen, en n’utilisant que les paramètres des méthodes pour accélérer le processus de détection.Elargir la solution à d’autres types d’injections connues dans le web.
Etendre le champ de détection du système vers les attaques XDOS.
Proposer d’autres algorithmes de sécurisation.
Merci pour votre
attention
Questions