Hackers	
  vs	
  Magento
Le	
  principali	
  vulnerabilità	
  delle	
  applicazioni	
  web	
  tra	
  OWASP	
  
TOP	
  10	
...
hDp://onofri.org/u/mm14
Agenda
Agenda
Introduzione	
  
!
Come	
  si	
  sono	
  evolute	
  le	
  minacce…	
  
!
…la	
  OWASP	
  TOP	
  10	
  2013!	
  
!
C...
Come	
  si	
  sono	
  evolute	
  le	
  minacce	
  nel	
  tempo	
  e	
  perché	
  la	
  
OWASP	
  TOP	
  10	
  2013
Computer	
  Security	
  Timeline
1970
Nei	
  primi	
  anni	
  nasce	
  il	
  
primo	
  
Virus,	
  infeDa	
  gli	
  Apple	
...
Computer	
  Security	
  Timeline
2000
Si	
  denunciano	
  Advanced	
  
Persistent	
  Threat.	
  I	
  
disposiGvi	
  mobile...
1991	
  
inventato	
  il	
  web
2001	
  
nasce	
  OWASP
2003	
  
nasce	
  la	
  TOP	
  Ten
2013	
  
10	
  anni	
  di	
  TOP	
  Ten!
La	
  OWASP	
  TOP	
  10	
  2013
A10.	
  Unvalidated	
  Redirect	
  e	
  Forwards
Le	
   vulnerabilità	
   di	
   Gpo	
   Unvalidated	
   Redirect	
   e	
 ...
<?php
!
header(“Location:”
$_GET[‘url’]);
!
?>
Tipico	
  Redirect	
  (che	
  include	
  anche	
  altre	
  vulnerabilità)
A9.	
  Using	
  Components	
  with	
  Known	
  
VulnerabiliTes
Le	
  vulnerabilità	
  di	
  questo	
  Gpo	
  insistono	
  ...
http://www.magentocommerce.com/blog/
category/security-updates/
Attenzione	
  alla	
  versione	
  di	
  Magento	
  e	
  ai...
Attenzione	
  anche	
  al	
  Server	
  e	
  a	
  PHP!
$ curl -kis http://
magento.example.com/
HTTP/1.1 302 Moved Temporar...
so]ware	
  not	
  updated	
  since	
  2005…
A8.	
  Cross	
  Site	
  Request	
  Forgery	
  (CSRF)
Le	
  vulnerabilità	
  di	
  questo	
  Gpo,	
  solitamente	
  conside...
Explaining	
  CSRF
visita	
  al	
  sito	
  malicious
pagina	
  con	
  la	
  richiesta	
  forgiata
esecuzione	
  della	
  r...
POST /pt/vulnerable-extenstion/index/
saveRegistry/
!
Content-Type: multipart/form-data;
boundary=------------------------...
A7.	
  Missing	
  FuncTon	
  Level	
  Access	
  Control
Le	
  vulnerabilità	
  di	
  questo	
  Gpo	
  consistono	
  nelle	...
http://www.example.com/
bin.php?id=1&download=1
…un	
  noto	
  sistema	
  sullo	
  stile	
  di	
  pastebin
A6.	
  SensiTve	
  Data	
  Exposure
Le	
  vulnerabilità	
  di	
  questo	
  Gpo	
  consistono	
  nelle	
  problemaGche	
  c...
$ python sslyze.py --regular www.example.com
!
!
CHECKING HOST(S) AVAILABILITY
-----------------------------
!
www.example...
Salvare	
  le	
  password	
  su	
  Magento
A5.	
  Security	
  MisconfiguraTon
Le	
  vulnerabilità	
  di	
  questo	
  Gpo	
  insistono	
  sulla	
  configurazione	
  e	
...
/downloader
/admin
/RELEASE_NOTES.txt
/mage
/php.ini.sample
/install.php
/LICENSE_AFL.txt
/LICENSE.html
/install.php

/she...
File	
  SQL	
  abbandonati
admin	
  123123	
  on	
  login	
  page
A4.	
  Insecure	
  Direct	
  Object	
  Reference
Le	
  vulnerabilità	
  di	
  Gpo	
  Insecure	
  Direct	
  Object	
  Refer...
http://magento.example.com/plugin/
index/registry/id/XXXXX1/

http://magento.example.com/plugin/
index/registry/id/XXXXX2/...
A3.	
  Cross	
  Site	
  ScripTng	
  (XSS)
Le	
   vulnerabilità	
   di	
   Gpo	
   XSS	
   si	
   verificano	
   quando	
   ...
POST http://magento.example.com/index.php/admin/
console_gestione/api_role/saverole/key/hash/
!
form_key=formkey
&rolename...
Cross	
  Site	
  ScripTng	
  su	
  Magento
<li	
  class="wide">	
  
	
   	
   	
   	
   <label	
   for="street_1"	
   clas...
A2.	
  Broken	
  AuthenTcaTon	
  and	
  Session	
  
Management
Le	
  vulnerabilità	
  di	
  questo	
  Gpo	
  possono	
  ri...
$ curl -kis”https://
magento.example.com/“ | grep Set-
Cookie
Set-Cookie: sessioncookie=XYZ;
expires=Thu, 29-Aug-2014 07:2...
https://magento.example.com/customer/account/
confirmation/email/simone.onofri@real/
!
https://magento.example.com/custome...
A1.	
  InjecTon
Le	
  vulnerabilità	
  di	
  Gpo	
  InjecGon	
  si	
  verificano	
  quando	
  daT	
  non	
  validaT	
  veng...
POST http://magento.example.com/
index.php/api/xmlrpc
!
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ELEMENT methodName ANY >
<...
SQL	
  InjecTon	
  su	
  Magento
morale?
2003/2004	
  
(aDacks)
2007	
  
(vulnerabiliTes)
2010	
  
(risks)
2013	
  
(risks)
Unvalidated	
  Input Cross	
  Site	
  S...
Conclusioni
GRAZIE!
;-­‐)http://onofri.org/
http://twitter.com/simoneonofri
http://it.linkedin.com/simoneonofri
http://slideshare.net/...
DOMANDE
?http://onofri.org/
http://twitter.com/simoneonofri
http://it.linkedin.com/simoneonofri
http://slideshare.net/simo...
Meetmagento 2014 hackers_onofri
Meetmagento 2014 hackers_onofri
Meetmagento 2014 hackers_onofri
Meetmagento 2014 hackers_onofri
Upcoming SlideShare
Loading in...5
×

Meetmagento 2014 hackers_onofri

361

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
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
361
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
24
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×