SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Les 10 plus importants risques dans
vos applications




Sébastien Gioria

OWASP Global Education committee
OWASP French Chapter Leader


sebastien.gioria@owasp.org
        Copyright © The OWASP Foundation
           Permission is granted to copy, distribute and/or modify this document
           under the terms of the OWASP License.




           The OWASP Foundation
            http://www.owasp.org/
Votre
  application
     a été               OUI
    piratée


    NON
     Votre
  application
    va être              OUI
    piratée


    NON

 Laisssez moi
              Votre application va être piratée
 vous mettre
dans la bonne                                     2
   direction
Ne soyez pas le prochain !

                                                                                                                                                                                               "SELECT * FROM
                                                                                                                                                                                                Account Summary
                                                                                                                                                                                              Account:
                                                                                                                                                                                               accounts WHERE




                                                                          Knowledge Mgmt
                                                                           Communication




                                                                                                                   Legacy Systems
                                                         Administration




                                                                           Bus. Functions




                                                                                                                                                                 Human Resrcs
                                                                            E-Commerce
Application Layer




                                                          Transactions




                                                                                                                                    Web Services
                                                                                                                                                                                                 SKU:
                                                                                                                                                                                                  acct=‘’ OR




                                                                                                                                                   Directories
                                              Accounts




                                                                                                       Databases
                                                                                                                                                                                           Acct:5424-6066-2134-4334




                                              Finance
                                                       HTTP




                                                                                                                                                                                Billing
                      HTTP                                  SQL                                                              DB Table                                                      Acct:4128-7574-3921-0192
                                                     response                                                                  
                                                                                                                                                                                                      1=1--’"
                     request                                query                                                                                                                          Acct:5424-9383-2039-4029
                     APPLICATION                        
                                                                                                                                                                                         Acct:4128-0004-1234-0293
                     
                     ATTACK
                                                             
                                                         Custom Code
                                                                                                                                                                                          1. L’application fourni un
                                                                                                                                                                                          formulaire
                                                                                                                                                                                          2. L’attaquant envoi son attaque
                                                                                                                                                                                          dans les données du formulaire
                                                          App Server
                                                                                                                                                                                          3.L’application transfère les
                                                          Web Server
                                                                                                                                                                                          données à la requête SQL
                                                         Hardened OS
                                                                                                                                                                                          4. Le SGBD lance la requête
Network Layer




                                                                                                                                                                                          contenant l’attaque et renvoie les
                                                                                                                                                                                          résultats à l’application.
                                                                                            Firewall
                                   Firewall




                                                                                                                                                                                          5. L’application renvoie ce résultat
                                                                                                                                                                                          à l’utilisateur
A1 – Injection
   L’injection

   • Envoyer à une application des données générant un comportement non
     attendu.

   Les Interpréteurs

   • Utilisent les chaines et les interpretent comme des commandes
   • SQL, OS Shell, LDAP, XPath, Hibernate, etc…

   L’injection SQL est toujours commune

   • Enormément d’applications y sont sensibles
   • Même s’il est très simple de s’en affranchir….

   Impact

   • Souvent très sévère. Le plupart du temps l’ensemble des données de la base
     sont lisibles ou modifiables.
   • Cela peut même aller jusqu’au schéma de la base, les comptes ou un accès
     OS….
A1 – Comment se protéger

 Recommandations
  1.  Se passer des interpréteurs,
  2.  Utiliser une interface permettant de préparer les requêtes (ex,
      prepared statements, or les procédures stockées),
  3.  Encoder toutes les données fournies par l’utilisateur avant de les
      passer à l’interpréteur
   Toujours effectuer une validation de type “white liste” sur les
      données utilisateurs.
   Minimiser les privilèges dans les bases pour limiter l’impact de la
      faille.

 References
    Plus de détails sur       http://www.owasp.org/index.php/
     SQL_Injection_Prevention_Cheat_Sheet
Que peut-il se passer ?




                          6
