SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Seguridad en
aplicaciones Java



                    S
Índice


    S Injection.

    S Cross-SiteScripting (XSS).

    S Gestión de la sesión.

    S Autenticación y autorización.




26/5/12                            2   Navaja Negra - CRASH - Fco. Honrubia
Injection


    S     Un ataque de este tipo como SQL, OS y LDAP injection se produce
          cuando datos sin verificar llegan a un interprete como parte de un
          comando o consulta. Estos datos pueden hace que el interprete
          ejecute comandos y/o acceda a datos para los que no debería tener
          autorización.




26/5/12                                  3              Navaja Negra - CRASH - Fco. Honrubia
Injection


    S SQL injection.
          S String query = "SELECT account_balance FROM user_data
            WHERE user_name = " +
            request.getParameter("customerName");
          S try {
          S Statement statement = connection.createStatement( … );
            ResultSet results = statement.executeQuery( query );
          S }



26/5/12                              4            Navaja Negra - CRASH - Fco. Honrubia
Injection


    S     Soluciones:
          S   Utilizar PreparedStatements (Consultas parametrizadas).
              S   String query = "SELECT account_balance FROM user_data WHERE user_name
                  = ? ";
              S   PreparedStatement pstmt = connection.prepareStatement( query );
              S   pstmt.setString( 1, custname);
          S   Utilizar Procedimientos almacenados.
          S   Escapar todas las entradas de usuario.

    S     Adicionales:
          S   Disminuir al mínimo los privilegios de las consultas.
          S   Validación mediante lista blanca de las entradas.



