Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Meetmagento 2014 hackers_onofri

754 views

Published on

“Da un grande potere derivano grandi responsabilità”, ci ricordano le parole di un grande supereroe. Allora, considerato che Magento è uno dei sistemi di eCommerce più utilizzati in tutto il mondo, è essenziale assumersi ogni responsabilità rispetto agli aspetti di sicurezza che, se trascurati, possono portare ingenti danni.
Durante il talk, Simone Onofri illustrerà le principali vulnerabilità, utilizzando la OWASP TOP 10 2013 e specifici esempi sull’ecosistema di Magento per imparare assieme come rendere sicura la propria installazione di Magento o il proprio Plugin.

Published in: Technology
  • Be the first to comment

Meetmagento 2014 hackers_onofri

  1. 1. Hackers  vs  Magento Le  principali  vulnerabilità  delle  applicazioni  web  tra  OWASP   TOP  10  2013  e  Magento   Simone  Onofri
  2. 2. hDp://onofri.org/u/mm14
  3. 3. Agenda
  4. 4. Agenda Introduzione   ! Come  si  sono  evolute  le  minacce…   ! …la  OWASP  TOP  10  2013!   ! Conclusioni
  5. 5. Come  si  sono  evolute  le  minacce  nel  tempo  e  perché  la   OWASP  TOP  10  2013
  6. 6. Computer  Security  Timeline 1970 Nei  primi  anni  nasce  il   primo   Virus,  infeDa  gli  Apple  e     si  diffonde  tramite  Floppy.   Negli  ulGmi  anni  nascono    i   Worm,  alcuni  dei  quali   cifrano  il  disco.  ADacchi  alle   PA. 1980 1990 Blue  Box  Phreaking     da  Capitan  Crunch.   ADacchi  alle  compagnie   telefoniche. Il  mezzo  di  propagazione   è  spesso  l’e-­‐mail  e  i   bersagli  sono  i  sistemi   operaGvi  MicrosoP   (aDaccando  es.  Outlook   express).  Il  bersaglio  sono   le  persone.
  7. 7. Computer  Security  Timeline 2000 Si  denunciano  Advanced   Persistent  Threat.  I   disposiGvi  mobile   diventano  un  bersaglio   Gpico.  Sono  molto  frequenG   aDacchi  a  sfondo  poliTco.   Diventa  evidente  come   quesG  strumenG  siano  usaT   come  armi. 2010 I  Virus  aDaccano  anche   i  servizi  di  rete  (es.  Slammer,    Sasser  e  Blaster).     Iniziano  gli  aDacchi     alle  Applicazioni  Web  e  su   SCADA.  L’obieVvo  è  anche   creare  disservizi.     E’  a  tuV  gli  effeV   un  Business.  
  8. 8. 1991   inventato  il  web
  9. 9. 2001   nasce  OWASP
  10. 10. 2003   nasce  la  TOP  Ten
  11. 11. 2013   10  anni  di  TOP  Ten!
  12. 12. La  OWASP  TOP  10  2013
  13. 13. A10.  Unvalidated  Redirect  e  Forwards Le   vulnerabilità   di   Gpo   Unvalidated   Redirect   e   Forwards   si   verificano   quando   daT   non   validaT   uGlizzaG   per   gesGre   redirezioni   verso   altre   pagine   o   siG,   permeDendo   di   redirezionare   l’utente   su   pagine   o   siG   terzi.   Tali   vulnerabilità   possono   essere   uGlizzate   da   malware   o   per   aDacchi   di   phishing   come   per   quesGoni  di  Black  SEO  -­‐  secondo  il  parGcolare  redirect  uGlizzato  dalla  pagina.  
  14. 14. <?php ! header(“Location:” $_GET[‘url’]); ! ?> Tipico  Redirect  (che  include  anche  altre  vulnerabilità)
  15. 15. A9.  Using  Components  with  Known   VulnerabiliTes Le  vulnerabilità  di  questo  Gpo  insistono  sulla  configurazione  e  deployment  di   sistemi  e/o  applicazioni.     L’impaDo  varia  secondo  la  problemaGca  specifica,  ad  esempio  dalle  vulnerabilità   presenG  in  un  applicaGon  server  o  una  libreria  applicaGva  non  aggiornata.   La  responsabilità  dell’aggiornamento  è  per  alcuni  aspeV  sistemisTca,  per  altri   applicaTva;  altri  aggiornamenG  potrebbero  inoltre  dipendere  da  necessità   applicaGve  ma  insistere  sui  sistemi.
  16. 16. http://www.magentocommerce.com/blog/ category/security-updates/ Attenzione  alla  versione  di  Magento  e  ai  Plugin  (sopratutto)
  17. 17. Attenzione  anche  al  Server  e  a  PHP! $ curl -kis http:// magento.example.com/ HTTP/1.1 302 Moved Temporarily Date: Wed, 21 Aug 2013 14:51:21 GMT Server: Apache 2.2.2 X-Powered-By: PHP/5.3.8 Location: https:// magento.example.com/index.php Content-Type: text/html; charset=UTF-8 Content-Length: 0
  18. 18. so]ware  not  updated  since  2005…
  19. 19. A8.  Cross  Site  Request  Forgery  (CSRF) Le  vulnerabilità  di  questo  Gpo,  solitamente  considerate  problemaGche  nella   gesTone  della  sessione,  permeDono  di  far  eseguire  richieste  arbitrarie  ad  un   utente  verso  un’applicazione  potendone  così  sfruDare  l’accesso,  senza  che   l’utente  sia  noTficato  dell’afvità.  Il  browser,  quando  esegue  una  richiesta   verso  un’applicazione,  invia  automaGcamente  eventuali  cookie  presenG.  La  CSRF   è  parGcolarmente  criGca  per  operazioni  che  modificano  lo  stato  del  sistema.
  20. 20. Explaining  CSRF visita  al  sito  malicious pagina  con  la  richiesta  forgiata esecuzione  della  richiesta  forgiata conferma  dell’esecuzione
  21. 21. POST /pt/vulnerable-extenstion/index/ saveRegistry/ ! Content-Type: multipart/form-data; boundary=---------------------------14889655568 59511301088424814 ! -----------------------------148896555685951130 1088424814 ! Content-Disposition: form-data; name="regtitle" ! <cross-site-scripting-per- rubare-la-sesione> ! ! Nonostante  l’ultima  versione  di  Magento  abbia  delle  funzionalità  anti-­‐CSRF  non   tutti  i  plugin  le  utilizzano.
  22. 22. A7.  Missing  FuncTon  Level  Access  Control Le  vulnerabilità  di  questo  Gpo  consistono  nelle  problemaGche  che  espongono   funzionalità  che  dovrebbero  invece  essere  proteDe  da  un  controllo  accessi.   Riguardano  pertanto  l’autorizzazione,  che  può  essere  gesGta  -­‐  secondo  i  contesG   -­‐  sia  lato  applicaGvo  che  lato  sistemisGco  (in  questo  caso  tramite  la   configurazione).  L’impaDo  dipende  dal  Gpo  di  funzionalità  cui  si  ha  accesso.
  23. 23. http://www.example.com/ bin.php?id=1&download=1 …un  noto  sistema  sullo  stile  di  pastebin
  24. 24. A6.  SensiTve  Data  Exposure Le  vulnerabilità  di  questo  Gpo  consistono  nelle  problemaGche  che  espongono   informazioni  che  dovrebbero  invece  essere  proteDe.  Le  informazioni  devono   essere  proteDe  quando  trasmesse  (sicurezza  della  comunicazione),  quando   memorizzate  sul  server  (criDografia)  oppure  quando  vengono  inviate  al  browser   (caching).
  25. 25. $ python sslyze.py --regular www.example.com ! ! CHECKING HOST(S) AVAILABILITY ----------------------------- ! www.example.com:443 => 127.0.0.1:443 ! ! ! SCAN RESULTS FOR WWW.EXAMPLE.COM:443 - 127.0.0.1:443 --------------------------------------------------------- ! * Compression : Compression Support: Enabled zlib compression ! CRIME
  26. 26. Salvare  le  password  su  Magento
  27. 27. A5.  Security  MisconfiguraTon Le  vulnerabilità  di  questo  Gpo  insistono  sulla  configurazione  e  deployment  di   sistemi  e/o  applicazioni.     L’impaDo  varia  secondo  la  problemaGca  specifica,  ad  esempio  di  accedere  alle   interfacce  di  amministrazione  tramite  password  di  default.     La  responsabilità  delle  configurazioni  è  per  alcuni  aspeV  sistemisTca,  per  altri   applicaTva;  alcune  configurazioni  potrebbero  inoltre  dipendere  da  necessità   applicaGve  ma  insistere  sui  sistemi.
  28. 28. /downloader /admin /RELEASE_NOTES.txt /mage /php.ini.sample /install.php /LICENSE_AFL.txt /LICENSE.html /install.php
 /shell* … File  dell’installazione  di  Magento
  29. 29. File  SQL  abbandonati
  30. 30. admin  123123  on  login  page
  31. 31. A4.  Insecure  Direct  Object  Reference Le  vulnerabilità  di  Gpo  Insecure  Direct  Object  Reference  posso  riguardare   problemaGche  di  autorizzazione  nei  parametri  di  ingresso  che,  non  controllando   l’effeVvo  possesso  per  l’autorizzazione  di  accesso,  permeDono  l’accesso  ad   oggeV  altrimenG  non  accessibili.  Per  ogni  risorsa,  bisogna  definire  se  questa   può  essere  accessibile  da  determinaG  utenG  (anche  anonimi),  e  se  si  è   autorizzaG  alla  visualizzazione.  Spesso  questo  Gpo  di  controllo  viene  faDo   tramite  il  principio  della  “sicurezza  tramite  segretezza”,  pertanto  conoscendo  il   valore  del  parametro  è  possibile  accedervi.  
  32. 32. http://magento.example.com/plugin/ index/registry/id/XXXXX1/
 http://magento.example.com/plugin/ index/registry/id/XXXXX2/ ! http://magento.example.com/plugin/ index/registry/id/XXXXX3/ ! http://magento.example.com/plugin/ index/registry/id/XXXXX4/
 
 Se  un  URL  è  riservato  verificare  sempre  i  permessi  quando  ci  si  accede
  33. 33. A3.  Cross  Site  ScripTng  (XSS) Le   vulnerabilità   di   Gpo   XSS   si   verificano   quando   daT   non   validaT   vengono   resGtuiG   al   browser,   oppure   memorizzaG   dall’applicazione   e   resGtuiG   in   un   secondo  momento,  permeDendo  quindi  di  eseguire  codice  lato  client  all’interno   del  browser  degli  utenG.   L’impaDo  di  queste  vulnerabilità  è  spesso  alto  e  permeDe  di  compromeDere  gli   utenG,  oppure  di  eseguire  dei  defacement.  
  34. 34. POST http://magento.example.com/index.php/admin/ console_gestione/api_role/saverole/key/hash/ ! form_key=formkey &rolename=test01"><script>alert('xss')</script> &role_id= &in_role_user= &in_role_user_old= &gws_is_all=1 &resource=__root__ &all=0 Stored  XSS  nell’amministrazione  di  Magento  (Ruoli)
  35. 35. Cross  Site  ScripTng  su  Magento <li  class="wide">           <label   for="street_1"   class="required"><em>*</em><?php   echo   $this-­‐ >__('Street  Address')  ?></label>          <div  class="input-­‐box">                   <input   type="text"   name="street[]"   value="<?php   echo   $this-­‐ >htmlEscape($this-­‐>getAddress()-­‐>getStreet(1))   ?>"   Gtle="<?php   echo   $this-­‐ >__('Street  Address')  ?>"  id="street_1"  class="input-­‐text  required-­‐entry"  />          </div>   </li>
  36. 36. A2.  Broken  AuthenTcaTon  and  Session   Management Le  vulnerabilità  di  questo  Gpo  possono  riguardare  la  gesTone  della  sessione  o   insistere  sull’autenTcazione,  permeDono  di  accedere  all’applicazione  con  i   permessi  di  altri  utenG.  AutenGcazione  e  Sessione  sono  argomenG  correlaG.  Una   volta  che  l’utente  si  autenGca,  viene  idenGficato  aDraverso  l’id  di  sessione,  che   può  essere  soggeDo  ad  aDacchi  di  svariato  Gpo,  come  anche  le  credenziali,  la   schermata  di  autenTcazione  con  i  rispeVvi  errori  ed  eventuali  pagine  che   gesGscono  le  credenziali  degli  utenG,  come  la  funzionalità  di  cambio  password.
  37. 37. $ curl -kis”https:// magento.example.com/“ | grep Set- Cookie Set-Cookie: sessioncookie=XYZ; expires=Thu, 29-Aug-2014 07:22:22 GMT; path=/; domain=magento.example.com; Nel  cookie  manca  l’attributo  HTTPOnly  e  Secure
  38. 38. https://magento.example.com/customer/account/ confirmation/email/simone.onofri@real/ ! https://magento.example.com/customer/account/ confirmation/email/simone.onofri@fake/ Tramite  una  risposta  diversa  per  l’invio  del  link  di  conferma  è  possibile  enumerare  gli  utenti
  39. 39. A1.  InjecTon Le  vulnerabilità  di  Gpo  InjecGon  si  verificano  quando  daT  non  validaT  vengono   inviaG  come  parte  di  una  richiesta  verso  un  interprete,  permeDendo  di  eseguire   richieste  o  comandi  normalmente  non  previsG  dall’applicazione.     L’impaDo  di  queste  vulnerabilità  è  spesso  alto  e  permeDe  di  compromeDere  il   sistema  o  i  daG.  
  40. 40. POST http://magento.example.com/ index.php/api/xmlrpc ! <?xml version="1.0"?> <!DOCTYPE foo [ <!ELEMENT methodName ANY > <!ENTITY xxe SYSTEM "file:///etc/ passwd" >]> <methodCall> <methodName>&xxe;</methodName> </methodCall> Xml  Entity  Expansion  Injection
  41. 41. SQL  InjecTon  su  Magento
  42. 42. morale?
  43. 43. 2003/2004   (aDacks) 2007   (vulnerabiliTes) 2010   (risks) 2013   (risks) Unvalidated  Input Cross  Site  ScripTng  (XSS) InjecTon InjecTon Broken  Access  Control InjecTon  Flaws Cross-­‐Site  ScripTng  (XSS) Broken  AuthenTcaTon   and  Session  Management Broken  AuthenTcaTon   and  Session  Management Malicious  File  ExecuTon Broken  AuthenTcaTon   and  Session  Management Cross-­‐Site  ScripTng  (XSS) Cross  Site  ScripTng  (XSS)   Flaws Insecure  Direct  Object   Reference Insecure  Direct  Object   References Insecure  Direct  Object   References Buffer  Overflows Cross  Site  Request   Forgery  (CSRF)* Cross-­‐Site  Request   Forgery  (CSRF) Security  MisconfiguraTon InjecTon  Flaws InformaTon  Leakage  and   Improper  Error  Handling Security  MisconfiguraTon SensiTve  Data  Exposure Improper  Error  Handling Broken  AuthenTcaTon   and  Session  Management Insecure  Cryptographic   Storage Missing  FuncTon  Level   Access  Control Insecure  Storage Insecure  Cryptographic   Storage Failure  to  Restrict  URL   Access Cross-­‐Site  Request   Forgery  (CSRF) Denial  of  Service Insecure  CommunicaTons Insufficient  Transport   Layer  ProtecTon Using  Known  Vulnerable   Components Insecure  ConfiguraTon   Management Failure  to  Restrict  URL   Access Unvalidated  Redirects   and  Forwards Unvalidated  Redirects   and  Forwards
  44. 44. Conclusioni
  45. 45. GRAZIE! ;-­‐)http://onofri.org/ http://twitter.com/simoneonofri http://it.linkedin.com/simoneonofri http://slideshare.net/simone.onofri
  46. 46. DOMANDE ?http://onofri.org/ http://twitter.com/simoneonofri http://it.linkedin.com/simoneonofri http://slideshare.net/simone.onofri

×