Que se passe-t-il ?
                         Site (www.leboncoin.fr)




                      Site du pirate (ha.ckers.fr




                                                    7
A2 – Cross-Site Scripting (XSS)
   Se retrouve à chaque audit/pentest

   • Des données venant d’un attaquant sont envoyées à l’innocent navigateur d’un
     utilisateur

   Ces données peuvent être

   • Stockées en base,
   • Réfléchies depuis une entrée d’une page Web (champ de formulaire, champ
     caché, URL, …)
   • Envoyées directement à un client Riche (Javascript, Flash, …)

   Virtuellement toute application Web est vulnérable

   • Essayez cela dans votre navigateur – javascript:alert(document.cookie)

   Impact

   • Vol des sessions utilisateur, de données sensibles, réécriture de la page Web,
     redirection vers un site d’hameconnage ou autre code malveillant
   • De manière plus grave : installation d’un proxy XSS permettant à un attaquant
     d’observer le poste client voire de forcer l’utilisateur vers un site particulier
A2 – Contre mesures
 Recommandations
   Supprimer la faille 
       Ne pas inclure de contenu fourni par l’utilisateur dans la page de
        sortie !!!
   Défenses possibles
     1.  Encoder toutes les entrées et sorties utilisateurs (utilisez l’OWASP
         ESAPI pour l’encodage de sortie) http://www.owasp.org/index.php/
         ESAPI
     2.  Effectuer de la validation de type « white liste » pour les données
         utilisateurs entrantes qui sont inclues dans une page.
     3.  Pour des grosses portions de code HTML fourni par un utilisateur,
         utiliser le filtre OWASP Anti-Sammy de manière à nettoyer l’HTML
               Voir: http://www.owasp.org/index.php/AntiSamy
 Référence                                                                          (AntiSamy)
   Pour effectuer un encodage propre, se référer à                http://www.owasp.org/
     index.php/XSS_(Cross Site Scripting) Prevention Cheat Sheet
Que se passe-t-il ?




  Hacker




                                             789
                                     =1 23456
                                 ONID
                                SI
                      .jsp ?SES                        ted
               /login                        uth entica
           GET                        5679 A
                                    34
                          ION ID=12
               OK  SESS

Customer                                                     10
A3 – Mauvaise gestion des sessions et de
l’authentification
  HTTP est un protocole sans état

  • Les identifiants doivent donc être passés à chaque requête.
  • Il faut utiliser SSL pour toute authentification

  Failles dans la gestion de l’authentification

  • Des ID de sessions sont utilisés pour maintenir la session dans HTTP car il ne le
    peut lui.
    • Cela suffit à un attaquant, c’est aussi interessant qu’un identifiant
  • Les ID de sessions sont souvent exposés dans les sessions réseau, dans les
    browsers (cookies), dans les logs, ….

  Attention aux portes dérobées…

  • Changement de mot de passe, se souvenir de mon passe, oubli de mot de passe,
    questions secretes, logout, email, …

  Impact

  • Vol de session ou compromission de comptes utilisateur
A3 – Contre Mesure

 Vérifier l’architecture !
    L’authentification doit être simple, centralisée et standardisée
    Utiliser le mécanisme standard de gestion des cookies du
     framework (ils sont globalement fiables)
    Utiliser constamment SSL pour protéger les identifiants de
     connexion et de sessions
 Vérifier l’implémentation
    Oublier l’analyse automatique
    Vérifier le certificat SSL (SSLv2, renégociation, chiffrement faible,
     …)
    Examiner toutes les fonctions relatives a l’authentification
    Vérifier que la déconnexion supprime bien la session !
    Utiliser l’OWASP WebScarab pour tester l’implémentation
     (sessionID analysis)
Que se passe-t-il ?
A4 – Référence directe non sécurisée à un
objet
  Comment accéder aux données privées

  • C’est une manière de renforcer les habilitations en lien avec
    A7 – Mauvaise restriction d’accès à une URL

  Des erreurs classiques

  • Attendre uniquement de l’utilisateur des accès à des objets autorisés ou
  • Cacher des références à des objets dans des champs cachés
  • … et ne pas renforcer les restrictions coté serveur.
  • Ceci n’est qu’une tentative de contrôle d’accès sur la présentation et ne
    fonctionne pas !
  • Un attaquant n’a qu’a modifier les valeurs des paramètres…

  Impact

  • Un utilisateur a accès à des données ou des fichiers normalement
    interdits
A4 – Contre Mesure

  Eliminer la référence directe.
      La remplacer par une valeur temporaire aléatoire (e.g. 1, 2, 3)
      L’ESAPI fournit des fonctions pour cela
           IntegerAccessReferenceMap & RandomAccessReferenceMap

http://app?file=Report123.xls                                 Report123.xls
                                             Access
http://app?file=1
                                            Reference
http://app?id=9182374                         Map              Acct:9182374
http://app?id=7d3J93


  Valider la référence directe à l’objet
      Vérifier que le contenu est correctement formaté.
      Vérifier que l’utilisateur a le droit d’effctuer l’accès à l’objet.
      Vérifier que le mode d’accès à l’objet est autorisé (e.g., read,
       write, delete)
Que se passe-t-il ?




        Surf the W
                  eb




                       16
A5 – Cross Site Request Forgery (CSRF)
  Cross Site Request Forgery

  •  C’est une attaque ou le navigateur de la victime génère une requête vers une
     application Web vulnérable
  •  Cette vulnérabilité est causée par la capacité que les navigateurs ont d’
     envoyer automatiquement des données d’authentification (session ID, IP
     adresse, comptes de domaine windows, ..) dans chaque requête.

  Imaginez

  •  Que se passerait-il si un attaquant pouvait utiliser votre souris pour effectuer
     des clicks sur votre site de banque en ligne a votre place.
  •  Que pourrait-il faire ?

  Impact

  •  Initiation de transactions (transfert de fonds, logoff, modification de données,
     …)
  •  Accès à des données sensibles
  •  Changement des mots de passes/identifiants
CSRF démystifié
   Le problème
      Les navigateurs Web incluent automatiquement la plupart des
       identifiants dans chaque requête.
      Que cela soit des requêtes venant d’un formulaire, d’une image ou
       d’un autre site.
   Tous les sites basés uniquement sur les identifiants
    automatiques sont vulnérables
      Approximativement 100% des sites le sont…
   C’est quoi un identifiant automatique?
      Cookie de session
      Une entête d’authentification HTTP
      Une adresse IP
      Les certificats SSL client
      L’authentification de domaine Windows.
A5 – Contre Mesure

  Ajouter un jeton, non envoyé automatiquement, a toutes les requêtes
   sensibles.
       Cela rend impossible pour l’attaquant de soumettre une requête valide.
           (sauf si en plus il y a une faille XSS)
       Ces jetons doivent être surs cryptographiquement.
  Options
       Stocker un seul jeton dans la session et l’ajouter a tous les formulaire et liens
            Champ caché: <input name="token" value="687965fdfaew87agrde"
             type="hidden"/>
            Utiliser un URL : /accounts/687965fdfaew87agrde
            Utiliser un jeton de formulaire: /accounts?auth=687965fdfaew87agrde        …
       Attention a ne pas exposer le jeton dans l’entete “referer”
             Utiliser de préférence un champ caché.
       Utiliser un jeton unique par fonction.
       Il est recommandé d’ajouter un second niveau d’authentification pour une
        transaction sensible

  Ne pas laisser un attaquant stocker des attaques sur le site
       Encoder proprement les données d’entrées
       Cela permet de limiter la majorité des interpréteurs de liens

Voir www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet pour plus de détails
Que se passe-t-il ?




                      20
A6 – Mauvaise configuration
  Les applications Web doivent faire confiance à une
  fondation sécurisée
  •  On pense aux réseaux, aux systèmes et aux plateformes
  •  Il ne faut pas oublier les environnements de développement


  Est-ce que votre code source est secret?
  •  Pensez a tous les endroits ou l’on trouve votre code source.
  •  La Sécurité ne doit pas se baser sur l’obscurité du code source.

  Il faut étendre la gestion de la configuration a toutes les
  parties de l’application
  •  Tous les identifiants doivent être changés sur les environnements de
     production
  Impact
  •  Installation d’une porte dérobée via un oubli de patch (serveur, réseau,…)
  •  Failles XSS exploitées du à l’oubli de patch dans les frameworks
  •  Accès non autorisé à des comptes , des données, ou des fonctionnalités
     applicatives par défaut non utilisées mais accessibles a cause d’une
     mauvaise configuration utilisateur
A6 – Contre Mesure
 Vérifier la gestion de la configuration sécurité de vos systèmes.
     Ayez des guidelines de renforcement de la sécurité.
          L’automatisation est réellement utile dans ce cas
     Couvrir toute la plateforme et l’application
     Garder a l’esprit d’avoir des patchs pour TOUS les composants
          Cela inclut les librairies, et pas seulement l’OS, les serveurs et applications.
     Analyser l’impact sécurité des changements


 Pouvez vous effectuer des “masters” de votre configuration
  applicative ?
     Mettre en place un reporting des builds dans le processus sécurité
     Si vous ne pouvez vérifier le configuration applicative, l’applicatif n’est
      pas sécurisé


 Vérifier l’implémentation
     Les scans découvrent généralement les configurations par défaut et les
      problèmes dus à des patchs de retard
Que se passe-t-il ?




                      23
A7 – Mauvaise restriction d’URL

  Comment protégez vous l’accès à une URL ?

  • Cela concerne aussi le renforcement des habilitations tout comme
    le paragraphe A4

  Une erreur commune…

  • N’afficher que les liens et menus autorisés dans les listes de choix.
  • Une fois de plus, c’est du controle d’accès visuel, et cela ne fonctionne
    pas.
  • Il suffit de modifier les requêtes en allant diretement sur les pages
    “non autorisées”

  Impact

  • Invocation de fonctions et de services non autorisées
  • Accès a des données ou des comptes n’appartenant pas à l’utilisateur
  • Élévation de privilèges et d’actions
A7 – Contre Mesure

  Pour toute URL il faut 3 éléments :
      Restreindre l’accès aux seuls utilisateurs authentifiés (sauf si l’URL est publique).
      Renforcer les permissions basées sur les rôles ou l’utilisateue (si l’URL est privée)
      Bloquer toute requête à des pages non autorisées ( (e.g., fichiers de config, de
       log, code source, etc.)

  Vérifier l’architecture
      Utiliser un modèle positif simple a tous les niveaux
      S’assurer d’avoir un modèle d’accès à tous les niveaux.

  Vérifier l’implémentation
      Oublier l’approche automatisée
      Vérifier que chaque URL de l’application est protégée par :
           Un filtre externe, comme en J2EE (web.xml)
           Ou par un morceau de VOTRE code – Voir la méthode ESAPI’ isAuthorizedForURL()
      Vérifier que la configuration du serveur n’autorise pas les requêtes vers les types
       de fichiers ou extensions non autorisés.
      Utiliser un proxy type WebScarab pour forger des requêtes non autorisées.
Que se passe-t-il ?




                      26
A8 – Redirections et transferts non contrôlés

  Les redirections sont communes dans une application WEB.

  •  Et fréquemment elles incluent des paramètres fournis par l’utilisateur dans l’URL
     de destination.
  •  Si ces paramètres ne sont pas validés, un attaquant peut envoyer la victime vers
     le site de son choix.

  Les transferts(aka Transfer en .NET) sont eux aussi
  communs
  •  Ils renvoient la requête vers une nouvelle page en interne de l’application.
  •  Parfois les paramètres déterminent la page cible.
  •  Si cela n’est pas validé, cela permet de parfois passer outre les mécanismes
     d’autorisation et d’authentification.

  Impact

  •  Rediriger la victime vers un site malveillant de type hameconnage.
  •  Il devient possible de passer outre les contrôles de sécurité et accéder à des
     fonctions ou données non autorisées.
A8 – Contre Mesure
  Il y a des tonnes de solutions
   1.  Eviter au maximum les redirections et les transferts
   2.  S’il faut absolument les intégrer, ne pas utiliser les paramètres parvenant d’un
       utilisateur pour définir l’URL/fonction cible.
   3.  Si vous “devez” utiliser les paramètres utilisateurs,
       a)  Validez chaque paramètre pour vérifier qu’il est autorisé et valide par rapport à
           l’utilisateur, ou alors
       b)  Utilisez une table de correspondance serveur entre les paramètres utilisateurs et les
           pages à appeler.
     Pour les redirection, valider l’URL cible après la construction pour vérifier qu’elle
      redirige bien vers un site autorisé !
     L’ESAPI peut vous aider :
           Voir : SecurityWrapperResponse.sendRedirect( URL )
           http://owasp-esapi-java.googlecode.com/svn/trunk_doc/org/owasp/esapi/filters/
            SecurityWrapperResponse.html#sendRedirect(java.lang.String)

  Quelques réflexions sur les Transferts
      Idéallement, il faudrait appeler le contrôle d’accès pour être sur que l’utilisateur
       est bien autorisé aà effecgtuer le transfert(très simple avec l’ESAPI…)
      Si vous utilisez des filtres externes (comme SiteMinder), cela ne sera pas simple
      La meilleure solution est de s’assurer que les utilisateurs qui ont accès à la page
       initiale ont TOUS le droit d’accéder à la page cible….
