Développement dapplications web Initiation à la sécurité 1.

Slides:



Advertisements
Présentations similaires
Sécurité informatique
Advertisements

CRÉER UNE APPLICATION INTERNET RELIEE A UNE BASE DE DONNEES
1 Georgeta BĂDĂU CRÉATION ET GESTION DUN BLOG AVEC LA PLATE-FORME LEWEBPEDAGOGIQUE.COM Séance no.6.
1 Georgeta Bădău CRÉATION ET GESTION DUN BLOG AVEC LA PLATE-FORME LEWEBPEDAGOGIQUE.COM Séance no.4.
ASP.NET 2.0 et la sécurité Nicolas CLERC
Université Nancy 2 - CRI Propositions de mécanisme de SSO dans un environnement d’applications web.
Présentation de lapplication Livret personnel de compétences.
Chapitre 3 Les Formulaires en PHP
Xavier Tannier Yann Jacob Sécurite Web.
Le mécanisme de Single Sign-On CAS (Central Authentication Service)
Plan de formation Chapitre 1 : Présentation de SAP
TP 3-4 BD21.
Un peu de sécurité Modal Web Modal Baptiste DESPREZ
Soutenance de stage · Par : Guillaume Prévost · Entreprise : Cynetic
Sécurité Informatique
Oct.-2000DESS IIDEE © B. BAH 1 ASP Caractéristiques dun fichier ASP Son extension : « *.asp » La balise: Son indépendance vis à vis de toute plate–forme,
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)
1 Comment utiliser votre Extranet Se connecter 2.My Site 3.Documentation 3.1 Documents dintégration 3.2 Documents types 4.Vos informations privées.
Le langage PHP 5.
1 Sécurité Informatique : Proxy Présenter par : Mounir GRARI.
Administration de SharePoint
Applications Chapitre B17 et C18
Lycée Louis Vincent Séance 1
Les instructions PHP pour l'accès à une base de données MySql
Xavier Tannier Sécurite Web.
28 novembre 2012 Grégory Petit
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
L’utilisation des bases de données
Les relations clients - serveurs
Gestion des bases de données
Jeudi, 20 août 2009 Sécurité informatique Cégep de St-Hyacinthe Par Hugo St-Louis.
Internet : la mémoire courte ? Capture de sites Web en ligne Conférence B.N.F, Avril 2004 Xavier Roche(HTTrack)
Développement d’applications web
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.
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
SSO : Single Sign On.
802.1x Audric PODMILSAK 13 janvier 2009.
Sécurité informatique
Web dynamique PhP + MySQL AYARI Mejdi 2006
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
MODEX WEB BAPTISTE DESPREZ Un peu de sécurité. Javascript JavaScript / Jquery Langage de script (comme PHP) Exécuté par votre navigateur (Firefox, IE,
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.
STSWEB Bascule Diffusion Nationale TOULOUSE – déc.2008.
Projet de Master première année 2007 / 2008
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
‘‘Open Data base Connectivity‘‘
Les dangers d'Internet (virus et autres)
GROUPE BTS IRIS 2 Informatique et Réseaux pour l’industrie et les Services techniques E-6 PROJET INFORMATIQUE REVUE N°2      INTERROGATION DE LA BASE DE.
Outil de gestion des cartes grises
Gérer la sécurité des mots de passe et les ressources
Centre d’échange d’informations sur la Convention sur la Diversité Biologique Bienvenue dans le cours sur l’ajout d’une page web sur un site web développé.
PHP 5° PARTIE : LES COOKIES
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Université de Sherbrooke
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Auvray Vincent Blanchy François Bonmariage Nicolas Mélon Laurent
Institut Supérieur d’Informatique
Page 1Dernière mise à jour: 17 avril 2015 Service de l'enseignement des technologies de l'information, © HEC Montréal, Tous droits réservés.
FTP : File Transfer Protocol (protocole de transfert de fichier ) est un protocole de communication destiné à l'échange informatique de fichiers sur.
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
Initiation au web dynamique Licence Professionnelle.
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.
(fait son épicerie les jeudi). Cross site Scripting est l'attaque web la plus commune.
Développement d’applications Web
Transcription de la présentation:

Développement dapplications web Initiation à la sécurité 1

Problématique / Enjeux Système constamment soumis à des tentatives dattaques Protection du système Protection des données personnelles des utilisateurs Protection des données de notre application 2

Attaque sur le système Attaques les plus graves Mettent en jeu Lintégrité du système Lintégrité de toutes les données stockées sur le système 3

Type dattaques les plus courantes Attaque sur le serveur web Attaque sur dautres services SSH FTP … => Exécution de code arbitraire en tant quun certain utilisateur 4

Éléments de protection Exécuter les serveurs web et ftp sous des utilisateurs nayant accès quaux fichiers quils doivent servir Sécuriser les connexions SSH Privilégier la connexion par clé public/privé Utiliser des utilitaires bannissant les personnes tentant de se connecter trop de fois sans succès (failtoban, iptoban, …) Possibilité de naccepter les connexions que de certaines IP/plages dIP 5

Prévention et détection Mettre à jour régulièrement les programmes installés Bugfixes Security issues Se tenir au courant des failles potentielles existantes Les failles connues sont souvent listées sur les sites dédiés Consulter les logs ou utiliser un utilitaire le faisant pour détecter les tentatives dexploitation de certaines failles 6

Attaques sur des applications web Attaques cherchant à: Exécuter une requête arbitraire en base de donnée Insérer un code javascript dans une page Détourner des sécurités pour accéder à des parties sécurisées dune application … 7

Importance Moins dimpact quune attaque sur le système A peu de risque de nuire à lintégrité du système entier Peut cependant: Accéder à des données confidentielles Accéder à des parties dadministration Éviter un paiement Récupérer des données personnelles dutilisateurs Effacer des données … 8

Comment sen protéger ? Cela dépend du type dattaque Se tenir informer des dernières attaques effectués sur les applications que nous utilisons Surveiller les logs 9

SQL injection Principe: Exécuter une requête arbitraire en base de données Réalisation: Utilisation dun défaut de sécurité lors de linsertion dun élément en base de donné (un commentaire par exemple) pour exécuter la requête voulu Risques: Récupération des données utilisateur Connexion en tant que nimporte que utilisateur … 10

Exemple 11 <?php mysql_query(SELECT id FROM users WHERE name=.$login. AND password=.$password. ;); ?> SELECT id FROM users WHERE name= dupont AND password= dupontpasswd ; SELECT id FROM users WHERE name= dupont -- AND password= ;

Comment sen protéger ? Il faut échapper tous les caractères spéciaux avant de les insérer dans une requête Des fonctions existent pour le faire Se renseigner pour savoir si ce que lon utilise nous protège Utiliser des requêtes SQL paramétrées Vérifier lensemble des informations fournies par lutilisateur … 12

XSS XSS= cross site scripting Principe: Exécution dun script (javascript, flash, java, …) dans le navigateur des clients Réalisation: Détourne lutilisation de lajout de commentaire, dun module de recherche ou autre pour insérer un script arbitraire dans une page Risques: Vol de cookie/session des utilisateurs Récupération de données personnelles des utilisateurs Infection des machines des utilisateurs par un code malin 13

Exemple Quelquun ajoute sur notre blog un commentaire contenant: … Lors de laffichage du commentaire, le script javascript sera exécuter par le navigateur ayant chargé la page. Nimporte quel autre type de script client aurait pu être inséré (java, flash, etc.) 14

Solution Toujours encoder les caractères utilisés dans les balises html avant daffiché un texte fourni par un utilisateur. Ceci se fait via lutilisation de fonctions spécifique dans la plupart des langages Vérifier que les bibliothèques, modules, framework que vous utilisez mettent en place des sécurités contre ces attaques 15

Modification de cookie Quest-ce quun cookie ? Un fichier stockant des données pour un site web Ce fichier est renvoyé à chaque requête Il peut contenir nimporte quel type dinformation 16

Modification de cookie Principe: Modifier les informations contenu dans un cookie pour obtenir plus de droit ou éviter une sécurité ou un paiement Réalisation: Le cookie est un fichier texte sil na pas été encodé, il suffit donc de léditer Risques: Le pirate peut obtenir le rôle dadministrateur ou éviter certaines sécurités (vérification de paiement, etc.) 17

Solution Première solution: Crypter le cookie Quelquun sera toujours capable de trouver comment décrypter et pourra modifier les informations Deuxième solution: Fournir dans le cookie une clé didentification Les informations de session sont conservés sur le serveur La clé permet de dire au serveur quelles informations regarder 18

url jumping Principe: Rentrer lurl dune page dans la barre dadresse sans suivre la progression imposée par le site Réalisation: Taper ladresse dans la barre dadresse de son navigateur Risque: Éviter un paiement ou une procédure dauthentification 19

Exemple Une personne accède à lurl: Monsite.com/administration/adminpanel.php Si cette page ne vérifie pas que la personne est bien authentifiée, elle pourra avoir accès à cette page sans même sêtre connectée. 20

Autre exemple Dans une procédure dachat en ligne: La personne est à la page: Monsite/achat/step3.php Elle rentre directement ladresse Monsite/achat/step5.php Si aucune vérification nest faite, elle est peut-être passée de létape de paiement à létape de validation et denvoie sans avoir payé. 21

Solution Chaque page faisant partie dune zone sécurisée ou dune chaîne daction est responsable de vérifier: Que la personne accédant à la page est bien authentifiée Que la personne accédant à la page a bien suivi toute la chaîne daction Attention, le stockage dinformation directement dans le cookie nest pas sûr (comme vu précédemment), une combinaison dattaques reste possible 22

Déni de service Principe: Rendre inaccessible lapplication Réalisation: Requêtes multiples, boucle « infini », … But: Rendre le site ou le service inaccessible 23

Exemple Grand nombre de requêtes envoyées sur lapplication Remplissage de la mémoire: … 24 String TotalObjects = request.getParameter(numberofobjects); int NumOfObjects = Integer.parseInt(TotalObjects); ComplexObject[] anArray = new ComplexObject[NumOfObjects];

Solution Limiter le nombre de requête provenant dune même source Ne pas utiliser de données fournies par lutilisateur pour des boucles ou des allocations sans mettre des limites … 25

Bonnes pratiques Ne jamais croire une information entrée par un utilisateur Formulaire, paramètre url, etc. Toujours vérifier les informations passées dune page à lautre Si une information est passée chez lutilisateur, il faut supposer quelle a pu être altéré et la vérifier avant de lutiliser … 26

Plus dinformations ? Open Web Application Security Project 27