Sécurité des applications web. Daniel Boteanu



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

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

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

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

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

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

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

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

INF8420 Éléments de sécurité informatique Hiver 2008 TRAVAIL PRATIQUE 2 Prof. : José M. Fernandez

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)

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

SSL. Secure Socket Layer. R. Kobylanski janvier version 1.1 FC INPG. Protocole SSL Application avec stunnel

Attaques applicatives

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

Extended communication server 4.1 : VoIP SIP service- Administration

TP JAVASCRIPT OMI4 TP5 SRC

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

DenyAll Protect. Sécurité & accélération. Parefeux pour applications et services Web. de vos applications.

SQL Server et Active Directory

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

Instructions Mozilla Thunderbird Page 1

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

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

SYSTÈMES D INFORMATIONS

Présentation de la solution Open Source «Vulture» Version 2.0

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

1. Formation F5 - Local Traffic Manager Configuring (LTM)

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

PHP 4 PARTIE : BASE DE DONNEES

Introduction. aux architectures web. de Single Sign-On

Stockage du fichier dans une table mysql:

How to Login to Career Page

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

Web Application Firewalls (WAF)

OZSSI NORD 4 JUIN LILLE. Conférence thématique: Sécurité des applications

Configurer la supervision pour une base MS SQL Server Viadéis Services

Pratique et administration des systèmes

OUTIL DE TRAVAIL COLLABORATIF

Mysql avec EasyPhp. 1 er mars 2006

Sécurité des usages du WEB. Pierre DUSART Damien SAUVERON

CREATION WEB DYNAMIQUE

Tom Pertsekos. Sécurité applicative Web : gare aux fraudes et aux pirates!

Groupe Eyrolles, 2004, ISBN :

Contenu. Cocher : Network Policy and Access Services > Next > Next. Cocher : Network Policy Server > Next > Install

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Installation d'un serveur RADIUS

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

Paris Airports - Web API Airports Path finding

Module BD et sites WEB

Déploiement de l infrastructure SOA. Retour d expérience Août 2013

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

Installation de Smokeping sur Debian

BeEF : Browser Exploitation Framework

Rapport de certification ANSSI-CSPN-2010/05. ModSecurity v2.5.12

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

Création d un «Web Worm»

DenyAll Detect. Documentation technique 27/07/2015

NOTICE INSTALLATION. ARCHANGE Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

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

Francis Mignault. ! Coauteur : Expert Oracle Application Express. ! Membre du Oracle APEX Advisory Board apex.oracle.com/vote

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Architecture Orientée Service, JSON et API REST

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

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

SSH, le shell sécurisé

Réseau - Sécurité - Métrologie - Data Center. Le leader du marché allemand des UTM débarque en France avec des arguments forts!

Hébergement de site web Damien Nouvel


IPS-Firewalls NETASQ SPNEGO

Guide d'installation rapide TFM-560X YO.13

Grandes tendances et leurs impacts sur l acquisition de produits et services TI.

PASS v2.0 : solution d authentification unique basée sur les composants Shibboleth Service Provider v2.5.1 et Identity Provider v2.3.

L infrastructure Sécurité de Microsoft. Active Directory RMS. Microsoft IAG

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

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

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

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

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

Attaques de type. Brandon Petty

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

WEB 2.0 : Vulnerabilty Reloaded!

Retour d expérience sur Prelude

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Sécurité informatique: introduction

Dr.Web Les Fonctionnalités

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification

Mise en place d un serveur Proxy sous Ubuntu / Debian

Security Exposed. #1 - Take the red pill. An introduction to hacking & security flaws. ... and follow the white rabbit

WEB page builder and server for SCADA applications usable from a WEB navigator

Sécurité des Web Services (SOAP vs REST)

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Transcription:

I F8420: Éléments de Sécurité des applications web Daniel Boteanu

Architecture des applications web Client légitime Internet HTTP 浀 HTML Server Web 2

