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



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

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

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

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

Protection des protocoles

Sécurité des applications web. Daniel Boteanu

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

Attaques applicatives

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

Sécurité des réseaux Les attaques

Module BD et sites WEB

Architectures web/bases de données

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

Mise à jour : Octobre 2011

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

Hébergement de sites Web

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

Création d un «Web Worm»

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

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

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.

Groupe Eyrolles, 2004, ISBN :

Chapitre 1 Windows Server

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

Configuration du FTP Isolé Active Directory

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

IPS-Firewalls NETASQ SPNEGO

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

Serveurs de noms Protocoles HTTP et FTP

JAB, une backdoor pour réseau Win32 inconnu

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

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

Programmation Internet Cours 4

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

Les cahiers pratiques de Anonymat.org. SocksCap32. Edition du 20 Octobre 2000

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

La sécurité périmètrique multi-niveaux. Un white paper de Daniel Fages CTO ARKOON Network Security

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

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

Les risques HERVE SCHAUER HSC

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

Introduction à Sign&go Guide d architecture

Réseaux et protocoles Damien Nouvel

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Atelier Sécurité / OSSIR

Sessions en ligne - QuestionPoint

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

Retour d expérience sur Prelude

Single Sign-On open source avec CAS (Central Authentication Service)

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

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

z Fiche d identité produit

Installation Windows 2000 Server

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



Dispositif e-learning déployé sur les postes de travail

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

Lyon, mardi 10 décembre 2002! "#$%&"'"# &(

Qu est ce qu Internet. Qu est-ce qu un réseau? Internet : à quoi ça sert? présentation des services. Exemple de configuration. Rôles des éléments

Impression de sécurité?

Gestion de stock pour un magasin

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

Catalogue «Intégration de solutions»

DenyAll Detect. Documentation technique 27/07/2015

MANUEL D INSTALLATION Sous WINDOWS

Figure 1a. Réseau intranet avec pare feu et NAT.

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

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

La sécurité informatique d'un centre d imagerie médicale Les conseils de la CNIL. Dr Hervé LECLET. Santopta

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

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

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

Hébergement de site web Damien Nouvel

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

Sécurisation d un site nucléaire

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Guide d installation BiBOARD

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

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

25 septembre Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national

Administration de systèmes

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

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

I. Description de la solution cible

Joomla! Création et administration d'un site web - Version numérique

Formations. «Règles de l Art» Certilience formation N SIRET APE 6202A - N TVA Intracommunautaire FR

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

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

SYSTÈMES D INFORMATIONS

Développement des Systèmes d Information

Dans l'épisode précédent

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

Mac OS X Server Administration des technologies Web. Pour la version 10.3 ou ultérieure

18 TCP Les protocoles de domaines d applications

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

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

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

Transcription:

OSSIR 09/09/2002 Vulnérabilités, attaques et sécurisation des applications Web Pourquoi les firewalls sont impuissants patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com Page 1

Planning ning Objectifs Généralités Qu est-ce qu une application Web? Rôle et limitations des firewalls Vulnérabilités et attaques sur les applications Web Interprétation des URLs Mauvais contrôle des données entrées par l utilisateur Injection de code SQL Attaques sur les identifiants de session Cross Site Scripting Autres attaques Conclusion Page 2

Objectifs Présenter les principales caractéristiques des applications Web Constater l impuissance des firewalls face à un grand nombre d attaques Décrire les vulnérabilités et les attaques actuelles courantes sur les applications Web Présenter à chaque fois des recommandations permettant de sécuriser les applications Web Conclure sur la sécurité des applications Web Page 3

Planning ning Objectifs Généralités Qu est-ce qu une application Web? Rôle et limitations des firewalls Vulnérabilités et attaques sur les applications Web Interprétation des URLs Mauvais contrôle des données entrées par l utilisateur Injection de code SQL Attaques sur les identifiants de session Cross Site Scripting Autres attaques Conclusion Page 4

Qu est-ce qu une application Web? Applicatif utilisant le protocole HTTP ou HTTPS pour être piloté par un utilisateur L utilisateur n a besoin que d un simple navigateur Web ou d une application propriétaire utilisant le protocole HTTP/HTTPS pour travailler sur l applicatif L utilisateur peut se situer très loin de l applicatif et travailler à travers Internet => Le port 80 devient un port «fourre-tout» à travers lequel un grand nombre de flux passent les firewalls (protocoles DCOM, RPC, SOAP, XML, streaming sur HTTP, ) Page 5

Application Web type Requête Réponse (HTML, Javascript, VBScript, etc ) Firewall Base de données SQL Client Web HTTP HTTPS (80) (443) Serveur Web BdD BdD Source: FoundStone Apache IIS Netscape etc Composants: Perl, C/C++ JSP, Java, etc Connexion base de données: ADO, ODBC, etc. Page 6

