hackers vs. developers: nuove e vecchie vulnerabilità con la owasp top 10 2013

58
Simone Onofri [email protected] - Techub S.p.A. Hackers vs. Developers - Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013

Upload: codemotion

Post on 14-Jul-2015

374 views

Category:

Technology


0 download

TRANSCRIPT

Simone Onofri

[email protected] - Techub S.p.A.

Hackers vs. Developers - Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013

Introduzione

h,p://onofri.org/u/hvdmi

Agenda

Agenda

Introduzione  !

Come  si  sono  evolute  le  minacce…  !

…la  OWASP  TOP  10  2013!  !

Conclusioni

Come  si  sono  evolute  le  minacce  nel  tempo  e  perché  la  OWASP  TOP  10  2013

Computer  Security  Timeline

1991  inventato  il  web

2001  nasce  OWASP

2003  nasce  la  TOP  Ten

2013  10  anni  di  TOP  Ten!

La  OWASP  TOP  10  2013

10

http://www.example.com/index.php?option=cookiecheck&return=http://www.evil.com/

Joomla  <=  1.5

A10.  Unvalidated  Redirect  e  Forwards

Le   vulnerabilità   di   Gpo   Unvalidated   Redirect   e   Forwards   si   verificano   quando  daO   non   validaO   uGlizzaG   per   gesGre   redirezioni   verso   altre   pagine   o   siG,  permeQendo   di   redirezionare   l’utente   su   pagine   o   siG   terzi.   Tali   vulnerabilità  possono   essere   uGlizzate   da   malware   o   per   aQacchi   di   phishing   come   per  quesGoni  di  Black  SEO  -­‐  secondo  il  parGcolare  redirect  uGlizzato  dalla  pagina.  

9

soPware  not  updated  since  2006…

HTTP/1.1 404 /nonexistantpage.jsp Date: Tue, 29 Nov 2013 09:00:00 GMT Server: Apache/2.2.16 (Win32) mod_jk/1.2.30 X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5 Pragma: no-cache Content-Length: 1087 Content-Type: text/html;charset=utf-8

Apache  e  Jboss

A9.  Using  Components  with  Known  VulnerabiliOes

Le  vulnerabilità  di  questo  Gpo  insistono  sulla  configurazione  e  deployment  di  sistemi  e/o  applicazioni.    L’impaQo  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  aspeZ  sistemisOca,  per  altri  applicaOva;  altri  aggiornamenG  potrebbero  inoltre  dipendere  da  necessità  applicaGve  ma  insistere  sui  sistemi.

8

explaning  ****  to  management…

<img src="http://www.example.com/saurus/admin/change_config.php?group=1&site_name=hacked&slogan=hacked&meta_title=hacked&meta_description=hacked&meta_keywords=hacked&save=1&flt_keel=1&page_end_html=&timezone=">

 Saurus  CMS  Admin  Panel

A8.  Cross  Site  Request  Forgery  (CSRF)

Le  vulnerabilità  di  questo  Gpo,  solitamente  considerate  problemaGche  nella  gesOone  della  sessione,  permeQono  di  far  eseguire  richieste  arbitrarie  ad  un  utente  verso  un’applicazione  potendone  così  sfruQare  l’accesso,  senza  che  l’utente  sia  noGficato  dell’aZvità.  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.

7

http://www.example.com/bin.php?id=1&download=1

…un  noto  sistema  sullo  stile  di  pastebin

Bypass  filters…

A7.  Missing  FuncOon  Level  Access  Control

Le  vulnerabilità  di  questo  Gpo  consistono  nelle  problemaGche  che  espongono  funzionalità  che  dovrebbero  invece  essere  proteQe  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’impaQo  dipende  dal  Gpo  di  funzionalità  cui  si  ha  accesso.

6

i  miei  daO…  il  mio  tessoro…

[email protected] 54a946c47dd434b2 [email protected] 6f543db8f086e11f [email protected] c192b68baacc8842 [email protected] f85ffcdf9262420c [email protected] 5db5bf75be85191b [email protected] 7c843188ed2f6021 [email protected] 533aeefe56bfa30c [email protected] 859785a9cc724e03 [email protected] 3c79b9864ae5ce43 [email protected] 7e9563750650e4c4 [email protected] 534d4a9b74bb77aa [email protected] 8f318ffd3a2067c8 [email protected] 81657892dddafdca [email protected] 85c837b7f78e5435

phpBB  hacked

$ 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

A6.  SensiOve  Data  Exposure

Le  vulnerabilità  di  questo  Gpo  consistono  nelle  problemaGche  che  espongono  informazioni  che  dovrebbero  invece  essere  proteQe.  Le  informazioni  devono  essere  proteQe  quando  trasmesse  (sicurezza  della  comunicazione),  quando  memorizzate  sul  server  (cri,ografia)  oppure  quando  vengono  inviate  al  browser  (caching)

5

tomcat  tomcat  on  login  page

<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> </tomcat-users>

Tomcat  tomcat-­‐users.xml

A5.  Security  MisconfiguraOon

