SlideShare une entreprise Scribd logo
1  sur  94
Télécharger pour lire hors ligne
The OWASP Foundation
                                                        http://www.owasp.org



                      Ruby on Rails et la
                           sécurité
                           (une introduction)

                                Sébastien Gioria
                                OWASP France Leader
                           OWASP Global Education Committee




                                  Confoo.ca
                       01 Mars 2012 - Montréal - Canada
Sunday, March 4, 12
http://www.google.fr/#q=sebastien gioria
                       ‣Responsable de la branche Audit S.I et Sécurité
                       au sein du cabinet Groupe Y

                        ‣OWASP France Leader & Founder - Evangéliste
                        ‣OWASP Global Education Comittee Member
                        (sebastien.gioria@owasp.org)


                        ‣Responsable du Groupe Sécurité des
                        Applications Web au CLUSIF
   Twitter :@SPoint

                            CISA && ISO 27005 Risk Manager

         ‣ +13 ans d’expérience en Sécurité des Systèmes d’Information
         ‣ Différents postes de manager SSI dans la banque, l’assurance et les télécoms
         ‣ Expertise Technique
          - PenTesting,
          - Secure-SDLC
          - Gestion du risque, Architectures fonctionnelles, Audits
          - Consulting et Formation en Réseaux et Sécurité
                                                  2
                                                                                          2
Sunday, March 4, 12
http://www.google.fr/#q=sebastien gioria
                       ‣Responsable de la branche Audit S.I et Sécurité
                       au sein du cabinet Groupe Y

                        ‣OWASP France Leader & Founder - Evangéliste
                        ‣OWASP Global Education Comittee Member
                        (sebastien.gioria@owasp.org)


                        ‣Responsable du Groupe Sécurité des
                        Applications Web au CLUSIF
   Twitter :@SPoint

                            CISA && ISO 27005 Risk Manager

         ‣ +13 ans d’expérience en Sécurité des Systèmes d’Information
         ‣ Différents postes de manager SSI dans la banque, l’assurance et les télécoms
         ‣ Expertise Technique
          - PenTesting,
          - Secure-SDLC
          - Gestion du risque, Architectures fonctionnelles, Audits
          - Consulting et Formation en Réseaux et Sécurité
                                                  2
                                                                                          2
Sunday, March 4, 12
Agenda
                      •Introduction
                      •Injection
                      •Sessions
                      •XSS
                      •CSRF
                      •Fuite d’informations
                      •Et ensuite...
                                              3
Sunday, March 4, 12
Etude Verizon 2010




                                       © Verizon 2010

                                                        4
Sunday, March 4, 12
Etude Verizon 2010




                                       © Verizon 2010

                                                        4
Sunday, March 4, 12
Etude Verizon 2010




                                       © Verizon 2010

                                                        4
Sunday, March 4, 12
Etude Verizon 2010




                                       © Verizon 2010

                                                        4
Sunday, March 4, 12
Etude Verizon 2010




              © Verizon 2010




                                                    5
Sunday, March 4, 12
Etude Verizon 2010




              © Verizon 2010




                                                    5
Sunday, March 4, 12
Etude Verizon 2010




              © Verizon 2010




                                                    5
Sunday, March 4, 12
Etude Verizon 2010




              © Verizon 2010




                                                    5
Sunday, March 4, 12
22




          © IBM X-Force 2009 - Extrait du rapport 2009



Sunday, March 4, 12
23




                      © IBM X-Force 2009 - Extrait du rapport 2009


Sunday, March 4, 12
Exposition à une vulnérabilité




                                     26




Sunday, March 4, 12
Ce que dit le CIO : mais j’ai un Firewall !!!




                                                     27




Sunday, March 4, 12
Ce que dit le Commercial : J’ai un certificat
                                        SSL




                                                     28




Sunday, March 4, 12
Ce que dit le commercial : il faut être un expert pour
                        hacker des sites Web
         • Les outils sont simples d’emploi

         • Cherchez juste sur Internet un outil
               nommé SQLInjector

         • L’attaque d’un serveur Web coute de 100$
                à 200$ sur le marché souterrain

         • Les hackers “offrent” leur service
               directement sur Internet.


                                                      29




Sunday, March 4, 12
Offres




                               12
Sunday, March 4, 12
Ce que dit l’utilisateur : Une vulnérabilité
                n’est pas importante sur un site Web
                                  interne
         •Faut, vu que le web est partout, des attaques comme
            CSRF ainsi que l’arrivée de HTML5 et CORS sont
            destructrices.
         •Souvenez vous, et partagez cela :
               • AJAX fait des choses sans que vous le
                 sachiez...
                                                         30


         •Sachez et partagez ceci:
               •       HTML5 introduit de bien belle facilités utilisateur,
                      mais avec un impact important sur la sécurité
                      (WebSocket, CORS, ...)
Sunday, March 4, 12
The OWASP Foundation
                                  http://www.owasp.org




                      Les risques !



Sunday, March 4, 12
‘OR 1==1 --’




                                     15
Sunday, March 4, 12
‘OR 1==1 --’
                              L’injection SQL fait beaucoup parler d’elle.
                              Mais il existe d’autres formes d’injections :
                                  •XML
                                  •XPath
                                  •LDAP
                                  •ORB(Hibernate)
                                  •...




                                                                              15
Sunday, March 4, 12
‘OR 1==1 --’
                              L’injection SQL fait beaucoup parler d’elle.
                              Mais il existe d’autres formes d’injections :
                                  •XML
                                  •XPath
                                  •LDAP
                                  •ORB(Hibernate)
                                  •...




                                                                              15
Sunday, March 4, 12
‘OR 1==1 --’
                              L’injection SQL fait beaucoup parler d’elle.
                              Mais il existe d’autres formes d’injections :
                                  •XML
                                  •XPath
                                  •LDAP
                                  •ORB(Hibernate)
                                  •...




                                           A1	
  -­‐	
  Injec*on




                                                                              15
Sunday, March 4, 12
‘OR 1==1 --’
                              L’injection SQL fait beaucoup parler d’elle.
                              Mais il existe d’autres formes d’injections :
                                  •XML
                                  •XPath
                                  •LDAP
                                  •ORB(Hibernate)
                                  •...




                                           A1	
  -­‐	
  Injec*on




                                                                              15
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")




                                                                                        16
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")


     Imaginons un accès normal :




                                                                                        16
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")


     Imaginons un accès normal :
                 http://www.example.com/Project.rb?name=me




                                                                                        16
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")


     Imaginons un accès normal :
                 http://www.example.com/Project.rb?name=me

                      SELECT * FROM Project WHERE name= ‘me’




                                                                                        16
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")


     Imaginons un accès normal :
                 http://www.example.com/Project.rb?name=me

                      SELECT * FROM Project WHERE name= ‘me’

    Imaginons un accès différent :




                                                                                        16
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")


     Imaginons un accès normal :
                 http://www.example.com/Project.rb?name=me

                      SELECT * FROM Project WHERE name= ‘me’

    Imaginons un accès différent :
           http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1




                                                                                        16
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")


     Imaginons un accès normal :
                 http://www.example.com/Project.rb?name=me

                      SELECT * FROM Project WHERE name= ‘me’

    Imaginons un accès différent :
           http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1

                      SELECT * FROM Project WHERE name = ‘me’ or ‘1’=’1’




                                                                                        16
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")


     Imaginons un accès normal :
                 http://www.example.com/Project.rb?name=me

                      SELECT * FROM Project WHERE name= ‘me’

    Imaginons un accès différent :
           http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1

                      SELECT * FROM Project WHERE name = ‘me’ or ‘1’=’1’
    Voir un accès très différent :




                                                                                        16
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")


     Imaginons un accès normal :
                 http://www.example.com/Project.rb?name=me

                      SELECT * FROM Project WHERE name= ‘me’

    Imaginons un accès différent :
           http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1

                      SELECT * FROM Project WHERE name = ‘me’ or ‘1’=’1’
    Voir un accès très différent :
          http://www.example.com/Project.rb?name=me'; DELETE FROM
          PROJECTS; SELECT * from projects where '1'='1




                                                                                        16
