SlideShare une entreprise Scribd logo
Vulnérabilités des
Sites Web
04/06/2017 Vulnérabilités des Sites Web 1
Plan
I. Introduction
II. Architecture web
III. Les principales failles du web
IV. TP
V. Conclusion
04/06/2017 Vulnérabilités des Sites Web 2
Introduction
 Bien que les années 2000 aient vu l'explosion de la bulle Internet et
l'arrivée du Web 2.0, les standards ont peu évolué. Pourtant les
développeurs ont réussi à offrir de l'interactivité avec l'utilisateur et à
mettre à disposition de véritables applications sur le Web.
 Ces applications basées sur le protocole HTTP, indépendantes des plates-
formes et langages d'implémentation, reposant sur des architectures Web.
04/06/2017 Vulnérabilités des Sites Web 3
Introduction
 Le Web est devenu un lieu où on peut échanger des informations
mais il est également devenu un marché à part entière pour la vente
et l’achat de biens matériels.
 Les acteurs de ce nouveau marché ont besoin de sécurité sous tous ses
aspects, tels que définis par l’ANSSI (Agence Nationale de Sécurité des
Systèmes d'Information) « la protection de la confidentialité, de l’intégrité
et de la disponibilité de l’information ».
04/06/2017 Vulnérabilités des Sites Web 4
Architecture web
• Réseau Internet
• Composants Client
• Le navigateur
• Les scripts
• Composant Serveurs
• Serveurs Web
• Serveurs d'application
• Serveurs de données
04/06/2017 Vulnérabilités des Sites Web 5
Architecture-Réseau Internet
transmission physique des données
s'assure que les paquets sont reçus
indique où les données doivent être envoyées,
sans garantie que la destination sera bien
atteinte
permet aux utilisateurs finaux de communiquer
sur Internet avec des protocoles
04/06/2017 Vulnérabilités des Sites Web 6
Architecture-Composant Client
• Le Navigateur
• le navigateur est une application cliente. Il permet d'envoyer des requêtes
HTTP au serveur Web et d'en interpréter la réponse
04/06/2017 Vulnérabilités des Sites Web 7
Architecture-Composant Client
• Le Scripts
• Ce sont des langages pour ajouter un dynamismes et de vivacité sur les sites
web
04/06/2017 Vulnérabilités des Sites Web 8
Architecture-Composant Serveurs
• Serveurs WEB
• l s’agit d’un ordinateur (une machine) relié
à Internet et hébergeant des ressources.
• peut être constitué :
• D’un serveur http : assurer la communication
entre un ordinateur client et serveur Le plus
célèbre d’entre eux est Apache.
• D’un serveur de base de données. L’un des plus
connu est MySQL.
• D’un interpréteur de langage dynamique
• La fonction d'un serveur web est de
répondre aux requêtes des navigateurs
Internet (Internet Explorer, Firefox, Chrome,
Opéra, Safari, ...).
04/06/2017 Vulnérabilités des Sites Web 9
Architecture-Composant Serveurs
• Serveurs d’application
• Un moteur d'exécution pour
le Web, un outil de
développement,
d'administration, de
déploiement et d'exécution,
un serveur de traitements
• Exemple : Tomcat
,GlassFish,WebLogic…
04/06/2017 Vulnérabilités des Sites Web 10
Architecture-Composant Serveurs
• Serveurs de données
• Ce sont des systèmes de
gestion de bases de
données permettent
d'interroger les données et
de les mettre à jour.
• Exemples : MySQL , SQL
SERVER, Oracle
04/06/2017 Vulnérabilités des Sites Web 11
Les principales failles du web
04/06/2017 Vulnérabilités des Sites Web 12
Violation de gestion
d’authentification et de
session
04/06/2017 Vulnérabilités des Sites Web 13
Violation de gestion d’authentification et de
session
Regroupe les vulnérabilités permettant à un attaquant de s’approprier l’identité
d’un utilisateur.
Violation de gestion d’authentification
Vol de session
Objectifs :
- Accéder à des fonctionnalités réservées à certaines
personnes.
- Accéder à des données confidentielles.
Parades :
- Exiger des mots de passe forts.
- Utiliser un système de captcha.
- Utiliser les cookies pour gérer les sessions.
- Définir une durée de session maximale.
04/06/2017 Vulnérabilités des Sites Web 14
• Mécanisme de connexion
• Rappel : http est un protocole déconnecté
1. Authentification
2. Travail avec l’identifiant de session
1)
4) Envoi id
de sessionUtilisateur
Serveur http
3) Résultat
2) Demande
de vérification
E
x
t
1) Envoi id
de session
4) Envoi id
de session
Utilisateur Serveur http
3) …
2) …
E
x
t
04/06/2017 Vulnérabilités des Sites Web 15
• Détournement de session
Méthodes d’attaque
1. Fixation
2. Vol
3. Prédiction
4. Force brute
Attaquant
1) Envoi id
de session
4) Envoi id
de session
Utilisateur Serveur http
3) …
2) …
E
x
t
5) Envoi id de session
04/06/2017 Vulnérabilités des Sites Web 16
Mauvaise configuration de
sécurité
04/06/2017 Vulnérabilités des Sites Web 17
Mauvaise configuration de sécurité
Cette faille regroupe toutes les vulnérabilités liées à des problèmes de
configuration, sur tous les éléments de la couche applicative (serveurs,
langage, framework, composants…).
Attaque par manipulation d’URL Objectifs :
- Accéder à des informations confidentielles.
- Prendre le contrôle d’un serveur.
Parades :
- Ne pas attribuer aux composants plus de droits que
nécessaire.
- Etudier rigoureusement la configuration.
04/06/2017 Vulnérabilités des Sites Web 18
• Source de vulnérabilité
• Vulnérabilités laissées ouvertes par les
composants de l’architecture
• Solutions
1. Désactiver les options inutiles
2. Mettre à jour les composants
3. Installer les composants en version anglaise
4. Supprimer ou désactiver les comptes par défaut
04/06/2017 Vulnérabilités des Sites Web 19
Stockage de données
cryptographiques non sécurisé
04/06/2017 Vulnérabilités des Sites Web 20
Stockage de données cryptographiques non
sécurisé
Cette faille de sécurité englobe toutes les faiblesses liées à la protection du stockage des données. La
meilleure protection est la mise en place du chiffrement des informations.
Objectifs :
- Accéder à des informations confidentielles.
- Prendre le contrôle d’un serveur.
Parades :
- Tous les moyens de stockage de données sensibles
doivent être chiffrés.
- la sauvegarde du moyen de stockage ne contient pas
les données en clair
04/06/2017 Vulnérabilités des Sites Web 21
SQL INJECTION
04/06/2017 Vulnérabilités des Sites Web 22
Injection SQL
SQL Injection, c’est quoi ?
Injection SQL est parmi les vecteurs d’attaques les plus connus sur la toile!
 son principe est de modifier une requête SQL grâce à un champ mal filtré
