Accréditation N° Section Laboratoires Portée sur SGDN-DCSSI

Slides:



Advertisements
Présentations similaires
Sécurité informatique
Advertisements

Le Groupe  ses ACTIVITES :
CRÉER UNE APPLICATION INTERNET RELIEE A UNE BASE DE DONNEES
Botnet, défense en profondeur
Laccès distant aux bases bibliographiques J. Gutierrez / B.Nominé – Université Nancy 2.
Université Nancy 2 - CRI Propositions de mécanisme de SSO dans un environnement d’applications web.
Projet extranet My.Eolas
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
DUDIN Aymeric MARINO Andrès
Conception de la sécurité pour un réseau Microsoft
Formation au portail SIMBAD
Audit technique et analyse de code
Xavier Tannier Yann Jacob Sécurite Web.
HTML Les types de balises
Cours d'administration Web - juin Copyright© Pascal AUBRY - IFSIC - Université de Rennes 1 Mandataires, caches et filtres Pascal AUBRY IFSIC - Université
Single Sign-On open source avec CAS (Central Authentication Service)
TP 3-4 BD21.
Un peu de sécurité Modal Web Modal Baptiste DESPREZ
Service aux personnes assurées
Développement d’applications web
MODEX WEB BAPTISTE DESPREZ Un peu de sécurité. Avant dentrer dans le vif du sujet JavaScript Langage de script (comme PHP) Exécuté par votre navigateur.
Plateforme de gestion de données de capteurs
SECURITE DU SYSTEME D’INFORMATION (SSI)
Développement dapplications web Initiation à la sécurité 1.
Amélioration de la sécurité des données à l'aide de SQL Server 2005
1 Sécurité Informatique : Proxy Présenter par : Mounir GRARI.
Administration de SharePoint
Sommaire Objectif de Peakup Principes de fonctionnement
Applications Chapitre B17 et C18
0 NOUVEAUTÉS LES PREMIERS SCEAUX FRANÇAIS DÉLIVRÉS PAR WEBTRUST FRANCE.
IUT2 de Grenoble Université Pierre Mendès France
INTRANET au service du système d’information
Les instructions PHP pour l'accès à une base de données MySql
Xavier Tannier Sécurite Web.
Configuration de Windows Server 2008 Active Directory
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Gestion des bases de données
Jeudi, 20 août 2009 Sécurité informatique Cégep de St-Hyacinthe Par Hugo St-Louis.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
WINDOWS Les Versions Serveurs
Internet : la mémoire courte ? Capture de sites Web en ligne Conférence B.N.F, Avril 2004 Xavier Roche(HTTrack)
Développement dapplications web Authentification, session.
Développement d’application web
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
SSO : Single Sign On.
802.1x Audric PODMILSAK 13 janvier 2009.
MODEX WEB BAPTISTE DESPREZ Un peu de sécurité. Avant dentrer dans le vif du sujet JavaScript Langage de script (comme PHP) Exécuté par votre navigateur.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Projet de Master première année 2007 / 2008
Les NAC Network Access Control
Initiation au web dynamique
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Le workflow Encadré par: M . BAIDADA Réalisé par: ATRASSI Najoua
Application de gestion de candidatures
Outil de gestion des cartes grises
Sécurité et confidentialité dans Microsoft Internet Explorer William Keener Développement de contenu Global Service Automation Microsoft Corporation.
Cours de programmation web
Jean-Luc Archimbaud CNRS/UREC
1 Copyright WebTrust France Nouveautés Copyright WebTrust France Les premiers sceaux français délivrés par WebTrust France.
Auvray Vincent Blanchy François Bonmariage Nicolas Mélon Laurent
Centralisation des sites web d’ELTA & Mise en place d’un serveur NAS
JeanDo Lénard – Fondamentaux de l'Internet – Hetic –30 Janvier 2007 page 1 Fondamentaux de l'Internet (FDI) JeanDo Lénard
Sécurité des systèmes d’information: Web Security & Honeypots
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Sécurité des Web Services
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

Portée sur www.cofrac.fr Accréditation N° 1-1528 Section Laboratoires Portée sur www.cofrac.fr SGDN-DCSSI Certificat N°1994-/2759h Attaques sur les applications web Pourquoi un firewall et un antivirus ne suffisent plus … OSSIR BRETAGNE le 08/03/2008 Emilien LE JAMTEL