Que se passe-t-il ?




                      29
A9 – Stockage Cryptographique non sécurisé

  Le stockage de données non sécurisées

  • Oubli d’identification des données sensibles
  • Oubli d’identification de tous les entrepôts de stockage des
    données sensibles.
   •  Bases de données, fichiers, répertoires, fichiers de logs, backup, …
  • Oubli de mettre en place une protection correcte des données dans
    tous les entrepots de stockages des données sensibles.


  Impact

  • Modification ou accès a des données confidentielles ou privées (carte
    de crédits, données santés, données financières, …)
  • Extrait de données secretes via d’autres failles (injection SQL, LDAP, …)
  • Problème d’image de marque, d’image client et perte de confiance
  • Long et couteux processus de vérification, investigation et retour a la
    normale (forensics, lettres et dédommagements client, assurance, …)
A9 – Contre Mesure

  Vérifier l’architecture
       Identifier toutes les données sensibles
       Identifier tous les entrepots de stockage des données
       S’assurer des attaques possibles sur comptes

  Utiliser un mécanisme de chiffrement approprié
       Chiffrement de fichier, de base, d’élément de la base.

  Utiliser correctement le mécanisme…
       Utiliser des algorithmes connus standard et surs.
       Générer, distribuer et protéger les clefs
       S’assurer de la capacité de changement régulier des clefs

  Vérifier l’implémentation
       Un algorithme sur est utilisé et c’est le bon algorithme pour la situation !
       Toutes les clefs, certificats, et mots de passe sont stockés et protégés correctement.
       Il existe une distribution propre des clefs et il est possible d’en changer facilement
Que se passe-t-il ?




                      32
A10 – Protection insuffisante lors du
transport des données
   La transmission de données non sécurisées…
   • Oubli de l’identification de TOUTES les données sensibles
   • Oubli de l’identification de TOUTES les URLs/Pages ou les données
     sensibles transitent.
    •  Sur le Web, vers les SGBD, vers les partenaires métiers, vers les réseaux
       internes…
   • Oubli de protéger les données à chacun de ces endroits…

   Impact
   • Modification ou accès a des données confidentielles ou privées (carte
     de crédits, données santés, données financières, …)
   • Extrait de données secretes via d’autres failles (injection SQL, LDAP,
     …)
   • Problème d’image de marque, d’image client et perte de confiance
   • Long et couteux processus de vérification, investigation et retour a la
     normale (forensics, lettres et dédommagements client, assurance)