dans le but d’exécuter une requête non prévue par l’application.
 l’exploitation d’une Injection SQL peut avoir des conséquences désastreuses sur
un site, elle peut permettre à un attaquant de :
04/06/2017 Vulnérabilités des Sites Web 23
Injection SQL
 Passer par une authentification.
 Lire des données sensibles depuis les tables MySQL.
 Injecter le nom et le schéma de la base de données.
 Lire et écrire dans le système de fichier et potentiellement exécuter
du code PHP.
04/06/2017 Vulnérabilités des Sites Web 24
Injection SQL
// page processlogin.php
$username = $_POST['username'];
$password = $_POST['password'];
$sql = mysql_query("SELECT * FROM users WHERE username = '$username‘
AND password = '$password'") or die(mysql_error());
if(mysql_num_rows($sql) == 1)
{
echo "Bienvenue $username dans votre espace membre!";
}
else
{
echo "Nom d'utilisateur et/ou mot de passe incorrecte";
}
04/06/2017 Vulnérabilités des Sites Web 25
Injection SQL
 Maintenant imaginons qu’un attaquant se connecte avec comme
login : admin’–, la requête devient :
 SELECT * FROM users WHERE username = ‘admin’–‘ AND password =
‘$password’
04/06/2017 Vulnérabilités des Sites Web 26
Injection SQL
 La requête SQL va aboutir, le single quote permettra de fermer le
délimiteur de la chaine admin et les deux tirées servent à mettre le
reste de la requête en commentaire, du coup la vérification du mot de
passe sera ignorée ;)
Bienvenue admin dans votre espace membre!
04/06/2017 Vulnérabilités des Sites Web 27
XSS
04/06/2017 Vulnérabilités des Sites Web 28
XSS
 La faille XSS, a l’origine CSS (Cross Site Scripting) changé pour ne pas
confondre avec le CSS des feuilles de style (Cascading Style Sheet).
 XSS est un type de faille de sécurité des sites Web, que l’on trouve
dans les applications Web mal sécurisé.
04/06/2017 Vulnérabilités des Sites Web 29
XSS
 Le principe de cette faille est d’injecter un code malveillant en
langage de script dans un site web vulnérable, par exemple en
déposant un message dans un forum qui redirige l’internaute vers un
faux site (phishing) ou qui vole des informations (cookies).
04/06/2017 Vulnérabilités des Sites Web 30
XSS
 Les XSS sont très répandue sur le net, plus précisément dans les forums,
livres d’or et les moteurs de recherches,
La détection de la présence d’une faille XSS peut se faire par exemple en
entrant un script Javascript dans un champ de formulaire ou dans une URL :
 <script > alert (Hack) </script >Si une boîte de dialogue apparaît, on peut
en conclure que l’application Web est sensible aux attaques de type XSS.
04/06/2017 Vulnérabilités des Sites Web 31
File Inclusion
04/06/2017 Vulnérabilités des Sites Web 32
RFI & LFI
 Les failles de type RFI (Remote File Include) et LFI (Local File
Include)Les RFI et LFI sont des vecteurs d’attaque
particulièrement prisés et populaires auprès des hackers du
fait de leur puissance de frappe et qu’ils soient encore
méconnus.
 Ces attaques RFI / LFI tirent partie des vulnérabilités PHP en
injectant un code malicieux dans un URL permettant son
exécution à distance.
04/06/2017 Vulnérabilités des Sites Web 33
RFI & LFI
 La fonction php include() permet d'inclure ce qui est contenu dans n'importe quel
autre fichier dans une page web.
 En réalité, le site est construit à partir d'une seule page qui appelle
dynamiquement les articles et en place le contenu en son centre.
 On le remarque notamment avec des URLs de la forme ?page=XXX.
04/06/2017 Vulnérabilités des Sites Web 34
RFI & LFI
 Seulement, quand cette fonction est utilisée sans trop prendre garde à ce que
l'utilisateur pourrait faire, elle peut permettre un DoS (Denial of Service, c'est-à-
dire le plantage du serveur) ou même l'éxécution de code arbitraire côté serveur.
 Cette faille est l'une des plus dangereuses car elle donne réellement un accès