Architecture des applications web Client légitime Internet Server Web Server BD HTTP HTML SQL 3

Architecture des applications web Client légitime Internet Server Web Server BD XML SQL HTTP HTML Serveur d application 4

Architecture des applications web Client légitime Internet Server Web Server BD XML SQL HTTP 浀 HTML Serveur d application Kerberos LDAP Serveur d authentification 5

Architecture des applications web Client légitime Client malicieux Internet Server Web Server BD XML SQL HTTP HTML Serveur d application Kerberos LDAP Serveur d authentification 6

Architecture des applications web Client légitime Internet Server Web Server BD HTTP HTTP XML SQL HTML 浀 HTML Client malicieux Pare-feu Kerberos LDAP Serveur d application Serveur d authentification 7

Problèmes de sécurité Authentification Vérification des données usager SQL injection Cross site scripting Parameter tampering Phishing (hameçonnage) Logique application 8

AUTHE TIFICATIO 9

Authentification Composantes impliquées Client légitime Internet Server Web Server BD Pare-feu Serveur d application Client malicieux Serveur d authentification 10

Authentification Canal de communication sécurisé (https) Challenge response ( TLM, Kerberos) Réauthentification à des intervalles sécurisés Permission des usagers Tester Authentifier le client Authentifier le serveur 浀 11

Authentification Authentification du serveur Certificat SSL 12

Authentification Authentification du serveur Certificat SSL Autre 13

ө (Input validation) VÉRIFICATIO DES DO ÉES USAGER 14

Ce qu on fait Vérification des données usager (Input validation) Client légitime Internet Server Web Server BD Pare-feu Serveur d application Client malicieux Serveur d authentification 15