Utilité des firewalls (1/3) Protection vis à vis des attaques au niveau réseau et services réseau HTTP / HTTPS FTP telnet NetBIOS X X X Serveur Web BdD BdD Page 7

Utilité des firewalls (2/3) Protection des serveurs internes (plan d adressage privé RFC 1918: non routable) Serveur Web BdD BdD X Page 8

Utilité des firewalls (3/3) Protection contre les flux sortants Pas de tentative de download de la part d un serveur Serveur Web BdD BdD X Page 9

Ce que les firewalls ne peuvent pas éviter Client Web Serveur Web BdD BdD Serveur hostile Cross Site Scripting Manipulation des identifiants de session Interprétation des URLs Mauvaise configuration Mauvais contrôle des entrées utilisateur Injection de code SQL Dénis de service Page 10

Le mythe de la sécurité par le chiffrement «J utilise du chiffrement (SSL 128 bits par exemple) donc je suis sécurisé» «J ai un certificat serveur Verisign donc mon site est sûr» Cela concerne la confidentialité, mais ne protège pas des intrusions Page 11

Planning ning Objectifs Généralités Qu est-ce qu une application Web? Rôle et limitations des firewalls Vulnérabilités et attaques sur les applications Web Interprétation des URLs Mauvais contrôle des données entrées par l utilisateur Injection de code SQL Attaques sur les identifiants de session Cross Site Scripting Autres attaques Conclusion Page 12

Interprétation des URLs http: // monserveur.fr/chemin / fichier.ext?par1=toto & par2=tata Serveur Web BdD BdD Page 13

Interprétation des URLs Exemple 1: Bug unicode d IIS http://www.monserveur.com/scripts/..%255c.. /winnt/system32/cmd.exe?/c+dir+c:\ => Liste des fichiers du répertoire Exemple 2: http://www.maisjemesoigne.com///////// ///////////////////////////// => Liste des fichiers du répertoire Page 14

Interprétation des URLs: recommandations Sécuriser le système d exploitation et le serveur Web (appliquer les derniers patches, chrooter le service, ) Installer l arborescence Web sur une partition séparée Contrôler strictement l arborescence Web et supprimer les répertoires inutiles Désactiver le «directory browsing» sur l ensemble du site Web Supprimer tous les filtres, interpréteurs de scripts, CGI et autres exécutables inutiles Supprimer tous les fichiers inutiles sur un serveur de production (pages d exemples notamment) Appliquer des permissions d accès sur les fichiers au niveau du serveur Web mais aussi du système de fichiers Désactiver HTTP sur les pages qui nécessitent HTTPS Utiliser un filtre d URLs (ou un reverse proxy) Envisager l installation d un IDS Page 15

Contrôle des données utilisateur Exemple: http://www.maisjemesoigne.com/cgibin/getsize.cgi?file=test.txt http://www.maisjemesoigne.com/cgibin/getsize.cgi?file=* => liste des fichiers Insertion de code HTML Insertion de code exécutable Dépassement de quotas (exemple: virement bancaire) Dénis de service (requêtes de grande taille) Caractères dangereux:! @ $ % ^ & * ( ) - _ + ` ~ \ [ ] { } ; : ' "? /,. > < Page 16

Contrôle des données utilisateur : recommandations Nécessité d un double contrôle côté client (par javascript par ex.) + côté serveur Comptage du nombre de paramètres et de leur nom Neutralisation des caractères spéciaux Contrôle de la longueur des données Validation du type des données (date, chaîne, nombre) Contrôle de l intervalle de validité des données (dans l absolu) Vérification de la validité réelle des données (en relatif, dans une base de données) Limitation du nombre de saisies de données par unité de temps Page 17

Injection de code SQL (1/2) Exemple: Requête SQL tournant sur le serveur : SELECT * FROM table_clients WHERE champ_nom=name Chaîne saisie dans le champ Name : toto; INSERT INTO table_users VALUES ('Mon_login, Mon_password ) Requête exécutée au final : SELECT * FROM table_clients WHERE champ_nom=toto; INSERT INTO table_users VALUES ('Mon_login, Mon_password ) => Ajout d un nouveau login permettant une intrusion Page 18

Injection de code SQL (2/2) Cas de MS SQL Server shell 999 OR ID = ' shell("cmd.exe /c...") ' ; select * from ' & shell ("dir c:\") & ' Procédures stockées 999; exec sp_addlogin 'BadUser' xp_cmdshell "net user /ADD..." xp_regread HKLM/Security/SAM... sp_makewebtask "\\IP\Share\result.html", "select *..." xp_enumdsn Page 19