Sommaire Présentation des intervenants Objectifs de la présentation Définition de l’application Web métier Historique et évolutions des attaques (Pourquoi ?) D’où proviennent ces attaques (Qui ?) Vecteurs et méthodes d’attaques (Comment ?) Conclusion

Présentation des intervenants Emilien LE JAMTEL Consultant expert en sécurité des systèmes d’informations 3 ans d’expérience Spécialiste en : Tests d’intrusion Audit de configuration Audit d’architectures sécurisées …

Objectifs Répondre concrètement à plusieurs questions : Quelles menaces liées aux applications Web métier ? Quelles conséquences de ces menaces sur l’entreprise ? Pourquoi la plupart des mesures actuelles ne suffisent pas ? Quelles sont les causes de ces menaces ? Que mettre en place pour s’en protéger ?

Applications Web métier – Définition (1) Applications accédées en réseau au moyen d’un client léger (Web) Pour tout type de structure PME/PMI, Grandes entreprises, service public... Service fourni Externe Commerce en ligne Catalogue de produits Banque en ligne (Virements, consultation…) Webmail … Interne : Accès aux ressources internes de l'entreprise Annuaire Référentiel de documents (commercial, technique…) Plannings Importance grandissante !

Applications Web métier - Définition (2) Avantages pas d’installation préalable (client léger), ni maintenance accès depuis partout, via Internet (appli. externes) Web-isation de « vieilles » applications (Web Services) Technologies utilisées Langages : HTML, Javascript, PHP/ASP/CGI, Perl, Java, ActiveX… Base de Données : MySQL, Oracle, MS-SQL Server, Sybase… Serveurs d'applications : Tomcat, Websphere… Serveurs Web : IIS, Apache… Systèmes d’exploitation : Windows, Linux, UNIX...

Définitions Vulnérabilité, Menace, Attaque Menace 1 Attaque Menace 2

« Pourquoi ? »

Historique – Évolution des attaques (1) Depuis quelques années (globalement) Meilleure prise en compte des recommandations sur la sécurité périmétrique Firewall, cloisonnement (VLANs, DMZ), passerelles (reverse proxy…) Serveurs et appliances publics : plus ou moins configurés, minimisés  Attaques plus difficiles à mettre en œuvre à ce niveau Évolution des attaques Montée dans les couches du modèle OSI Pour passer les défenses périmétriques (firewalls...) Ports applicatifs : HTTP/HTTPS, Microsoft SMB, FTP... A la fois Directement, par les serveurs applicatifs et les applications métiers Indirectement, via les postes utilisateurs

Historique – Évolution des attaques (2) Intérêts (1) Flux autorisés vers les serveurs Flux plus ou moins surveillés Les machines des utilisateurs internes sont : Moins protégés Plus de fonctionnalités Connectés sur le réseau interne Autorisations d’accès aux personnes internes Accèdent à Internet

Historique – Évolution des attaques (3) Intérêts (2) Produits ayant davantage de vulnérabilités (Web, AS) Applications métiers propriétaires Non éprouvées Peu auditées Anciennes (Web Services) Lien direct avec les données métiers De nombreuses vulnérabilités ! Points d’entrées privilégiés AS = Application Server Ici, on se concentre sur les attaques des applications Web métiers : Attaques Web (depuis un réseau interne/sûr ou non) Ces attaques constituent un sous-ensemble de toutes les attaques possibles. Actuellement, il existe beaucoup de failles de ce type et cela constitue un point d'entrée privilégié. --> Faille inconnues au préalable, mais de "type" connus/classiques. (classes d'attaques génériques).

Objectifs de ces attaques Récupération d'informations confidentielles Atteinte à la confidentialité Modification du contenu Données internes (BDD financière, cliente…) Sites Web publiques (façade commerciale) Atteinte à l'intégrité Rendre le service indisponible (Déni de Service – DoS) Temporaire Permanent Atteinte à la disponibilité Rebond Point d’entrée privilégié Atteindre des machines internes Relais pour attaques externes

