Protéger son site web des attaques Sql Injection

Documents pareils
PySQLi. Framework d'injection de code SQL

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de

SQL Parser XML Xquery : Approche de détection des injections SQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

PHP 4 PARTIE : BASE DE DONNEES

SQL MAP. Etude d un logiciel SQL Injection

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

La Sécurité des Données en Environnement DataCenter

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Comment mettre en ligne un site WordPress local

TP Bases de données réparties

DÉVELOPPER DES APPLICATIONS WEB SÉCURISÉES

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

Etude et développement d un moteur de recherche

JAB, une backdoor pour réseau Win32 inconnu

Bee Ware. Cible de Sécurité CSPN. Validation Fonctionnelle Validation Fonctionnelle Bon pour application AMOA BEEWARE BEEWARE

Sécurité des bases de données Nicolas Jombart Alain Thivillon

Partie II Cours 3 (suite) : Sécurité de bases de données

Vulnérabilités et solutions de sécurisation des applications Web

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Stockage du fichier dans une table mysql:

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

GER helpdesk permet de traiter et d optimiser la gestion de vos interventions au sein de chaque bureaux.

Introduction à JDBC. Accès aux bases de données en Java

Attaques applicatives

1 La visualisation des logs au CNES

Découvrir les vulnérabilités au sein des applications Web

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Architectures web/bases de données

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Manuel d'installation

Mysql. Les requêtes préparées Prepared statements

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Module BD et sites WEB

Les bases de données

Une approche positive du filtrage applicatif Web. Didier «grk» Conchaudron Sébastien «blotus» Blot

18 TCP Les protocoles de domaines d applications

SYSTÈMES D INFORMATIONS

Bases de données et sites WEB

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria

ADF 2009 Sécurisation d applications PHP/MySQL

API HTTP DOCUMENTATION TECHNIQUE PLATEFORME SAAS D'ENVOI DE SMS. Version Mise à jour : 3 juillet 2015

BTS/CGO P10 SYSTEME INFORMATION Année

Cours: Administration d'une Base de Données

PHP. PHP et bases de données

BIRT (Business Intelligence and Reporting Tools)

Vulnérabilités et sécurisation des applications Web

PlAtEFOrmE SAAS d'envoi de SmS. suite couv INTEGREZ. LE SmS A SA COMMUNICATION. dossier de PrESSE.

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état.

Authentification et contrôle d'accès dans les applications web

Cherche. Champ de saisie. Langue de. l interface. 1. Informations et. à l utilisation. NEBIS recherche. et trouver. Prêt

ADF Reverse Proxy. Thierry DOSTES

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Analyse statique de code dans un cycle de développement Web Retour d'expérience

Sécurité des Applications Web Comment Minimiser les Risques d Attaques les plus Courants

PHP et les Bases de données - Généralités

Portail du Consommateur. Guide d utilisation. Du dépôt de requêtes

Mysql avec EasyPhp. 1 er mars 2006

ITSR43 : INGÉNIERIE DES SYSTÈMES D INFORMATION Benoît Darties INTRODUCTION NOTION D INFORMATION QUELLES DONNÉES? EXPLOITATION DES DONNÉES

Programmation Web. Introduction

MODE D EMPLOI WORDPRESS

Devenez un véritable développeur web en 3 mois!

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Revue de code Sécuritéou Test d Intrusion Applicatif. Quel est le plus efficace pour évaluer un niveau de sécurité applicatif?

MailStore Server 7 Caractéristiques techniques

Groupe Eyrolles, 2004, ISBN :

Pratique et administration des systèmes

Bienvenue à l historien virtuel 2.0

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Compromission d'un environnement VOIP Cisco Exploitation du Call Manager SSTIC Francisco. Juin 2013 LEXFO 1

Serveur Web Apache. Jean-Marc Robert Génie logiciel et des TI

SAS BI DASHBOARD 4.3 : POUR LE MEILLEUR ET POUR LE FILTRE

SUPPORT DE COURS / PHP PARTIE 3

Console IAP Manuel d utilisation

2 S I M 1 P H O N E G U I D E U T I L I S A T E U R. Guide d utilisation E-commerce / Prestashop

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

FileMaker Server 14. Aide FileMaker Server

Java DataBaseConnectivity

Traitement et exploration du fichier Log du Serveur Web, pour l extraction des connaissances: Web Usage Mining

Aide à la Détection de Faiblesses d un site Web Mandataire inverse, Modsecurity

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

CREATION WEB DYNAMIQUE

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

MANUEL D'INSTALLATION SUR WINDOWS 2003/2008 SERVER

L3 informatique TP n o 2 : Les applications réseau

Transcription:

13 Protéger son site web des attaques Sql Injection

