La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Développement dapplications web Initiation à la sécurité 1."— Transcription de la présentation:

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

2 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

3 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

4 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

5 É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

6 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

7 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

8 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

9 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

10 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

11 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= ;

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

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

24 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];

25 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

26 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

27 Plus dinformations ? www.owasp.org Open Web Application Security Project 27


Télécharger ppt "Développement dapplications web Initiation à la sécurité 1."

Présentations similaires


Annonces Google