complet au serveur
04/06/2017 Vulnérabilités des Sites Web 35
Défaillance dans la restriction
des accès à une URL
04/06/2017 Vulnérabilités des Sites Web 36
Défaillance dans la restriction des accès à une
URL-Principe
• Cette faille permet à un utilisateur d'accéder
à des fonctionnalités de l'application, voire
des fichiers et répertoires du serveur HTTP
sans y être habilité.
• L'attaque par traversée de répertoires
permet d'accéder à des fichiers du serveur
HTTP notamment ceux contenant les clés
privées de chiffrement.
• Les applications vulnérables ouvrent des
fichiers dont le nom est donné en paramètre
de la requête HTTP.
04/06/2017 Vulnérabilités des Sites Web 37
Défaillance dans la restriction des accès à une
URL-Exemple d’attaque
• Si l'attaquant envoie la requête avec le paramètre «
lang=../../../../etc/passwd », il aura accès au fichier des mots de passe
du système et tentera de se connecter au serveur HTTP avec un des
comptes ainsi trouvés.
04/06/2017 Vulnérabilités des Sites Web 38
Défaillance dans la restriction des accès à une
URL- Précaution
• les serveurs HTTP doivent être configurés pour ne pas permettre
l'affichage du contenu des répertoires.
04/06/2017 Vulnérabilités des Sites Web 39
Protection insuffisante de la
couche transport
04/06/2017 Vulnérabilités des Sites Web 40
Protection insuffisante de la couche transport-
Principe
• Sur Internet il existe un risque qu'une
requête ou une réponse HTTP soit
interceptée. Si elle contient des informations
confidentielles transmises en clair, alors
l'attaquant pourra les exploiter
04/06/2017 Vulnérabilités des Sites Web 41
Protection insuffisante de la
couche transport-Exemple
• L'attaque du type « Homme du
milieu » (ou « Man-in-the-Middle »)
est une des attaques les plus
répandues pour accéder aux
données d'une application.
• Si un attaquant réussit à
compromettre un serveur proxy, il
pourra intercepter toutes les
communications.
• Si en plus ce serveur est
responsable du chiffrement des flux
HTTP, il aura accès aux données les
plus sensibles qui devaient être
chiffrées.
04/06/2017 Vulnérabilités des Sites Web 42
Protection insuffisante de la couche
transport- Précaution
• il faut mettre en place du chiffrement SSL pour TOUTES les pages.
• les mots de passe et les identifiants de session ne doivent à aucun
moment transiter en clair.
• si les données stockées sont chiffrées, il faut s'assurer que tous les
moyens de communication le soient aussi.
04/06/2017 Vulnérabilités des Sites Web 43
Référence directe non
sécurisée à un objet
04/06/2017 Vulnérabilités des Sites Web 44
Référence directe non sécurisée à un objet-
Principe
• Cette vulnérabilité existe simplement parce que les paramètres de
requêtes ne sont pas vérifiés avant traitement.
• Si le paramètre vulnérable fait référence à un fichier ou à une valeur dans
une base de données, il suffit de reconstruire la requête avec une valeur
de paramètre normalement interdite pour y avoir accès.
04/06/2017 Vulnérabilités des Sites Web 45
Référence directe non sécurisée à un objet-
Exemple
• Si l'utilisateur malveillant
saisit dans son navigateur
l'adresse de cette page avec
pour paramètre «
nom=nom_de_la_victime »,
il a alors accès au numéro
de carte bancaire qu'il
n'aurait jamais dû pouvoir
voir
04/06/2017 Vulnérabilités des Sites Web 46
Référence directe non sécurisée à un objet -
Précaution
• Pour protéger les données les plus confidentielles ou les
fonctionnalités les plus avancées, il est recommandé de demander à
l'utilisateur de saisir à nouveau son identifiant et son mot de passe
avant de pouvoir y accéder.
04/06/2017 Vulnérabilités des Sites Web 47
CSRF: Cross Site Request
Forgery
04/06/2017 Vulnérabilités des Sites Web 48
CSRF: Falsification de requête intersites (reflected csrf)
• L'attaquant crée une page Web qui comporte un
formulaire invisible par exemple. Ce dernier contient un
script caché qui lance des actions de l'application.
• L'attaquant piège l'utilisateur en mettant un lien vers
cette page dans un courrier électronique ou sur des
réseaux sociaux.
• Si l'utilisateur s'y est récemment connecté, l'application
va exécuter la commande sans le consentement de
l'utilisateur.
• Cette attaque fonctionnent car les données sensibles
sont envoyé depuis le navigateur vers le serveur
automatiquement
• L’attaque ne fonctionne que si l’utilisateur est connecté
04/06/2017 Vulnérabilités des Sites Web 49
CSRF: Falsification de requête intersites (stored csrf)
• C'est l'application elle-même qui présente le code
malicieux à l'utilisateur.
• Pour ce faire l'attaquant a réussi a inséré du code
malicieux dans les données de l'application Web. Chaque
fois qu'un utilisateur parcourra la page qui va présenter
ce code, le navigateur va l'interpréter et par conséquent
va exécuter une commande de l'application.
• L'application va alors accepter d'exécuter cet ordre
comme si la demande provenait de l'utilisateur. Cette
attaque a plus de chances de réussir car l'utilisateur s'est
déjà connecté et utilise l'application. L'attaquant n'a pas
de besoin de piéger un utilisateur.
04/06/2017 Vulnérabilités des Sites Web 50
Exemple d'attaque
• L'exemple suivant reprend la table « messages » et le script PHP pour l'insertion de données (voir
paragraphe 3.3.2). Si ce script se nomme « add_message.php », le site de l'attaquant pourra utiliser le
code suivant pour le faire exécuter par l'utilisateur :
• L'utilisateur en parcourant la page de l'attaquant est alors automatiquement redirigé vers la page «
add_message.php » avec les paramètres numsujet=6, nom=CSRF et message=action frauduleuse.
04/06/2017 Vulnérabilités des Sites Web 51
Mesures de sécurité contre le CSRF
• Bien que XSS et CSRF soient proches dans le principe, se protéger des attaques XSS ne permet pas de se
protéger des attaques CSRF.
• Pour se protéger, il faut utiliser uniquement des requêtes POST. Les méthodes GET doivent être bannies.
Attention toutefois, dans les servlet Java la méthode « doGet() » fait appel à la méthode « doPost() » en
redirigeant l'ensemble des paramètres. Dans ce cas l'utilisation de requêtes GET fonctionne. C'est pourquoi
l'utilisation de POST n'est pas une protection suffisante.
• Pour les pages qui manipulent des données sensibles, il faut demander à l'utilisateur de s'authentifier à
nouveau. Cela permet de s'assurer que l'utilisateur est conscient de l'action et l'approuve.
• L'utilisateur doit toujours vérifier que le lien sur lequel il clique est bien celui de l'application qu'il veut
utiliser.
04/06/2017 Vulnérabilités des Sites Web 52
XML Encryption
04/06/2017 Vulnérabilités des Sites Web 53
Méfiez vous de vos services Web: la syntaxe XML
Encryption officielle et le standard de traitement
peuvent être rompus.
04/06/2017 Vulnérabilités des Sites Web 54
XML Encryption (chiffrement XML)
• Cette attaque, exploite une corrélation subtile entre le mode de chiffrement par bloc de
fonctionnement, le codage des caractères de texte chiffré, et le comportement de réponse
d'un service Web si un message XML ne peut pas être analysée correctement.
• En d'autres termes, par l'envoi de texte chiffré à un service Web ciblé, et ensuite évaluer la
réponse retournée par le serveur, le système de cryptage peut être déduit.
• l'adversaire peut déchiffrer un texte chiffré en effectuant seulement 14 demandes par
octet de texte en clair en moyenne, cela pose une menace grave et vraiment pratique de
sécurité sur toutes les implémentations utilisées actuellement XML Encryption.
04/06/2017 Vulnérabilités des Sites Web 55
XML Encryption (chiffrement XML): solution
• La solution la plus probable, selon les chercheurs, consiste à remplacer le mode CBC dans le
chiffrement XML avec quelque chose qui fournit non seulement la confidentialité des
messages - comme il le fait maintenant - mais également l'intégrité du message. "Choix
adéquates ont par exemple été normalisés dans la norme ISO / CEI 19772: 2009," ils ont
dit. "Nous considérons cette solution comme très recommandable pour les futures versions
de la norme XML Encryption."
04/06/2017 Vulnérabilités des Sites Web 56
HeartBleed
04/06/2017 Vulnérabilités des Sites Web 57
• Une faille présente depuis deux ans environ dans le logiciel OpenSSL, utilisée par
NOMBREUX sites (2/3 du web), permet d'accéder aux mots de passe, numéros de carte
bancaires ou encore à des clés de cryptage. | Marc Kjerland/CC BY-SA 2.0
04/06/2017 Vulnérabilités des Sites Web 58
HeartBleed: Principe
• Heartbleed n’est ni un virus, ni un maliciel (malware) quelconque. C’est tout simplement une
erreur de codage bête, mais a été BIEN exploitée.
• Quand deux serveurs sont sur le point d’entreprendre un échange sécurisé (certains diraient une
poignée de main cryptée, ou encrypted handshake), ils mettent en place un processus appelé un
battement de cœur (heartbeat).
• Ce processus a essentiellement pour objectif de s’assurer que les deux ordinateurs qui
communiquent ensemble soient encore en contact. Ainsi, si une des deux machines se voit
déconnectée l’autre ne continuera pas inutilement à tenter de communiquer. Cette
synchronisation, ce battement de cœur, correspond plus ou moins à un ping-pong de données
qui se doit d’être maintenue pour qu’il y ait poursuite du dialogue.
04/06/2017 Vulnérabilités des Sites Web 59
HeartBleed: Principe
• C’est dans le processus heartbeat que l’attaquant intervient, le heartbeat (côté
client) envoit un payload + le nombre de bits qu’il souhaite avoir en réponse,
comme la limite est de 64 000 caractères (ou 64 k), l’attaquant conçoit une
requête spéciale (malveillante), contenant le payload + le nombre limite après
l’envoi du 1er payload (initial) au serveur, dans ce cas le serveur charge le 1 bit + le
reste, au lieu de vérifier la taille de la réponse avec la taille de la requête, le
serveur l’envoit tel que l’attaquant souhaite, l’attaquant ne reçoit donc pas 1 bit,
mais plutôt 64 k bits d’informations contenant des clefs secrètes, des mots de
passe, etc … (un vrai festin)!!!
04/06/2017 Vulnérabilités des Sites Web 60
Solution au heartbleed
Malheureusement, il n’y a à ce jour aucune solution à cette catastrophe d’internet,
les experts disent qu’ils ont pu résoudre le problème en appliquant un patch
(correctif) au logiciel OpenSSL, mais des pirates affirment qu’ils ont trouvé un
moyen de forcer le serveur à se comporter comme « au bon vieux temps ». La seule
solution est d’éviter les activités bancaire online, et l’envoi des données sensibles,
jusqu’à nouvel ordre.
04/06/2017 Vulnérabilités des Sites Web 61
Travaux Pratiques
04/06/2017 Vulnérabilités des Sites Web 62
Conclusion
• la sécurité des applications web est un point qu’il ne faut pas
négliger.
• C’est un travail qui peut paraitre fastidieux, coûteux, pas forcément
très utile pour des petites structures / sites mais quoi de mieux pour
la sérénité et la satisfaction client que de savoir que son application
est robuste et ne flanchera pas sous les attaques du premier pirate
venu ?
04/06/2017 Vulnérabilités des Sites Web 63
04/06/2017 Vulnérabilités des Sites Web 64