Sunday, March 4, 12
Injec-on	
  de	
  données	
  -­‐	
  Exemple	
  de	
  code	
  vulnérable	
  SQL
     Soit le code Suivant
        Project.find(:all, :conditions => "name = '#{params[:name]}'")


     Imaginons un accès normal :
                 http://www.example.com/Project.rb?name=me

                      SELECT * FROM Project WHERE name= ‘me’

    Imaginons un accès différent :
           http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1

                      SELECT * FROM Project WHERE name = ‘me’ or ‘1’=’1’
    Voir un accès très différent :
          http://www.example.com/Project.rb?name=me'; DELETE FROM
          PROJECTS; SELECT * from projects where '1'='1
                      SELECT * FROM projects WHERE name = ''; DELETE FROM
                      PROJECTS; SELECT * from projects where '1'='1'


                                                                                        16
Sunday, March 4, 12
Injection - Prévention
        ★Valider les données
        ★Utiliser les mécanismes des requêtes
                paramétrées quand ils sont disponibles
        ★Minimiser les privilèges de connexion aux bases
        ★Minimiser les privilèges des utilisateurs de base




                                                             17
Sunday, March 4, 12
Injection - Prévention
                      1.Via une validation d’entrée propre




                      2.Via les requêtes paramétrées



Sunday, March 4, 12
19
Sunday, March 4, 12
19
Sunday, March 4, 12
19
Sunday, March 4, 12
19
Sunday, March 4, 12
http://codebutler.github.com/firesheep/




                                                      19
Sunday, March 4, 12
20
Sunday, March 4, 12
20
Sunday, March 4, 12
mabanque.com




                                20
Sunday, March 4, 12
mabanque.com




                                20
Sunday, March 4, 12
mabanque.com
                      login.rb




                                           20
Sunday, March 4, 12
mabanque.com
                       login.rb
                      Requete




                                            20
Sunday, March 4, 12
mabanque.com
                       login.rb
                      Requete




                                            20
Sunday, March 4, 12
mabanque.com
                        login.rb
                       Requete

                      Réponse
                       Set-Cookie : SESSIONID=4242




                                                               20
Sunday, March 4, 12
mabanque.com
                        login.rb
                       Requete

                      Réponse
                       Set-Cookie : SESSIONID=4242



                                                     mabanque.com




                                                               20
Sunday, March 4, 12
mabanque.com
                        login.rb
                       Requete

                      Réponse
                       Set-Cookie : SESSIONID=4242



                            Images                   mabanque.com




                                                               20
Sunday, March 4, 12
mabanque.com
                        login.rb
                       Requete

                      Réponse
                       Set-Cookie : SESSIONID=4242



                            Images                   mabanque.com




                                                               20
Sunday, March 4, 12
mabanque.com
                          login.rb
                         Requete

                       Réponse
                         Set-Cookie : SESSIONID=4242



                              Images                   mabanque.com
                         Requete
                      Cookie : SESSIONID=4242




                                                                 20
Sunday, March 4, 12
mabanque.com
                          login.rb
                         Requete

                       Réponse
                         Set-Cookie : SESSIONID=4242



                              Images                   mabanque.com
                         Requete
                      Cookie : SESSIONID=4242

                         Réponse
                      Cookie : SESSIONID=4242




                                                                 20
Sunday, March 4, 12
mabanque.com
                          login.rb
                         Requete

                       Réponse
                         Set-Cookie : SESSIONID=4242



                              Images                   mabanque.com
                         Requete
                      Cookie : SESSIONID=4242

                         Réponse
                      Cookie : SESSIONID=4242




                                                                 20
Sunday, March 4, 12
mabanque.com
                          login.rb
                         Requete

                       Réponse
                         Set-Cookie : SESSIONID=4242



                              Images                   mabanque.com
                         Requete
                      Cookie : SESSIONID=4242

                         Réponse
                      Cookie : SESSIONID=4242




                                                                 20
Sunday, March 4, 12
21
Sunday, March 4, 12
Les développeurs peuvent être tentés de créer leur propre gestionnaire de sessions
          et d'authentification, mais il s'agit d'une tâche complexe. Il en résulte souvent des
          implémentations contenant des faiblesses de sécurité dans des fonctions telles
          que: la déconnexion, la gestion des profils, etc. La diversité des implémentations rend la
          recherche de vulnérabilités complexe.




                                                                                                      21
Sunday, March 4, 12
Les développeurs peuvent être tentés de créer leur propre gestionnaire de sessions
          et d'authentification, mais il s'agit d'une tâche complexe. Il en résulte souvent des
          implémentations contenant des faiblesses de sécurité dans des fonctions telles
          que: la déconnexion, la gestion des profils, etc. La diversité des implémentations rend la
          recherche de vulnérabilités complexe.




                                                                                                      21
Sunday, March 4, 12
Les développeurs peuvent être tentés de créer leur propre gestionnaire de sessions
          et d'authentification, mais il s'agit d'une tâche complexe. Il en résulte souvent des
          implémentations contenant des faiblesses de sécurité dans des fonctions telles
          que: la déconnexion, la gestion des profils, etc. La diversité des implémentations rend la
          recherche de vulnérabilités complexe.




                                                           A3	
  -­‐	
  Mauvaise	
  
                                                            ges*on	
  des	
  
                                                           sessions et de
                                                         l’authentification




                                                                                                      21
Sunday, March 4, 12
Les développeurs peuvent être tentés de créer leur propre gestionnaire de sessions
          et d'authentification, mais il s'agit d'une tâche complexe. Il en résulte souvent des
          implémentations contenant des faiblesses de sécurité dans des fonctions telles
          que: la déconnexion, la gestion des profils, etc. La diversité des implémentations rend la
          recherche de vulnérabilités complexe.




                                                           A3	
  -­‐	
  Mauvaise	
  
                                                            ges*on	
  des	
  
                                                           sessions et de
                                                         l’authentification




                                                                                                      21
Sunday, March 4, 12
Session en Rails
                      ★HTTP est un protocole sans état
                      ★Ne pas réécrire son mécanisme !
                       ★ Par défaut les cookies de session sont
                           utilisés avec une entropie suffisante.
                      ★Protéger les ID lors du transfert
                        • Utiliser SSL
                        • Utiliser des cookies « secure »
                        • Utiliser des limitations de path
                      ★Prévoir une seconde autorisation pour les
                        transferts « sensibles »
                                                                    22
