SlideShare uma empresa Scribd logo
1 de 24
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
Aspectos a ser Tratados

Como guardar de manera segura Passwords de
 Usuarios
Limpiar la entrada de datos




                                     OWASP
Manejar Passwords



           Ataques
           Como Guardar Passwords



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
Mecanismos de Ataque

Fuerza Bruta
Ataques de Diccionario
Brechas de Seguridad en el Servidor de Bases
 de Datos




                                        OWASP
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
Ayuda de GPUs

Herramienta usada ighashgpu
NTLM
Se compara el resultado del hash del password
ATI 5770
  9.8 millones de passwords/sec




                                        OWASP
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
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
BRECHAS DE SEGURIDAD EN
UNA DB
                    OWASP
Riesgos

Debilidad en el código que permita tener acceso
 a las tablas de usuarios.
SQL Injection
DB Admins maliciosos.




                                         OWASP
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
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
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 por metodos de fuerza bruta




                                        OWASP
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
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.
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
Hash + Salt + Iterations

Ejemplo en código




                           OWASP
Limpiar Entradas a DB



            Riesgos
            SqlParameters
            LINQ to SQL

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
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
SQL Injection

Pasar comandos de SQL como parte de los
 valores
Ejemplo en código para
  SQL Parameters
  Linq to SQL




                                      OWASP
Cross Site Scripting

Pasar valores con comandos de Javascript/html
Ejemplo: <b onmouseover=alert('Wufff!')>click
 me!</b>




                                       OWASP
Otros Métodos

Nhibernate
Fluent Nhibernate
Object Relational Mapping




                             OWASP
Preguntas y/o comentarios




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

Mais conteúdo relacionado

Semelhante a Sanitizando datos con .Net

Review OWASP 2014 - OWASP Perú
Review OWASP 2014 - OWASP PerúReview OWASP 2014 - OWASP Perú
Review OWASP 2014 - OWASP Perú
John Vargas
 
Clase1 introduccinalcurso
Clase1 introduccinalcursoClase1 introduccinalcurso
Clase1 introduccinalcurso
jorg_marq
 
Presentacion ute
Presentacion utePresentacion ute
Presentacion ute
mies
 
Bypassing waf advanced
Bypassing waf advancedBypassing waf advanced
Bypassing waf advanced
limahack
 

Semelhante a Sanitizando datos con .Net (20)

Meetup TestingUy 2017 - Testing de Seguridad con Herramientas de OWASP
Meetup TestingUy 2017 - Testing de Seguridad con Herramientas de OWASPMeetup TestingUy 2017 - Testing de Seguridad con Herramientas de OWASP
Meetup TestingUy 2017 - Testing de Seguridad con Herramientas de OWASP
 
Review OWASP 2014 - OWASP Perú
Review OWASP 2014 - OWASP PerúReview OWASP 2014 - OWASP Perú
Review OWASP 2014 - OWASP Perú
 
ESAPI
ESAPIESAPI
ESAPI
 
Clase1 introduccinalcurso
Clase1 introduccinalcursoClase1 introduccinalcurso
Clase1 introduccinalcurso
 
Mi pesentacion pdf
Mi pesentacion pdfMi pesentacion pdf
Mi pesentacion pdf
 
My sql
My sqlMy sql
My sql
 
Owasp Top10 Spanish
Owasp Top10 SpanishOwasp Top10 Spanish
Owasp Top10 Spanish
 
Hacking web con OWASP
Hacking web con OWASPHacking web con OWASP
Hacking web con OWASP
 
Por qué todo lo que subo a azure esta mal
Por qué todo lo que subo a azure esta malPor qué todo lo que subo a azure esta mal
Por qué todo lo que subo a azure esta mal
 
Seguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticasSeguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticas
 
Webinar Gratuito: "Zed Attack Proxy"
Webinar Gratuito: "Zed Attack Proxy"Webinar Gratuito: "Zed Attack Proxy"
Webinar Gratuito: "Zed Attack Proxy"
 
Clase 1
Clase 1 Clase 1
Clase 1
 
Presentacion ute
Presentacion utePresentacion ute
Presentacion ute
 
Betabeers Sevilla - Hacking web con OWASP
Betabeers Sevilla - Hacking web con OWASPBetabeers Sevilla - Hacking web con OWASP
Betabeers Sevilla - Hacking web con OWASP
 
Argentesting 2017 - Proyecto OWASP Top 10
Argentesting 2017 - Proyecto OWASP Top 10Argentesting 2017 - Proyecto OWASP Top 10
Argentesting 2017 - Proyecto OWASP Top 10
 
Bypassing waf advanced
Bypassing waf advancedBypassing waf advanced
Bypassing waf advanced
 
Owasp 6 Seguridad en WordPress
Owasp 6  Seguridad en WordPressOwasp 6  Seguridad en WordPress
Owasp 6 Seguridad en WordPress
 
Seguridad en contraseñas
Seguridad en contraseñasSeguridad en contraseñas
Seguridad en contraseñas
 
7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Seguridad en las relaciones de confianza. VI Foro de Seguridad de RedIRIS
Seguridad en las relaciones de confianza. VI Foro de Seguridad de RedIRISSeguridad en las relaciones de confianza. VI Foro de Seguridad de RedIRIS
Seguridad en las relaciones de confianza. VI Foro de Seguridad de RedIRIS
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

Sanitizando datos con .Net

  • 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. Aspectos a ser Tratados Como guardar de manera segura Passwords de Usuarios Limpiar la entrada de datos OWASP
  • 3. Manejar Passwords Ataques Como Guardar Passwords 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
  • 4. Mecanismos de Ataque Fuerza Bruta Ataques de Diccionario Brechas de Seguridad en el Servidor de Bases de Datos OWASP
  • 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. 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. 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. 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. BRECHAS DE SEGURIDAD EN UNA DB OWASP
  • 10. Riesgos Debilidad en el código que permita tener acceso a las tablas de usuarios. SQL Injection DB Admins maliciosos. OWASP
  • 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. 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
  • 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. 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
  • 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. Hash + Salt + Iterations Ejemplo en código OWASP
  • 19. Limpiar Entradas a DB Riesgos SqlParameters LINQ to SQL 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
  • 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. SQL Injection Pasar comandos de SQL como parte de los valores Ejemplo en código para SQL Parameters Linq to SQL OWASP
  • 22. Cross Site Scripting Pasar valores con comandos de Javascript/html Ejemplo: <b onmouseover=alert('Wufff!')>click me!</b> OWASP
  • 24. Preguntas y/o comentarios 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