Contenu connexe

Tendances

Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
Ameni Ouertani
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)
TzahiArabov
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
Heithem Abbes
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
ENSET, Université Hassan II Casablanca
 
Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1 Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1
Lilia Sfaxi
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
Antoine Rey
 
Webinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeWebinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme Thémée
Marie Tapia
 
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
Telecharger Cours Systèmes d’exploitation windows: Administration  WindowsTelecharger Cours Systèmes d’exploitation windows: Administration  Windows
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
webreaker
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
Sabri Bouchlema
 
Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications web
Marcel TCHOULEGHEU
 
Rest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API SecurityRest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API Security
Mohammed Fazuluddin
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
ENSET, Université Hassan II Casablanca
 
Rapport DVWA: CSRF
Rapport DVWA: CSRFRapport DVWA: CSRF
Rapport DVWA: CSRF
Ayoub Rouzi
 
OWASP Top 10 2021 What's New
OWASP Top 10 2021 What's NewOWASP Top 10 2021 What's New
OWASP Top 10 2021 What's New
Michael Furman
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
Heithem Abbes
 
Sécurité des réseaux
Sécurité des réseauxSécurité des réseaux
Sécurité des réseaux
Sehla Loussaief Zayen
 
Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015
Hamza Ben Marzouk
 
OAuth2 - Introduction
OAuth2 - IntroductionOAuth2 - Introduction
OAuth2 - Introduction
Knoldus Inc.
 
Sécurité informatique
Sécurité informatiqueSécurité informatique
Sécurité informatique
oussama Hafid
 
Broken access controls
Broken access controlsBroken access controls
Broken access controls
Akansha Kesharwani
 

Tendances (20)

Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1 Sécurité des Systèmes Répartis- Partie 1
Sécurité des Systèmes Répartis- Partie 1
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Webinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeWebinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme Thémée
 
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
Telecharger Cours Systèmes d’exploitation windows: Administration  WindowsTelecharger Cours Systèmes d’exploitation windows: Administration  Windows
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 
Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications web
 
Rest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API SecurityRest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API Security
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Rapport DVWA: CSRF
Rapport DVWA: CSRFRapport DVWA: CSRF
Rapport DVWA: CSRF
 
OWASP Top 10 2021 What's New
OWASP Top 10 2021 What's NewOWASP Top 10 2021 What's New
OWASP Top 10 2021 What's New
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
 
Sécurité des réseaux
Sécurité des réseauxSécurité des réseaux
Sécurité des réseaux
 
Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015
 
OAuth2 - Introduction
OAuth2 - IntroductionOAuth2 - Introduction
OAuth2 - Introduction
 
Sécurité informatique
Sécurité informatiqueSécurité informatique
Sécurité informatique
 
Broken access controls
Broken access controlsBroken access controls
Broken access controls
 

Similaire à Vulnérabilité des sites web

Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuelles
Xavier Kress
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
Asma Messaoudi
 
20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif
LeClubQualiteLogicielle
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
Groupe Revolution 9
 
Les menaces applicatives
Les menaces applicativesLes menaces applicatives
Les menaces applicatives
Bee_Ware
 
Securite web is_ima
Securite web is_imaSecurite web is_ima
Securite web is_ima
Blidaoui Abdelhak
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
Sébastien GIORIA
 
La sécurité des applications avec ESAPI
La sécurité des applications avec ESAPILa sécurité des applications avec ESAPI
La sécurité des applications avec ESAPI
Takfarinas KENOUCHE
 
Durcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative WebDurcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative Web
Cyrille Grandval
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
Microsoft Décideurs IT
 
Sophia conf securite microservices - 2017
Sophia conf   securite microservices - 2017Sophia conf   securite microservices - 2017
Sophia conf securite microservices - 2017
SecludIT
 
Securité web
Securité webSecurité web
Securité web
Emmanuel Gautier
 
Owasp et les failles des applications web
Owasp et les failles des applications webOwasp et les failles des applications web
Owasp et les failles des applications web
Henrique Mukanda
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
davrous
 