Sunday, March 4, 12
Sessions en Rails
                 ★Exemple de cookie propre :




                                               23
Sunday, March 4, 12
The OWASP Foundation
                                http://www.owasp.org




                      Démo
                       XSS




Sunday, March 4, 12
A vous ?
                      Se connecter à :
                      •http://88.191.152.70:8080/ePoney-0.0.1-
                        SNAPSHOT/pages/readReviews
                      •Choisir “Jack Daniels System” et Show
                        Reviews
                      •Attendre 2mns30 :)


                                                                 25
Sunday, March 4, 12
XSS




                            26
Sunday, March 4, 12
XSS
                      Le Cross Site Scripting est souvent mal considéré. Sa puissance
                      peut aller jusqu’a la prise de contrôle sur le poste
                      client...




                                                                                        26
Sunday, March 4, 12
XSS
                      Le Cross Site Scripting est souvent mal considéré. Sa puissance
                      peut aller jusqu’a la prise de contrôle sur le poste
                      client...




                                                                                        26
Sunday, March 4, 12
XSS
                      Le Cross Site Scripting est souvent mal considéré. Sa puissance
                      peut aller jusqu’a la prise de contrôle sur le poste
                      client...




                                                                      A2	
  -­‐	
  Cross	
  Site	
  
                                                                      Scrip*ng	
  (XSS)




                                                                                                       26
Sunday, March 4, 12
XSS
                      Le Cross Site Scripting est souvent mal considéré. Sa puissance
                      peut aller jusqu’a la prise de contrôle sur le poste
                      client...




                                                                      A2	
  -­‐	
  Cross	
  Site	
  
                                                                      Scrip*ng	
  (XSS)




                                                                                                       26
Sunday, March 4, 12
XSS - Prevention
                      ★Valider les données en entrée
                      ★Encoder les données de sortie
                      ★ N’accepter que les données attendues. Eviter le cas
                           ‘default’.
                      ★ Nettoyer les données en entrée comme en sortie.
                      ★ N’utiliser que des données fortement typées. Eviter les
                           ‘cast’ implicites ou explicites.
                      ★ Attention aux « clients », qui ne sont pas propres.




                                                                                  27
Sunday, March 4, 12
★Utilisation des échappements HTML
                        (non suffisant)


                      ★Utilisation des sanitizer HTML (mieux,
                        mais non suffisant)




                      ★Utilisation de OWASP ESAPI (beta)
                         http://rubydoc.info/gems/owasp-esapi-ruby



                                                                     28
Sunday, March 4, 12
The OWASP Foundation
                                 http://www.owasp.org




                      Démo
                       CSRF




Sunday, March 4, 12
CSRF




                             30
Sunday, March 4, 12
CSRF
          L’attaquant forge une requête HTTP et amène une victime à la soumettre via une
          balise d’image, XSS, ou de nombreuses autres techniques. Si l’utilisateur est
          authentifié , l’attaque est un succès.




                                                                                           30
Sunday, March 4, 12
CSRF
          L’attaquant forge une requête HTTP et amène une victime à la soumettre via une
          balise d’image, XSS, ou de nombreuses autres techniques. Si l’utilisateur est
          authentifié , l’attaque est un succès.




                                                                                           30
Sunday, March 4, 12
CSRF
          L’attaquant forge une requête HTTP et amène une victime à la soumettre via une
          balise d’image, XSS, ou de nombreuses autres techniques. Si l’utilisateur est
          authentifié , l’attaque est un succès.




                                          A5	
  -­‐	
  Cross	
  site	
  
                                         Request	
  Forgery	
  
                                                  (CSRF)




                                                                                           30
Sunday, March 4, 12
CSRF
          L’attaquant forge une requête HTTP et amène une victime à la soumettre via une
          balise d’image, XSS, ou de nombreuses autres techniques. Si l’utilisateur est
          authentifié , l’attaque est un succès.




                                          A5	
  -­‐	
  Cross	
  site	
  
                                         Request	
  Forgery	
  
                                                  (CSRF)




                                                                                           30
Sunday, March 4, 12
CSRF le probleme
                      ★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.

                                                                                                      31
Sunday, March 4, 12
CSRF Prevention
                 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

                      •
                                  … a ne pas exposer le jeton dans l’entete “referer”
                              Attention
                          •        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




                                                                                                            32
Sunday, March 4, 12
CSRF Prévention en Rails
                      Par défaut le framework inclut le principe
                        du jeton




                                                                   33
Sunday, March 4, 12
The OWASP Foundation
                                     http://www.owasp.org




                      Fuite d’informations



Sunday, March 4, 12
35
Sunday, March 4, 12
Une simple recherche
                       google permettait d’avoir accès
                      aux numéros de sécurité sociale
                      des étudiants de Yale




                                                     35
Sunday, March 4, 12
Une simple recherche
                       google permettait d’avoir accès
                      aux numéros de sécurité sociale
                      des étudiants de Yale




                                                     35
Sunday, March 4, 12
Une simple recherche
                       google permettait d’avoir accès
                      aux numéros de sécurité sociale
                      des étudiants de Yale




                          A6	
  -­‐	
  Mauvaise	
  
                          configura*on	
  
                              Sécurité




                                                      35
Sunday, March 4, 12
Une simple recherche
                       google permettait d’avoir accès
                      aux numéros de sécurité sociale
                      des étudiants de Yale




                          A6	
  -­‐	
  Mauvaise	
  
                          configura*on	
  
                              Sécurité




                                                      35
Sunday, March 4, 12
Prévention
               ★Garder les outils a jour :
                 ➡Serveurs
                 ➡Frameworks
               ★Supprimer tous les éléments par défaut
                      (en particulier les répertoire SVN ?)




               ★Customiser les messages d’erreurs
                                                              36
Sunday, March 4, 12
The OWASP Foundation
                                http://www.owasp.org




                      Conclusion



Sunday, March 4, 12
OWASP Top Ten 2010
                                                                           A3:	
  Mauvaise	
  ges*on	
             A4:Référence	
  directe	
  
                                               A2:	
  Cross	
  Site	
  
           A1:	
  Injec*on                                                  des	
  sessions	
  et	
  de	
           non	
  sécurisée	
  à	
  un	
  
                                               Scrip*ng	
  (XSS)
                                                                             l’authen*fica*on                                 objet


                                                                                                                      A8:	
  Mauvaise	
  
   A5:	
  Cross	
  Site	
  Request	
         A6:	
  Mauvaise	
             A7:	
  Mauvais	
  stockage	
  
                                                                                                                   restric*on	
  d’accès	
  à	
  
          Forgery	
  (CSRF)	
             configura*on	
  sécurité            cryptographique
                                                                                                                         une	
  URL



                                              A9:	
  Protec*on	
  
                                                                           A10:	
  	
  Redirec*ons	
  	
  et	
  
                                            insuffisante	
  lors	
  du	
  
                                                                           transferts	
  non	
  validés
                                          transport	
  des	
  données

                                         http://www.owasp.org/index.php/Top_10



