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

Sicurezza delle applicazioni web

613 views

Published on

OWASP Top 5 explained

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Sicurezza delle applicazioni web

  1. 1. Liofilizzato de“Fondamenti di sicurezza delle applicazioni”
  2. 2. OWASP Top 101. Injection2. Cross-Site Scripting (XSS)3. Broken Authentication and Session Management4. Insecure Direct Object References5. Cross-Site Request Forgery (CSRF)6. Security Misconfiguration7. Insecure Cryptographic Storage8. Failure to Restrict URL Access9. Insufficient Transport Layer Protection10. Unvalidated Redirects and Forwards
  3. 3. OWASP Top 101. Injection2. Cross-Site Scripting (XSS)3. Broken Authentication and Session Management4. Insecure Direct Object References5. Cross-Site Request Forgery (CSRF)6. Security Misconfiguration7. Insecure Cryptographic Storage8. Failure to Restrict URL Access9. Insufficient Transport Layer Protection10. Unvalidated Redirects and Forwards
  4. 4. Injection InjectionSQL Injection OS Injection Path traversal
  5. 5. SQL Injection What
  6. 6. SQL Injection What What ?
  7. 7. SQL Injection Whatun attaccante è in grado di inserire dichiarazioniSQL in una query esistente manipolando i datipassati in input ad una applicazione.
  8. 8. SQL Injection Why assenza / errata validazione degli input creazione dinamica di SQL in modo naifpublic boolean auth(String user) { String sql = “select * from FW01_USER where username = ” + param; ... // query execution...}
  9. 9. OS Injection Whatun attaccante è in grado di eseguire direttamentecomandi del sistema operativo ospitante il serverweb o l’application server manipolando i datipassati in input ad una applicazione.
  10. 10. OS Injection Why assenza / errata validazione degli input esecuzione diretta di eseguibili nella shell sottostantemediante stringhe di comando contenenti i parametri in input
  11. 11. Path traversal Whatun attaccante è in grado accedere alle risorse aldi fuori del web tree.
  12. 12. Path traversal Why assenza / errata validazione degli input utilizzo dell’input per la costruzione di referenze a file edirectory
  13. 13. Path traversal Why assenza / errata validazione degli input utilizzo dell’input per la costruzione di referenze a file edirectory http://xxx.yyy.zzz/getFile.jsp?file=report.pdf
  14. 14. Path traversal Why assenza / errata validazione degli input utilizzo dell’input per la costruzione di referenze a file edirectory http://xxx.yyy.zzz/getFile.jsp?file=report.pdfhttp://xxx.yyy.zzz/getFile.jsp?file=../../../../src/code/src.zip
  15. 15. OWASP Top 10✓ Injection2. Cross-Site Scripting (XSS)3. Broken Authentication and Session Management4. Insecure Direct Object References5. Cross-Site Request Forgery (CSRF)6. Security Misconfiguration7. Insecure Cryptographic Storage8. Failure to Restrict URL Access9. Insufficient Transport Layer Protection10. Unvalidated Redirects and Forwards
  16. 16. XSS Whatun attaccante è in grado di modificare l’output diuna pagina prodotta da una web application pereseguire codice javascript / ActiveX / mobilecode senza modificare i dati o le configurazionidel server.
  17. 17. XSS Whyassenza / errata validazione degli inputassenza di escaping dell’output
  18. 18. XSS HowValidazione degli input e degli outputCookies HttpOnly
  19. 19. OWASP Top 10✓ Injection✓ Cross-Site Scripting (XSS)3. Broken Authentication and Session Management4. Insecure Direct Object References5. Cross-Site Request Forgery (CSRF)6. Security Misconfiguration7. Insecure Cryptographic Storage8. Failure to Restrict URL Access9. Insufficient Transport Layer Protection10. Unvalidated Redirects and Forwards
  20. 20. AutenticazioneErrori di design Errori di implementazione• password deboli • logiche fail-open• vulnerabilità a forza bruta • registrazione / comunicazione insicura di credenziali• messaggi differenziati di errore• uso di canali non cifrati• recupero password debole
  21. 21. AutenticazioneErrori di design Errori di implementazione• password deboli • logiche fail-open• vulnerabilità a forza bruta • registrazione / comunicazione insicura di credenziali• messaggi differenziati di errore• uso di canali non cifrati• recupero password debole
  22. 22. AutenticazioneErrori di design Errori di implementazione• password deboli • logiche fail-open• vulnerabilità a forza bruta Limite al • registrazione / comunicazione # tentativi / time slice insicura di credenziali• messaggi differenziati di errore• uso di canali non cifrati• recupero password debole
  23. 23. AutorizzazioneErrori logici• controlli client side• parametri HTTP usati come ACLErrori di implementazione• URL diretti, privilegiati, segreti
  24. 24. Sessioni e cookie STATOSICUREZZA Semplicità Server side Client side Fat session Thin session Session token
  25. 25. OWASP Top 10✓ Injection✓ Cross-Site Scripting (XSS)✓ Broken Authentication and Session Management4. Insecure Direct Object References5. Cross-Site Request Forgery (CSRF)6. Security Misconfiguration7. Insecure Cryptographic Storage8. Failure to Restrict URL Access9. Insufficient Transport Layer Protection10. Unvalidated Redirects and Forwards
  26. 26. Insecure Direct Object RefsString query = "SELECT * FROM accts WHERE account = ?";PreparedStatement pstmt =connection.prepareStatement(query, ... );pstmt.setString( 1, request.getParameter("acct"));ResultSet results = pstmt.executeQuery(); http://example.com/app/accountInfo?acct=notmyacct
  27. 27. OWASP Top 10✓ Injection✓ Cross-Site Scripting (XSS)✓ Broken Authentication and Session Management✓ Insecure Direct Object References5. Cross-Site Request Forgery (CSRF)6. Security Misconfiguration7. Insecure Cryptographic Storage8. Failure to Restrict URL Access9. Insufficient Transport Layer Protection10. Unvalidated Redirects and Forwards
  28. 28. CSRF[see surf]
  29. 29. CSRF [see surf] https://mytrustedbank.com1 Bank login username utonto password *****
  30. 30. CSRF [see surf] https://mytrustedbank.com1 Bank login username utonto password *****2
  31. 31. CSRF [see surf] https://mytrustedbank.com 1 Bank login username utonto password ***** 2 http://malicious.org3 Really bad site Ode to the pig
  32. 32. CSRF [see surf] https://mytrustedbank.com 1 Bank login username utonto password ***** 2 http://malicious.org3 ... Really bad site <img src=”https://mytrustedbank.com/app/ transferFunds? amount=1500&destAccount=attackersAcct#”/> Ode to the pig
  33. 33. CSRF How➡Usare GET e POST in modo appropriato➡Usare un security token per richieste non GET

×