A10 – Contre Mesure

 Utiliser les mécanismes de protection appropriés
    Utiliser TLS pour tout transport de données sensibles.
    Chiffrer les messages avant transmission.
         E.g., XML-Encryption
    Signer les messages avant transmission
         E.g., XML-Signature

 Utiliser les mécanismes correctement !
    Utiliser des algorithmes surs ! (désactiver les vieilles versions de
     SSL et les chiffrements faibles…)
    Gérer correctement les clefs/certificats.
    Vérifier les certificats SSL avant l’utilisation.
    Voir http://www.owasp.org/index.php/
     Transport_Layer_Protection_Cheat_Sheet pour plus de details
Résumé…




          35
OWASP Top Ten 2010




     http://www.owasp.org/index.php/Top_10
En résumé : comment adresser ces risques

  Développer du code sécurisé !
      Suivre les bonnes pratiques du Guide OWASP sur la construction sécurisée d’une
       application Web.
           http://www.owasp.org/index.php/Guide
      Utiliser l’OWASP Application Security Verification Standard comme un guide
       permettant de définir les mécanismes de sécurité
           http://www.owasp.org/index.php/ASVS
      Utiliser les composants de sécurité standard et s’adaptant le mieux a votre
       entreprise
           Par exemple utiliser l’OWASP ESAPI comme une fondation a VOS composants standards
           http://www.owasp.org/index.php/ESAPI

  Auditer les applications
      Faire appel a une équipe expérimentée pour analyser et auditer l’application.
      Auditer les applications vous-meme graçe aux guide de l’OWASP
           OWASP Code Review Guide:
                              http://www.owasp.org/index.php/Code_Review_Guide
           OWASP Testing Guide:
                              http://www.owasp.org/index.php/Testing_Guide
Remerciements - Copyright

 Les contributeurs principaux
    Jeff Williams (auteur du premier Top10 en2003 )
    Dave Wichers (auteur et responsible actuel du projet )


 Antonio Fontes (OWASP Geneva Chapter) pour certains points

 Vous êtes libres de :
    Partager (copier, distribuer , transmettre)
    Mixer les slides


 Mais uniquement si :
    Vous le faites a des finalités non-commerciales
    Et vous continuez à partager vos résultats de la même façon

                                                                   38

Contenu connexe

En vedette

Ud3 metodologia de la evaluacion del diseno de formacion
Ud3 metodologia de la evaluacion del diseno de formacionUd3 metodologia de la evaluacion del diseno de formacion
Ud3 metodologia de la evaluacion del diseno de formacionMARICARMEN SANCHEZ
 
Experiencia y perspectivas desde la Sociedad Civil ante la UNCAC
Experiencia y perspectivas desde la Sociedad Civil ante la UNCACExperiencia y perspectivas desde la Sociedad Civil ante la UNCAC
Experiencia y perspectivas desde la Sociedad Civil ante la UNCACTransparenciaporColombia
 
Practiquemos convivencia en la escuela diapositivas
Practiquemos convivencia en la escuela diapositivasPractiquemos convivencia en la escuela diapositivas
Practiquemos convivencia en la escuela diapositivasnosstar
 
Beneficios de la web 2.0
Beneficios de la web 2.0Beneficios de la web 2.0
Beneficios de la web 2.0leonfrei
 
D I A P O S I T I V A S E X P O S T A R O S A T E C N O G A M Icorreccion
D I A P O S I T I V A S  E X P O  S T A  R O S A  T E C N O G A M IcorreccionD I A P O S I T I V A S  E X P O  S T A  R O S A  T E C N O G A M Icorreccion
D I A P O S I T I V A S E X P O S T A R O S A T E C N O G A M Icorreccionunisarc
 
Apprendre Avec Et Par Les Nouvelles Technologies
Apprendre Avec Et Par Les Nouvelles TechnologiesApprendre Avec Et Par Les Nouvelles Technologies
Apprendre Avec Et Par Les Nouvelles Technologiesvanessa_
 
IMPACTOS DE LA TECNOLOGIA
IMPACTOS DE LA TECNOLOGIAIMPACTOS DE LA TECNOLOGIA
IMPACTOS DE LA TECNOLOGIACarola68
 
Rendición de cuentas
Rendición de cuentasRendición de cuentas
Rendición de cuentasCiuad de Asis
 
Rapport IGF - Situation des universités
Rapport IGF - Situation des universitésRapport IGF - Situation des universités
Rapport IGF - Situation des universitéscorpopharmanantes
 

En vedette (20)

Ud3 metodologia de la evaluacion del diseno de formacion
Ud3 metodologia de la evaluacion del diseno de formacionUd3 metodologia de la evaluacion del diseno de formacion
Ud3 metodologia de la evaluacion del diseno de formacion
 
Comerias
ComeriasComerias
Comerias
 
Experiencia y perspectivas desde la Sociedad Civil ante la UNCAC
Experiencia y perspectivas desde la Sociedad Civil ante la UNCACExperiencia y perspectivas desde la Sociedad Civil ante la UNCAC
Experiencia y perspectivas desde la Sociedad Civil ante la UNCAC
 
Vida en comunidad dietrich bonhoeffer
Vida en comunidad dietrich bonhoefferVida en comunidad dietrich bonhoeffer
Vida en comunidad dietrich bonhoeffer
 
Quienes son y de donde vienen
Quienes son y de donde vienenQuienes son y de donde vienen
Quienes son y de donde vienen
 
Practiquemos convivencia en la escuela diapositivas
Practiquemos convivencia en la escuela diapositivasPractiquemos convivencia en la escuela diapositivas
Practiquemos convivencia en la escuela diapositivas
 
Lectures estiu segon cicle
Lectures estiu segon cicleLectures estiu segon cicle
Lectures estiu segon cicle
 
Beneficios de la web 2.0
Beneficios de la web 2.0Beneficios de la web 2.0
Beneficios de la web 2.0
 
Osj Sur Le Web
Osj Sur Le WebOsj Sur Le Web
Osj Sur Le Web
 
D I A P O S I T I V A S E X P O S T A R O S A T E C N O G A M Icorreccion
D I A P O S I T I V A S  E X P O  S T A  R O S A  T E C N O G A M IcorreccionD I A P O S I T I V A S  E X P O  S T A  R O S A  T E C N O G A M Icorreccion
D I A P O S I T I V A S E X P O S T A R O S A T E C N O G A M Icorreccion
 
Apprendre Avec Et Par Les Nouvelles Technologies
Apprendre Avec Et Par Les Nouvelles TechnologiesApprendre Avec Et Par Les Nouvelles Technologies
Apprendre Avec Et Par Les Nouvelles Technologies
 