Conséquences Les risques restent les mêmes qu’avant Récupération d'informations confidentielles Secrets industriels, annonces commerciales, résultats, données clientes, webmails… Modification du contenu Résultats incorrects/incohérents, Comptes faussés, Défiguration, BDD corrompues Atteinte à l’image de la société (référencement de défiguration (zataz, zone-h…) Rendre le service indisponible Production : Perte financière Annuaire, serveur de fichier… : Force de travail bloquée Rebond Attaque de serveurs internes Attaques externes : imputabilité, responsabilité juridique Les risques restent les mêmes qu’avant Les moyens changent

« Qui ? »

Qui ? « Scripts kiddies » (débutants) Concurrents Maîtres chanteurs Pas de cible spécifique : au hasard « Gloire » Concurrents Un objectif (espionnage industriel, perte de productivité) Maîtres chanteurs Menace au déni de service Extorsion de fond Worms Web Autonomes Exploitent les vulnérabilités Web (PHP…) pour infecter le serveur Se reproduisent (recherches d’autres sites vulnérables) Ex : Santy.A (vulnérabilité PhpBB, recherche Google)

« Comment ? »

Vecteurs de ces attaques Les vecteurs actuels de ces attaques sont : Les vulnérabilités des technologies Web Javascript, PHP/ASP, Perl, Java, CGI, ActiveX... Les vulnérabilités du code source de l'application Relativement indépendant du langage utilisé Vient de la logique de développement Les vulnérabilités dues aux configurations systèmes et applicatives : BDD (MySQL, Oracle, MS-SQL Server, Sybase...) Serveurs Web (Websphere, Tomcat...) OS (Windows, Linux, UNIX...)

Attaques applicatives Démarche générale (1) Comme pour la plupart des attaques… Recherche d’informations sur la cible Recherche de vulnérabilités Manuelle Automatique Outils Proxies locaux pour le navigateur (Tamper Data, WebScarab…) : modification des paramètres Différents types de navigateurs (Firefox, IE, Opera…) Clients spécifiques (pour les Web Services…) Scanners de vulnérabilités (Nessus, WebInspect, Nikto…)

Attaques applicatives Démarche générale (2) De nombreuses attaques avec seulement un navigateur Depuis n’importe quel poste (poste en démonstration…) Au travers de proxies anonymes (international) Proxy au sein d’une entreprise (imputabilité ?)

Vulnérabilités applicatives majeures Présentation de vulnérabilités applicatives majeures Repose sur une classification évolutive de l’OWASP Projet « Top Ten » http://www.owasp.org/index.php/OWASP_Top_Ten_Project 10 types de vulnérabilités les plus critiques (2007 RC) 2007RC Vulnérabilité applicative (2004) A1 Failles Cross Site Scripting (XSS) (A4) A2 Failles d’injection (A6) A3 Exécution de fichiers malicieux A4 Référence directe non sécurisée à un objet (A2) A5 Faille Cross Site Request Forgery (CSRF) A6 Fuite d’information et Traitement d’erreur incorrect (A7) A7 Violation de gestion d’authentification et de session (A3) A8 Stockage cryptographique non sécurisé (A8) A9 Communications non sécurisées (A10) A10 Absence de restriction d’accès à certaines URL

Vulnérabilités applicatives Failles Cross-Site Scripting (XSS) (1) Principe Envoi de données au serveur Renvoyées à un utilisateur Considérées comme du code interprétable (javascript) au sein du navigateur de l’utilisateur Cause Manque de validation/d’encodage des données utilisateurs Conséquences Exécution de scripts au sein du navigateur de l’utilisateur (javascript le plus employé) Vol de session Modification de l’apparence de l’application Commander le navigateur de l’utilisateur Périmètre Applications propriétaires / Applications du commerce

Vulnérabilités applicatives Failles Cross-Site Scripting (XSS) (2) Retour d’expérience Rencontré quasiment au cours de chaque test d’intrusions applicatif <script>alert(document.cookie);</script>

Vulnérabilités applicatives Failles d’injection (1) Principe Envoi de données au serveur (interpréteur : PHP, SQL…) Considérées comme des commandes Exécution de commande non prévues Cause Manque de validation/d’encodage des données utilisateurs Conséquences lecture suppression modification de données de l’application Périmètre : Toute application disposant d’un interpréteur