Injection de code SQL : recommandations Filtrage beaucoup plus précis des données utilisateurs Interdire les mots clés comme SELECT, INSERT, UNION, LIKE, etc Utiliser des fonctions de substitution et des expressions régulières Sécuriser la configuration du service de base de données (logins, procédures stockées, permissions d accès sur les tables et autres objets, ) Page 20

Attaques sur les identifiants de session Les identifiants de session servent à maintenir un contexte utilisateur Exemple: 0001WVWSDWAAAAB4EMYPBIB0NXA 0001WV0WPTQAAACS4MYPBIAQZTY 0001WVXXHPQAAAB4YMYPBIB0NXA 0001WV2FYCYAAACUCMYPBIAQZTY 0001WV2VIVYAAACUKMYPBIAQZTY 0002YEQH5GYAAAPYWMYPBIAQ20I 0002YFAQGIYAAAPWMMYPBIAQ20I 0002YMUBB4AAABS4GMYPBIAQ20I 0003ZAM00OAAABV0AMYPBIA4JZQ => Développement d un outil conduisant à un vol de session Page 21

Attaques sur les identifiants de session : recommandations Ecrire une fonction de génération d identifiants de session extrêmement robustes Vérifier le qualité du générateur aléatoire Utiliser un espace de valeurs suffisamment étendu pour qu une attaque en brute force ne puisse être menée dans un délai réduit Il est déconseillé d utiliser les fonctions de génération d identifiants fournies en standard avec certains logiciels ou environnements de développement du marché Page 22

Cross Site Scripting Principe: Attaquer les utilisateurs de l application plutôt que l application elle-même L attaquant provoque l envoi à la victime par le site Web légitime d une page hostile contenant des scripts ou des composants malveillants Cette page est exécutée sur le poste de la victime dans le contexte du site Web d origine Exemple: <A HREF=http://www.mabanque.com/<script> alert(document.cookie)</script>">click Here</a> Retour: <HTML>404 Page Not Found: <script>alert(document.cookie)</script> Page 23

Cross Site Scripting : recommandations Côté serveur: Maintenir le serveur Web à jour (correctifs de sécurité) Contrôler la validité des saisies des utilisateurs (cf cidessus) Côté client: Maintenir les navigateurs et clients mail à jour Durcir leur configuration le plus possible Page 24

Autres attaques et recommandations (1/2) Mécanismes d authentification basés sur Java, JavaScript ou ActiveX A éviter absolument: ne jamais faire confiance à du code tournant côté client Contrôle d accès basé sur le header HTTP_REFERER A éviter absolument Mauvaise gestion du contexte utilisateur Contrôler strictement et à chaque page le contexte de sécurité (l utilisateur est-il authentifié? Quels droits a-t-il?) Manque de ré-authentification Ré-authentifier l utilisateur pour les opération importantes (changement du mot de passe, virement bancaire, etc ) Page 25

Autres attaques et recommandations (2/2) Attaques du client par un serveur hostile (JavaScript, VBScript, ActiveX, Applets Java, Flash, DHTML, XML, CSS, ) Maintenir les navigateurs et clients mail à jour Durcir leur configuration le plus possible Man-in-the-middle (interception et rejeu des flux, ou modification à la volée) Possible même si on utilise SSL Le seul moyen de se prémunir contre ce type d attaque est d imposer une authentification côté serveur et côté client par l utilisation de certificats clients X.509 Page 26

Planning ning Objectifs Généralités Qu est-ce qu une application Web? Rôle et limitations des firewalls Vulnérabilités et attaques sur les applications Web Interprétation des URLs Mauvais contrôle des données entrées par l utilisateur Injection de code SQL Attaques sur les identifiants de session Cross Site Scripting Autres attaques Conclusion Page 27

Conclusion (1/2) Vous savez que vous allez être attaqué La question n est pas : «vais-je subir des attaques?», mais : «quand?» et «suis-je bien préparé?» La sécurité au niveau applicatif est indispensable Les firewalls, les tunnels chiffrés, les PKI ne sont pas suffisants Page 28

Conclusion (2/2) Prendre en compte la sécurité le plus en amont possible lors du développement (dès la conception de l architecture de l application) Faire procéder à un test d intrusion applicatif à la fin du développement et juste avant la mise en production Effectuer un suivi de la sécurité tout au long de la vie de l application Web (mise en ligne de nouvelles versions, ) Page 29

Pour aller plus loin http://www.sqlsecurity.com http://www.owasp.com http://www.hammerofgod.com/download.htm http://heap.nologin.net/aspsec.html http://www.microsoft.com/technet/itsolutions/ security/database/database.asp http://www.securityfocus.com http://www.appsecinc.com/presentations/ Manipulating_SQL_Server_Using_SQL_Injection.pdf Et bien sûr: MISC http://www.ed-diamond.com/cible.php3?choix=misc Page 30

Questions Page 31