Code source html Vérification des données usager (Input validation) <form action="mailto:yourname@yourdomain.com" method="post" onsubmit="return checkform(this);"> <script language="javascript" type="text/javascript"> <!-- function checkform ( form ) { // see http://www.thesitewizard.com/archive/validation.shtml // for an explanation of this script and how to use it on your // own website // ** START ** if (form.email.value == "") { alert( "Please enter your email address." ); form.email.focus(); return false ; } // ** END ** return true ; } //--> </script> 16

Ce qu on devrais faire Vérification des données usager (Input validation) Client légitime Internet Server Web Server BD Pare-feu Serveur d application Client malicieux Serveur d authentification 17

Attaques Injection SQL (SQL Injection) Cross Site Scripting (XSS) Variable tampering Vérification des données usager (Input validation) 18

Vérification des données usager SQL I JECTIO 19

Injection SQL (SQL Injection) Client légitime Vérification des données usager (Input validation) Server BD extract($_post); Server Web $req = "select mem_code from MEMBRES where mem_login = '$login' and mem_pwd = '$pass'"; $result = mysql_query($req) or die ("Error : the SQL request <br><br>".$req."<br><br> is not valid: ".mysql_error()); list($mem_code) = mysql_fetch_array($result); if (empty($mem_code)) { //verifier que la requette a retourne une reponse positive 20

Injection SQL (SQL Injection) Client légitime daniel Xa4!dfga Vérification des données usager (Input validation) Server BD select mem_code from MEMBRES where mem_login = 'daniel' and mem_pwd = 'Xa4!dfga' extract($_post); 5 Server Web $req = "select mem_code from MEMBRES where mem_login = 'daniel' and mem_pwd = 'Xa4!dfga'"; $result = mysql_query($req) or die ("Error : the SQL request <br><br>".$req."<br><br> is not valid: ".mysql_error()); list($mem_code) = mysql_fetch_array($result); if (empty($mem_code)) { //verifier que la requette a retourne une reponse positive 21

Injection SQL (SQL Injection) Vérification des données usager (Input validation) Server BD daniel ' or '1'='1 Client malicieux select mem_code from MEMBRES where mem_login = 'daniel' and mem_pwd = '' or '1'='1' extract($_post); Server Web $req = "select mem_code from MEMBRES where mem_login = 'daniel' and mem_pwd = '' or '1'='1'"; $result = mysql_query($req) or die ("Error : the SQL request <br><br>".$req."<br><br> is not valid: ".mysql_error()); list($mem_code) = mysql_fetch_array($result); if (empty($mem_code)) { //verifier que la requette a retourne une reponse positive 22

Injection SQL (SQL Injection) Vérification des données usager (Input validation) daniel Client malicieux x'; INSERT INTO members ('email','passwd','login_id','full_name') VALUES ('steve@unixwiz.net','hello','steve','steve Friedl');-- 23

Vérification des données usager CROSS SITE SCRIPTI G 24

Cross site scripting (XSS) Client légitime Gagner de l argent Search Vérification des données usager (Input validation) Search results for Gagner de l argent: Comment gagner de l'argent facile et des cadeaux sur internet L' objectif du blog est de présenter toutes les idées qui permettent d' économiser Server Web <html> <head></head> <body> extract($_post); $req = "select * from POSTS where title = '$stitle' <h1>search results for Gagner de l argent :</h1> <itemize> <item>comment gagner deacile et des cadeaux sur internet </item> <item>l' objectif du blog est de présenter toutes les idées qui permettent d' économiser </item> </itemize> </body> </html> 25

Cross site scripting (XSS) Vérification des données usager (Input validation) Search results for Super: <b>super</b> No results found Client malicieux Server Web Search <html> <head></head> <body> extract($_post); <h1>search results for <b>super</b> :</h1> No results found </itemize> </body> </html> $req = "select * from POSTS where title = '$stitle' 26

Cross site scripting (XSS) Vérification des données usager (Input validation) Server BD Post Client malicieux id message 1 Hello 2 Bien fait... 3 <script type="text/javascript">do cument.location.href= htt p://boteanu.com"</script> <script type="text/javascript">document.location.href= http://boteanu.com"</script> Your message has been posted 27

Cross site scripting (XSS) Client légitime Vérification des données usager (Input validation) Server BD Guestbook messages: Hello Bien fait... <h1>guestbook messages:</h1> Hello<br> Bien fait<br> <script type="text/javascript">document.location.hr ef= http://boteanu.com"</script><br>... id message 1 Hello 2 Bien fait... 3 <script type="text/javascript">docu ment.location.href= http://b oteanu.com"</script> 28

Comment se protéger? Valider les données de l usager sur le serveur Web et/ou sur le serveur d applications limiter la taille de l entrée refuser les caractères spéciaux \ / ; - < > accepter seulement les caractères nécessaires Utiliser les SQL Stored Procedures Gérer les permissions sur la basé de données usagers, rôles, permissions Messages d erreur Vérifications Vérification des données usager (Input validation) 29

Comment vérifier si un site est vulnérable? Vérification des données usager (Input validation) Rien fait pour protéger -> probablement vulnérable Développé sans gestion de projet -> probablement vulnérable Outils automatiques Nikto Acunetix ($$) WebScarab Autres (http://sectools.org/web-scanners.html) 30

Phishing HAMEÇO AGE 31

Hameçonnage (Phishing) Server Web Faux Client malicieux Vous avez gagné 1 million. Connectez vous sur le site de la banque en cliquant sur https://www.desjard1ns.com Client légitime Internet Server Web Server BD Pare-feu Serveur d application 32

Comment se protéger? Hameçonnage (Phishing) Filtrer le spam Authentification du serveur Eduquer les utilisateurs 33

LOGIQUE DE L APPLICATIO 34

Logique de l application Chaque attaque est différente Exploite la logique de l application Difficile à détecter Exemples: Acheter un livre de -20$ Créer un million d usagers et écrire des messages Enlever le câble réseau au milieu d une partie d échec 35

CO CLUSIO S 36

Conclusions Attaques web très populaires Facile de créer une application vulnérable Validation des données usager Éducation des usagers Principe de sécurité de l oignon (layered security) 37