Panneaux
PanneauxPanneaux
Panneaux
 
IMPACTOS DE LA TECNOLOGIA
IMPACTOS DE LA TECNOLOGIAIMPACTOS DE LA TECNOLOGIA
IMPACTOS DE LA TECNOLOGIA
 
Peyresq_2015
Peyresq_2015Peyresq_2015
Peyresq_2015
 
Rendición de cuentas
Rendición de cuentasRendición de cuentas
Rendición de cuentas
 
Adelante
AdelanteAdelante
Adelante
 
Rapport IGF - Situation des universités
Rapport IGF - Situation des universitésRapport IGF - Situation des universités
Rapport IGF - Situation des universités
 
Son el mismo
Son el mismoSon el mismo
Son el mismo
 
Brendon 1
Brendon 1Brendon 1
Brendon 1
 
Un analisis de juan
Un analisis de juanUn analisis de juan
Un analisis de juan
 

Plus de Sébastien GIORIA

OWASP Top10 IoT - CLUSIR Infornord Décembre 2014
OWASP Top10 IoT - CLUSIR Infornord Décembre 2014OWASP Top10 IoT - CLUSIR Infornord Décembre 2014
OWASP Top10 IoT - CLUSIR Infornord Décembre 2014Sébastien GIORIA
 
Analyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSourceAnalyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSourceSébastien GIORIA
 
2014 09-25-club-27001 iso 27034-presentation-v2.2
2014 09-25-club-27001 iso 27034-presentation-v2.22014 09-25-club-27001 iso 27034-presentation-v2.2
2014 09-25-club-27001 iso 27034-presentation-v2.2Sébastien GIORIA
 
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
 
Présentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonPrésentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonSébastien GIORIA
 
2013 06-27-securecoding-en - jug pch
2013 06-27-securecoding-en - jug pch2013 06-27-securecoding-en - jug pch
2013 06-27-securecoding-en - jug pchSébastien GIORIA
 
OWASP Top10 2013 - Présentation aux RSSIA 2013
OWASP Top10 2013 - Présentation aux RSSIA 2013OWASP Top10 2013 - Présentation aux RSSIA 2013
OWASP Top10 2013 - Présentation aux RSSIA 2013Sébastien GIORIA
 
OWASP, the life and the universe
OWASP, the life and the universeOWASP, the life and the universe
OWASP, the life and the universeSébastien GIORIA
 
2013 04-04-html5-security-v2
2013 04-04-html5-security-v22013 04-04-html5-security-v2
2013 04-04-html5-security-v2Sébastien GIORIA
 
2013 02-12-owasp top10 mobile - attaques et solutions sur windows phone (sec309)
2013 02-12-owasp top10 mobile - attaques et solutions sur windows phone (sec309)2013 02-12-owasp top10 mobile - attaques et solutions sur windows phone (sec309)
2013 02-12-owasp top10 mobile - attaques et solutions sur windows phone (sec309)Sébastien GIORIA
 
2013 03-01 automatiser les tests sécurité
2013 03-01 automatiser les tests sécurité2013 03-01 automatiser les tests sécurité
2013 03-01 automatiser les tests sécuritéSébastien GIORIA
 
2013 02-27-owasp top10 javascript
 2013 02-27-owasp top10 javascript 2013 02-27-owasp top10 javascript
2013 02-27-owasp top10 javascriptSébastien GIORIA
 
2012 11-07-owasp mobile top10 v01
2012 11-07-owasp mobile top10 v012012 11-07-owasp mobile top10 v01
2012 11-07-owasp mobile top10 v01Sébastien GIORIA
 

Plus de Sébastien GIORIA (20)

OWASP Top10 IoT - CLUSIR Infornord Décembre 2014
OWASP Top10 IoT - CLUSIR Infornord Décembre 2014OWASP Top10 IoT - CLUSIR Infornord Décembre 2014
OWASP Top10 IoT - CLUSIR Infornord Décembre 2014
 
Analyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSourceAnalyser la sécurité de son code source avec SonarSource
Analyser la sécurité de son code source avec SonarSource
 
2014 09-25-club-27001 iso 27034-presentation-v2.2
2014 09-25-club-27001 iso 27034-presentation-v2.22014 09-25-club-27001 iso 27034-presentation-v2.2
2014 09-25-club-27001 iso 27034-presentation-v2.2
 
SonarQube et la Sécurité
SonarQube et la SécuritéSonarQube et la Sécurité
SonarQube et la Sécurité
 
2014 09-04-pj
2014 09-04-pj2014 09-04-pj
2014 09-04-pj
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
 
Présentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonPrésentation Top10 CEGID Lyon
Présentation Top10 CEGID Lyon
 
Présentation au CRI-Ouest
Présentation au CRI-OuestPrésentation au CRI-Ouest
Présentation au CRI-Ouest
 
2013 06-27-securecoding-en - jug pch
2013 06-27-securecoding-en - jug pch2013 06-27-securecoding-en - jug pch
2013 06-27-securecoding-en - jug pch
 
OWASP Top10 2013 - Présentation aux RSSIA 2013
OWASP Top10 2013 - Présentation aux RSSIA 2013OWASP Top10 2013 - Présentation aux RSSIA 2013
OWASP Top10 2013 - Présentation aux RSSIA 2013
 
OWASP, the life and the universe
OWASP, the life and the universeOWASP, the life and the universe
OWASP, the life and the universe
 
2013 04-04-html5-security-v2
2013 04-04-html5-security-v22013 04-04-html5-security-v2
2013 04-04-html5-security-v2
 
2013 02-12-owasp top10 mobile - attaques et solutions sur windows phone (sec309)
2013 02-12-owasp top10 mobile - attaques et solutions sur windows phone (sec309)2013 02-12-owasp top10 mobile - attaques et solutions sur windows phone (sec309)
2013 02-12-owasp top10 mobile - attaques et solutions sur windows phone (sec309)
 
2013 03-01 automatiser les tests sécurité
2013 03-01 automatiser les tests sécurité2013 03-01 automatiser les tests sécurité
2013 03-01 automatiser les tests sécurité
 
2013 02-27-owasp top10 javascript
 2013 02-27-owasp top10 javascript 2013 02-27-owasp top10 javascript
2013 02-27-owasp top10 javascript
 
Secure Coding for Java
Secure Coding for JavaSecure Coding for Java
Secure Coding for Java
 
2012 11-07-owasp mobile top10 v01
2012 11-07-owasp mobile top10 v012012 11-07-owasp mobile top10 v01
2012 11-07-owasp mobile top10 v01
 