Le  vulnerabilità  di  questo  Gpo  insistono  sulla  configurazione  e  deployment  di  sistemi  e/o  applicazioni.    L’impaQo  varia  secondo  la  problemaGca  specifica,  ad  esempio  di  accedere  alle  interfacce  di  amministrazione  tramite  password  di  default.    La  responsabilità  delle  configurazioni  è  per  alcuni  aspeZ  sistemisOca,  per  altri  applicaOva;  alcune  configurazioni  potrebbero  inoltre  dipendere  da  necessità  applicaGve  ma  insistere  sui  sistemi.

4

POST /?m=Profile&func=get_raw_blog_entry&user_id=<user_id>&ajax=1&store=0&aja x_target=none HTTP/1.1 Host: wwwb21.tuenti.com [...] blog_entry_id=<another_blog_entry_id>&csfr=<token>

Tuenti  Social  Network  

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’effeZvo  possesso  per  l’autorizzazione  di  accesso,  permeQono  l’accesso  ad  oggeZ  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  faQo  tramite  il  principio  della  “sicurezza  tramite  segretezza”,  pertanto  conoscendo  il  valore  del  parametro  è  possibile  accedervi.  

3

mulOple  stored  ***  on  a  single  page

http://www.example.com/index.php?catid=1>’><script

%20%0d%0a>alert XSS(406115679152)%3B</script>

Cag's  CMS

A3.  Cross  Site  ScripOng  (XSS)

Le   vulnerabilità   di   Gpo   XSS   si   verificano   quando   daO   non   validaO   vengono  resGtuiG   al   browser,   oppure   memorizzaG   dall’applicazione   e   resGtuiG   in   un  secondo  momento,  permeQendo  quindi  di  eseguire  codice  lato  client  all’interno  del  browser  degli  utenG.  L’impaQo  di  queste  vulnerabilità  è  spesso  alto  e  permeQe  di  compromeQere  gli  utenG,  oppure  di  eseguire  dei  defacement.  

2

POST /CubeCart-latest/admin.php?_g=maintenance/backup HTTP/1.1 Host: bld02 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryCpv+NVAHAgHHdvdI User-Agent: X_CLUSTER_CLIENT_IP: Cookie: ccAdmin=+ Accept: */*;q=0.5 Content-Length: 434

CubeCart  4

A2.  Broken  AuthenOcaOon  and  Session  Management

Le  vulnerabilità  di  questo  Gpo  possono  riguardare  la  gesOone  della  sessione  o  insistere  sull’autenOcazione,  permeQono  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  aQraverso  l’id  di  sessione,  che  può  essere  soggeQo  ad  aQacchi  di  svariato  Gpo,  come  anche  le  credenziali,  la  schermata  di  autenOcazione  con  i  rispeZvi  errori  ed  eventuali  pagine  che  gesGscono  le  credenziali  degli  utenG,  come  la  funzionalità  di  cambio  password.

1

http://www.example.com/cart/index.php?cat_id=19+union

+select+group_concat%28username,0x3a,password%29,2,3,4,5,6,7,8+from

+cube305_CubeCart_admin_users—

 CubeCart  2.0.1

A1.  InjecOon

Le  vulnerabilità  di  Gpo  InjecGon  si  verificano  quando  daO  non  validaO  vengono  inviaG  come  parte  di  una  richiesta  verso  un  interprete,  permeQendo  di  eseguire  richieste  o  comandi  normalmente  non  previsG  dall’applicazione.    L’impaQo  di  queste  vulnerabilità  è  spesso  alto  e  permeQe  di  compromeQere   il  sistema  o  i  daG.  

2003/2004  (a,acks)

2007  (vulnerabiliOes)

2010  (risks)

2013  (risks)

Unvalidated  Input Cross  Site  ScripOng  (XSS) InjecOon InjecOon

Broken  Access  Control InjecOon  Flaws Cross-­‐Site  ScripOng  (XSS) Broken  AuthenOcaOon  and  Session  Management

Broken  AuthenOcaOon  and  Session  Management

Malicious  File  ExecuOon Broken  AuthenOcaOon  and  Session  Management

Cross-­‐Site  ScripOng  (XSS)

Cross  Site  ScripOng  (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  MisconfiguraOon

InjecOon  Flaws InformaOon  Leakage  and  Improper  Error  Handling

Security  MisconfiguraOon SensiOve  Data  Exposure

Improper  Error  Handling Broken  AuthenOcaOon  and  Session  Management

Insecure  Cryptographic  Storage

Missing  FuncOon  Level  Access  Control

Insecure  Storage Insecure  Cryptographic  Storage

Failure  to  Restrict  URL  Access

Cross-­‐Site  Request  Forgery  (CSRF)

Denial  of  Service Insecure  CommunicaOons Insufficient  Transport  Layer  ProtecOon

Using  Known  Vulnerable  Components

Insecure  ConfiguraOon  Management

Failure  to  Restrict  URL  Access

Unvalidated  Redirects  and  Forwards

Unvalidated  Redirects  and  Forwards

morale?

Conclusioni

GRAZIE!

;-­‐)http://onofri.org/ http://twitter.com/simoneonofri http://it.linkedin.com/simoneonofri http://slideshare.net/simone.onofri

DOMANDE

?http://onofri.org/ http://twitter.com/simoneonofri http://it.linkedin.com/simoneonofri http://slideshare.net/simone.onofri