LES BONNES PRATIQUES en sécurité de l information 1 PROTÉGER SON SITE WEB DES ATTAQUES SQL INJECTION Les attaques de type injection sont considérées comme l une des attaques les plus critiques. Dans les documents OWASP TOP10 des années 2007, 2010 et 2013, ce type d attaque occupe toujours les toutes premières positions. Une injection SQL fait en général référence à une attaque qui cible les applications web qui interagissent dynamiquement avec une source de donnée, dans le cas usuel, une base de données.cette attaque est réalisée en injectant du code SQL dans une entrée utilisateur dans le but de former une nouvelle requête SQL et qui est non prévue par le programmeur. Cela permet à un attaquant de récupérer des données sensibles à partir de la base de données (récupérer des mots de passe par exemple). Une telle attaque cible une faille dans une application web. Ce type de faille peut exister si les entrées utilisateur (formulaires, URL ou tout entête HTTP) ne sont pas filtrées correctement et sont utilisées comme paramètres pour récupérer des informations à partir de la base de données. Exemple de faille : page d authentification Nous illustrons un exemple de faille par une page d authentification. Cette page contient deux champs : le champ utilisateur et le champ mot de passe. Ces deux données sont passées à un code PHP qui va vérifier leur légitimité par rapport à une base de données : texte : <?php mysql_connect(...); mysql_sqlectdb(..) ; //récupération des paramètres

$utilisateur=$_post[ user ] ; $password=$_post[ password ] ; //construction de la requête SQL $requete= SELECT * FROM user WHERE user=. $utilisateur. AND password=. $password ; //exécution de la requête mysql_query($requete) ;...?> Ici, la requête SQL est construite à partir des données envoyées par le formulaire. Aucune modification ou traitement sur ces données n est effectué. Exemple d exploitation : contournement du mécanisme d authentification Le code précédent contient une vulnérabilité de type SQL injection. Les paramètres du formulaire sont envoyés tels quels. L attaquant peut injecter du code SQL dans l un des champs du formulaire. Il peut par exemple insérer: Utilisateur : admin Mot de passe : or 1=1 -- La requête devient après construction : SELECT * FROM user WHERE user= admin AND password= or 1=1 -- La condition sur le mot de passe est toujours évaluée à vraie. L attaquant peut donc se connecter avec l identifiant admin sans vraiment connaître le mot de passe. LES BONNES PRATIQUES en sécurité de l information 2

LES BONNES PRATIQUES en sécurité de l information Classification des injections SQL : Outre l exemple précédent, plusieurs variantes des attaques par injection SQL existent, elles peuvent être classées comme suit : Tautologies : le principe ici est d injecter un code pour que les instructions conditionnelles soient toujours évaluées à vraie (exemple du contournement du mécanisme d authentification). Requête avec union : le but est d exploiter un paramètre de la requête pour extraire des données d une table (autre que celle normalement utilisée dans la requête). Requête Piggy-Backed : l attaquant essaie avec ce type d attaque d injecter une nouvelle requête sans modifier la requête originale. Requête incorrecte : elle consiste à causer intentionnellement une erreur dans la requête afin de récolter des informations importantes sur le système, l application web ou la base de données. Procédures stockées : le principe est d exécuter les procédures stockées fournies par le SGBD. Dans les SGBD modernes, ces procédures permettent même l interaction avec le système d exploitation. Inférence : consiste à modifier la requête pour simuler un mécanisme de réponse vrai ou faux. Comme le site ne retourne aucun message, l attaquant doit observer le changement des pages du site web afin d en déduire la réponse. Encodage alternatif : est utilisé conjointement avec les autres techniques. Son but principal étant d éviter la détection par les mécanismes de défense existants. 3

Techniques de protection : Plusieurs techniques existent pour mitiger le risque des attaques par injection SQL. Leur utilisation est grandement recommandée voir même obligatoire. Il est très important de prendre l habitude de les utiliser notamment pour les développeurs. Les procédures stockées : en utilisant cette technique, les données entrées par l utilisateur sont transmises comme paramètres, sans risque d injection. Les expressions régulières : utiliser ces dernières permet de s assurer que les données entrées par l utilisateur sont bien de la forme souhaitée. Principe moindre privilège : utiliser le principe du moindre privilège afin de limiter les droits des utilisateurs de l application web ainsi que ceux de la base de données et ainsi limiter les risques ou les dégâts en cas d intrusion. Les requêtes paramétrées : en utilisant une requête paramétrée, c est le SGBD qui se charge d échapper les caractères selon le type des paramètres. Les fonctions d échappement : utiliser les fonctions d échappement (exemple des fonctions mysql_real_escape_ string et addslashes dans PHP) afin de filtrer les caractères spéciaux. LES BONNES PRATIQUES en sécurité de l information 4