Présentation menaces web2.0_cqsi_2008
Présentation menaces web2.0_cqsi_2008Présentation menaces web2.0_cqsi_2008
Présentation menaces web2.0_cqsi_2008
michelcusin
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
SOAT
 
Tuto atelier securisation_site_web
Tuto atelier securisation_site_webTuto atelier securisation_site_web
Tuto atelier securisation_site_web
sahar dridi
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Microsoft Technet France
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Microsoft Décideurs IT
 
Cybersécurité des projets webs
Cybersécurité des projets websCybersécurité des projets webs
Cybersécurité des projets webs
Christophe Villeneuve
 

Similaire à Vulnérabilité des sites web (20)

Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuelles
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
 
20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
 
Les menaces applicatives
Les menaces applicativesLes menaces applicatives
Les menaces applicatives
 
Securite web is_ima
Securite web is_imaSecurite web is_ima
Securite web is_ima
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
 
La sécurité des applications avec ESAPI
La sécurité des applications avec ESAPILa sécurité des applications avec ESAPI
La sécurité des applications avec ESAPI
 
Durcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative WebDurcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative Web
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
 
Sophia conf securite microservices - 2017
Sophia conf   securite microservices - 2017Sophia conf   securite microservices - 2017
Sophia conf securite microservices - 2017
 
Securité web
Securité webSecurité web
Securité web
 
Owasp et les failles des applications web
Owasp et les failles des applications webOwasp et les failles des applications web
Owasp et les failles des applications web
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Présentation menaces web2.0_cqsi_2008
Présentation menaces web2.0_cqsi_2008Présentation menaces web2.0_cqsi_2008
Présentation menaces web2.0_cqsi_2008
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
 
Tuto atelier securisation_site_web
Tuto atelier securisation_site_webTuto atelier securisation_site_web
Tuto atelier securisation_site_web
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
 
Cybersécurité des projets webs
Cybersécurité des projets websCybersécurité des projets webs
Cybersécurité des projets webs
 

Plus de Said Sadik

Etat de l’art approche et outils BI
Etat de l’art approche et outils BIEtat de l’art approche et outils BI
Etat de l’art approche et outils BI
Said Sadik
 
Mastering spring 5.0 - By SADIK SAID
Mastering spring 5.0 - By SADIK SAIDMastering spring 5.0 - By SADIK SAID
Mastering spring 5.0 - By SADIK SAID
Said Sadik
 
Gestion de Stock Sous Open ERP
Gestion de Stock  Sous Open ERP Gestion de Stock  Sous Open ERP
Gestion de Stock Sous Open ERP
Said Sadik
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQ
Said Sadik
 
INTRODUCTION A BPM
INTRODUCTION A BPMINTRODUCTION A BPM
INTRODUCTION A BPM
Said Sadik
 
Gestion de Projets
Gestion de Projets Gestion de Projets
Gestion de Projets
Said Sadik
 
Processus d’achat et de vente
Processus d’achat et de venteProcessus d’achat et de vente
Processus d’achat et de vente
Said Sadik
 
ECM: Entreprise Content Management
ECM: Entreprise Content ManagementECM: Entreprise Content Management
ECM: Entreprise Content Management
Said Sadik
 

Plus de Said Sadik (8)

Etat de l’art approche et outils BI
Etat de l’art approche et outils BIEtat de l’art approche et outils BI
Etat de l’art approche et outils BI
 
Mastering spring 5.0 - By SADIK SAID
Mastering spring 5.0 - By SADIK SAIDMastering spring 5.0 - By SADIK SAID
Mastering spring 5.0 - By SADIK SAID
 
Gestion de Stock Sous Open ERP
Gestion de Stock  Sous Open ERP Gestion de Stock  Sous Open ERP
Gestion de Stock Sous Open ERP
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQ
 
INTRODUCTION A BPM
INTRODUCTION A BPMINTRODUCTION A BPM
INTRODUCTION A BPM
 
Gestion de Projets
Gestion de Projets Gestion de Projets
Gestion de Projets
 
Processus d’achat et de vente
Processus d’achat et de venteProcessus d’achat et de vente
Processus d’achat et de vente
 
ECM: Entreprise Content Management
ECM: Entreprise Content ManagementECM: Entreprise Content Management
ECM: Entreprise Content Management
 