Sunday, March 4, 12
A lire
     Ressources OWASP
           • https://www.owasp.org/index.php/Top10
           • https://www.owasp.org/index.php/
                      Project_Information:template_Ruby_on_Rail
                      s_Security_Guide_V2
           • https://www.owasp.org/index.php/Esapi
     ROR Security Project:
           • http://www.rorsecurity.info/

                                                                  39
Sunday, March 4, 12
Contact
                      @SPoint




                      sebastien.gioria@owasp.org




                                                   40
Sunday, March 4, 12

Contenu connexe

En vedette

Tablas y figuras pnr
Tablas y figuras pnrTablas y figuras pnr
Tablas y figuras pnrPedroRavelo
 
Top 7 des endroits où bruncher à Paris
Top 7 des endroits où bruncher à ParisTop 7 des endroits où bruncher à Paris
Top 7 des endroits où bruncher à ParisBubbleGlobe
 
Etude de cas e-réputation - Groupe 2
Etude de cas e-réputation - Groupe 2Etude de cas e-réputation - Groupe 2
Etude de cas e-réputation - Groupe 2Christophe Blazquez
 
Prestshop vs magento
Prestshop vs magentoPrestshop vs magento
Prestshop vs magentoDany Maillard
 
Guide pratique comment construire sa maison avec la RT 2012 ADEME - TRAVAUXLIB
Guide pratique comment construire sa maison avec la RT 2012 ADEME - TRAVAUXLIBGuide pratique comment construire sa maison avec la RT 2012 ADEME - TRAVAUXLIB
Guide pratique comment construire sa maison avec la RT 2012 ADEME - TRAVAUXLIBTravauxlib
 
Estimateur de prix en ligne gratuit pour créer son devis travaux rénovation i...
Estimateur de prix en ligne gratuit pour créer son devis travaux rénovation i...Estimateur de prix en ligne gratuit pour créer son devis travaux rénovation i...
Estimateur de prix en ligne gratuit pour créer son devis travaux rénovation i...Travauxlib
 
Strategia Web - Présentation
Strategia Web - PrésentationStrategia Web - Présentation
Strategia Web - PrésentationFred Fortin
 
9sept Pochet
9sept Pochet9sept Pochet
9sept Pochetbasco
 
Como acceder a un Documento Compartido
Como acceder a un Documento CompartidoComo acceder a un Documento Compartido
Como acceder a un Documento CompartidoCintia Gomez
 
Compensation produits énergétiques de base
Compensation produits énergétiques de baseCompensation produits énergétiques de base
Compensation produits énergétiques de basekheireddinecercle
 
Entrenos para 10 semanas
Entrenos para 10 semanasEntrenos para 10 semanas
Entrenos para 10 semanasJose L
 
PresentacióN Del Ies C Amino Romano En Talayuela
PresentacióN Del Ies C Amino Romano En TalayuelaPresentacióN Del Ies C Amino Romano En Talayuela
PresentacióN Del Ies C Amino Romano En Talayuelaseiscentros
 
Travailler avec les PME en Italie : la place de marchés en ligne (MEPA)
Travailler avec les PME en Italie : la place de marchés en ligne (MEPA)Travailler avec les PME en Italie : la place de marchés en ligne (MEPA)
Travailler avec les PME en Italie : la place de marchés en ligne (MEPA)TUNEPS HAICOP
 
La veille collaborative à l'AFP
La veille collaborative à l'AFPLa veille collaborative à l'AFP
La veille collaborative à l'AFPXWiki
 
Exemples d'affiches présentant les travaux de lauréats des Prix étudiants de ...
Exemples d'affiches présentant les travaux de lauréats des Prix étudiants de ...Exemples d'affiches présentant les travaux de lauréats des Prix étudiants de ...
Exemples d'affiches présentant les travaux de lauréats des Prix étudiants de ...Catherine Rhéaume
 
El libro ante los retos de la Web 2.0
El libro ante los retos de la Web 2.0El libro ante los retos de la Web 2.0
El libro ante los retos de la Web 2.0vick8
 
2009 03 22 Recrutement Medecin 2
2009 03 22 Recrutement Medecin 22009 03 22 Recrutement Medecin 2
2009 03 22 Recrutement Medecin 2andreeair
 

En vedette (20)

Tablas y figuras pnr
Tablas y figuras pnrTablas y figuras pnr
Tablas y figuras pnr
 
Top 7 des endroits où bruncher à Paris
Top 7 des endroits où bruncher à ParisTop 7 des endroits où bruncher à Paris
Top 7 des endroits où bruncher à Paris
 
Etude de cas e-réputation - Groupe 2
Etude de cas e-réputation - Groupe 2Etude de cas e-réputation - Groupe 2
Etude de cas e-réputation - Groupe 2
 
Prestshop vs magento
Prestshop vs magentoPrestshop vs magento
Prestshop vs magento
 
Guide pratique comment construire sa maison avec la RT 2012 ADEME - TRAVAUXLIB
Guide pratique comment construire sa maison avec la RT 2012 ADEME - TRAVAUXLIBGuide pratique comment construire sa maison avec la RT 2012 ADEME - TRAVAUXLIB
Guide pratique comment construire sa maison avec la RT 2012 ADEME - TRAVAUXLIB
 
Estimateur de prix en ligne gratuit pour créer son devis travaux rénovation i...
Estimateur de prix en ligne gratuit pour créer son devis travaux rénovation i...Estimateur de prix en ligne gratuit pour créer son devis travaux rénovation i...
Estimateur de prix en ligne gratuit pour créer son devis travaux rénovation i...
 
Strategia Web - Présentation
Strategia Web - PrésentationStrategia Web - Présentation
Strategia Web - Présentation
 
9sept Pochet
9sept Pochet9sept Pochet
9sept Pochet
 
Como acceder a un Documento Compartido
Como acceder a un Documento CompartidoComo acceder a un Documento Compartido
Como acceder a un Documento Compartido
 
Présentation du 6 déc
Présentation du 6 décPrésentation du 6 déc
Présentation du 6 déc
 
Compensation produits énergétiques de base
Compensation produits énergétiques de baseCompensation produits énergétiques de base
Compensation produits énergétiques de base
 
Iso
IsoIso
Iso
 
Entrenos para 10 semanas
Entrenos para 10 semanasEntrenos para 10 semanas
Entrenos para 10 semanas
 
PresentacióN Del Ies C Amino Romano En Talayuela
PresentacióN Del Ies C Amino Romano En TalayuelaPresentacióN Del Ies C Amino Romano En Talayuela
PresentacióN Del Ies C Amino Romano En Talayuela
 
Travailler avec les PME en Italie : la place de marchés en ligne (MEPA)
Travailler avec les PME en Italie : la place de marchés en ligne (MEPA)Travailler avec les PME en Italie : la place de marchés en ligne (MEPA)
Travailler avec les PME en Italie : la place de marchés en ligne (MEPA)
 
La veille collaborative à l'AFP
La veille collaborative à l'AFPLa veille collaborative à l'AFP
La veille collaborative à l'AFP
 