Vulnérabilités applicatives Failles d’injection (2) Exemple : Injection SQL Retour d’expérience : Accès à plusieurs applications d’administration (par injection SQL ‘ OR ‘1’=‘1 dans le champ mot de passe)

Vulnérabilités applicatives Exécution de fichiers malicieux (1) Principe L’application fait appel à des ressources distantes ou locales En fonction de paramètres utilisateurs (URL, nom de fichier…) Sans en contrôler la teneur (fichiers modifiés au préalable) Cause Manque de validation/d’encodage des données utilisateurs Conséquences Exécution de code malicieux par le serveur (inclusion) Accès à des fichiers hors de l’arborescence de l’application Installation de rootkit, chevaux de Troie Périmètre Toute application faisant appel à des ressources externes Particulièrement si l’upload de fichiers sur le serveur est permis Particulièrement vrai pour PHP Exemple (PHP) include $_GET['page'].'.php';

Vulnérabilités applicatives Exécution de fichiers malicieux (2) Retour d’expérience (suite) Insertion de code ASP, PHP Upload d’un « shell » en PHP

Vulnérabilités applicatives Référence directe non sécurisée à un objet (1) Principe Utilisation explicite de références à des objets internes (Fichier, répertoire, champ de BDD…) dans une URL ou un formulaire Un manque de contrôle d’accès permet d’accéder à d’autres ressources sans autorisation Cause Conception de l’application Conséquences Accès à des fichiers/répertoire en dehors de l’application Accès à des ressources et fonctionnalités d’administration Accès à des ressources d’autres utilisateurs Périmètre Potentiellement toute application Retour d’expérience Accès (lecture/écriture) à des données personnelles concernant des élèves : javascript:visu(‘1234')  javascript:visu(‘1235') Lecture de fichiers du système : http://www.xxxxxxxxxxx.fr/print.php?PAGE=L2V0Yy9wYXNzd2Q= avec ‘L2V0Yy9wYXNzd2Q=‘ : /etc/passwd encodé en base64

Vulnérabilités applicatives Référence directe non sécurisée à un objet (2) Retour d’expérience Accès à l’ensemble du système de fichier d’un serveur Variable ‘PathToExpand’ : ../../../../../../../../../../

Vulnérabilités applicatives Faille Cross Site Request Forgery (CSRF) Principe Faire effectuer une action légitime ou non à un utilisateur authentifié sur l’application, au travers de son navigateur Cause Envoi automatique des éléments d’authentification par le browser (cookie, authentification Basic, certificats, adresse IP…) Conséquences Réalisation d’action légitimes non désirées (suppression de données, extinction du serveur…) Exploitation de failles dans l’application par un utilisateur légitime  Pour le bénéfice de l’attaquant Périmètre Toute application ne nécessitant que des éléments d’authentification envoyés automatiquement Retour d’expérience (basique) Forcer un utilisateur à se déconnecter http://www.xxxxxx.fr/logout - Modifier le mot de passe d’un utilisateur

Vulnérabilités applicatives Fuite d’information et Traitement d’erreur incorrect (1) Principe Divulgation d’informations diverses par l’application : configuration de l’application/du serveur, données métier… En réponse à certaines requêtes Cause Conception et/ou configuration de l’application Le plus souvent : Messages d’erreurs verbeux : code d’erreur, contenu de la mémoire, requêtes SQL… Également : temps de réponses, types de réponses en fonction des entrées… Conséquences Première étape Fournit des informations utiles à un attaquant Pour porter atteinte à la sécurité du serveur Périmètre Toute application peut être vulnérable

Vulnérabilités applicatives Fuite d’information et Traitement d’erreur incorrect (2) Retours d’expérience Nombreux messages d’erreur avec version des logiciels Chemin d’accès locaux Erreurs SQL Énumération de comptes applicatifs