Vulnérabilité des sites web

  • 1. Vulnérabilités des Sites Web 04/06/2017 Vulnérabilités des Sites Web 1
  • 2. Plan I. Introduction II. Architecture web III. Les principales failles du web IV. TP V. Conclusion 04/06/2017 Vulnérabilités des Sites Web 2
  • 3. Introduction  Bien que les années 2000 aient vu l'explosion de la bulle Internet et l'arrivée du Web 2.0, les standards ont peu évolué. Pourtant les développeurs ont réussi à offrir de l'interactivité avec l'utilisateur et à mettre à disposition de véritables applications sur le Web.  Ces applications basées sur le protocole HTTP, indépendantes des plates- formes et langages d'implémentation, reposant sur des architectures Web. 04/06/2017 Vulnérabilités des Sites Web 3
  • 4. Introduction  Le Web est devenu un lieu où on peut échanger des informations mais il est également devenu un marché à part entière pour la vente et l’achat de biens matériels.  Les acteurs de ce nouveau marché ont besoin de sécurité sous tous ses aspects, tels que définis par l’ANSSI (Agence Nationale de Sécurité des Systèmes d'Information) « la protection de la confidentialité, de l’intégrité et de la disponibilité de l’information ». 04/06/2017 Vulnérabilités des Sites Web 4
  • 5. Architecture web • Réseau Internet • Composants Client • Le navigateur • Les scripts • Composant Serveurs • Serveurs Web • Serveurs d'application • Serveurs de données 04/06/2017 Vulnérabilités des Sites Web 5
  • 6. Architecture-Réseau Internet transmission physique des données s'assure que les paquets sont reçus indique où les données doivent être envoyées, sans garantie que la destination sera bien atteinte permet aux utilisateurs finaux de communiquer sur Internet avec des protocoles 04/06/2017 Vulnérabilités des Sites Web 6
  • 7. Architecture-Composant Client • Le Navigateur • le navigateur est une application cliente. Il permet d'envoyer des requêtes HTTP au serveur Web et d'en interpréter la réponse 04/06/2017 Vulnérabilités des Sites Web 7
  • 8. Architecture-Composant Client • Le Scripts • Ce sont des langages pour ajouter un dynamismes et de vivacité sur les sites web 04/06/2017 Vulnérabilités des Sites Web 8
  • 9. Architecture-Composant Serveurs • Serveurs WEB • l s’agit d’un ordinateur (une machine) relié à Internet et hébergeant des ressources. • peut être constitué : • D’un serveur http : assurer la communication entre un ordinateur client et serveur Le plus célèbre d’entre eux est Apache. • D’un serveur de base de données. L’un des plus connu est MySQL. • D’un interpréteur de langage dynamique • La fonction d'un serveur web est de répondre aux requêtes des navigateurs Internet (Internet Explorer, Firefox, Chrome, Opéra, Safari, ...). 04/06/2017 Vulnérabilités des Sites Web 9
  • 10. Architecture-Composant Serveurs • Serveurs d’application • Un moteur d'exécution pour le Web, un outil de développement, d'administration, de déploiement et d'exécution, un serveur de traitements • Exemple : Tomcat ,GlassFish,WebLogic… 04/06/2017 Vulnérabilités des Sites Web 10
  • 11. Architecture-Composant Serveurs • Serveurs de données • Ce sont des systèmes de gestion de bases de données permettent d'interroger les données et de les mettre à jour. • Exemples : MySQL , SQL SERVER, Oracle 04/06/2017 Vulnérabilités des Sites Web 11
  • 12. Les principales failles du web 04/06/2017 Vulnérabilités des Sites Web 12
  • 13. Violation de gestion d’authentification et de session 04/06/2017 Vulnérabilités des Sites Web 13
  • 14. Violation de gestion d’authentification et de session Regroupe les vulnérabilités permettant à un attaquant de s’approprier l’identité d’un utilisateur. Violation de gestion d’authentification Vol de session Objectifs : - Accéder à des fonctionnalités réservées à certaines personnes. - Accéder à des données confidentielles. Parades : - Exiger des mots de passe forts. - Utiliser un système de captcha. - Utiliser les cookies pour gérer les sessions. - Définir une durée de session maximale. 04/06/2017 Vulnérabilités des Sites Web 14
  • 15. • Mécanisme de connexion • Rappel : http est un protocole déconnecté 1. Authentification 2. Travail avec l’identifiant de session 1) 4) Envoi id de sessionUtilisateur Serveur http 3) Résultat 2) Demande de vérification E x t 1) Envoi id de session 4) Envoi id de session Utilisateur Serveur http 3) … 2) … E x t 04/06/2017 Vulnérabilités des Sites Web 15
  • 16. • Détournement de session Méthodes d’attaque 1. Fixation 2. Vol 3. Prédiction 4. Force brute Attaquant 1) Envoi id de session 4) Envoi id de session Utilisateur Serveur http 3) … 2) … E x t 5) Envoi id de session 04/06/2017 Vulnérabilités des Sites Web 16
  • 17. Mauvaise configuration de sécurité 04/06/2017 Vulnérabilités des Sites Web 17
  • 18. Mauvaise configuration de sécurité Cette faille regroupe toutes les vulnérabilités liées à des problèmes de configuration, sur tous les éléments de la couche applicative (serveurs, langage, framework, composants…). Attaque par manipulation d’URL Objectifs : - Accéder à des informations confidentielles. - Prendre le contrôle d’un serveur. Parades : - Ne pas attribuer aux composants plus de droits que nécessaire. - Etudier rigoureusement la configuration. 04/06/2017 Vulnérabilités des Sites Web 18
  • 19. • Source de vulnérabilité • Vulnérabilités laissées ouvertes par les composants de l’architecture • Solutions 1. Désactiver les options inutiles 2. Mettre à jour les composants 3. Installer les composants en version anglaise 4. Supprimer ou désactiver les comptes par défaut 04/06/2017 Vulnérabilités des Sites Web 19
  • 20. Stockage de données cryptographiques non sécurisé 04/06/2017 Vulnérabilités des Sites Web 20
  • 21. Stockage de données cryptographiques non sécurisé Cette faille de sécurité englobe toutes les faiblesses liées à la protection du stockage des données. La meilleure protection est la mise en place du chiffrement des informations. Objectifs : - Accéder à des informations confidentielles. - Prendre le contrôle d’un serveur. Parades : - Tous les moyens de stockage de données sensibles doivent être chiffrés. - la sauvegarde du moyen de stockage ne contient pas les données en clair 04/06/2017 Vulnérabilités des Sites Web 21
  • 23. Injection SQL SQL Injection, c’est quoi ? Injection SQL est parmi les vecteurs d’attaques les plus connus sur la toile!  son principe est de modifier une requête SQL grâce à un champ mal filtré dans le but d’exécuter une requête non prévue par l’application.  l’exploitation d’une Injection SQL peut avoir des conséquences désastreuses sur un site, elle peut permettre à un attaquant de : 04/06/2017 Vulnérabilités des Sites Web 23
  • 24. Injection SQL  Passer par une authentification.  Lire des données sensibles depuis les tables MySQL.  Injecter le nom et le schéma de la base de données.  Lire et écrire dans le système de fichier et potentiellement exécuter du code PHP. 04/06/2017 Vulnérabilités des Sites Web 24
  • 25. Injection SQL // page processlogin.php $username = $_POST['username']; $password = $_POST['password']; $sql = mysql_query("SELECT * FROM users WHERE username = '$username‘ AND password = '$password'") or die(mysql_error()); if(mysql_num_rows($sql) == 1) { echo "Bienvenue $username dans votre espace membre!"; } else { echo "Nom d'utilisateur et/ou mot de passe incorrecte"; } 04/06/2017 Vulnérabilités des Sites Web 25
  • 26. Injection SQL  Maintenant imaginons qu’un attaquant se connecte avec comme login : admin’–, la requête devient :  SELECT * FROM users WHERE username = ‘admin’–‘ AND password = ‘$password’ 04/06/2017 Vulnérabilités des Sites Web 26
  • 27. Injection SQL  La requête SQL va aboutir, le single quote permettra de fermer le délimiteur de la chaine admin et les deux tirées servent à mettre le reste de la requête en commentaire, du coup la vérification du mot de passe sera ignorée ;) Bienvenue admin dans votre espace membre! 04/06/2017 Vulnérabilités des Sites Web 27
  • 29. XSS  La faille XSS, a l’origine CSS (Cross Site Scripting) changé pour ne pas confondre avec le CSS des feuilles de style (Cascading Style Sheet).  XSS est un type de faille de sécurité des sites Web, que l’on trouve dans les applications Web mal sécurisé. 04/06/2017 Vulnérabilités des Sites Web 29
  • 30. XSS  Le principe de cette faille est d’injecter un code malveillant en langage de script dans un site web vulnérable, par exemple en déposant un message dans un forum qui redirige l’internaute vers un faux site (phishing) ou qui vole des informations (cookies). 04/06/2017 Vulnérabilités des Sites Web 30
  • 31. XSS  Les XSS sont très répandue sur le net, plus précisément dans les forums, livres d’or et les moteurs de recherches, La détection de la présence d’une faille XSS peut se faire par exemple en entrant un script Javascript dans un champ de formulaire ou dans une URL :  <script > alert (Hack) </script >Si une boîte de dialogue apparaît, on peut en conclure que l’application Web est sensible aux attaques de type XSS. 04/06/2017 Vulnérabilités des Sites Web 31
  • 33. RFI & LFI  Les failles de type RFI (Remote File Include) et LFI (Local File Include)Les RFI et LFI sont des vecteurs d’attaque particulièrement prisés et populaires auprès des hackers du fait de leur puissance de frappe et qu’ils soient encore méconnus.  Ces attaques RFI / LFI tirent partie des vulnérabilités PHP en injectant un code malicieux dans un URL permettant son exécution à distance. 04/06/2017 Vulnérabilités des Sites Web 33
  • 34. RFI & LFI  La fonction php include() permet d'inclure ce qui est contenu dans n'importe quel autre fichier dans une page web.  En réalité, le site est construit à partir d'une seule page qui appelle dynamiquement les articles et en place le contenu en son centre.  On le remarque notamment avec des URLs de la forme ?page=XXX. 04/06/2017 Vulnérabilités des Sites Web 34
  • 35. RFI & LFI  Seulement, quand cette fonction est utilisée sans trop prendre garde à ce que l'utilisateur pourrait faire, elle peut permettre un DoS (Denial of Service, c'est-à- dire le plantage du serveur) ou même l'éxécution de code arbitraire côté serveur.  Cette faille est l'une des plus dangereuses car elle donne réellement un accès complet au serveur 04/06/2017 Vulnérabilités des Sites Web 35
  • 36. Défaillance dans la restriction des accès à une URL 04/06/2017 Vulnérabilités des Sites Web 36
  • 37. Défaillance dans la restriction des accès à une URL-Principe • Cette faille permet à un utilisateur d'accéder à des fonctionnalités de l'application, voire des fichiers et répertoires du serveur HTTP sans y être habilité. • L'attaque par traversée de répertoires permet d'accéder à des fichiers du serveur HTTP notamment ceux contenant les clés privées de chiffrement. • Les applications vulnérables ouvrent des fichiers dont le nom est donné en paramètre de la requête HTTP. 04/06/2017 Vulnérabilités des Sites Web 37
  • 38. Défaillance dans la restriction des accès à une URL-Exemple d’attaque • Si l'attaquant envoie la requête avec le paramètre « lang=../../../../etc/passwd », il aura accès au fichier des mots de passe du système et tentera de se connecter au serveur HTTP avec un des comptes ainsi trouvés. 04/06/2017 Vulnérabilités des Sites Web 38
  • 39. Défaillance dans la restriction des accès à une URL- Précaution • les serveurs HTTP doivent être configurés pour ne pas permettre l'affichage du contenu des répertoires. 04/06/2017 Vulnérabilités des Sites Web 39
  • 40. Protection insuffisante de la couche transport 04/06/2017 Vulnérabilités des Sites Web 40
  • 41. Protection insuffisante de la couche transport- Principe • Sur Internet il existe un risque qu'une requête ou une réponse HTTP soit interceptée. Si elle contient des informations confidentielles transmises en clair, alors l'attaquant pourra les exploiter 04/06/2017 Vulnérabilités des Sites Web 41
  • 42. Protection insuffisante de la couche transport-Exemple • L'attaque du type « Homme du milieu » (ou « Man-in-the-Middle ») est une des attaques les plus répandues pour accéder aux données d'une application. • Si un attaquant réussit à compromettre un serveur proxy, il pourra intercepter toutes les communications. • Si en plus ce serveur est responsable du chiffrement des flux HTTP, il aura accès aux données les plus sensibles qui devaient être chiffrées. 04/06/2017 Vulnérabilités des Sites Web 42
  • 43. Protection insuffisante de la couche transport- Précaution • il faut mettre en place du chiffrement SSL pour TOUTES les pages. • les mots de passe et les identifiants de session ne doivent à aucun moment transiter en clair. • si les données stockées sont chiffrées, il faut s'assurer que tous les moyens de communication le soient aussi. 04/06/2017 Vulnérabilités des Sites Web 43
  • 44. Référence directe non sécurisée à un objet 04/06/2017 Vulnérabilités des Sites Web 44
  • 45. Référence directe non sécurisée à un objet- Principe • Cette vulnérabilité existe simplement parce que les paramètres de requêtes ne sont pas vérifiés avant traitement. • Si le paramètre vulnérable fait référence à un fichier ou à une valeur dans une base de données, il suffit de reconstruire la requête avec une valeur de paramètre normalement interdite pour y avoir accès. 04/06/2017 Vulnérabilités des Sites Web 45
  • 46. Référence directe non sécurisée à un objet- Exemple • Si l'utilisateur malveillant saisit dans son navigateur l'adresse de cette page avec pour paramètre « nom=nom_de_la_victime », il a alors accès au numéro de carte bancaire qu'il n'aurait jamais dû pouvoir voir 04/06/2017 Vulnérabilités des Sites Web 46
  • 47. Référence directe non sécurisée à un objet - Précaution • Pour protéger les données les plus confidentielles ou les fonctionnalités les plus avancées, il est recommandé de demander à l'utilisateur de saisir à nouveau son identifiant et son mot de passe avant de pouvoir y accéder. 04/06/2017 Vulnérabilités des Sites Web 47
  • 48. CSRF: Cross Site Request Forgery 04/06/2017 Vulnérabilités des Sites Web 48
  • 49. CSRF: Falsification de requête intersites (reflected csrf) • L'attaquant crée une page Web qui comporte un formulaire invisible par exemple. Ce dernier contient un script caché qui lance des actions de l'application. • L'attaquant piège l'utilisateur en mettant un lien vers cette page dans un courrier électronique ou sur des réseaux sociaux. • Si l'utilisateur s'y est récemment connecté, l'application va exécuter la commande sans le consentement de l'utilisateur. • Cette attaque fonctionnent car les données sensibles sont envoyé depuis le navigateur vers le serveur automatiquement • L’attaque ne fonctionne que si l’utilisateur est connecté 04/06/2017 Vulnérabilités des Sites Web 49
  • 50. CSRF: Falsification de requête intersites (stored csrf) • C'est l'application elle-même qui présente le code malicieux à l'utilisateur. • Pour ce faire l'attaquant a réussi a inséré du code malicieux dans les données de l'application Web. Chaque fois qu'un utilisateur parcourra la page qui va présenter ce code, le navigateur va l'interpréter et par conséquent va exécuter une commande de l'application. • L'application va alors accepter d'exécuter cet ordre comme si la demande provenait de l'utilisateur. Cette attaque a plus de chances de réussir car l'utilisateur s'est déjà connecté et utilise l'application. L'attaquant n'a pas de besoin de piéger un utilisateur. 04/06/2017 Vulnérabilités des Sites Web 50
  • 51. Exemple d'attaque • L'exemple suivant reprend la table « messages » et le script PHP pour l'insertion de données (voir paragraphe 3.3.2). Si ce script se nomme « add_message.php », le site de l'attaquant pourra utiliser le code suivant pour le faire exécuter par l'utilisateur : • L'utilisateur en parcourant la page de l'attaquant est alors automatiquement redirigé vers la page « add_message.php » avec les paramètres numsujet=6, nom=CSRF et message=action frauduleuse. 04/06/2017 Vulnérabilités des Sites Web 51
  • 52. Mesures de sécurité contre le CSRF • Bien que XSS et CSRF soient proches dans le principe, se protéger des attaques XSS ne permet pas de se protéger des attaques CSRF. • Pour se protéger, il faut utiliser uniquement des requêtes POST. Les méthodes GET doivent être bannies. Attention toutefois, dans les servlet Java la méthode « doGet() » fait appel à la méthode « doPost() » en redirigeant l'ensemble des paramètres. Dans ce cas l'utilisation de requêtes GET fonctionne. C'est pourquoi l'utilisation de POST n'est pas une protection suffisante. • Pour les pages qui manipulent des données sensibles, il faut demander à l'utilisateur de s'authentifier à nouveau. Cela permet de s'assurer que l'utilisateur est conscient de l'action et l'approuve. • L'utilisateur doit toujours vérifier que le lien sur lequel il clique est bien celui de l'application qu'il veut utiliser. 04/06/2017 Vulnérabilités des Sites Web 52
  • 54. Méfiez vous de vos services Web: la syntaxe XML Encryption officielle et le standard de traitement peuvent être rompus. 04/06/2017 Vulnérabilités des Sites Web 54
  • 55. XML Encryption (chiffrement XML) • Cette attaque, exploite une corrélation subtile entre le mode de chiffrement par bloc de fonctionnement, le codage des caractères de texte chiffré, et le comportement de réponse d'un service Web si un message XML ne peut pas être analysée correctement. • En d'autres termes, par l'envoi de texte chiffré à un service Web ciblé, et ensuite évaluer la réponse retournée par le serveur, le système de cryptage peut être déduit. • l'adversaire peut déchiffrer un texte chiffré en effectuant seulement 14 demandes par octet de texte en clair en moyenne, cela pose une menace grave et vraiment pratique de sécurité sur toutes les implémentations utilisées actuellement XML Encryption. 04/06/2017 Vulnérabilités des Sites Web 55
  • 56. XML Encryption (chiffrement XML): solution • La solution la plus probable, selon les chercheurs, consiste à remplacer le mode CBC dans le chiffrement XML avec quelque chose qui fournit non seulement la confidentialité des messages - comme il le fait maintenant - mais également l'intégrité du message. "Choix adéquates ont par exemple été normalisés dans la norme ISO / CEI 19772: 2009," ils ont dit. "Nous considérons cette solution comme très recommandable pour les futures versions de la norme XML Encryption." 04/06/2017 Vulnérabilités des Sites Web 56
  • 58. • Une faille présente depuis deux ans environ dans le logiciel OpenSSL, utilisée par NOMBREUX sites (2/3 du web), permet d'accéder aux mots de passe, numéros de carte bancaires ou encore à des clés de cryptage. | Marc Kjerland/CC BY-SA 2.0 04/06/2017 Vulnérabilités des Sites Web 58
  • 59. HeartBleed: Principe • Heartbleed n’est ni un virus, ni un maliciel (malware) quelconque. C’est tout simplement une erreur de codage bête, mais a été BIEN exploitée. • Quand deux serveurs sont sur le point d’entreprendre un échange sécurisé (certains diraient une poignée de main cryptée, ou encrypted handshake), ils mettent en place un processus appelé un battement de cœur (heartbeat). • Ce processus a essentiellement pour objectif de s’assurer que les deux ordinateurs qui communiquent ensemble soient encore en contact. Ainsi, si une des deux machines se voit déconnectée l’autre ne continuera pas inutilement à tenter de communiquer. Cette synchronisation, ce battement de cœur, correspond plus ou moins à un ping-pong de données qui se doit d’être maintenue pour qu’il y ait poursuite du dialogue. 04/06/2017 Vulnérabilités des Sites Web 59
  • 60. HeartBleed: Principe • C’est dans le processus heartbeat que l’attaquant intervient, le heartbeat (côté client) envoit un payload + le nombre de bits qu’il souhaite avoir en réponse, comme la limite est de 64 000 caractères (ou 64 k), l’attaquant conçoit une requête spéciale (malveillante), contenant le payload + le nombre limite après l’envoi du 1er payload (initial) au serveur, dans ce cas le serveur charge le 1 bit + le reste, au lieu de vérifier la taille de la réponse avec la taille de la requête, le serveur l’envoit tel que l’attaquant souhaite, l’attaquant ne reçoit donc pas 1 bit, mais plutôt 64 k bits d’informations contenant des clefs secrètes, des mots de passe, etc … (un vrai festin)!!! 04/06/2017 Vulnérabilités des Sites Web 60
  • 61. Solution au heartbleed Malheureusement, il n’y a à ce jour aucune solution à cette catastrophe d’internet, les experts disent qu’ils ont pu résoudre le problème en appliquant un patch (correctif) au logiciel OpenSSL, mais des pirates affirment qu’ils ont trouvé un moyen de forcer le serveur à se comporter comme « au bon vieux temps ». La seule solution est d’éviter les activités bancaire online, et l’envoi des données sensibles, jusqu’à nouvel ordre. 04/06/2017 Vulnérabilités des Sites Web 61
  • 63. Conclusion • la sécurité des applications web est un point qu’il ne faut pas négliger. • C’est un travail qui peut paraitre fastidieux, coûteux, pas forcément très utile pour des petites structures / sites mais quoi de mieux pour la sérénité et la satisfaction client que de savoir que son application est robuste et ne flanchera pas sous les attaques du premier pirate venu ? 04/06/2017 Vulnérabilités des Sites Web 63

Notes de l'éditeur

  1. Le PHP est un langage de programmation conçu pour le développement des sites internet, son utilisation est actuellement très répandue au travers des applications web.
  2. Clients web sous le risque  mauvaise conception des applications web (pas de filtrage et validation des entrées utilisateur – vulnérabilité n°1 des applications web selon OWASP)
  3. Certains vont se dire et pourquoi pas ne pas l'envoyer sur un serveur anonyme ou autre, mais c'est ça la faille !!!