Exemples d'affiches présentant les travaux de lauréats des Prix étudiants de ...
Exemples d'affiches présentant les travaux de lauréats des Prix étudiants de ...Exemples d'affiches présentant les travaux de lauréats des Prix étudiants de ...
Exemples d'affiches présentant les travaux de lauréats des Prix étudiants de ...
 
El libro ante los retos de la Web 2.0
El libro ante los retos de la Web 2.0El libro ante los retos de la Web 2.0
El libro ante los retos de la Web 2.0
 
2009 03 22 Recrutement Medecin 2
2009 03 22 Recrutement Medecin 22009 03 22 Recrutement Medecin 2
2009 03 22 Recrutement Medecin 2
 
CV REVISEE
CV REVISEECV REVISEE
CV REVISEE
 

Similaire à 2012 03-01-ror security v01

ASFWS 2012 - OWASP Top 10 Mobile, risques et solutions par Sébastien Gioria
ASFWS 2012 - OWASP Top 10 Mobile, risques et solutions par Sébastien GioriaASFWS 2012 - OWASP Top 10 Mobile, risques et solutions par Sébastien Gioria
ASFWS 2012 - OWASP Top 10 Mobile, risques et solutions par Sébastien GioriaCyber Security Alliance
 
OWASP Top10 Mobile - Attaques et solutions sur Windows Phone
OWASP Top10 Mobile - Attaques et solutions sur Windows PhoneOWASP Top10 Mobile - Attaques et solutions sur Windows Phone
OWASP Top10 Mobile - Attaques et solutions sur Windows PhoneMicrosoft
 
OWASP Mobile Top10 - Les 10 risques sur les mobiles
OWASP Mobile Top10 -  Les 10 risques sur les mobilesOWASP Mobile Top10 -  Les 10 risques sur les mobiles
OWASP Mobile Top10 - Les 10 risques sur les mobilesSébastien GIORIA
 
Le bon, la brute et le truand dans les nuages
Le bon, la brute et le truand dans les nuagesLe bon, la brute et le truand dans les nuages
Le bon, la brute et le truand dans les nuagesConFoo
 
Présentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonPrésentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonSébastien GIORIA
 
Première rencontre d'owasp québec
Première rencontre d'owasp québecPremière rencontre d'owasp québec
Première rencontre d'owasp québecPatrick Leclerc
 
Soutenance de stage TETRA-SI Martial LIPEB
Soutenance de stage TETRA-SI Martial LIPEBSoutenance de stage TETRA-SI Martial LIPEB
Soutenance de stage TETRA-SI Martial LIPEBMartial Lipeb
 
La sécurité sur iOS par Arnaud de Bock
La sécurité sur iOS par Arnaud de BockLa sécurité sur iOS par Arnaud de Bock
La sécurité sur iOS par Arnaud de BockNicolas Lourenço
 
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
 
Comment securiser votre annuaire Active Directory contre les attaques de malw...
Comment securiser votre annuaire Active Directory contre les attaques de malw...Comment securiser votre annuaire Active Directory contre les attaques de malw...
Comment securiser votre annuaire Active Directory contre les attaques de malw...Sylvain Cortes
 
Keynote – Communauté mahara francophone 2016
Keynote –  Communauté mahara francophone 2016Keynote –  Communauté mahara francophone 2016
Keynote – Communauté mahara francophone 2016Dominique-Alain JAN
 
Comment sécuriser une démarche BYOD
Comment sécuriser une démarche BYODComment sécuriser une démarche BYOD
Comment sécuriser une démarche BYODMarc Rousselet
 
Securing your API and mobile application - API Connection FR
Securing your API and mobile application - API Connection FRSecuring your API and mobile application - API Connection FR
Securing your API and mobile application - API Connection FRSebastien Gioria
 

Similaire à 2012 03-01-ror security v01 (20)

2012 03-02-sdl-sgi-v03
2012 03-02-sdl-sgi-v032012 03-02-sdl-sgi-v03
2012 03-02-sdl-sgi-v03
 
ASFWS 2012 - OWASP Top 10 Mobile, risques et solutions par Sébastien Gioria
ASFWS 2012 - OWASP Top 10 Mobile, risques et solutions par Sébastien GioriaASFWS 2012 - OWASP Top 10 Mobile, risques et solutions par Sébastien Gioria
ASFWS 2012 - OWASP Top 10 Mobile, risques et solutions par Sébastien Gioria
 
OWASP Top10 Mobile - Attaques et solutions sur Windows Phone
OWASP Top10 Mobile - Attaques et solutions sur Windows PhoneOWASP Top10 Mobile - Attaques et solutions sur Windows Phone
OWASP Top10 Mobile - Attaques et solutions sur Windows Phone
 
OWASP Mobile Top10 - Les 10 risques sur les mobiles
OWASP Mobile Top10 -  Les 10 risques sur les mobilesOWASP Mobile Top10 -  Les 10 risques sur les mobiles
OWASP Mobile Top10 - Les 10 risques sur les mobiles
 
2011 03-09-cloud sgi
2011 03-09-cloud sgi2011 03-09-cloud sgi
2011 03-09-cloud sgi
 
Le bon, la brute et le truand dans les nuages
Le bon, la brute et le truand dans les nuagesLe bon, la brute et le truand dans les nuages
Le bon, la brute et le truand dans les nuages
 
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
 
2010 03-11-sdlc-v02
2010 03-11-sdlc-v022010 03-11-sdlc-v02
2010 03-11-sdlc-v02
 
Présentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonPrésentation Top10 CEGID Lyon
Présentation Top10 CEGID Lyon
 
Première rencontre d'owasp québec
Première rencontre d'owasp québecPremière rencontre d'owasp québec
Première rencontre d'owasp québec
 
Programme ISACA Québec 2013-2014
Programme ISACA Québec 2013-2014Programme ISACA Québec 2013-2014
Programme ISACA Québec 2013-2014
 
Cci octobre 2014
Cci octobre 2014Cci octobre 2014
Cci octobre 2014
 
Programme isaca 2013_2014
Programme isaca 2013_2014Programme isaca 2013_2014
Programme isaca 2013_2014
 
Soutenance de stage TETRA-SI Martial LIPEB
Soutenance de stage TETRA-SI Martial LIPEBSoutenance de stage TETRA-SI Martial LIPEB
Soutenance de stage TETRA-SI Martial LIPEB
 
La sécurité sur iOS par Arnaud de Bock
La sécurité sur iOS par Arnaud de BockLa sécurité sur iOS par Arnaud de Bock
La sécurité sur iOS par Arnaud de Bock
 
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
 
Comment securiser votre annuaire Active Directory contre les attaques de malw...
Comment securiser votre annuaire Active Directory contre les attaques de malw...Comment securiser votre annuaire Active Directory contre les attaques de malw...
Comment securiser votre annuaire Active Directory contre les attaques de malw...
 
Keynote – Communauté mahara francophone 2016
Keynote –  Communauté mahara francophone 2016Keynote –  Communauté mahara francophone 2016
Keynote – Communauté mahara francophone 2016
 
Comment sécuriser une démarche BYOD
Comment sécuriser une démarche BYODComment sécuriser une démarche BYOD
Comment sécuriser une démarche BYOD
 
