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



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

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

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

Attaques applicatives

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

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

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

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

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

Sécurité des applications web. Daniel Boteanu

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.

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

Sécuriser les applications web


Protection des protocoles

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

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

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

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

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

Module BD et sites WEB

SYSTÈMES D INFORMATIONS

Hébergement de site web Damien Nouvel

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

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

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

Sécurité des réseaux Les attaques

CREATION WEB DYNAMIQUE

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

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

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

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

Pratique et administration des systèmes

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

Mise en place d un serveur Proxy sous Ubuntu / Debian

Les formations. ENI Ecole Informatique

Stockage du fichier dans une table mysql:

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

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

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

Création d un «Web Worm»

ADF 2009 Sécurisation d applications PHP/MySQL

DenyAll Detect. Documentation technique 27/07/2015

Programmation Web. Introduction

Les risques HERVE SCHAUER HSC

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

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

LEA.C5. Développement de sites Web transactionnels

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

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

Développement des Systèmes d Information

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

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Rappels réseaux TCP/IP

Formation en Logiciels Libres. Fiche d inscription

DÉVELOPPER DES APPLICATIONS WEB SÉCURISÉES

Architectures en couches pour applications web Rappel : Architecture en couches

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

Internet. Web Sécurité Optimisation

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Le serveur HTTPd WASD. Jean-François Piéronne

PySQLi. Framework d'injection de code SQL

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

Groupe Eyrolles, 2004, ISBN :

JAB, une backdoor pour réseau Win32 inconnu

WEB 2.0 : Vulnerabilty Reloaded!

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

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

Architectures web/bases de données

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

Manuel d'installation

PDO : PHP Data Object 1/13

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

Serveurs de noms Protocoles HTTP et FTP

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

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

Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011

Installation d'un serveur FTP géré par une base de données MySQL

ADF Reverse Proxy. Thierry DOSTES

PHP 5.4 Développez un site web dynamique et interactif

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

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

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

PHP 5. La base de données MySql. A. Belaïd 1

TEST D INTRUSION : UNE SIMULATION DE HACKING POUR IDENTIFIER LES FAIBLESSES DE VOTRE SYSTÈME

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Command Execution: File Inclusion : SQL injection :... 10

Réseaux et protocoles Damien Nouvel

1. La plate-forme LAMP

Un reverse proxy, pour quoi faire?

Mise en oeuvre d un intranet à partir de logiciels Open Source avec intégration des certificats numériques et login unique

Accès distant Freebox v6 Configuration

Transcription:

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

Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse dans un système informatique permettant à un attaquant de porter atteinte à l'intégrité de ce système, c'est-à-dire à son fonctionnement normal, à la confidentialité et l'intégrité des données qu'il contient. On parle aussi de faille de sécurité informatique.

Architecture trois tiers Attaque basées sur le serveur web (XST Cross site tracing) Attaque basées sur le serveur d application (XSS Cross Site Scripting ) + failles liées au langage. Attaque basées sur le SGBD (SQL Injection, smuggling) Attaque basées sur le client (XSS) Rem : restent aussi les attaques TCP et IP.

SQL SQL Injection SQL Smuggling Blind SQL Injection

SQL Injection (principe) Principe : exploiter une faille de sécurité en injectant du code SQL. Moyen : formulaire, URL, URL avec script PERL

SQL Injection (exemple) Select uid from users where login= login and pass= condense du pass Avec pour login -- => La suite devient commentaire Select uid from users where login= login -- and pass= condense du pass

