Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ADOBE : Autopsie d'une fuite de données… par Cyril Ceresola

ADOBE : Autopsie d'une fuite de données… par Cyril Ceresola

ADOBE : Autopsie d'une fuite de données… par Cyril Ceresola

Novembre 2013, Adobe subit une cyberattaque... 150 millions de comptes utilisateurs sont compromis.

Au travers de differentes analyses, nous aborderons les enjeux, risques, effets de bord d'un tel incident et tenterons d'apporter un éclairage sur les bonnes pratiques de stockage de mot de passe dans les web apps.
Cyril Ceresola

Cyril Ceresola est en charge des systèmes au sein du Port de Marseille (GPMM) avec un gout particulièrement prononcé pour la sécurité applicative et la gestion des risques IT

/dev/var/

March 26, 2014
Tweet

More Decks by /dev/var/

Other Decks in Programming

Transcript

  1. hYp://www.adayinthelifeof.nl/2010/12/08/encryp^on-­‐opera^ng-­‐modes-­‐ecb-­‐vs-­‐cbc/   “A  mode  of  opera^on   describes  how  to

     repeatedly   apply  a  cipher's  single-­‐block   opera^on  to  securely   transform  amounts  of  data   larger  than  a  block.”   h"p://en.wikipedia.org/wiki/Block_cipher_modes_of_opera8on   devvar3  -­‐  @cceresola  
  2. hYp://www.adayinthelifeof.nl/2010/12/08/encryp^on-­‐opera^ng-­‐modes-­‐ecb-­‐vs-­‐cbc/   Avantages:     -­‐  Chiffrement/dechiffrement    en  parallèle

        -­‐  En  cas  de  corrup^on  le  reste  du  message  reste  exploitable  (bien  !  ….ou  pas  !)     devvar3  -­‐  @cceresola  
  3. 15ea8e3726cb1702  b195672766f5378a  4417d2d133je123  538293514ddd2d53  aa92a14d94bdd8e9   AYaque  2  :  inversion

     des  2  derniers  blocs   b195672766f5378a15ea8e3726cb17024417d2d133je123aa92a14d94bdd8e9538293514ddd2d53     AYaque  1  :  inversion  des  2  premiers  blocs   b195672766f5378a15ea8e3726cb17024417d2d133je123538293514ddd2d53aa92a14d94bdd8e9   AYaque  3  :  duplica^on  3e  bloc   b195672766f5378a15ea8e3726cb17024417d2d133je1234417d2d133je123538293514ddd2d53aa 92a14d94bdd8e9   devvar3  -­‐  @cceresola   username=cyril;profile=11;admin=0;devvar  
  4. Analyse  1  :  SOPHOS     hYp://nakedsecurity.sophos.com/2013/10/04/adobe-­‐owns-­‐up-­‐to-­‐genng-­‐pwned-­‐login-­‐and-­‐credit-­‐card-­‐data-­‐probably-­‐stolen-­‐all-­‐passwords-­‐reset/   hYp://nakedsecurity.sophos.com/2013/11/04/anatomy-­‐of-­‐a-­‐password-­‐disaster-­‐adobes-­‐giant-­‐sized-­‐cryptographic-­‐blunder/)  

    (échan8llon  :  10^6)   1  -­‐  Pas  de  hash  car  longueur  variable  et  donc…  master  key  unique  !     2  -­‐  Chiffrement  par  blocs  -­‐  mul8ples  de  8  =>  8  octets  =>  64  bits  =>  3DES     3  -­‐  Pas  de  nonce  (salt)  +  ECB     password  de  16  octets  nonce  de  8  octets  recommandé…  mais  quid  des  password  sur  8  octets   ⇒  pas  de  place  pour  le  nonce     •  2^64  =  18446744073709551616  blocs  possibles   ⇒  répé88on  improbable  sur  1  000  000  d’entrées     •  Raisonnement  par  l’absurde:   si  ECB  pas  u8lisé,  chaque  bloc  ne  réapparait  que  1/(2^64)  =   soit  5.10^-­‐18%  =  0,000000000000000005  %   devvar3  -­‐  @cceresola  
  5. Analyse  2  :  Troy  Hunt   hYp://www.troyhunt.com/2013/11/adobe-­‐creden^als-­‐and-­‐serious.html     7

     365  869    sur  109  305  888  u^lisent  le  TOP100   devvar3  -­‐  @cceresola  
  6. Analyse  2  :  Troy  Hunt   hYp://www.troyhunt.com/2013/11/adobe-­‐creden^als-­‐and-­‐serious.html      ”The

     presence  of  a  plain  text  password  hint  significantly   weakened  the  password  irrespec7ve  of  the  poor  cryptography   applied.[…]  When  matched  to  plain  text  passwords  from  other   breaches,  the  hint  oAen  disclosed  sensi7ve  personal   informa7on  which  wouldn’t  otherwise  have  been  gleaned.”   devvar3  -­‐  @cceresola  
  7. Analyse  3  :  Pivotal  Analy^cs   hYp://pv.tl/blog/2013/11/03/adobe-­‐password-­‐analysis/   (24  672

     644  –  5  711  479)   (18  960  765  –  18  882  224)   devvar3  -­‐  @cceresola  
  8. Plus  près  de  chez  nous…  focus  «  .fr  »  

    (extrait  du  TOP100  «  domains  »)   Rappelez  vous:  51%  de  réu^lisa^on  des  mots  de  passe   + 3  millions  d’adresse  françaises  compromises   =   Possibilité  non-­‐négligeable  d’en  retrouver   dans  VOS  applis       devvar3  -­‐  @cceresola  
  9. Stockage  des  mots  de  passe  :  bonnes  pra^ques   • 

    Ne  pas  chiffrer  la  base  de  données  avec  une  key  unique   •  Hasher  c’est  un  peu  mieux  mais  (hash  +  salt)  c’est  meilleur.   •  SHA1,  MD5,  SHA-­‐256…  conçus  pour  être  rapides…  bien  pour  du  contrôle   d’integrité  mais  pas  assez  bien  pour  protéger  des  mots  de   passe.     hYps://www.owasp.org/index.php/Password_Storage_Cheat_Sheet   hYp://www.vnsecurity.net/2010/03/codegate_challenge15_sha1_padding_aYack/   hYps://blog.skullsecurity.org/2012/everything-­‐you-­‐need-­‐to-­‐know-­‐about-­‐hash-­‐length-­‐extension-­‐aYacks     Que  faire  ?   devvar3  -­‐  @cceresola  
  10. Stockage  des  mots  de  passe  :  bonnes  pra^ques   =>

     Hash+salt  streching   •  Salt:  16  bits  minimum  généré  avec  une  bonne  source  d’alea   •  Algorithme  PBKDF2,  bcrypt,  scrypt  avec  HMAC-­‐SHA-­‐256     -­‐>  10000  itéra8ons  minimum  (1000  en  l’an  2000  !)   0,04  s  (hYps://defuse.ca/php-­‐pbkdf2.htm  )     •  Stocker  le  résultat  (256  bits)  avec  le  nombre  d’itéra7ons  et  le  salt   •  Augmenter  régulièrement  le  nombre  d’itera7on   (2/an,  reset  des  mots  de  passe,  désac8va8on  des  comptes)   h"p://nakedsecurity.sophos.com/2013/11/20/serious-­‐security-­‐how-­‐to-­‐store-­‐your-­‐users-­‐passwords-­‐safely/   devvar3  -­‐  @cceresola  
  11. “Cryptography  is  typically  bypassed,  not  penetrated”   Shamir  3rd  law

      devvar3  -­‐  @cceresola   “There  are  two  types  of  cryptography  in  this  world:  cryptography  that   will  stop  your  kid  sister  from  reading  your  files,  and  cryptography  that   will  stop  major  governments  from  reading  your  files”   B.Schneier  
  12. @cceresola   [email protected]   Merci  pour  votre   aYen^on.  

      Des  ques^ons  ?   devvar3  -­‐  @cceresola