SlideShare une entreprise Scribd logo
1  sur  1
Protection des applications web contre les attaques par injection de code SQL (SQLIA)
Mohamed YASSIN - Université du Québec à Montréal
PRÉSENTATION
Les vulnérabilités des applications web L’attaque par injection du code SQL (SQLIA)
Les contre-mesures avancées de SQLIA Conclusion et travail future
Les attaques SQLIA constituent une menace très sérieuse pour la
sécurité des applications web.
Le SQLIA connaît une croissance plutôt qu’une régression.
Les techniques simples de protection demeurent inefficaces et
incomplètes et dépendent du compétence de développeurs.
Les contres mesures avancées sont efficaces mais ne sont pas
critiques et nécessitent une modification du code source et
une infrastructure additionnelle sur les applications Web existants.
L'idée de notre travail future est de trouver une solution de
détection et de prévention efficace , critique et capable d'être
complètement automatisée.
•Les vulnérabilités des applications web
•L’attaque par injection du code SQL
(SQLIA)
•Les conséquences et les menaces de
SQLIA
•Scénario de SQLIA
•Les techniques de SQLIA
•Les techniques simples de protection
•Les contre-mesures avancées de SQLIA
•Conclusion et travail future
L'attaque SQLIA consiste à injecter du code SQL malveillant
afin d'exécuter ce code sans autorisation sur la base de
données d'une application Web.
Souvent, le développeur construit les requêtes dynamiques
à partir des entrées de l'utilisateur des pages web.
Si les paramètres d'entrée ne sont pas filtrés et ne sont pas
validés avant de construire les requêtes, le hacker peut
introduire
un code SQL malveillant à partir de ces paramètres.
Les développeurs ne sont pas sensibles à ce type d'attaque à
cause de leurs confiances complètes aux contrôles d'accès et
leurs inexpériences en sécurité.
Les pare-feux et les IDS ne détectent pas les attaques SQLIA
provenant des entrées de l'utilisateur.
Les entrées de l'utilisateur : Les données saisies par
l’utilisateur via les pages Web sont envoyés à travers http et les
requêtes GET et POST. Si le développeur ne valide pas ces 2
fonctions avant de construire une requête alors ces fonctions
constituent une vulnérabilité.
Les variables de serveur: L’utilisation des protocoles de mode
déconnecté oblige le serveur de conserver sur la machine de
client les variables permettant d’identifier le client . Ces
variables peuvent créer une vulnérabilité.
Les cookies: sont des fichiers interprétés par le serveur mais
conservés (en clair ou encodées) sur le client. Comme le client
contrôle le stockage des cookies alors le hacker peut injecter du
code dans les contenus du cookie.
Les adresses web (URL) :Le hacker peut introduire certains
caractères devant la référence d’un site web pour provoquer des
messages d’erreur.
Utilisation normal
L'utilisateur saisit dans NomUsager "jean" et dans MotPasse
"123".
•Select * from TblUsagers
Where NomUsager=‘jean’ and MotPasse='123'
string strQuery="Select * from TblUsagers " _
Where NomUsager='" + txtNomUsager.text + "' and
MotPasse='" + txtMotPasse.text + "'"
Les conséquences et les menaces de SQLIA
Le projet OWASP (Open Web Application Security Project)
classe le SQLIA en première position parmi les dix risques de
sé curité applicatifs Web les plus critiques.
90% des applications web sont victimes de SQLIA.
La confiance des clients dans le commerce é lectronique
risque
de diminuer.
L'attaque SQLIA brise la confidentialité, l'authenticité , l'intégrité et
la disponibilité des applications web.
Le hacker peut en ré alisant un SQLIA:
•Modifier, intercepter et écraser les données.
•Voler et mettre à jour les profils et les privilèges d'utilisateurs.
•Contourner les contrô les d'accès .
•Prendre le contrô le du serveur.
•Réaliser un déni de service.
•Exécuter des commandes malveillantes.
Une application Web est accessible par un grand nombre
d'utilisateurs via internet, ce qui multiplie les points d'attaques.
Le hacker exploite ces points d’attaques pour perpétrer son attaque.
Scénario de SQLIA
Utilisation malicieux
Le hacker saisit dans NomUsager "admin’ OR 1=1 --" et dans
MotPasse "123".
•Select * from TblUsagers
Where NomUsager='admin' OR 1=1 --' and MotPasse='123'
La requête SQL est toujours satisfaisable et l'attaque a réussie.
Les techniques de SQLIA(1)
Tautologies: introduire le code SQL pour que la requête soit
toujours satisfaisable. L’attaque peut contourner l’authentification
et le contrôle d’accès.
Requête incorrecte: injecter certains paramètres pour amener le
serveur d’application à afficher des messages d’erreur contenant
des informations confidentielles.
• Le hacker saisit dans NomUsager (‘) et dans MotPass (123).
•Select * from TblUsagers
Where NomUsager =''' AND and MotPasse='123'
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '123'.
Msg 105, Level 15, State 1, Line 3
Unclosed quotation mark after the character string ''
Union de requêtes: réunir une requête avec la requête existante
afin de retourner toujours des résultats.
• Le hacker saisit dans NomUsager (‘ UNION select * from
TBLUSERS --) et dans MotPass (123).
• Select * from TblUsers Where NomUsager=‘ ’
UNION select * from TblUsers --' and MotPasse='123'
Les techniques simples de protection
Validation des entrées : consiste à valider tous les entrées de
l’utilisateur avec leurs types de données prédéfinis.
•Inefficace pour les entrées de type chaîne de caractères.
Filtration des entrées :rejeter les caractères illégaux (‘,-…)
et accepter les caractères autorisés.
•Pas de liste finale
•Faux positifs
•Compliquer l’utilisation (O’BRAIN).
Procédure stockée : L'utilisation des procédures stockées au
lieu des requêtes dynamiques.
Vérification de GET et POST : vérifier les paramètres de ces
deux fonctions avant de construire les requêtes.
Contrôle d'accès :utiliser des comptes utilisateurs SQL à accès
limité (en lecture-seule).
•Ne protège pas contre les tautologies.
Black box testing : tester un programme de l’extérieur en
identifiant tous les points d'accès d’une application Web et en
essayant les attaques SQLIA possibles.
Contrôle du code statique :
• JDBC-checker : Outil intégré dans JDBC qui permet de vérifier
statiquement le type de requête SQL dynamiquement produit
pour prévenir l’attaque qui sert à provoquer des erreurs de
syntaxe.
• Approche de Wassermann et Su : Analyse statique pour
vérifier que les requêtes SQL produites ne contiennent pas une
tautologie.
SQLrand : fournit un cadre qui permet aux développeurs de créer
des requêtes en utilisant des instructions randomisés au lieu des
mots clés SQL.
Analyse statique et dynamique combinée (AMNESIA)
Cette approche se déroule en 4 étapes:
•Identifier tous les points d’accès vulnérables (HotSpots)
•Générer un modèle pour chaque requête dynamique
•Intercepter chaque requête avant de l'envoyer à la BD
•Vérifier chaque requête contre le modèle crée statiquement.
Les techniques de SQLIA(2)
Requête "Piggy-backed": injecter une commande malveillante
pour s'exécuter sur le serveur.
•Le hacker saisit dans NomUsager (‘’ OR 1=1 ; Drop Table TblUsers
--) et dans MotPasse "123".
•Select * from TblUsers Where NomUsager='' OR 1=1 ;
Drop Table TblUsers --' and MotPasse='123‘
•L’intégrité des données (Update) .
•Déni de service (Shut Down).
Procédure stockée :Si le développeur exécute une requête
dynamiquement dans une procédure stockée alors le hacker peut
réaliser tous les types de SQLIA.
CREATE PROCEDURE ProcedureVulnerable
@NomUsager nvarchar(50), @MotPasse nvarchar(50)
AS
BEGIN
execute('Select * from TBLUsers
where NOM_USAGER='''+ @NomUsager + ''' and MotPasse=''' + @MotPasse + '''')
END
GO
Contre-mesures Modification
du code
source
Détection Prévention Infrastructure
additionnelle
Formation de
développeurs
AMNESIA Non Automatiqu
e
Automatique Aucun Aucun
Black Box
Testing
Non Automatiqu
e
Génération
des rapports
Aucun Aucun
JDBC-Checker Non Automatiqu
e
Suggestion
de code
Aucun Oui
SQLRand Oui Automatiqu
e
Automatique Proxy Oui
Tableau d'évaluation
Architecture SQL rand Architecture AMNESIA

Contenu connexe

Tendances

Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1Tarek MOHAMED
 
INITIATION A LA SÉCURITÉ INFORMATIQUE.pptx
INITIATION A LA SÉCURITÉ INFORMATIQUE.pptxINITIATION A LA SÉCURITÉ INFORMATIQUE.pptx
INITIATION A LA SÉCURITÉ INFORMATIQUE.pptxLeandre Cof's Yeboue
 
Sécurité informatique - Etat des menaces
Sécurité informatique - Etat des menacesSécurité informatique - Etat des menaces
Sécurité informatique - Etat des menacesMaxime ALAY-EDDINE
 
Les 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPLes 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPyaboukir
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
Cours java avance avancé thread arraylist
Cours java avance avancé thread arraylistCours java avance avancé thread arraylist
Cours java avance avancé thread arraylistHoussem Hamrouni
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratiqueAbdelouahed Abdou
 
IDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAUIDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAUCHAOUACHI marwen
 
Mise en place d’un système de détection
Mise en place d’un système de détectionMise en place d’un système de détection
Mise en place d’un système de détectionManassé Achim kpaya
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introductionneuros
 
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 actuellesXavier Kress
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaAziz Darouichi
 
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Khalid EDAIG
 

Tendances (20)

Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1
 
INITIATION A LA SÉCURITÉ INFORMATIQUE.pptx
INITIATION A LA SÉCURITÉ INFORMATIQUE.pptxINITIATION A LA SÉCURITÉ INFORMATIQUE.pptx
INITIATION A LA SÉCURITÉ INFORMATIQUE.pptx
 
Sécurité informatique - Etat des menaces
Sécurité informatique - Etat des menacesSécurité informatique - Etat des menaces
Sécurité informatique - Etat des menaces
 
Les 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPLes 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASP
 
QCM Sécurité Informatique
QCM Sécurité InformatiqueQCM Sécurité Informatique
QCM Sécurité Informatique
 
Java RMI
Java RMIJava RMI
Java RMI
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Introduction XSS
Introduction XSSIntroduction XSS
Introduction XSS
 
Cours java avance avancé thread arraylist
Cours java avance avancé thread arraylistCours java avance avancé thread arraylist
Cours java avance avancé thread arraylist
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratique
 
IDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAUIDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAU
 
Presentation Spring
Presentation SpringPresentation Spring
Presentation Spring
 
Mise en place d’un système de détection
Mise en place d’un système de détectionMise en place d’un système de détection
Mise en place d’un système de détection
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
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
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
 

En vedette

SQL Injections - A Powerpoint Presentation
SQL Injections - A Powerpoint PresentationSQL Injections - A Powerpoint Presentation
SQL Injections - A Powerpoint PresentationRapid Purple
 
Ppt on sql injection
Ppt on sql injectionPpt on sql injection
Ppt on sql injectionashish20012
 
Introduction à la sécurité des applications web avec php [fr]
Introduction à la sécurité des applications web avec php [fr]Introduction à la sécurité des applications web avec php [fr]
Introduction à la sécurité des applications web avec php [fr]Wixiweb
 
Types of sql injection attacks
Types of sql injection attacksTypes of sql injection attacks
Types of sql injection attacksRespa Peter
 
Sql Injection attacks and prevention
Sql Injection attacks and preventionSql Injection attacks and prevention
Sql Injection attacks and preventionhelloanand
 
Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012Nicolas Georgeault
 
Yakari en illimité sur Tiny Kids!
Yakari en illimité sur Tiny Kids!Yakari en illimité sur Tiny Kids!
Yakari en illimité sur Tiny Kids!Tiny Kids
 
2008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 20082008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 2008Patrick Guimonet
 
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...Microsoft Technet France
 
2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédiblePatrick Guimonet
 
Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8 Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8 ayoub damir
 
alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)Alphorm
 

En vedette (20)

SQL Injections - A Powerpoint Presentation
SQL Injections - A Powerpoint PresentationSQL Injections - A Powerpoint Presentation
SQL Injections - A Powerpoint Presentation
 
SQL Injection
SQL Injection SQL Injection
SQL Injection
 
Sql injection
Sql injectionSql injection
Sql injection
 
Ppt on sql injection
Ppt on sql injectionPpt on sql injection
Ppt on sql injection
 
Introduction à la sécurité des applications web avec php [fr]
Introduction à la sécurité des applications web avec php [fr]Introduction à la sécurité des applications web avec php [fr]
Introduction à la sécurité des applications web avec php [fr]
 
SQL 2014 et la gestion de la sécurité
SQL 2014 et la gestion de la sécurité SQL 2014 et la gestion de la sécurité
SQL 2014 et la gestion de la sécurité
 
SQL Injections (Part 1)
SQL Injections (Part 1)SQL Injections (Part 1)
SQL Injections (Part 1)
 
SQL Injection
SQL InjectionSQL Injection
SQL Injection
 
Types of sql injection attacks
Types of sql injection attacksTypes of sql injection attacks
Types of sql injection attacks
 
Sql Injection attacks and prevention
Sql Injection attacks and preventionSql Injection attacks and prevention
Sql Injection attacks and prevention
 
Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012
 
Cours Secu Web
Cours Secu WebCours Secu Web
Cours Secu Web
 
Yakari en illimité sur Tiny Kids!
Yakari en illimité sur Tiny Kids!Yakari en illimité sur Tiny Kids!
Yakari en illimité sur Tiny Kids!
 
2008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 20082008-09-30 Présentation Générale SQL Server 2008
2008-09-30 Présentation Générale SQL Server 2008
 
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
 
2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible
 
Sql injection
Sql injectionSql injection
Sql injection
 
Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8 Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8
 
alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)
 
Securité web
Securité webSecurité web
Securité web
 

Similaire à Les attaques par injection sql

Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications webMarcel TCHOULEGHEU
 
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éeMarie Tapia
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Asma Messaoudi
 
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 actuellesBee_Ware
 
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 WebCyrille Grandval
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouseSébastien GIORIA
 
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 applicatifLeClubQualiteLogicielle
 
Tuto atelier securisation_site_web
Tuto atelier securisation_site_webTuto atelier securisation_site_web
Tuto atelier securisation_site_websahar dridi
 
Epitech securite-2012.key
Epitech securite-2012.keyEpitech securite-2012.key
Epitech securite-2012.keyDamien Seguy
 
Les menaces applicatives
Les menaces applicativesLes menaces applicatives
Les menaces applicativesBee_Ware
 
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 webHenrique Mukanda
 
mise en pratique de l'outil Skipfish
mise en pratique de l'outil Skipfishmise en pratique de l'outil Skipfish
mise en pratique de l'outil SkipfishMounia EL
 
Conférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
Conférence #nwxtech2 : Sécurité web/PHP par Maxime MauchausséeConférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
Conférence #nwxtech2 : Sécurité web/PHP par Maxime MauchausséeNormandie Web Xperts
 
Introduction-aux-vulnerabilites-des-applications-Web (1).pptx
Introduction-aux-vulnerabilites-des-applications-Web (1).pptxIntroduction-aux-vulnerabilites-des-applications-Web (1).pptx
Introduction-aux-vulnerabilites-des-applications-Web (1).pptxouiamlamghari12
 
Sécurisation d'un site internet
Sécurisation d'un site internetSécurisation d'un site internet
Sécurisation d'un site internetwaggaland
 
Cours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partieCours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partiekadzaki
 
injection sql for cybersecurity studentsss.pptx
injection sql for cybersecurity studentsss.pptxinjection sql for cybersecurity studentsss.pptx
injection sql for cybersecurity studentsss.pptxChaymaeElhasnaoui
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiENSET, Université Hassan II Casablanca
 
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V012010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01Sébastien GIORIA
 

Similaire à Les attaques par injection sql (20)

Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications web
 
Securite web is_ima
Securite web is_imaSecurite web is_ima
Securite web is_ima
 
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
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
 
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
 
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
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
 
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
 
Tuto atelier securisation_site_web
Tuto atelier securisation_site_webTuto atelier securisation_site_web
Tuto atelier securisation_site_web
 
Epitech securite-2012.key
Epitech securite-2012.keyEpitech securite-2012.key
Epitech securite-2012.key
 
Les menaces applicatives
Les menaces applicativesLes menaces applicatives
Les menaces applicatives
 
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
 
mise en pratique de l'outil Skipfish
mise en pratique de l'outil Skipfishmise en pratique de l'outil Skipfish
mise en pratique de l'outil Skipfish
 
Conférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
Conférence #nwxtech2 : Sécurité web/PHP par Maxime MauchausséeConférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
Conférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
 
Introduction-aux-vulnerabilites-des-applications-Web (1).pptx
Introduction-aux-vulnerabilites-des-applications-Web (1).pptxIntroduction-aux-vulnerabilites-des-applications-Web (1).pptx
Introduction-aux-vulnerabilites-des-applications-Web (1).pptx
 
Sécurisation d'un site internet
Sécurisation d'un site internetSécurisation d'un site internet
Sécurisation d'un site internet
 
Cours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partieCours php & Mysql - 5éme partie
Cours php & Mysql - 5éme partie
 
injection sql for cybersecurity studentsss.pptx
injection sql for cybersecurity studentsss.pptxinjection sql for cybersecurity studentsss.pptx
injection sql for cybersecurity studentsss.pptx
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V012010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
 

Les attaques par injection sql

  • 1. Protection des applications web contre les attaques par injection de code SQL (SQLIA) Mohamed YASSIN - Université du Québec à Montréal PRÉSENTATION Les vulnérabilités des applications web L’attaque par injection du code SQL (SQLIA) Les contre-mesures avancées de SQLIA Conclusion et travail future Les attaques SQLIA constituent une menace très sérieuse pour la sécurité des applications web. Le SQLIA connaît une croissance plutôt qu’une régression. Les techniques simples de protection demeurent inefficaces et incomplètes et dépendent du compétence de développeurs. Les contres mesures avancées sont efficaces mais ne sont pas critiques et nécessitent une modification du code source et une infrastructure additionnelle sur les applications Web existants. L'idée de notre travail future est de trouver une solution de détection et de prévention efficace , critique et capable d'être complètement automatisée. •Les vulnérabilités des applications web •L’attaque par injection du code SQL (SQLIA) •Les conséquences et les menaces de SQLIA •Scénario de SQLIA •Les techniques de SQLIA •Les techniques simples de protection •Les contre-mesures avancées de SQLIA •Conclusion et travail future L'attaque SQLIA consiste à injecter du code SQL malveillant afin d'exécuter ce code sans autorisation sur la base de données d'une application Web. Souvent, le développeur construit les requêtes dynamiques à partir des entrées de l'utilisateur des pages web. Si les paramètres d'entrée ne sont pas filtrés et ne sont pas validés avant de construire les requêtes, le hacker peut introduire un code SQL malveillant à partir de ces paramètres. Les développeurs ne sont pas sensibles à ce type d'attaque à cause de leurs confiances complètes aux contrôles d'accès et leurs inexpériences en sécurité. Les pare-feux et les IDS ne détectent pas les attaques SQLIA provenant des entrées de l'utilisateur. Les entrées de l'utilisateur : Les données saisies par l’utilisateur via les pages Web sont envoyés à travers http et les requêtes GET et POST. Si le développeur ne valide pas ces 2 fonctions avant de construire une requête alors ces fonctions constituent une vulnérabilité. Les variables de serveur: L’utilisation des protocoles de mode déconnecté oblige le serveur de conserver sur la machine de client les variables permettant d’identifier le client . Ces variables peuvent créer une vulnérabilité. Les cookies: sont des fichiers interprétés par le serveur mais conservés (en clair ou encodées) sur le client. Comme le client contrôle le stockage des cookies alors le hacker peut injecter du code dans les contenus du cookie. Les adresses web (URL) :Le hacker peut introduire certains caractères devant la référence d’un site web pour provoquer des messages d’erreur. Utilisation normal L'utilisateur saisit dans NomUsager "jean" et dans MotPasse "123". •Select * from TblUsagers Where NomUsager=‘jean’ and MotPasse='123' string strQuery="Select * from TblUsagers " _ Where NomUsager='" + txtNomUsager.text + "' and MotPasse='" + txtMotPasse.text + "'" Les conséquences et les menaces de SQLIA Le projet OWASP (Open Web Application Security Project) classe le SQLIA en première position parmi les dix risques de sé curité applicatifs Web les plus critiques. 90% des applications web sont victimes de SQLIA. La confiance des clients dans le commerce é lectronique risque de diminuer. L'attaque SQLIA brise la confidentialité, l'authenticité , l'intégrité et la disponibilité des applications web. Le hacker peut en ré alisant un SQLIA: •Modifier, intercepter et écraser les données. •Voler et mettre à jour les profils et les privilèges d'utilisateurs. •Contourner les contrô les d'accès . •Prendre le contrô le du serveur. •Réaliser un déni de service. •Exécuter des commandes malveillantes. Une application Web est accessible par un grand nombre d'utilisateurs via internet, ce qui multiplie les points d'attaques. Le hacker exploite ces points d’attaques pour perpétrer son attaque. Scénario de SQLIA Utilisation malicieux Le hacker saisit dans NomUsager "admin’ OR 1=1 --" et dans MotPasse "123". •Select * from TblUsagers Where NomUsager='admin' OR 1=1 --' and MotPasse='123' La requête SQL est toujours satisfaisable et l'attaque a réussie. Les techniques de SQLIA(1) Tautologies: introduire le code SQL pour que la requête soit toujours satisfaisable. L’attaque peut contourner l’authentification et le contrôle d’accès. Requête incorrecte: injecter certains paramètres pour amener le serveur d’application à afficher des messages d’erreur contenant des informations confidentielles. • Le hacker saisit dans NomUsager (‘) et dans MotPass (123). •Select * from TblUsagers Where NomUsager =''' AND and MotPasse='123' Msg 102, Level 15, State 1, Line 3 Incorrect syntax near '123'. Msg 105, Level 15, State 1, Line 3 Unclosed quotation mark after the character string '' Union de requêtes: réunir une requête avec la requête existante afin de retourner toujours des résultats. • Le hacker saisit dans NomUsager (‘ UNION select * from TBLUSERS --) et dans MotPass (123). • Select * from TblUsers Where NomUsager=‘ ’ UNION select * from TblUsers --' and MotPasse='123' Les techniques simples de protection Validation des entrées : consiste à valider tous les entrées de l’utilisateur avec leurs types de données prédéfinis. •Inefficace pour les entrées de type chaîne de caractères. Filtration des entrées :rejeter les caractères illégaux (‘,-…) et accepter les caractères autorisés. •Pas de liste finale •Faux positifs •Compliquer l’utilisation (O’BRAIN). Procédure stockée : L'utilisation des procédures stockées au lieu des requêtes dynamiques. Vérification de GET et POST : vérifier les paramètres de ces deux fonctions avant de construire les requêtes. Contrôle d'accès :utiliser des comptes utilisateurs SQL à accès limité (en lecture-seule). •Ne protège pas contre les tautologies. Black box testing : tester un programme de l’extérieur en identifiant tous les points d'accès d’une application Web et en essayant les attaques SQLIA possibles. Contrôle du code statique : • JDBC-checker : Outil intégré dans JDBC qui permet de vérifier statiquement le type de requête SQL dynamiquement produit pour prévenir l’attaque qui sert à provoquer des erreurs de syntaxe. • Approche de Wassermann et Su : Analyse statique pour vérifier que les requêtes SQL produites ne contiennent pas une tautologie. SQLrand : fournit un cadre qui permet aux développeurs de créer des requêtes en utilisant des instructions randomisés au lieu des mots clés SQL. Analyse statique et dynamique combinée (AMNESIA) Cette approche se déroule en 4 étapes: •Identifier tous les points d’accès vulnérables (HotSpots) •Générer un modèle pour chaque requête dynamique •Intercepter chaque requête avant de l'envoyer à la BD •Vérifier chaque requête contre le modèle crée statiquement. Les techniques de SQLIA(2) Requête "Piggy-backed": injecter une commande malveillante pour s'exécuter sur le serveur. •Le hacker saisit dans NomUsager (‘’ OR 1=1 ; Drop Table TblUsers --) et dans MotPasse "123". •Select * from TblUsers Where NomUsager='' OR 1=1 ; Drop Table TblUsers --' and MotPasse='123‘ •L’intégrité des données (Update) . •Déni de service (Shut Down). Procédure stockée :Si le développeur exécute une requête dynamiquement dans une procédure stockée alors le hacker peut réaliser tous les types de SQLIA. CREATE PROCEDURE ProcedureVulnerable @NomUsager nvarchar(50), @MotPasse nvarchar(50) AS BEGIN execute('Select * from TBLUsers where NOM_USAGER='''+ @NomUsager + ''' and MotPasse=''' + @MotPasse + '''') END GO Contre-mesures Modification du code source Détection Prévention Infrastructure additionnelle Formation de développeurs AMNESIA Non Automatiqu e Automatique Aucun Aucun Black Box Testing Non Automatiqu e Génération des rapports Aucun Aucun JDBC-Checker Non Automatiqu e Suggestion de code Aucun Oui SQLRand Oui Automatiqu e Automatique Proxy Oui Tableau d'évaluation Architecture SQL rand Architecture AMNESIA