26/5/12                                         5                Navaja Negra - CRASH - Fco. Honrubia
Injection

    S ORM’s
      S Hibernate
      S MyBatis


    S El propio driverjdbc escapa los parámetros.

    S OJO:
      S Query unsafeHQLQuery = session.createQuery("from
            Inventory where productID='"+userSuppliedParameter+"'");
          S Query safeHQLQuery =
            session.createQuery(“fromoInventorywhereproductID =
            :param”);
          S safeHQLQuery.setString(“param”,”valor”) ;

26/5/12                                6            Navaja Negra - CRASH - Fco. Honrubia
Índice


    S Injection.

    S Cross-SiteScripting (XSS).

    S Gestión de la sesión.

    S Autenticación y autorización.




26/5/12                          7     Navaja Negra - CRASH - Fco. Honrubia
Cross-SiteScripting (XSS)


    S Los ataques XSS se producen cuando una aplicación
          envía a un navegador web datos sin validar ni escapar.
          Estos ataques permiten al atacante ejecutar scripts en el
          navegador de la victima.
          S Obtener su sesión.
          S Redirigir a la victima a sitios maliciosos.
          S …




26/5/12                                  8                Navaja Negra - CRASH - Fco. Honrubia
Cross-SiteScripting (XSS)


    S Son ataques complicados de detectar.

    S Normalmente son fáciles de corregir.
          S Salvo que en nuestra aplicación tengamos que permitir al
            usuario introducir código html.


    S OJO: no es suficiente con filtrar las entradas -> filtrar
          también los datos que vienen de partes “seguras”.


26/5/12                                9           Navaja Negra - CRASH - Fco. Honrubia
Cross-SiteScripting (XSS)


    S Ejemplo JSP vulnerable:
          S <textarearows="5" cols="50">
          S <%= request.getAttribute(”userName")%>
          S </textarea>




26/5/12                             10          Navaja Negra - CRASH - Fco. Honrubia
Cross-SiteScripting (XSS)


    S Uso de frameworks
          S JSF
          S Struts
          S JSTL
          S …

    S Con cualquiera de ellos filtra automáticamente estos
          datos.
          S <s:textfieldkey="username" name="userName"/>

26/5/12                             11          Navaja Negra - CRASH - Fco. Honrubia
Cross-SiteScripting (XSS)


    S Si tenemos que permitir el uso de html en las entradas
          de usuario (Editor de texto)

    S Utilizar una lista blanca.
          S Permitir negritas:
            S   texto_filtrado.replace("&lt;b&gt;","<b>").replace("&lt;/b&gt;","</b
                >";

    S Filtrar todo lo demás.


26/5/12                                    12              Navaja Negra - CRASH - Fco. Honrubia
Índice


    S Injection.

    S Cross-SiteScripting (XSS).

    S Gestión de la sesión.

    S Autenticación y autorización.




26/5/12                            13   Navaja Negra - CRASH - Fco. Honrubia
Gestión de la sesión


    S El problema relacionado con la gestión de la sesión es el
          robo de la misma, normalmente es muy simple con un
          sniffer robar el identificador de sesión del usuario.




26/5/12                             14          Navaja Negra - CRASH - Fco. Honrubia
Gestión de la sesión


    S Reducir el robo de sesión.
          S No poner sesionId en urls.
          S Cuando un usuario hace login regenerar la sesión.
             S   currentSession.invalidate();
             S   HttpSession newSession = request.getSession(true)
          S Controlar el logout del usuario para invalidar la sesión.
          S Controlar el timeout de la sesión.




26/5/12                                    15          Navaja Negra - CRASH - Fco. Honrubia
Gestión de la sesión


    S Frameworks (SrpringSecurity)
          S <session-management session-fixation-
            protection="migrateSession"/>

    S Tomcat 7

    S Solución mas fiable es usar https




26/5/12                              16             Navaja Negra - CRASH - Fco. Honrubia
Índice


    S Injection.

    S Cross-SiteScripting (XSS).

    S Gestión de la sesión.

    S Autenticación y autorización.




26/5/12                            17   Navaja Negra - CRASH - Fco. Honrubia
Autenticación y autorización


    S Autenticación: un usuario es quién dice ser.

    S Autorización: el usuario tiene acceso solo a los recursos
          que debe tener.

    S Existen diversas formas de autenticación y autorización,
          basada en servidor o a nivel de aplicación




26/5/12                             18           Navaja Negra - CRASH - Fco. Honrubia
Autenticación y autorización


    S     Autenticación basada en servidor

    S     HTTP Basic Authentication (sale una ventana emergente para pedir
          usuario y pass)

    S     HTTP Digest Authentication (igual pero cifrado en md5)

    S     FormBasedAuthentication (formulario web de loginj_securtity_check)

    S     HTTPS ClientAuthentication (soporte de certificados)

    S     Problemas login con aplicaciones de terceros…




26/5/12                                      19            Navaja Negra - CRASH - Fco. Honrubia
Autenticación y autorización



    S Autorización basada en servidor:
          S Concepto de reino “realms” en los que se encapsula cada
            usuario (rol).




26/5/12                              20           Navaja Negra - CRASH - Fco. Honrubia
Autenticación y autorización



    S A nivel de aplicación: es muy complicado conseguir una
          aplicación segura.

    S Uso de frameworks:
          S Spring Security
          S Apache Shiro




26/5/12                         21          Navaja Negra - CRASH - Fco. Honrubia
Autenticación y autorización



    S ¿Qué proporcionan estos frameworks?
          S Autenticación.
          S Autorización.
          S Sessionmanagement.
          S Criptografía.




26/5/12                          22         Navaja Negra - CRASH - Fco. Honrubia
Autenticación y autorización


    S Apache Shiro:
          S Fácil Configuración.
          S Fácil integración con entornos distribuidos.
          S Integración con aplicaciones de escritorio.
          S Soporte LDAP, Kerberos…
          S …




26/5/12                                23            Navaja Negra - CRASH - Fco. Honrubia
Autenticación y autorización


    S Spring Security:
          S Fácil Configuración (10 líneas XML).
          S No invasivo (No afecta a objetos de negocio).
          S Soporte OpenID (Google, IBM, Sun, Yahoo…).
          S Soporte LDAP, Kerberos...
          S Log in con redes sociales (Spring Social).
          S Secure Web Services
          S …


26/5/12                                 24         Navaja Negra - CRASH - Fco. Honrubia
Referencias


    S http://www.owasp.org

    S http://static.springsource.org/spring-security/site/

    S http://shiro.apache.org




26/5/12                            25           Navaja Negra - CRASH - Fco. Honrubia
Preguntas???




26/5/12        26   Navaja Negra - CRASH - Fco. Honrubia

Más contenido relacionado

Destacado

Targets and Indicators for Sendai - Julio Serje, UNISDR
Targets and Indicators for Sendai - Julio Serje, UNISDR Targets and Indicators for Sendai - Julio Serje, UNISDR
Targets and Indicators for Sendai - Julio Serje, UNISDR OECD Governance
 
computer ppt by Shivanshi Dwivedi
 computer ppt by Shivanshi Dwivedi  computer ppt by Shivanshi Dwivedi
computer ppt by Shivanshi Dwivedi Shivanshi Dwivedi
 
Fernanda guerra.doc
Fernanda guerra.docFernanda guerra.doc
Fernanda guerra.docozfernanda
 
WE16 - Crossing the Gender Divide in Engineering
WE16 - Crossing the Gender Divide in EngineeringWE16 - Crossing the Gender Divide in Engineering
WE16 - Crossing the Gender Divide in EngineeringSociety of Women Engineers
 
JRC Results of EU Loss Data Challenge - Chiara Proietti
JRC Results of EU Loss Data Challenge - Chiara Proietti JRC Results of EU Loss Data Challenge - Chiara Proietti
JRC Results of EU Loss Data Challenge - Chiara Proietti OECD Governance
 
Merrell miranda november 2016
Merrell  miranda november 2016Merrell  miranda november 2016
Merrell miranda november 2016Daniel Edwards
 
Boletim CADI - Valença. III trimestre 2016
Boletim CADI - Valença. III trimestre 2016Boletim CADI - Valença. III trimestre 2016
Boletim CADI - Valença. III trimestre 2016CADI BRASIL
 
Automated and unified opensource web application testing
Automated and unified opensource web application testingAutomated and unified opensource web application testing
Automated and unified opensource web application testingnavajanegra
 
OECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECD
OECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECDOECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECD
OECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECDOECD Governance
 
Obstacles to the Success of a Policy
Obstacles to the Success of a PolicyObstacles to the Success of a Policy
Obstacles to the Success of a PolicyExternalEvents
 

Destacado (17)

Targets and Indicators for Sendai - Julio Serje, UNISDR
Targets and Indicators for Sendai - Julio Serje, UNISDR Targets and Indicators for Sendai - Julio Serje, UNISDR
Targets and Indicators for Sendai - Julio Serje, UNISDR
 
Character profiles
Character profiles Character profiles
Character profiles
 
computer ppt by Shivanshi Dwivedi
 computer ppt by Shivanshi Dwivedi  computer ppt by Shivanshi Dwivedi
computer ppt by Shivanshi Dwivedi
 
Fernanda guerra.doc
Fernanda guerra.docFernanda guerra.doc
Fernanda guerra.doc
 
WE16 - Crossing the Gender Divide in Engineering
WE16 - Crossing the Gender Divide in EngineeringWE16 - Crossing the Gender Divide in Engineering
WE16 - Crossing the Gender Divide in Engineering
 
ahmed[1]
ahmed[1]ahmed[1]
ahmed[1]
 
Dark World
Dark WorldDark World
Dark World
 
JRC Results of EU Loss Data Challenge - Chiara Proietti
JRC Results of EU Loss Data Challenge - Chiara Proietti JRC Results of EU Loss Data Challenge - Chiara Proietti
JRC Results of EU Loss Data Challenge - Chiara Proietti
 
Merrell miranda november 2016
Merrell  miranda november 2016Merrell  miranda november 2016
Merrell miranda november 2016
 
Boletim CADI - Valença. III trimestre 2016
Boletim CADI - Valença. III trimestre 2016Boletim CADI - Valença. III trimestre 2016
Boletim CADI - Valença. III trimestre 2016
 
Presentación1
Presentación1Presentación1
Presentación1
 
випускной 2014р.
випускной 2014р. випускной 2014р.
випускной 2014р.
 
INVESTIGACIÓN
INVESTIGACIÓN INVESTIGACIÓN
INVESTIGACIÓN
 
Automated and unified opensource web application testing
Automated and unified opensource web application testingAutomated and unified opensource web application testing
Automated and unified opensource web application testing
 
OECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECD
OECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECDOECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECD
OECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECD
 
Obstacles to the Success of a Policy
Obstacles to the Success of a PolicyObstacles to the Success of a Policy
Obstacles to the Success of a Policy
 
Bet
BetBet
Bet
 

Similar a Charla java

Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]RootedCON
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesNextel S.A.
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesPablo Garaizar
 
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Raúl Requero García
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Jose Gratereaux
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones webJose Mato
 
Squid3 - Servidor Proxy
Squid3 - Servidor ProxySquid3 - Servidor Proxy
Squid3 - Servidor ProxyTotus Muertos
 
Seguridad en el desarrollo de aplicaciones web
Seguridad en el desarrollo de aplicaciones webSeguridad en el desarrollo de aplicaciones web
Seguridad en el desarrollo de aplicaciones webJuan Eladio Sánchez Rosas
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10tabai
 
InstalacionyConfiguracion_wpa2+radius+ldap
InstalacionyConfiguracion_wpa2+radius+ldapInstalacionyConfiguracion_wpa2+radius+ldap
InstalacionyConfiguracion_wpa2+radius+ldapMaria Jesus Suarez
 
Vulnerability assessment and exploitation
Vulnerability assessment and exploitationVulnerability assessment and exploitation
Vulnerability assessment and exploitationTensor
 
VULNERABILITY ASSESSMENT AND EXPLOITATION
VULNERABILITY ASSESSMENT AND EXPLOITATIONVULNERABILITY ASSESSMENT AND EXPLOITATION
VULNERABILITY ASSESSMENT AND EXPLOITATIONTensor
 
Seguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudSeguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudJose Manuel Ortega Candel
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Webacksec
 

Similar a Charla java (20)

Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
 
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
 
Owasp Top10 Spanish
Owasp Top10 SpanishOwasp Top10 Spanish
Owasp Top10 Spanish
 
RESUMEN PROXY
RESUMEN PROXYRESUMEN PROXY
RESUMEN PROXY
 
servidor proxy
servidor proxyservidor proxy
servidor proxy
 
Resumen Servidor Proxy
Resumen Servidor ProxyResumen Servidor Proxy
Resumen Servidor Proxy
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones web
 
Resumen squid
Resumen squidResumen squid
Resumen squid
 
Squid3 - Servidor Proxy
Squid3 - Servidor ProxySquid3 - Servidor Proxy
Squid3 - Servidor Proxy
 
Seguridad en el desarrollo de aplicaciones web
Seguridad en el desarrollo de aplicaciones webSeguridad en el desarrollo de aplicaciones web
Seguridad en el desarrollo de aplicaciones web
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10
 
InstalacionyConfiguracion_wpa2+radius+ldap
InstalacionyConfiguracion_wpa2+radius+ldapInstalacionyConfiguracion_wpa2+radius+ldap
InstalacionyConfiguracion_wpa2+radius+ldap
 
Vulnerability assessment and exploitation
Vulnerability assessment and exploitationVulnerability assessment and exploitation
Vulnerability assessment and exploitation
 
VULNERABILITY ASSESSMENT AND EXPLOITATION
VULNERABILITY ASSESSMENT AND EXPLOITATIONVULNERABILITY ASSESSMENT AND EXPLOITATION
VULNERABILITY ASSESSMENT AND EXPLOITATION
 
Seguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudSeguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloud
 
Web app attacks
Web app attacksWeb app attacks
Web app attacks
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Web
 

Más de navajanegra

Cryptography: The mathematics of secret codes is a game
Cryptography: The mathematics of secret codes is a gameCryptography: The mathematics of secret codes is a game
Cryptography: The mathematics of secret codes is a gamenavajanegra
 
Cool Boot: It's cool!
Cool Boot: It's cool!Cool Boot: It's cool!
Cool Boot: It's cool!navajanegra
 
El lado oscuro de TOR: La Deep Web
El lado oscuro de TOR: La Deep WebEl lado oscuro de TOR: La Deep Web
El lado oscuro de TOR: La Deep Webnavajanegra
 
Telephaty: Harness the code
Telephaty: Harness the codeTelephaty: Harness the code
Telephaty: Harness the codenavajanegra
 
Trash Robotic Router Platform (TRRP)
Trash Robotic Router Platform (TRRP)Trash Robotic Router Platform (TRRP)
Trash Robotic Router Platform (TRRP)navajanegra
 
Economías criptográficas
Economías criptográficasEconomías criptográficas
Economías criptográficasnavajanegra
 
Where is my money? The evolution of Internet fraud
Where is my money? The evolution of Internet fraudWhere is my money? The evolution of Internet fraud
Where is my money? The evolution of Internet fraudnavajanegra
 
Divulgación del trabajo de la Brigada de Investigación Tecnológica
Divulgación del trabajo de la Brigada de Investigación TecnológicaDivulgación del trabajo de la Brigada de Investigación Tecnológica
Divulgación del trabajo de la Brigada de Investigación Tecnológicanavajanegra
 
Adivina quién viene a CDNear esta noche
Adivina quién viene a CDNear esta nocheAdivina quién viene a CDNear esta noche
Adivina quién viene a CDNear esta nochenavajanegra
 
1100101001001110
11001010010011101100101001001110
1100101001001110navajanegra
 
Anteproyecto del código procesal penal: Análisis Técnico
Anteproyecto del código procesal penal: Análisis TécnicoAnteproyecto del código procesal penal: Análisis Técnico
Anteproyecto del código procesal penal: Análisis Técniconavajanegra
 
Fuzzing browsers by generating malformed HTML/HTML5
Fuzzing browsers by generating malformed HTML/HTML5Fuzzing browsers by generating malformed HTML/HTML5
Fuzzing browsers by generating malformed HTML/HTML5navajanegra
 
¿Nadie piensa en las DLLs?
¿Nadie piensa en las DLLs?¿Nadie piensa en las DLLs?
¿Nadie piensa en las DLLs?navajanegra
 
SDR: Lowcost receiving in radio communications
SDR: Lowcost receiving in radio communicationsSDR: Lowcost receiving in radio communications
SDR: Lowcost receiving in radio communicationsnavajanegra
 
LIOS: a tool for IOS Forensic
LIOS: a tool for IOS ForensicLIOS: a tool for IOS Forensic
LIOS: a tool for IOS Forensicnavajanegra
 
A brief introduction to reversing code with OllyDbg and other tools
A brief introduction to reversing code with OllyDbg and other toolsA brief introduction to reversing code with OllyDbg and other tools
A brief introduction to reversing code with OllyDbg and other toolsnavajanegra
 
HASH COLLISIONS: Welcome to the (un)real World!
HASH COLLISIONS: Welcome to the (un)real World!HASH COLLISIONS: Welcome to the (un)real World!
HASH COLLISIONS: Welcome to the (un)real World!navajanegra
 
Show me your intents
Show me your intentsShow me your intents
Show me your intentsnavajanegra
 

Más de navajanegra (20)

Cryptography: The mathematics of secret codes is a game
Cryptography: The mathematics of secret codes is a gameCryptography: The mathematics of secret codes is a game
Cryptography: The mathematics of secret codes is a game
 
Offensive MitM
Offensive MitMOffensive MitM
Offensive MitM
 
Cool Boot: It's cool!
Cool Boot: It's cool!Cool Boot: It's cool!
Cool Boot: It's cool!
 
El lado oscuro de TOR: La Deep Web
El lado oscuro de TOR: La Deep WebEl lado oscuro de TOR: La Deep Web
El lado oscuro de TOR: La Deep Web
 
Telephaty: Harness the code
Telephaty: Harness the codeTelephaty: Harness the code
Telephaty: Harness the code
 
Trash Robotic Router Platform (TRRP)
Trash Robotic Router Platform (TRRP)Trash Robotic Router Platform (TRRP)
Trash Robotic Router Platform (TRRP)
 
Economías criptográficas
Economías criptográficasEconomías criptográficas
Economías criptográficas
 
Where is my money? The evolution of Internet fraud
Where is my money? The evolution of Internet fraudWhere is my money? The evolution of Internet fraud
Where is my money? The evolution of Internet fraud
 
Divulgación del trabajo de la Brigada de Investigación Tecnológica
Divulgación del trabajo de la Brigada de Investigación TecnológicaDivulgación del trabajo de la Brigada de Investigación Tecnológica
Divulgación del trabajo de la Brigada de Investigación Tecnológica
 
Adivina quién viene a CDNear esta noche
Adivina quién viene a CDNear esta nocheAdivina quién viene a CDNear esta noche
Adivina quién viene a CDNear esta noche
 
1100101001001110
11001010010011101100101001001110
1100101001001110
 
Anteproyecto del código procesal penal: Análisis Técnico
Anteproyecto del código procesal penal: Análisis TécnicoAnteproyecto del código procesal penal: Análisis Técnico
Anteproyecto del código procesal penal: Análisis Técnico
 
Zeus-R-Us
Zeus-R-UsZeus-R-Us
Zeus-R-Us
 
Fuzzing browsers by generating malformed HTML/HTML5
Fuzzing browsers by generating malformed HTML/HTML5Fuzzing browsers by generating malformed HTML/HTML5
Fuzzing browsers by generating malformed HTML/HTML5
 
¿Nadie piensa en las DLLs?
¿Nadie piensa en las DLLs?¿Nadie piensa en las DLLs?
¿Nadie piensa en las DLLs?
 
SDR: Lowcost receiving in radio communications
SDR: Lowcost receiving in radio communicationsSDR: Lowcost receiving in radio communications
SDR: Lowcost receiving in radio communications
 
LIOS: a tool for IOS Forensic
LIOS: a tool for IOS ForensicLIOS: a tool for IOS Forensic
LIOS: a tool for IOS Forensic
 
A brief introduction to reversing code with OllyDbg and other tools
A brief introduction to reversing code with OllyDbg and other toolsA brief introduction to reversing code with OllyDbg and other tools
A brief introduction to reversing code with OllyDbg and other tools
 
HASH COLLISIONS: Welcome to the (un)real World!
HASH COLLISIONS: Welcome to the (un)real World!HASH COLLISIONS: Welcome to the (un)real World!
HASH COLLISIONS: Welcome to the (un)real World!
 
Show me your intents
Show me your intentsShow me your intents
Show me your intents
 

Charla java

  • 2. Índice S Injection. S Cross-SiteScripting (XSS). S Gestión de la sesión. S Autenticación y autorización. 26/5/12 2 Navaja Negra - CRASH - Fco. Honrubia
  • 3. Injection S Un ataque de este tipo como SQL, OS y LDAP injection se produce cuando datos sin verificar llegan a un interprete como parte de un comando o consulta. Estos datos pueden hace que el interprete ejecute comandos y/o acceda a datos para los que no debería tener autorización. 26/5/12 3 Navaja Negra - CRASH - Fco. Honrubia
  • 4. Injection S SQL injection. S String query = "SELECT account_balance FROM user_data WHERE user_name = " + request.getParameter("customerName"); S try { S Statement statement = connection.createStatement( … ); ResultSet results = statement.executeQuery( query ); S } 26/5/12 4 Navaja Negra - CRASH - Fco. Honrubia
  • 5. Injection S Soluciones: S Utilizar PreparedStatements (Consultas parametrizadas). S String query = "SELECT account_balance FROM user_data WHERE user_name = ? "; S PreparedStatement pstmt = connection.prepareStatement( query ); S pstmt.setString( 1, custname); S Utilizar Procedimientos almacenados. S Escapar todas las entradas de usuario. S Adicionales: S Disminuir al mínimo los privilegios de las consultas. S Validación mediante lista blanca de las entradas. 26/5/12 5 Navaja Negra - CRASH - Fco. Honrubia
  • 6. Injection S ORM’s S Hibernate S MyBatis S El propio driverjdbc escapa los parámetros. S OJO: S Query unsafeHQLQuery = session.createQuery("from Inventory where productID='"+userSuppliedParameter+"'"); S Query safeHQLQuery = session.createQuery(“fromoInventorywhereproductID = :param”); S safeHQLQuery.setString(“param”,”valor”) ; 26/5/12 6 Navaja Negra - CRASH - Fco. Honrubia
  • 7. Índice S Injection. S Cross-SiteScripting (XSS). S Gestión de la sesión. S Autenticación y autorización. 26/5/12 7 Navaja Negra - CRASH - Fco. Honrubia
  • 8. Cross-SiteScripting (XSS) S Los ataques XSS se producen cuando una aplicación envía a un navegador web datos sin validar ni escapar. Estos ataques permiten al atacante ejecutar scripts en el navegador de la victima. S Obtener su sesión. S Redirigir a la victima a sitios maliciosos. S … 26/5/12 8 Navaja Negra - CRASH - Fco. Honrubia
  • 9. Cross-SiteScripting (XSS) S Son ataques complicados de detectar. S Normalmente son fáciles de corregir. S Salvo que en nuestra aplicación tengamos que permitir al usuario introducir código html. S OJO: no es suficiente con filtrar las entradas -> filtrar también los datos que vienen de partes “seguras”. 26/5/12 9 Navaja Negra - CRASH - Fco. Honrubia
  • 10. Cross-SiteScripting (XSS) S Ejemplo JSP vulnerable: S <textarearows="5" cols="50"> S <%= request.getAttribute(”userName")%> S </textarea> 26/5/12 10 Navaja Negra - CRASH - Fco. Honrubia
  • 11. Cross-SiteScripting (XSS) S Uso de frameworks S JSF S Struts S JSTL S … S Con cualquiera de ellos filtra automáticamente estos datos. S <s:textfieldkey="username" name="userName"/> 26/5/12 11 Navaja Negra - CRASH - Fco. Honrubia
  • 12. Cross-SiteScripting (XSS) S Si tenemos que permitir el uso de html en las entradas de usuario (Editor de texto) S Utilizar una lista blanca. S Permitir negritas: S texto_filtrado.replace("&lt;b&gt;","<b>").replace("&lt;/b&gt;","</b >"; S Filtrar todo lo demás. 26/5/12 12 Navaja Negra - CRASH - Fco. Honrubia
  • 13. Índice S Injection. S Cross-SiteScripting (XSS). S Gestión de la sesión. S Autenticación y autorización. 26/5/12 13 Navaja Negra - CRASH - Fco. Honrubia
  • 14. Gestión de la sesión S El problema relacionado con la gestión de la sesión es el robo de la misma, normalmente es muy simple con un sniffer robar el identificador de sesión del usuario. 26/5/12 14 Navaja Negra - CRASH - Fco. Honrubia
  • 15. Gestión de la sesión S Reducir el robo de sesión. S No poner sesionId en urls. S Cuando un usuario hace login regenerar la sesión. S currentSession.invalidate(); S HttpSession newSession = request.getSession(true) S Controlar el logout del usuario para invalidar la sesión. S Controlar el timeout de la sesión. 26/5/12 15 Navaja Negra - CRASH - Fco. Honrubia
  • 16. Gestión de la sesión S Frameworks (SrpringSecurity) S <session-management session-fixation- protection="migrateSession"/> S Tomcat 7 S Solución mas fiable es usar https 26/5/12 16 Navaja Negra - CRASH - Fco. Honrubia
  • 17. Índice S Injection. S Cross-SiteScripting (XSS). S Gestión de la sesión. S Autenticación y autorización. 26/5/12 17 Navaja Negra - CRASH - Fco. Honrubia
  • 18. Autenticación y autorización S Autenticación: un usuario es quién dice ser. S Autorización: el usuario tiene acceso solo a los recursos que debe tener. S Existen diversas formas de autenticación y autorización, basada en servidor o a nivel de aplicación 26/5/12 18 Navaja Negra - CRASH - Fco. Honrubia
  • 19. Autenticación y autorización S Autenticación basada en servidor S HTTP Basic Authentication (sale una ventana emergente para pedir usuario y pass) S HTTP Digest Authentication (igual pero cifrado en md5) S FormBasedAuthentication (formulario web de loginj_securtity_check) S HTTPS ClientAuthentication (soporte de certificados) S Problemas login con aplicaciones de terceros… 26/5/12 19 Navaja Negra - CRASH - Fco. Honrubia
  • 20. Autenticación y autorización S Autorización basada en servidor: S Concepto de reino “realms” en los que se encapsula cada usuario (rol). 26/5/12 20 Navaja Negra - CRASH - Fco. Honrubia
  • 21. Autenticación y autorización S A nivel de aplicación: es muy complicado conseguir una aplicación segura. S Uso de frameworks: S Spring Security S Apache Shiro 26/5/12 21 Navaja Negra - CRASH - Fco. Honrubia
  • 22. Autenticación y autorización S ¿Qué proporcionan estos frameworks? S Autenticación. S Autorización. S Sessionmanagement. S Criptografía. 26/5/12 22 Navaja Negra - CRASH - Fco. Honrubia
  • 23. Autenticación y autorización S Apache Shiro: S Fácil Configuración. S Fácil integración con entornos distribuidos. S Integración con aplicaciones de escritorio. S Soporte LDAP, Kerberos… S … 26/5/12 23 Navaja Negra - CRASH - Fco. Honrubia
  • 24. Autenticación y autorización S Spring Security: S Fácil Configuración (10 líneas XML). S No invasivo (No afecta a objetos de negocio). S Soporte OpenID (Google, IBM, Sun, Yahoo…). S Soporte LDAP, Kerberos... S Log in con redes sociales (Spring Social). S Secure Web Services S … 26/5/12 24 Navaja Negra - CRASH - Fco. Honrubia
  • 25. Referencias S http://www.owasp.org S http://static.springsource.org/spring-security/site/ S http://shiro.apache.org 26/5/12 25 Navaja Negra - CRASH - Fco. Honrubia
  • 26. Preguntas??? 26/5/12 26 Navaja Negra - CRASH - Fco. Honrubia