Vulnérabilités applicatives Violation de gestion d’authentification et de session Principe Possibilité de contourner les mécanismes d’authentification ou de s’approprier des sessions sur l’application Cause Mauvaise gestion des données d’authentification et/ou de session (cookie, login/password…) Parfois : au sein du mécanismes d’authentification principal Le plus souvent : au sein des mécanismes secondaires (logout, gestion de mot de passe, mot de passe oublié, mise à jour du compte…) Conséquences Usurpation de droits et/ou d’identité Vol de session administrateur ou utilisateur Problèmes d’imputabilité Violation du contrôle d’accès sur les ressources Périmètre Toute application peut être vulnérable Retour d’expérience A quelques rares exceptions près Utilisation de cookie statiques (n’évoluent pas dans le temps) Rejeu possible

Vulnérabilités applicatives Stockage cryptographique non sécurisé (1) Principe Accès à des informations sensibles Stockées sur le serveur d’application Cause Absence de cryptographie sur un ou plusieurs de ces éléments Utilisation de mécanismes de cryptographie « maison » ou faibles Mauvaise utilisation de mécanismes de cryptographie forts Clés codées en dur, clés stockées dans des emplacements non sûrs Conséquences Fuite d’informations sensibles Violation des politiques de sécurité d’accès aux ressources Non respect des règles de conformité (CNIL, PCI DSS…) Périmètre Toute application peut être vulnérable

Vulnérabilités applicatives Stockage cryptographique non sécurisé (2) Retour d’expérience Stockage de mots de passe de comptes applicatifs en clair Dans une BDD avec interface Web d’administration Login/password de la BDD en clair dans un script ! Egalement comptes de domaine Windows Egalement comptes de messagerie

Vulnérabilités applicatives Communications non sécurisées Principe Accès à des informations sensibles transitant entre deux entités Données d’authentification et Données nominatives, de santé, bancaires… Front End, Back End Cause Pas de chiffrement des (de toutes les) communications (sniffing) Utilisation de mécanismes de chiffrements faibles (SSLv2) Mauvaise utilisation de mécanismes de chiffrement forts Débrayage des fonctions de chiffrements (volontairement ou non) Conséquences Fuite d’informations sensibles (authentification, données métiers) Non respect des règles de conformité (CNIL, PCI DSS…) Périmètre Toute application peut être vulnérable Retour d’expérience SSLv2 autorisé Authentification en HTTP, login/password en clair  URL contient : url_vuelta=%2Findex.php%2Fmod._INDICE%2Fmem.i%2Ferror.1%2Fchk.24efab3d4c81a36f28f62c738d3de53c.html&usuario=XXXX&clave=XXXX

Vulnérabilités applicatives Absence de restriction d’accès à certaines URL (1) Principe Sécurité par l’obscurité La simple connaissance de l’URL donne l’accès URL Volontairement masquées / URL par défaut D’autant plus problématique si listage des répertoires (Directory Browsing) Cause ‘Protection d’accès’ de certaines URL uniquement par non référencement Manque de contrôle d’accès (absence, insuffisance (ex : côté client seulement)) Conséquences Accès à des informations sensibles (fichiers, répertoires) Accès à des fonctionnalités d’administrations (interfaces) Périmètre Toute application peut être vulnérable

Vulnérabilités applicatives Absence de restriction d’accès à certaines URL (2) Retour d’expérience Interface web d’accès à une base de données (sans authentification sur l’application) Scripts par défaut vulnérables (XSS) Fichiers non référencés: Documentation décrivant le format de logins/passwords Annuaire au format MDB

Recherche des vulnérabilités Outils automatisés (Nessus, QualysGuard…) Recherche de vulnérabilités Analyse statique de code Rapide Cas simples, limitations techniques, faux positifs Recherches manuelles Tests d’intrusions Revue de code Cas complexes, validation des faux positifs Long Complémentarité et Récursivité

Conclusion Les menaces sont passées du réseau à l’application Vulnérabilités applicatives sont graves, exploitables et exploitées Évolution rapide des technologies et des problèmes de sécurité Problème de fond Applications en projet Prise en compte de la sécurité dès le début du projet Bonnes pratiques de développement Implémenter des mécanismes de sécurité Tests complémentaires adaptés Applications en production Audits de sécurité technique : revue de code, audits, tests d’intrusion Complémentarité outils automatiques et tests manuels (processus récursif) Nécessité d’une prestation d’expertise, récurrente Nécessité d’un travail de veille permanent

Questions ?