Owasp top 10

1,594 views

Published on

Presentación en el OWASP Day Guatemala 2011

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,594
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
79
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • http://igigi.baywords.com/rockyou-com-exposed-more-than-32-millions-of-passwords-in-plaintext/
  • Owasp top 10

    1. 1. Las diezvulnerabilidades web másrelevantes<br />Eduardo Castellanos<br />eduardo.castellanos@owasp.org<br />
    2. 2. Eduardo Castellanos<br />3 años de experiencia en desarrollo<br />3 años de experiencia en seguridad<br />Analista de seguridadpara Verizon Business Security Solutions<br />A través de SISAP<br />Asociado de (ISC)² orientado a CISSP<br />Miembro del capítulo de OWASP Guatemala<br />
    3. 3. Su “perímetro” de seguridadtienegrandesagujeros en la capa de aplicaciones<br />|3<br />Código de AplicaciónElaborado a la Medida<br />Capa de Aplicaciones<br />Bases de datis<br />Legacy Systems<br />Servicios Web<br />Directorios<br />RRHH<br />Cobros<br />ATAQUE A LA APLICACIÓN<br />Servidor de App<br />Servidor Web<br />SO Endurecido<br />Capa de Red<br />Firewall<br />Firewall<br />No se puedenutilizarmecanismos de protección de red paradetener o detetctarattaques de la capa de aplicación<br />
    4. 4. OWASP Top 10<br />
    5. 5. A1 – Inyección<br />
    6. 6. Ejemplo: ataque de inyección SQL<br />Select user_informationfrom user_tablewhere username='input username'and password='input password'<br />Select user_informationfrom user_tablewhere username= '' or 1=1 -- ' and password='abc'<br />
    7. 7. ¿Comodo?<br />Marzo 2011<br />Un hacker usó inyección SQL para entrar a un sistema de un afiliado de Comodo. <br />Comodo es un CA. Ellos firman certificados SSL para garantizar la seguridad de las comunicaciones.<br />Resultado<br />El hacker obtuvo las credenciales paraentrar a los sistemas para generar certificados.<br />Generó certificados para mail.google.com, www.google.com, login.yahoo.com, login.skype.com, addons.mozilla.org y login.live.com<br />
    8. 8. A1 – Evitando la Inyección<br />Recomendaciones<br />Evitarusar un interprete, o<br />Usarunainterfazquepermitaatar (bind) variables (e.g., prepared statements, o stored procedures)<br />Codificartodaslasentradas del usuario antes de pasarlas al interprete. <br />Referencias<br />SQLi Prevention Cheat Sheet http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet<br />
    9. 9. A2 – Cross-Site Scripting (XSS)<br />
    10. 10. XSS = Cross-site Scripting<br />Vulnerabilidad de las aplicaciones web<br />Permite la inyección de código en páginas que serán vistas por otros usuarios<br />XSS = el nuevo buffer overflow<br />Javascript = el nuevo Shell Code<br />
    11. 11. Samy Worm<br />11<br />Primer Worm de XSS<br />EscritoporSamyKamkar<br />Afectó a MySpace.com <br />En menos de 20 horasafectó a más de 1 millón de usuarios<br />
    12. 12. 12<br />
    13. 13. Browser Exploitation Framework<br />
    14. 14. Recomendaciones<br />Eliminar la falla<br />Defenderse de la falla<br />Recomendación principal: Codificartodaslassalidasquecontengandatosproporcionadospor el usuario (Usar OWASP’s ESAPI)<br />http://www.owasp.org/index.php/ESAPI<br />Para grandesporciones de HTML: <br />OWASP’s AntiSamyhttp://www.owasp.org/index.php/AntiSamy<br />Referencias<br />Cross-site Scripting Cheat Sheethttp://www.owasp.org/index.php/XSS_(Cross Site Scripting) Prevention Cheat Sheet<br />(AntiSamy)<br />A2 – Evitando XSS<br />
    15. 15. A3 – Pérdida de Autenticación y Gestión de Sesiones<br />
    16. 16. Ataque de Fijación de Sesión<br />
    17. 17. A3 – Evitando la Pérdida de Autenticación y Gestión de Sesiones<br />Verificar la arquitectura<br />La autenticacióndebe ser simple, centralizada y estandarizada. <br />Use el identificador de sesiónproporcionadopor el contenedor<br />Aseguresequelascredenciales y el identificador de sesiónestanprotegidos con SSL todo el tiempo.<br />Verificar la implementación<br />Verificarque el cierre de sesión la destruya.<br />Verificarlasfunciones de autenticación<br />Authentication Cheat Sheet<br />http://www.owasp.org/index.php/Authentication_Cheat_Sheet<br />
    18. 18. A4 – ReferenciaDirectaInsegura a Objetos<br />
    19. 19. Ejemplo:ReferenciaDirectaInsegura a Objetos<br />El atacante se dacuentaque el identificador de sucuentaes 6534<br /> ?acct=6534<br />Lo cambia a un numero similar… <br /> ?acct=6535<br />El atacantepuedever la información de la víctima<br />https://www.onlinebank.com/user?acct=6534<br />
    20. 20. A4 – Evitando la ReferenciaDirectaInsegura a Objetos<br /><ul><li>Eliminar la referenciadirecta
    21. 21. Hacer un mapeo temporal (1,2,3)
    22. 22. ESAPI proveeestafuncionalidad: IntegerAccessReferenceMap& RandomAccessReferenceMap
    23. 23. Validar la referenciadirecta
    24. 24. Verificar los permisos del usuario</li></li></ul><li>A5 – Cross Site Request Forgery (CSRF)<br />
    25. 25. Ejemplo: CSRF<br />El atacantearmaunatrampa en algun website en Internet<br />Aplicación con vulnerabilidad CSRF<br />Unaetiqueta <img> contiene el ataque contra el sitio vulnerable<br />Mientrasesta en unasesión en el sitio vulnerable, la víctimavisita el sitiomalo<br />El sitio vulnerable miraunapetición vulnerable de la víctima y ejecuta la acciónsolicitada<br /><imgsrc=http://bank.com/transferir?cuenta=2323&cantidad=10000&dest=4444 /><br />
    26. 26. A5 – Evitando CSRF<br /><ul><li>Agregar un token a cadapetición
    27. 27. Requerirconfirmación con la contraseña u otrométodo</li></ul>CSRF Cheat Sheet<br /><ul><li>www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet</li></li></ul><li>A6 – Defectos en la Configuración de Seguridad<br />
    28. 28. Defectos en la Configuración de Seguridad<br />BD<br />Finance<br />Transactions<br />Accounts<br />Administration<br />Communication<br />Knowledge Mgmt<br />E-Commerce<br />Bus. Functions<br />Custom Code<br />App Configuration<br />Development<br />Framework<br />App Server<br />QA Servers<br />Web Server<br />Hardened OS<br />Atacante<br />Test Servers<br />Source Control<br />
    29. 29. A6 – EvitandoDefectos en la Configuración de Seguridad<br /><ul><li>Verificar la gestión de la configuración
    30. 30. Seguirunaguía de configuraciónsegura
    31. 31. Establecer un control de cambios
    32. 32. Verificar la implementación
    33. 33. Escaneos</li></li></ul><li>A7 – AlmacenamientoCriptográficoInseguro<br />
    34. 34. Cifrar información de clientes<br />Información de clientes, 77 Milliones comprometidos.(probablemente tarjetas de crédito también)<br />28<br />
    35. 35. A7 – EvitandoAlmacenamientoCriptográficoInseguro<br /><ul><li>Considerelasamenazas y los datossensibles
    36. 36. Aseguresequelascopias de los datosestandebidamenteprotegidas
    37. 37. Asegurese de usarcorrectamentealgorítmosestándares con llavesfuertes
    38. 38. Almacenelascontraseñas con un hash + sal</li></li></ul><li>A8 – Falla de Restricción de Acceso a URL<br />
    39. 39. Ejemplo de Falla de Restricción de Acceso a URL<br />El atacante se dacuentaque el URL define surol<br /> /user/getAccounts<br />Lo cambia a otrodirectorio (rol)<br /> /admin/getAccounts, o<br /> /manager/getAccounts<br />El atacantemiralascuentas de otrosusuarios<br />
    40. 40. A9 – ProtecciónInsuficiente en la Capa de Transporte<br />
    41. 41. Firesheep<br />33<br />
    42. 42. A9 – EvitandoProtecciónInsuficiente en la Capa de Transporte<br />Proteger con mecanismosadecuados<br />Usar TLS en todaslasconexiones con información sensible<br />Cifrarmensajesprevio a sutransmisión<br />Usar los mecanismosadecuadamente<br />No usarcifrados SSL obsoletos<br />Atributo Secure de las cookies<br />Gestionarlasllaves/certificadosadecuadamente<br />Usarmecanismoscomprobados<br />Cheat Sheet: http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet<br />
    43. 43. A10 – Redirecciones y Reenvíos No Validados<br />
    44. 44. CNN<br />http://ads.cnn.com/event.ng/Type=click&Redirect=http:/bit.ly/cP–XW<br />36<br />
    45. 45. A10 – EvitandoRedirecciones y Reenvíos No Validados<br />Variasopciones<br />Evitarusarlos<br />No usarparámetrosparadeterminar el URL<br />Si ‘debe’ tenerparametros<br />Validarquecadaparámetro sea válido. <br />(preferido) – Usar un mapeo del lado del servidor<br />ESAPI<br />Ver: SecurityWrapperResponse.sendRedirect( URL )<br />http://owasp-esapi-java.googlecode.com/svn/trunk_doc/org/owasp/esapi/filters/SecurityWrapperResponse.html#sendRedirect(java.lang.String)<br />
    46. 46. Resumen: ¿Cómoatacarestosproblemas?<br />Desarrollarcódigoseguro<br />Seguirlasmejoresprácticasdefinidas en OWASP’s Guide to Building Secure Web Applications<br />http://www.owasp.org/index.php/Guide<br />Usar OWASP’s Application Security Verification Standard<br />http://www.owasp.org/index.php/ASVS<br />Usarcomponentes de seguridad<br />Usar OWASP’s ESAPI como la base paraSUScomponentes<br />http://www.owasp.org/index.php/ESAPI<br />Revisarlasaplicaciones<br />Que un equipo de expertos revise susaplicaciones<br />Revise susaplicacionesporsimismousandoguías OWASP<br />OWASP Code Review Guide: http://www.owasp.org/index.php/Code_Review_Guide<br />OWASP Testing Guide: http://www.owasp.org/index.php/Testing_Guide<br />
    47. 47. Descarguen<br />http://www.owasp.org/index.php/Top_10<br />
    48. 48. www.owasp.org<br />|40<br />40<br />
    49. 49. 41<br />Suscribanse a nuestra lista de correo<br />https://lists.owasp.org/mailman/listinfo/owasp-Guatemala<br />

    ×