Securing your API and mobile application - API Connection FR
Securing your API and mobile application - API Connection FRSecuring your API and mobile application - API Connection FR
Securing your API and mobile application - API Connection FR
 

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
 
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, 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-27-owasp top10 javascript
 2013 02-27-owasp top10 javascript 2013 02-27-owasp top10 javascript
2013 02-27-owasp top10 javascriptSébastien GIORIA
 
2011 02-07-html5-security-v1
2011 02-07-html5-security-v12011 02-07-html5-security-v1
2011 02-07-html5-security-v1Sébastien GIORIA
 
2011 02-08-ms tech-days-sdl-sgi-v02
2011 02-08-ms tech-days-sdl-sgi-v022011 02-08-ms tech-days-sdl-sgi-v02
2011 02-08-ms tech-days-sdl-sgi-v02Sébastien GIORIA
 
2010 03-10-web applications firewalls v 0.8
2010 03-10-web applications firewalls v 0.82010 03-10-web applications firewalls v 0.8
2010 03-10-web applications firewalls v 0.8Sébastien GIORIA
 
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
 
Owasp Top 10 2010 Rc1 French Version V02
Owasp Top 10   2010 Rc1   French Version V02Owasp Top 10   2010 Rc1   French Version V02
Owasp Top 10 2010 Rc1 French Version V02Sébastien GIORIA
 

Plus de Sébastien GIORIA (19)

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
 
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, 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-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
 
2011 02-07-html5-security-v1
2011 02-07-html5-security-v12011 02-07-html5-security-v1
2011 02-07-html5-security-v1
 
2011 02-08-ms tech-days-sdl-sgi-v02
2011 02-08-ms tech-days-sdl-sgi-v022011 02-08-ms tech-days-sdl-sgi-v02
2011 02-08-ms tech-days-sdl-sgi-v02
 
Top10 risk in app sec
Top10 risk in app secTop10 risk in app sec
Top10 risk in app sec
 
Top10 risk in app sec fr
Top10 risk in app sec frTop10 risk in app sec fr
Top10 risk in app sec fr
 
2010 03-10-web applications firewalls v 0.8
2010 03-10-web applications firewalls v 0.82010 03-10-web applications firewalls v 0.8
2010 03-10-web applications firewalls v 0.8
 
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
 
20100114 Waf V0.7
20100114 Waf V0.720100114 Waf V0.7
20100114 Waf V0.7
 
Owasp Top 10 2010 Rc1 French Version V02
Owasp Top 10   2010 Rc1   French Version V02Owasp Top 10   2010 Rc1   French Version V02
Owasp Top 10 2010 Rc1 French Version V02
 