2012 07-05-spn-sgi-v1-lite
2012 07-05-spn-sgi-v1-lite2012 07-05-spn-sgi-v1-lite
2012 07-05-spn-sgi-v1-lite
 
2012 03-02-sdl-sgi-v03
2012 03-02-sdl-sgi-v032012 03-02-sdl-sgi-v03
2012 03-02-sdl-sgi-v03
 
2012 03-01-ror security v01
2012 03-01-ror security v012012 03-01-ror security v01
2012 03-01-ror security v01
 

Top10 risk in app sec fr

  • 1. Les 10 plus importants risques dans vos applications Sébastien Gioria OWASP Global Education committee OWASP French Chapter Leader sebastien.gioria@owasp.org Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org/
  • 2. Votre application a été OUI piratée NON Votre application va être OUI piratée NON Laisssez moi Votre application va être piratée vous mettre dans la bonne 2 direction
  • 3. Ne soyez pas le prochain ! "SELECT * FROM Account Summary Account: accounts WHERE Knowledge Mgmt Communication Legacy Systems Administration Bus. Functions Human Resrcs E-Commerce Application Layer Transactions Web Services SKU: acct=‘’ OR Directories Accounts Databases Acct:5424-6066-2134-4334 Finance HTTP Billing HTTP SQL DB Table Acct:4128-7574-3921-0192 response  1=1--’" request query Acct:5424-9383-2039-4029 APPLICATION    Acct:4128-0004-1234-0293  ATTACK  Custom Code 1. L’application fourni un formulaire 2. L’attaquant envoi son attaque dans les données du formulaire App Server 3.L’application transfère les Web Server données à la requête SQL Hardened OS 4. Le SGBD lance la requête Network Layer contenant l’attaque et renvoie les résultats à l’application. Firewall Firewall 5. L’application renvoie ce résultat à l’utilisateur
  • 4. A1 – Injection L’injection • Envoyer à une application des données générant un comportement non attendu. Les Interpréteurs • Utilisent les chaines et les interpretent comme des commandes • SQL, OS Shell, LDAP, XPath, Hibernate, etc… L’injection SQL est toujours commune • Enormément d’applications y sont sensibles • Même s’il est très simple de s’en affranchir…. Impact • Souvent très sévère. Le plupart du temps l’ensemble des données de la base sont lisibles ou modifiables. • Cela peut même aller jusqu’au schéma de la base, les comptes ou un accès OS….
  • 5. A1 – Comment se protéger  Recommandations 1.  Se passer des interpréteurs, 2.  Utiliser une interface permettant de préparer les requêtes (ex, prepared statements, or les procédures stockées), 3.  Encoder toutes les données fournies par l’utilisateur avant de les passer à l’interpréteur  Toujours effectuer une validation de type “white liste” sur les données utilisateurs.  Minimiser les privilèges dans les bases pour limiter l’impact de la faille.  References  Plus de détails sur http://www.owasp.org/index.php/ SQL_Injection_Prevention_Cheat_Sheet
  • 6. Que peut-il se passer ? 6
  • 7. Que se passe-t-il ? Site (www.leboncoin.fr) Site du pirate (ha.ckers.fr 7
  • 8. A2 – Cross-Site Scripting (XSS) Se retrouve à chaque audit/pentest • Des données venant d’un attaquant sont envoyées à l’innocent navigateur d’un utilisateur Ces données peuvent être • Stockées en base, • Réfléchies depuis une entrée d’une page Web (champ de formulaire, champ caché, URL, …) • Envoyées directement à un client Riche (Javascript, Flash, …) Virtuellement toute application Web est vulnérable • Essayez cela dans votre navigateur – javascript:alert(document.cookie) Impact • Vol des sessions utilisateur, de données sensibles, réécriture de la page Web, redirection vers un site d’hameconnage ou autre code malveillant • De manière plus grave : installation d’un proxy XSS permettant à un attaquant d’observer le poste client voire de forcer l’utilisateur vers un site particulier
  • 9. A2 – Contre mesures  Recommandations  Supprimer la faille    Ne pas inclure de contenu fourni par l’utilisateur dans la page de sortie !!!  Défenses possibles 1.  Encoder toutes les entrées et sorties utilisateurs (utilisez l’OWASP ESAPI pour l’encodage de sortie) http://www.owasp.org/index.php/ ESAPI 2.  Effectuer de la validation de type « white liste » pour les données utilisateurs entrantes qui sont inclues dans une page. 3.  Pour des grosses portions de code HTML fourni par un utilisateur, utiliser le filtre OWASP Anti-Sammy de manière à nettoyer l’HTML Voir: http://www.owasp.org/index.php/AntiSamy  Référence (AntiSamy)  Pour effectuer un encodage propre, se référer à http://www.owasp.org/ index.php/XSS_(Cross Site Scripting) Prevention Cheat Sheet
  • 10. Que se passe-t-il ? Hacker 789 =1 23456 ONID SI .jsp ?SES ted /login uth entica GET 5679 A 34 ION ID=12 OK SESS Customer 10
  • 11. A3 – Mauvaise gestion des sessions et de l’authentification HTTP est un protocole sans état • Les identifiants doivent donc être passés à chaque requête. • Il faut utiliser SSL pour toute authentification Failles dans la gestion de l’authentification • Des ID de sessions sont utilisés pour maintenir la session dans HTTP car il ne le peut lui. • Cela suffit à un attaquant, c’est aussi interessant qu’un identifiant • Les ID de sessions sont souvent exposés dans les sessions réseau, dans les browsers (cookies), dans les logs, …. Attention aux portes dérobées… • Changement de mot de passe, se souvenir de mon passe, oubli de mot de passe, questions secretes, logout, email, … Impact • Vol de session ou compromission de comptes utilisateur
  • 12. A3 – Contre Mesure  Vérifier l’architecture !  L’authentification doit être simple, centralisée et standardisée  Utiliser le mécanisme standard de gestion des cookies du framework (ils sont globalement fiables)  Utiliser constamment SSL pour protéger les identifiants de connexion et de sessions  Vérifier l’implémentation  Oublier l’analyse automatique  Vérifier le certificat SSL (SSLv2, renégociation, chiffrement faible, …)  Examiner toutes les fonctions relatives a l’authentification  Vérifier que la déconnexion supprime bien la session !  Utiliser l’OWASP WebScarab pour tester l’implémentation (sessionID analysis)
  • 14. A4 – Référence directe non sécurisée à un objet Comment accéder aux données privées • C’est une manière de renforcer les habilitations en lien avec A7 – Mauvaise restriction d’accès à une URL Des erreurs classiques • Attendre uniquement de l’utilisateur des accès à des objets autorisés ou • Cacher des références à des objets dans des champs cachés • … et ne pas renforcer les restrictions coté serveur. • Ceci n’est qu’une tentative de contrôle d’accès sur la présentation et ne fonctionne pas ! • Un attaquant n’a qu’a modifier les valeurs des paramètres… Impact • Un utilisateur a accès à des données ou des fichiers normalement interdits
  • 15. A4 – Contre Mesure  Eliminer la référence directe.  La remplacer par une valeur temporaire aléatoire (e.g. 1, 2, 3)  L’ESAPI fournit des fonctions pour cela   IntegerAccessReferenceMap & RandomAccessReferenceMap http://app?file=Report123.xls Report123.xls Access http://app?file=1 Reference http://app?id=9182374 Map Acct:9182374 http://app?id=7d3J93  Valider la référence directe à l’objet  Vérifier que le contenu est correctement formaté.  Vérifier que l’utilisateur a le droit d’effctuer l’accès à l’objet.  Vérifier que le mode d’accès à l’objet est autorisé (e.g., read, write, delete)
  • 16. Que se passe-t-il ? Surf the W eb 16
  • 17. A5 – Cross Site Request Forgery (CSRF) Cross Site Request Forgery •  C’est une attaque ou le navigateur de la victime génère une requête vers une application Web vulnérable •  Cette vulnérabilité est causée par la capacité que les navigateurs ont d’ envoyer automatiquement des données d’authentification (session ID, IP adresse, comptes de domaine windows, ..) dans chaque requête. Imaginez •  Que se passerait-il si un attaquant pouvait utiliser votre souris pour effectuer des clicks sur votre site de banque en ligne a votre place. •  Que pourrait-il faire ? Impact •  Initiation de transactions (transfert de fonds, logoff, modification de données, …) •  Accès à des données sensibles •  Changement des mots de passes/identifiants
  • 18. CSRF démystifié  Le problème  Les navigateurs Web incluent automatiquement la plupart des identifiants dans chaque requête.  Que cela soit des requêtes venant d’un formulaire, d’une image ou d’un autre site.  Tous les sites basés uniquement sur les identifiants automatiques sont vulnérables  Approximativement 100% des sites le sont…  C’est quoi un identifiant automatique?  Cookie de session  Une entête d’authentification HTTP  Une adresse IP  Les certificats SSL client  L’authentification de domaine Windows.
  • 19. A5 – Contre Mesure   Ajouter un jeton, non envoyé automatiquement, a toutes les requêtes sensibles.   Cela rend impossible pour l’attaquant de soumettre une requête valide.   (sauf si en plus il y a une faille XSS)   Ces jetons doivent être surs cryptographiquement.   Options   Stocker un seul jeton dans la session et l’ajouter a tous les formulaire et liens   Champ caché: <input name="token" value="687965fdfaew87agrde" type="hidden"/>   Utiliser un URL : /accounts/687965fdfaew87agrde   Utiliser un jeton de formulaire: /accounts?auth=687965fdfaew87agrde …   Attention a ne pas exposer le jeton dans l’entete “referer”   Utiliser de préférence un champ caché.   Utiliser un jeton unique par fonction.   Il est recommandé d’ajouter un second niveau d’authentification pour une transaction sensible   Ne pas laisser un attaquant stocker des attaques sur le site   Encoder proprement les données d’entrées   Cela permet de limiter la majorité des interpréteurs de liens Voir www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet pour plus de détails
  • 21. A6 – Mauvaise configuration Les applications Web doivent faire confiance à une fondation sécurisée •  On pense aux réseaux, aux systèmes et aux plateformes •  Il ne faut pas oublier les environnements de développement Est-ce que votre code source est secret? •  Pensez a tous les endroits ou l’on trouve votre code source. •  La Sécurité ne doit pas se baser sur l’obscurité du code source. Il faut étendre la gestion de la configuration a toutes les parties de l’application •  Tous les identifiants doivent être changés sur les environnements de production Impact •  Installation d’une porte dérobée via un oubli de patch (serveur, réseau,…) •  Failles XSS exploitées du à l’oubli de patch dans les frameworks •  Accès non autorisé à des comptes , des données, ou des fonctionnalités applicatives par défaut non utilisées mais accessibles a cause d’une mauvaise configuration utilisateur
  • 22. A6 – Contre Mesure  Vérifier la gestion de la configuration sécurité de vos systèmes.  Ayez des guidelines de renforcement de la sécurité.   L’automatisation est réellement utile dans ce cas  Couvrir toute la plateforme et l’application  Garder a l’esprit d’avoir des patchs pour TOUS les composants   Cela inclut les librairies, et pas seulement l’OS, les serveurs et applications.  Analyser l’impact sécurité des changements  Pouvez vous effectuer des “masters” de votre configuration applicative ?  Mettre en place un reporting des builds dans le processus sécurité  Si vous ne pouvez vérifier le configuration applicative, l’applicatif n’est pas sécurisé  Vérifier l’implémentation  Les scans découvrent généralement les configurations par défaut et les problèmes dus à des patchs de retard
  • 24. A7 – Mauvaise restriction d’URL Comment protégez vous l’accès à une URL ? • Cela concerne aussi le renforcement des habilitations tout comme le paragraphe A4 Une erreur commune… • N’afficher que les liens et menus autorisés dans les listes de choix. • Une fois de plus, c’est du controle d’accès visuel, et cela ne fonctionne pas. • Il suffit de modifier les requêtes en allant diretement sur les pages “non autorisées” Impact • Invocation de fonctions et de services non autorisées • Accès a des données ou des comptes n’appartenant pas à l’utilisateur • Élévation de privilèges et d’actions
  • 25. A7 – Contre Mesure   Pour toute URL il faut 3 éléments :   Restreindre l’accès aux seuls utilisateurs authentifiés (sauf si l’URL est publique).   Renforcer les permissions basées sur les rôles ou l’utilisateue (si l’URL est privée)   Bloquer toute requête à des pages non autorisées ( (e.g., fichiers de config, de log, code source, etc.)   Vérifier l’architecture   Utiliser un modèle positif simple a tous les niveaux   S’assurer d’avoir un modèle d’accès à tous les niveaux.   Vérifier l’implémentation   Oublier l’approche automatisée   Vérifier que chaque URL de l’application est protégée par :   Un filtre externe, comme en J2EE (web.xml)   Ou par un morceau de VOTRE code – Voir la méthode ESAPI’ isAuthorizedForURL()   Vérifier que la configuration du serveur n’autorise pas les requêtes vers les types de fichiers ou extensions non autorisés.   Utiliser un proxy type WebScarab pour forger des requêtes non autorisées.
  • 27. A8 – Redirections et transferts non contrôlés Les redirections sont communes dans une application WEB. •  Et fréquemment elles incluent des paramètres fournis par l’utilisateur dans l’URL de destination. •  Si ces paramètres ne sont pas validés, un attaquant peut envoyer la victime vers le site de son choix. Les transferts(aka Transfer en .NET) sont eux aussi communs •  Ils renvoient la requête vers une nouvelle page en interne de l’application. •  Parfois les paramètres déterminent la page cible. •  Si cela n’est pas validé, cela permet de parfois passer outre les mécanismes d’autorisation et d’authentification. Impact •  Rediriger la victime vers un site malveillant de type hameconnage. •  Il devient possible de passer outre les contrôles de sécurité et accéder à des fonctions ou données non autorisées.
  • 28. A8 – Contre Mesure   Il y a des tonnes de solutions 1.  Eviter au maximum les redirections et les transferts 2.  S’il faut absolument les intégrer, ne pas utiliser les paramètres parvenant d’un utilisateur pour définir l’URL/fonction cible. 3.  Si vous “devez” utiliser les paramètres utilisateurs, a)  Validez chaque paramètre pour vérifier qu’il est autorisé et valide par rapport à l’utilisateur, ou alors b)  Utilisez une table de correspondance serveur entre les paramètres utilisateurs et les pages à appeler.   Pour les redirection, valider l’URL cible après la construction pour vérifier qu’elle redirige bien vers un site autorisé !   L’ESAPI peut vous aider :   Voir : SecurityWrapperResponse.sendRedirect( URL )   http://owasp-esapi-java.googlecode.com/svn/trunk_doc/org/owasp/esapi/filters/ SecurityWrapperResponse.html#sendRedirect(java.lang.String)   Quelques réflexions sur les Transferts   Idéallement, il faudrait appeler le contrôle d’accès pour être sur que l’utilisateur est bien autorisé aà effecgtuer le transfert(très simple avec l’ESAPI…)   Si vous utilisez des filtres externes (comme SiteMinder), cela ne sera pas simple   La meilleure solution est de s’assurer que les utilisateurs qui ont accès à la page initiale ont TOUS le droit d’accéder à la page cible….
  • 30. A9 – Stockage Cryptographique non sécurisé Le stockage de données non sécurisées • Oubli d’identification des données sensibles • Oubli d’identification de tous les entrepôts de stockage des données sensibles. •  Bases de données, fichiers, répertoires, fichiers de logs, backup, … • Oubli de mettre en place une protection correcte des données dans tous les entrepots de stockages des données sensibles. Impact • Modification ou accès a des données confidentielles ou privées (carte de crédits, données santés, données financières, …) • Extrait de données secretes via d’autres failles (injection SQL, LDAP, …) • Problème d’image de marque, d’image client et perte de confiance • Long et couteux processus de vérification, investigation et retour a la normale (forensics, lettres et dédommagements client, assurance, …)
  • 31. A9 – Contre Mesure   Vérifier l’architecture   Identifier toutes les données sensibles   Identifier tous les entrepots de stockage des données   S’assurer des attaques possibles sur comptes   Utiliser un mécanisme de chiffrement approprié   Chiffrement de fichier, de base, d’élément de la base.   Utiliser correctement le mécanisme…   Utiliser des algorithmes connus standard et surs.   Générer, distribuer et protéger les clefs   S’assurer de la capacité de changement régulier des clefs   Vérifier l’implémentation   Un algorithme sur est utilisé et c’est le bon algorithme pour la situation !   Toutes les clefs, certificats, et mots de passe sont stockés et protégés correctement.   Il existe une distribution propre des clefs et il est possible d’en changer facilement
  • 33. A10 – Protection insuffisante lors du transport des données La transmission de données non sécurisées… • Oubli de l’identification de TOUTES les données sensibles • Oubli de l’identification de TOUTES les URLs/Pages ou les données sensibles transitent. •  Sur le Web, vers les SGBD, vers les partenaires métiers, vers les réseaux internes… • Oubli de protéger les données à chacun de ces endroits… Impact • Modification ou accès a des données confidentielles ou privées (carte de crédits, données santés, données financières, …) • Extrait de données secretes via d’autres failles (injection SQL, LDAP, …) • Problème d’image de marque, d’image client et perte de confiance • Long et couteux processus de vérification, investigation et retour a la normale (forensics, lettres et dédommagements client, assurance)
  • 34. A10 – Contre Mesure  Utiliser les mécanismes de protection appropriés  Utiliser TLS pour tout transport de données sensibles.  Chiffrer les messages avant transmission.   E.g., XML-Encryption  Signer les messages avant transmission   E.g., XML-Signature  Utiliser les mécanismes correctement !  Utiliser des algorithmes surs ! (désactiver les vieilles versions de SSL et les chiffrements faibles…)  Gérer correctement les clefs/certificats.  Vérifier les certificats SSL avant l’utilisation.  Voir http://www.owasp.org/index.php/ Transport_Layer_Protection_Cheat_Sheet pour plus de details
  • 36. OWASP Top Ten 2010 http://www.owasp.org/index.php/Top_10
  • 37. En résumé : comment adresser ces risques   Développer du code sécurisé !   Suivre les bonnes pratiques du Guide OWASP sur la construction sécurisée d’une application Web.   http://www.owasp.org/index.php/Guide   Utiliser l’OWASP Application Security Verification Standard comme un guide permettant de définir les mécanismes de sécurité   http://www.owasp.org/index.php/ASVS   Utiliser les composants de sécurité standard et s’adaptant le mieux a votre entreprise   Par exemple utiliser l’OWASP ESAPI comme une fondation a VOS composants standards   http://www.owasp.org/index.php/ESAPI   Auditer les applications   Faire appel a une équipe expérimentée pour analyser et auditer l’application.   Auditer les applications vous-meme graçe aux guide de l’OWASP   OWASP Code Review Guide: http://www.owasp.org/index.php/Code_Review_Guide   OWASP Testing Guide: http://www.owasp.org/index.php/Testing_Guide
  • 38. Remerciements - Copyright  Les contributeurs principaux  Jeff Williams (auteur du premier Top10 en2003 )  Dave Wichers (auteur et responsible actuel du projet )  Antonio Fontes (OWASP Geneva Chapter) pour certains points  Vous êtes libres de :  Partager (copier, distribuer , transmettre)  Mixer les slides  Mais uniquement si :  Vous le faites a des finalités non-commerciales  Et vous continuez à partager vos résultats de la même façon 38