Programación segura con .NET                 Mario Guzmán                 Desarrollador                 Mario.Guzman@gmail...
Aspectos a ser TratadosComo guardar de manera segura Passwords de UsuariosLimpiar la entrada de datos                   ...
Manejar Passwords           Ataques           Como Guardar PasswordsOWASP           Copyright © The OWASP Foundation      ...
Mecanismos de AtaqueFuerza BrutaAtaques de DiccionarioBrechas de Seguridad en el Servidor de Bases de Datos            ...
Fuerza Bruta y Ataques de DiccionarioFuerza Bruta: consiste en probar con todas las combinaciones posibles de letras, núm...
Ayuda de GPUsHerramienta usada ighashgpuNTLMSe compara el resultado del hash del passwordATI 5770  9.8 millones de pa...
GPU Fuerza Bruta5   caracteres:   4 segundos6   caracteres:   17 segundos7   caracteres:   17 minutos 30 segundos.8   ...
DefensaPedir Passwords de 8-9 caracteres.Poner Timers: Dejar solo probar 10 logins seguidosIdealmente pedir Passphrases...
BRECHAS DE SEGURIDAD ENUNA DB                    OWASP
RiesgosDebilidad en el código que permita tener acceso a las tablas de usuarios.SQL InjectionDB Admins maliciosos.     ...
Que queremos lograrQue aunque la base de datos caiga en manos maliciosas los passwords de los usuarios no sean comprometi...
HashNo guardar como “Clear Text” un passwordUsar un algoritmo de HashHash es un algoritmo de una sola via: cuando se ap...
HashEjemplo en código                     OWASP
Hash + SaltEn caso que el atacante tenga acceso a la base de datos entera, puede todavia tratar de adivinar los hashes po...
Hash + SaltSalt son bytes/string generado al randomSe concatena/xor al password originalSe logra tener un password bast...
Hash + SaltEjemplo              OWASP
Hash + Salt + IterationsSe toma el resultado del hash + salt y se vuelve a pasar por la función de hash + salt n veces.E...
Hash + Salt + IterationsEjemplo en código                           OWASP
Limpiar Entradas a DB            Riesgos            SqlParameters            LINQ to SQLOWASP            Copyright © The O...
RiesgosSQL InjectionCross Site Scripting (XSS)Aunque verifiquemos los strings en el 99.99% de nuestra aplicación solo e...
SQL InjectionPasar comandos de SQL como parte de los valoresEjemplo en código para  SQL Parameters  Linq to SQL       ...
Cross Site ScriptingPasar valores con comandos de Javascript/htmlEjemplo: <b onmouseover=alert(Wufff!)>click me!</b>    ...
Otros MétodosNhibernateFluent NhibernateObject Relational Mapping                             OWASP
Preguntas y/o comentariosOWASP           Copyright © The OWASP Foundation           Permission is granted to copy, distrib...
Upcoming SlideShare
Loading in...5
×

Sanitizando datos con .Net

730

Published on

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
730
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sanitizando datos con .Net

  1. 1. Programación segura con .NET Mario Guzmán Desarrollador Mario.Guzman@gmail.com OWASP Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org
  2. 2. Aspectos a ser TratadosComo guardar de manera segura Passwords de UsuariosLimpiar la entrada de datos OWASP
  3. 3. Manejar Passwords Ataques Como Guardar PasswordsOWASP Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org
  4. 4. Mecanismos de AtaqueFuerza BrutaAtaques de DiccionarioBrechas de Seguridad en el Servidor de Bases de Datos OWASP
  5. 5. Fuerza Bruta y Ataques de DiccionarioFuerza Bruta: consiste en probar con todas las combinaciones posibles de letras, números etc.Ataque de Diccionario: prueba con palabras de diccionario, fechas, etc.Ambos necesitan un programa que mande passwords a una pagina web y verifique su resultado. OWASP
  6. 6. Ayuda de GPUsHerramienta usada ighashgpuNTLMSe compara el resultado del hash del passwordATI 5770 9.8 millones de passwords/sec OWASP
  7. 7. GPU Fuerza Bruta5 caracteres: 4 segundos6 caracteres: 17 segundos7 caracteres: 17 minutos 30 segundos.8 caracteres: 18 horas y 30 minutos9 caracteres: 48 dias. OWASP
  8. 8. DefensaPedir Passwords de 8-9 caracteres.Poner Timers: Dejar solo probar 10 logins seguidosIdealmente pedir PassphrasesTener un diccionario de las palabras mas usadas y no dejar que le gente use estos passwords: Mama, Papa, etc.Pedir passwords alfa numéricos. OWASP
  9. 9. BRECHAS DE SEGURIDAD ENUNA DB OWASP
  10. 10. RiesgosDebilidad en el código que permita tener acceso a las tablas de usuarios.SQL InjectionDB Admins maliciosos. OWASP
  11. 11. Que queremos lograrQue aunque la base de datos caiga en manos maliciosas los passwords de los usuarios no sean comprometidos Usuarios usan el mismo password para varios sitios OWASP
  12. 12. HashNo guardar como “Clear Text” un passwordUsar un algoritmo de HashHash es un algoritmo de una sola via: cuando se aplica un hash no se puede recuperar el password otra vez.Al momento de login, se le pide al usuario el password, y se aplica el hash al mismo y por ultimo se comparan los hashes, nunca los passwords. OWASP
  13. 13. HashEjemplo en código OWASP
  14. 14. Hash + SaltEn caso que el atacante tenga acceso a la base de datos entera, puede todavia tratar de adivinar los hashes por metodos de fuerza bruta OWASP
  15. 15. Hash + SaltSalt son bytes/string generado al randomSe concatena/xor al password originalSe logra tener un password bastante mas largoTiene la desventaja que se tiene que guardar idealmente en otra base de datos OWASP
  16. 16. Hash + SaltEjemplo OWASP
  17. 17. Hash + Salt + IterationsSe toma el resultado del hash + salt y se vuelve a pasar por la función de hash + salt n veces.El número de iteraciones debe de ser random y se recomienda que sea de mas de 1000 veces.Tiene que ser guardado junto al salt OWASP
  18. 18. Hash + Salt + IterationsEjemplo en código OWASP
  19. 19. Limpiar Entradas a DB Riesgos SqlParameters LINQ to SQLOWASP Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org
  20. 20. RiesgosSQL InjectionCross Site Scripting (XSS)Aunque verifiquemos los strings en el 99.99% de nuestra aplicación solo es necesario que falle una vez para ser vulnerables OWASP
  21. 21. SQL InjectionPasar comandos de SQL como parte de los valoresEjemplo en código para SQL Parameters Linq to SQL OWASP
  22. 22. Cross Site ScriptingPasar valores con comandos de Javascript/htmlEjemplo: <b onmouseover=alert(Wufff!)>click me!</b> OWASP
  23. 23. Otros MétodosNhibernateFluent NhibernateObject Relational Mapping OWASP
  24. 24. Preguntas y/o comentariosOWASP Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org

×