SQL Injection (exemple) Plein de requêtes marrantes (source http://www.phpcs.com) select ' OR 1=1"); // login'# INSERT INTO membres (login,password,nom,prenom,email,level) VALUES ('$login','$password','$nom','$prenom','$email','$level') Si le pirate écrit, dans le champ du email, le code suivant : monemail@monsite.com', '1'# la requête deviendra : INSERT INTO membres (login,password,nom,prenom,email,level) VALUES ('Terri','MonPass','Terri','Terri','monemail@monsite.com',1'# ','$level') UPDATE membres SET password='$var_pass',nom='$var_nom',email='$var_email' WHERE id='$id' champ du mot de passe le code suivant : ',level='3 UPDATE membres SET password='',level='3',nom='$var_nom',email='$var_email' WHERE id='$id'

SQL Injection (exemple) Composant Joomla (http://www.exploit-db.com/) Un script perl (EXPLOIT) est fourni. Autre attaque (http://www.securityfocus.com)

SQL Injection (protection) Vous êtes le programmeur : Des requêtes préparées Utiliser des fonctions pour filtrer les variables : Fonctions ctype_*() Extension filter en php5 Contrôle des variables : Liste blanche Liste noire Liste grise Contrôle de format Contrôle de type Le moins d info dans les cookies Vous êtes intégrateurs Pas de béta version CVS et mise à jour régulières Produit reconnus

SQL Smuggling (principe, exemple, protection) Principe (http://www.comsecglobal.com): utiliser la traduction automatique des caractères non supporte Exemple : le caractère U+02BC peut-être traduit en U+0027 (la quote) Protection : interdire la traduction automatique des caractères Unicode, Liste blanche des caractères autorisés. Rem : WAF(Web Application Firewall), contournés.

BLIND SQL INJECTION Pour les scripts à réponse binaire par exemple une authentification Découvrir par essai successifs des informations sur les tables SELECT * FROM table WHERE champ = 'a' OR @@version > 3; Avec @@version une variable MySQL

XSS Cross Site Scripting (principe) Principe : déposer sur un site (application web) un script qui sera ensuite consulté par les autres utilisateurs, la consultation pouvant entrainer l exécution par le navigateur du script qui pourra : Voler des informations (cookies, session) Effectuer une redirection éventuellement transparente Afficher un contenu non autorisé Planter le site Réaliser des opérations sur le site

XSS Cross Site Scripting (principe) Trois types (http://www.webappsec.org, http://ha.ckers.org/) : Permanent : Les données sont stockées (SGBD) puis réaffichées sans que les caractères spéciaux HTML n aient été encodés ( < et > par exemple). Non permanent : Les données du client sont utilisée de manière brute par le serveur pour lui répondre. Où est le problème? L ingénierie sociale. Local : le script écrit dans sa propre page pour générer du code (exécution de code à distance)

XSS Cross Site Scripting (exemple) http://blog.developpez.com, utilisation de $_SERVER[ PHP_SELF ] Le script : <html> <body> <form action="<?php echo $_SERVER['PHP_SELF'];?>"> <input type="hidden" name="submitted" value="1" /> <input type="submit" value="submit" /> </form> </body> </html> Le résultat sur http://localhost/phpself.php : <html> <body> <form action="/phpself.php"> <input type="hidden" name="submitted" value="1" /> <input type="submit" value="submit" /> </form> </body> </html> Le résultat sur http://localhost.com/phpself.php/on_injecte_ici <html> <body> <form action="/phpself.php/on_injecte_ici"> <input type="hidden" name="submitted" value="1" /> <input type="submit" value="submit" /> </form> </body> </html> http://localhost/phpself.php/%22%3e%3cscript%3ealert('xss')%3c/script%3e%3cdata <html> <body> <form action="/phpself.php/"><script>alert('xss')</script><data"> <input type="hidden" name="submitted" value="1" /> <input type="submit" value="submit" /> </form> </body> </html>

XSS Cross Site Scripting (protection) Filtrer les variables pas de < ou de > Penser aussi à filtrer en sortie

XSS Cross Site Scripting (des bébés en exemple) XSRF Cross Site Request Forgeries XST Cross site tracing

XSRF Cross-Site Request Forgeries (principe et exemple) Principe : un utilisateur devient complice sans en être conscient. Le problème est lié a une authentification à un instant donné et non une autorisation pour une action donnée. Exemple : Alice n a pas de pouvoir mais Bob en a. Alice envoie l url de l action qu elle ne peut faire à bob, dans une IMG par exemple. Le navigateur de Bob suit le lien et fourni le mot de passe Le navigateur n ayant pas récupéré d image, il n affiche rien.

XSRF Cross-Site Request Forgeries (protection) Pas GET pour une action sinon Alice trouve le lien. Utiliser des jetons (durée de vie), comme cela Alice doit agir vite. Utiliser le champ referer (HTTP) pour vérifier l adresse du script appelant, si ce n est pas celui utilisé par Bob alors il y a un problème. Demander des confirmations à l utilisateur, comme cela Bob sait ce qu il fait.

XST Cross site tracing (principe et exemple) Principe (http://ww.cgisecurity.com/whitehatmirror/wh-whitepaper_xst_ebook.pdf ): utilisation de la méthode trace HTTP. La méthode TRACE HTTP renvoie au client l entête avec donc les données d authentification et les cookies. Exemple : L attaqué doit exécuter un script qui invoque TRACE, avec par exemple XMLHttpRequest, ce qui permet de récupérer les cookies de l utilisateur. Puis le script doit renvoyer les cookies à l attaquant.

XST Cross site tracing (protection) Protection : interdire les trace - Dans un.htaccess - RewriteEngine On RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule.* - [F]

Faille dans la logique application Php pour l exemple (http://www.phpsecure.info) : Les failles de PHP Vulnérabilité 'escape shell' (system()) Fonction include() avec de paramètre pour accéder à des fichiers interdit Fonction mail() (passage de l entête du mail => mail anonyme, multiples, ) Les fichiers de logs de Apache et autre fichiers système en lecture (include). Script d'upload (upload d un.php) PHP & MySQL Requetes MySQL multiples Fakes posts Stupid DoS Bypasser une authentification => Utiliser un modèle de sécurité => utiliser un framework

Faille dans l application (exemple) Des outils (www.insecure.org) : Libre : WebInspect, SAINT, Nesus, Les failles du moment : http://www.certa.ssi.gouv.fr/ Un bon forum : http://www.w3.org/security/faq/www-securityfaq.html

Les firewall applicatif Les firewall classique + IDS (Intrusion Detection System) protègent efficacement des attaques réseaux. Il faut pour le méchant passer aux couches supérieures (la couche application) Il faut se protéger du méchant en filtrant au niveau applicatif

Les firewall applicatifs Imposés maintenant par certaines normes, par exemple pour le commerce électronique. Deux architectures : Sécurité positive Tout est fermé On ouvre spécifiquement (=> apprentissage + mise à jour du modèle conceptuel) Sécurité négative On ouvre tout On ferme spécifiquement (=> mise à jour permanantes des règles de fermeture) Adaptation pour SSL : Il faut que le firewall puisse déchiffrer le SSL Intégré au serveur A la responsabilité du chiffrement

Les firewall applicatifs Protocoles pris en charge? Méthodes d authentification? Consigne (log)? Matériel/Logiciel? => Imposés pour certaine applications critiques mais beaucoup de contrainte.

Conclusion Choisir un Framework et des outils supportés Maintenir à jour les applications Filtrer les entrées et les sorties