2012 03-01-ror security v01

  • 1. The OWASP Foundation http://www.owasp.org Ruby on Rails et la sécurité (une introduction) Sébastien Gioria OWASP France Leader OWASP Global Education Committee Confoo.ca 01 Mars 2012 - Montréal - Canada Sunday, March 4, 12
  • 2. http://www.google.fr/#q=sebastien gioria ‣Responsable de la branche Audit S.I et Sécurité au sein du cabinet Groupe Y ‣OWASP France Leader & Founder - Evangéliste ‣OWASP Global Education Comittee Member (sebastien.gioria@owasp.org) ‣Responsable du Groupe Sécurité des Applications Web au CLUSIF Twitter :@SPoint CISA && ISO 27005 Risk Manager ‣ +13 ans d’expérience en Sécurité des Systèmes d’Information ‣ Différents postes de manager SSI dans la banque, l’assurance et les télécoms ‣ Expertise Technique - PenTesting, - Secure-SDLC - Gestion du risque, Architectures fonctionnelles, Audits - Consulting et Formation en Réseaux et Sécurité 2 2 Sunday, March 4, 12
  • 3. http://www.google.fr/#q=sebastien gioria ‣Responsable de la branche Audit S.I et Sécurité au sein du cabinet Groupe Y ‣OWASP France Leader & Founder - Evangéliste ‣OWASP Global Education Comittee Member (sebastien.gioria@owasp.org) ‣Responsable du Groupe Sécurité des Applications Web au CLUSIF Twitter :@SPoint CISA && ISO 27005 Risk Manager ‣ +13 ans d’expérience en Sécurité des Systèmes d’Information ‣ Différents postes de manager SSI dans la banque, l’assurance et les télécoms ‣ Expertise Technique - PenTesting, - Secure-SDLC - Gestion du risque, Architectures fonctionnelles, Audits - Consulting et Formation en Réseaux et Sécurité 2 2 Sunday, March 4, 12
  • 4. Agenda •Introduction •Injection •Sessions •XSS •CSRF •Fuite d’informations •Et ensuite... 3 Sunday, March 4, 12
  • 5. Etude Verizon 2010 © Verizon 2010 4 Sunday, March 4, 12
  • 6. Etude Verizon 2010 © Verizon 2010 4 Sunday, March 4, 12
  • 7. Etude Verizon 2010 © Verizon 2010 4 Sunday, March 4, 12
  • 8. Etude Verizon 2010 © Verizon 2010 4 Sunday, March 4, 12
  • 9. Etude Verizon 2010 © Verizon 2010 5 Sunday, March 4, 12
  • 10. Etude Verizon 2010 © Verizon 2010 5 Sunday, March 4, 12
  • 11. Etude Verizon 2010 © Verizon 2010 5 Sunday, March 4, 12
  • 12. Etude Verizon 2010 © Verizon 2010 5 Sunday, March 4, 12
  • 13. 22 © IBM X-Force 2009 - Extrait du rapport 2009 Sunday, March 4, 12
  • 14. 23 © IBM X-Force 2009 - Extrait du rapport 2009 Sunday, March 4, 12
  • 15. Exposition à une vulnérabilité 26 Sunday, March 4, 12
  • 16. Ce que dit le CIO : mais j’ai un Firewall !!! 27 Sunday, March 4, 12
  • 17. Ce que dit le Commercial : J’ai un certificat SSL 28 Sunday, March 4, 12
  • 18. Ce que dit le commercial : il faut être un expert pour hacker des sites Web • Les outils sont simples d’emploi • Cherchez juste sur Internet un outil nommé SQLInjector • L’attaque d’un serveur Web coute de 100$ à 200$ sur le marché souterrain • Les hackers “offrent” leur service directement sur Internet. 29 Sunday, March 4, 12
  • 19. Offres 12 Sunday, March 4, 12
  • 20. Ce que dit l’utilisateur : Une vulnérabilité n’est pas importante sur un site Web interne •Faut, vu que le web est partout, des attaques comme CSRF ainsi que l’arrivée de HTML5 et CORS sont destructrices. •Souvenez vous, et partagez cela : • AJAX fait des choses sans que vous le sachiez... 30 •Sachez et partagez ceci: • HTML5 introduit de bien belle facilités utilisateur, mais avec un impact important sur la sécurité (WebSocket, CORS, ...) Sunday, March 4, 12
  • 21. The OWASP Foundation http://www.owasp.org Les risques ! Sunday, March 4, 12
  • 22. ‘OR 1==1 --’ 15 Sunday, March 4, 12
  • 23. ‘OR 1==1 --’ L’injection SQL fait beaucoup parler d’elle. Mais il existe d’autres formes d’injections : •XML •XPath •LDAP •ORB(Hibernate) •... 15 Sunday, March 4, 12
  • 24. ‘OR 1==1 --’ L’injection SQL fait beaucoup parler d’elle. Mais il existe d’autres formes d’injections : •XML •XPath •LDAP •ORB(Hibernate) •... 15 Sunday, March 4, 12
  • 25. ‘OR 1==1 --’ L’injection SQL fait beaucoup parler d’elle. Mais il existe d’autres formes d’injections : •XML •XPath •LDAP •ORB(Hibernate) •... A1  -­‐  Injec*on 15 Sunday, March 4, 12
  • 26. ‘OR 1==1 --’ L’injection SQL fait beaucoup parler d’elle. Mais il existe d’autres formes d’injections : •XML •XPath •LDAP •ORB(Hibernate) •... A1  -­‐  Injec*on 15 Sunday, March 4, 12
  • 27. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'") 16 Sunday, March 4, 12
  • 28. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'")  Imaginons un accès normal : 16 Sunday, March 4, 12
  • 29. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'")  Imaginons un accès normal : http://www.example.com/Project.rb?name=me 16 Sunday, March 4, 12
  • 30. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'")  Imaginons un accès normal : http://www.example.com/Project.rb?name=me SELECT * FROM Project WHERE name= ‘me’ 16 Sunday, March 4, 12
  • 31. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'")  Imaginons un accès normal : http://www.example.com/Project.rb?name=me SELECT * FROM Project WHERE name= ‘me’  Imaginons un accès différent : 16 Sunday, March 4, 12
  • 32. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'")  Imaginons un accès normal : http://www.example.com/Project.rb?name=me SELECT * FROM Project WHERE name= ‘me’  Imaginons un accès différent : http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1 16 Sunday, March 4, 12
  • 33. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'")  Imaginons un accès normal : http://www.example.com/Project.rb?name=me SELECT * FROM Project WHERE name= ‘me’  Imaginons un accès différent : http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1 SELECT * FROM Project WHERE name = ‘me’ or ‘1’=’1’ 16 Sunday, March 4, 12
  • 34. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'")  Imaginons un accès normal : http://www.example.com/Project.rb?name=me SELECT * FROM Project WHERE name= ‘me’  Imaginons un accès différent : http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1 SELECT * FROM Project WHERE name = ‘me’ or ‘1’=’1’  Voir un accès très différent : 16 Sunday, March 4, 12
  • 35. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'")  Imaginons un accès normal : http://www.example.com/Project.rb?name=me SELECT * FROM Project WHERE name= ‘me’  Imaginons un accès différent : http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1 SELECT * FROM Project WHERE name = ‘me’ or ‘1’=’1’  Voir un accès très différent : http://www.example.com/Project.rb?name=me'; DELETE FROM PROJECTS; SELECT * from projects where '1'='1 16 Sunday, March 4, 12
  • 36. Injec-on  de  données  -­‐  Exemple  de  code  vulnérable  SQL  Soit le code Suivant Project.find(:all, :conditions => "name = '#{params[:name]}'")  Imaginons un accès normal : http://www.example.com/Project.rb?name=me SELECT * FROM Project WHERE name= ‘me’  Imaginons un accès différent : http://www.example.com/Project.rb?name=me ‘ or ‘1’=’1 SELECT * FROM Project WHERE name = ‘me’ or ‘1’=’1’  Voir un accès très différent : http://www.example.com/Project.rb?name=me'; DELETE FROM PROJECTS; SELECT * from projects where '1'='1 SELECT * FROM projects WHERE name = ''; DELETE FROM PROJECTS; SELECT * from projects where '1'='1' 16 Sunday, March 4, 12
  • 37. Injection - Prévention ★Valider les données ★Utiliser les mécanismes des requêtes paramétrées quand ils sont disponibles ★Minimiser les privilèges de connexion aux bases ★Minimiser les privilèges des utilisateurs de base 17 Sunday, March 4, 12
  • 38. Injection - Prévention 1.Via une validation d’entrée propre 2.Via les requêtes paramétrées Sunday, March 4, 12
  • 46. mabanque.com 20 Sunday, March 4, 12
  • 47. mabanque.com 20 Sunday, March 4, 12
  • 48. mabanque.com login.rb 20 Sunday, March 4, 12
  • 49. mabanque.com login.rb Requete 20 Sunday, March 4, 12
  • 50. mabanque.com login.rb Requete 20 Sunday, March 4, 12
  • 51. mabanque.com login.rb Requete Réponse Set-Cookie : SESSIONID=4242 20 Sunday, March 4, 12
  • 52. mabanque.com login.rb Requete Réponse Set-Cookie : SESSIONID=4242 mabanque.com 20 Sunday, March 4, 12
  • 53. mabanque.com login.rb Requete Réponse Set-Cookie : SESSIONID=4242 Images mabanque.com 20 Sunday, March 4, 12
  • 54. mabanque.com login.rb Requete Réponse Set-Cookie : SESSIONID=4242 Images mabanque.com 20 Sunday, March 4, 12
  • 55. mabanque.com login.rb Requete Réponse Set-Cookie : SESSIONID=4242 Images mabanque.com Requete Cookie : SESSIONID=4242 20 Sunday, March 4, 12
  • 56. mabanque.com login.rb Requete Réponse Set-Cookie : SESSIONID=4242 Images mabanque.com Requete Cookie : SESSIONID=4242 Réponse Cookie : SESSIONID=4242 20 Sunday, March 4, 12
  • 57. mabanque.com login.rb Requete Réponse Set-Cookie : SESSIONID=4242 Images mabanque.com Requete Cookie : SESSIONID=4242 Réponse Cookie : SESSIONID=4242 20 Sunday, March 4, 12
  • 58. mabanque.com login.rb Requete Réponse Set-Cookie : SESSIONID=4242 Images mabanque.com Requete Cookie : SESSIONID=4242 Réponse Cookie : SESSIONID=4242 20 Sunday, March 4, 12
  • 60. Les développeurs peuvent être tentés de créer leur propre gestionnaire de sessions et d'authentification, mais il s'agit d'une tâche complexe. Il en résulte souvent des implémentations contenant des faiblesses de sécurité dans des fonctions telles que: la déconnexion, la gestion des profils, etc. La diversité des implémentations rend la recherche de vulnérabilités complexe. 21 Sunday, March 4, 12
  • 61. Les développeurs peuvent être tentés de créer leur propre gestionnaire de sessions et d'authentification, mais il s'agit d'une tâche complexe. Il en résulte souvent des implémentations contenant des faiblesses de sécurité dans des fonctions telles que: la déconnexion, la gestion des profils, etc. La diversité des implémentations rend la recherche de vulnérabilités complexe. 21 Sunday, March 4, 12
  • 62. Les développeurs peuvent être tentés de créer leur propre gestionnaire de sessions et d'authentification, mais il s'agit d'une tâche complexe. Il en résulte souvent des implémentations contenant des faiblesses de sécurité dans des fonctions telles que: la déconnexion, la gestion des profils, etc. La diversité des implémentations rend la recherche de vulnérabilités complexe. A3  -­‐  Mauvaise   ges*on  des   sessions et de l’authentification 21 Sunday, March 4, 12
  • 63. Les développeurs peuvent être tentés de créer leur propre gestionnaire de sessions et d'authentification, mais il s'agit d'une tâche complexe. Il en résulte souvent des implémentations contenant des faiblesses de sécurité dans des fonctions telles que: la déconnexion, la gestion des profils, etc. La diversité des implémentations rend la recherche de vulnérabilités complexe. A3  -­‐  Mauvaise   ges*on  des   sessions et de l’authentification 21 Sunday, March 4, 12
  • 64. Session en Rails ★HTTP est un protocole sans état ★Ne pas réécrire son mécanisme ! ★ Par défaut les cookies de session sont utilisés avec une entropie suffisante. ★Protéger les ID lors du transfert • Utiliser SSL • Utiliser des cookies « secure » • Utiliser des limitations de path ★Prévoir une seconde autorisation pour les transferts « sensibles » 22 Sunday, March 4, 12
  • 65. Sessions en Rails ★Exemple de cookie propre : 23 Sunday, March 4, 12
  • 66. The OWASP Foundation http://www.owasp.org Démo XSS Sunday, March 4, 12
  • 67. A vous ? Se connecter à : •http://88.191.152.70:8080/ePoney-0.0.1- SNAPSHOT/pages/readReviews •Choisir “Jack Daniels System” et Show Reviews •Attendre 2mns30 :) 25 Sunday, March 4, 12
  • 68. XSS 26 Sunday, March 4, 12
  • 69. XSS Le Cross Site Scripting est souvent mal considéré. Sa puissance peut aller jusqu’a la prise de contrôle sur le poste client... 26 Sunday, March 4, 12
  • 70. XSS Le Cross Site Scripting est souvent mal considéré. Sa puissance peut aller jusqu’a la prise de contrôle sur le poste client... 26 Sunday, March 4, 12
  • 71. XSS Le Cross Site Scripting est souvent mal considéré. Sa puissance peut aller jusqu’a la prise de contrôle sur le poste client... A2  -­‐  Cross  Site   Scrip*ng  (XSS) 26 Sunday, March 4, 12
  • 72. XSS Le Cross Site Scripting est souvent mal considéré. Sa puissance peut aller jusqu’a la prise de contrôle sur le poste client... A2  -­‐  Cross  Site   Scrip*ng  (XSS) 26 Sunday, March 4, 12
  • 73. XSS - Prevention ★Valider les données en entrée ★Encoder les données de sortie ★ N’accepter que les données attendues. Eviter le cas ‘default’. ★ Nettoyer les données en entrée comme en sortie. ★ N’utiliser que des données fortement typées. Eviter les ‘cast’ implicites ou explicites. ★ Attention aux « clients », qui ne sont pas propres. 27 Sunday, March 4, 12
  • 74. ★Utilisation des échappements HTML (non suffisant) ★Utilisation des sanitizer HTML (mieux, mais non suffisant) ★Utilisation de OWASP ESAPI (beta) http://rubydoc.info/gems/owasp-esapi-ruby 28 Sunday, March 4, 12
  • 75. The OWASP Foundation http://www.owasp.org Démo CSRF Sunday, March 4, 12
  • 76. CSRF 30 Sunday, March 4, 12
  • 77. CSRF L’attaquant forge une requête HTTP et amène une victime à la soumettre via une balise d’image, XSS, ou de nombreuses autres techniques. Si l’utilisateur est authentifié , l’attaque est un succès. 30 Sunday, March 4, 12
  • 78. CSRF L’attaquant forge une requête HTTP et amène une victime à la soumettre via une balise d’image, XSS, ou de nombreuses autres techniques. Si l’utilisateur est authentifié , l’attaque est un succès. 30 Sunday, March 4, 12
  • 79. CSRF L’attaquant forge une requête HTTP et amène une victime à la soumettre via une balise d’image, XSS, ou de nombreuses autres techniques. Si l’utilisateur est authentifié , l’attaque est un succès. A5  -­‐  Cross  site   Request  Forgery   (CSRF) 30 Sunday, March 4, 12
  • 80. CSRF L’attaquant forge une requête HTTP et amène une victime à la soumettre via une balise d’image, XSS, ou de nombreuses autres techniques. Si l’utilisateur est authentifié , l’attaque est un succès. A5  -­‐  Cross  site   Request  Forgery   (CSRF) 30 Sunday, March 4, 12
  • 81. CSRF le probleme ★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. 31 Sunday, March 4, 12
  • 82. CSRF Prevention 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 • … a ne pas exposer le jeton dans l’entete “referer” Attention • 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 32 Sunday, March 4, 12
  • 83. CSRF Prévention en Rails Par défaut le framework inclut le principe du jeton 33 Sunday, March 4, 12
  • 84. The OWASP Foundation http://www.owasp.org Fuite d’informations Sunday, March 4, 12
  • 86. Une simple recherche google permettait d’avoir accès aux numéros de sécurité sociale des étudiants de Yale 35 Sunday, March 4, 12
  • 87. Une simple recherche google permettait d’avoir accès aux numéros de sécurité sociale des étudiants de Yale 35 Sunday, March 4, 12
  • 88. Une simple recherche google permettait d’avoir accès aux numéros de sécurité sociale des étudiants de Yale A6  -­‐  Mauvaise   configura*on   Sécurité 35 Sunday, March 4, 12
  • 89. Une simple recherche google permettait d’avoir accès aux numéros de sécurité sociale des étudiants de Yale A6  -­‐  Mauvaise   configura*on   Sécurité 35 Sunday, March 4, 12
  • 90. Prévention ★Garder les outils a jour : ➡Serveurs ➡Frameworks ★Supprimer tous les éléments par défaut (en particulier les répertoire SVN ?) ★Customiser les messages d’erreurs 36 Sunday, March 4, 12
  • 91. The OWASP Foundation http://www.owasp.org Conclusion Sunday, March 4, 12
  • 92. OWASP Top Ten 2010 A3:  Mauvaise  ges*on   A4:Référence  directe   A2:  Cross  Site   A1:  Injec*on des  sessions  et  de   non  sécurisée  à  un   Scrip*ng  (XSS) l’authen*fica*on objet A8:  Mauvaise   A5:  Cross  Site  Request   A6:  Mauvaise   A7:  Mauvais  stockage   restric*on  d’accès  à   Forgery  (CSRF)   configura*on  sécurité cryptographique une  URL A9:  Protec*on   A10:    Redirec*ons    et   insuffisante  lors  du   transferts  non  validés transport  des  données http://www.owasp.org/index.php/Top_10 Sunday, March 4, 12
  • 93. A lire Ressources OWASP • https://www.owasp.org/index.php/Top10 • https://www.owasp.org/index.php/ Project_Information:template_Ruby_on_Rail s_Security_Guide_V2 • https://www.owasp.org/index.php/Esapi ROR Security Project: • http://www.rorsecurity.info/ 39 Sunday, March 4, 12
  • 94. Contact @SPoint sebastien.gioria@owasp.org 40 Sunday, March 4, 12