Este documento resume los principales temas de seguridad en aplicaciones Java, incluyendo inyección, Cross-Site Scripting, gestión de sesiones, autenticación y autorización. Explica cómo estos ataques funcionan y cómo pueden prevenirse usando técnicas como prepared statements, validación de entrada, frameworks de seguridad y HTTPS.
Mitigando Eventualidades de Seguridad en Web 2.0 + SemánticaSoftware Guru
En esta sesión de Lunch and Learn se revisaran ejemplos de vulnerabilidades web 2.0 + Semántica y como solucionarlas en base a un Proceso de Ingeniería de software orientada a metodologías [agiles – Samm] para grupos de trabajo que desarrollan en plataforma web [OpenSource] con seguridad informática [OWASP Ethical Hacker].
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)kernelinux
Presentación de la charla disertada por Juan Manuel García en el OWASP LATAM TOUR 2016 BUENOS AIRES el día 22 de Abril de 2016 sobre detección y explotación avanzada de la vulnerabilidad Cross Site Scripting (XSS).
Principales vulnerabilidades en Aplicaciones Web - Rediris 2008Christian Martorella
Presentación hecha en el VI Foro de Seguridad Rediris 2008. Esta presentación cubre las principales y mas importantes vulnerabilidades en Aplicaciones Web.
Mitigando Eventualidades de Seguridad en Web 2.0 + SemánticaSoftware Guru
En esta sesión de Lunch and Learn se revisaran ejemplos de vulnerabilidades web 2.0 + Semántica y como solucionarlas en base a un Proceso de Ingeniería de software orientada a metodologías [agiles – Samm] para grupos de trabajo que desarrollan en plataforma web [OpenSource] con seguridad informática [OWASP Ethical Hacker].
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)kernelinux
Presentación de la charla disertada por Juan Manuel García en el OWASP LATAM TOUR 2016 BUENOS AIRES el día 22 de Abril de 2016 sobre detección y explotación avanzada de la vulnerabilidad Cross Site Scripting (XSS).
Principales vulnerabilidades en Aplicaciones Web - Rediris 2008Christian Martorella
Presentación hecha en el VI Foro de Seguridad Rediris 2008. Esta presentación cubre las principales y mas importantes vulnerabilidades en Aplicaciones Web.
Targets and Indicators for Sendai - Julio Serje, UNISDR OECD Governance
Presentation made at the expert meeting organised jointly by the European Commission, the OECD and the project PLACARD, in Paris 26th -28th October 2016. For more information see www.oecd.org/gov/risk/joint-expert-meeting-on-disaster-loss-data.htm
JRC Results of EU Loss Data Challenge - Chiara Proietti OECD Governance
Presentation made at the expert meeting organised jointly by the European Commission, the OECD and the project PLACARD, in Paris 26th -28th October 2016. For more information see www.oecd.org/gov/risk/joint-expert-meeting-on-disaster-loss-data.htm
OECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECDOECD Governance
Presentation made at the expert meeting organised jointly by the European Commission, the OECD and the project PLACARD, in Paris 26th -28th October 2016. For more information see www.oecd.org/gov/risk/joint-expert-meeting-on-disaster-loss-data.htm
Obstacles to the Success of a Policy
Other things being equal, a government’s success in achieving an objective depends on the internal harmony among the components of the policy it implements to attain it, and the inter-policy harmony among all its policies
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesNextel S.A.
Presentación Pablo Garaizar de la Universidad de Deusto, durante la XV Jornada de Seguridad TI de Nextel S.A. en la Alhóndiga de Bilbao el jueves 27 de junio de 2013.
En esta charla veremos las vulnerabilidades de la lista OWASP top ten de 2017 y como evitarlas en NodeJS. Además también veremos buenas prácticas para segurizar nuestras apis utilizando JWT y JWKS.
Video: https://www.youtube.com/watch?v=bMwgLaDyD1w
Introducción al OWASP Top 10 - Los diez riesgos mas importantes en aplicaciones web
- Es un documento EDUCATIVO.
- Es GRATUITO.
- DESCRIBE los riesgos más críticos en aplicaciones Web
Para cada riesgo, aporta:
- Descripción del mismo
- Escenario de ejemplo de un ataque
- Pautas para verificar si nuestra aplicación es vulnerable
- Recomendaciones para prevenir dicho riesgo
Targets and Indicators for Sendai - Julio Serje, UNISDR OECD Governance
Presentation made at the expert meeting organised jointly by the European Commission, the OECD and the project PLACARD, in Paris 26th -28th October 2016. For more information see www.oecd.org/gov/risk/joint-expert-meeting-on-disaster-loss-data.htm
JRC Results of EU Loss Data Challenge - Chiara Proietti OECD Governance
Presentation made at the expert meeting organised jointly by the European Commission, the OECD and the project PLACARD, in Paris 26th -28th October 2016. For more information see www.oecd.org/gov/risk/joint-expert-meeting-on-disaster-loss-data.htm
OECD Disaster Loss Data OECD Survey Results, Cathérine Gamper OECDOECD Governance
Presentation made at the expert meeting organised jointly by the European Commission, the OECD and the project PLACARD, in Paris 26th -28th October 2016. For more information see www.oecd.org/gov/risk/joint-expert-meeting-on-disaster-loss-data.htm
Obstacles to the Success of a Policy
Other things being equal, a government’s success in achieving an objective depends on the internal harmony among the components of the policy it implements to attain it, and the inter-policy harmony among all its policies
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesNextel S.A.
Presentación Pablo Garaizar de la Universidad de Deusto, durante la XV Jornada de Seguridad TI de Nextel S.A. en la Alhóndiga de Bilbao el jueves 27 de junio de 2013.
En esta charla veremos las vulnerabilidades de la lista OWASP top ten de 2017 y como evitarlas en NodeJS. Además también veremos buenas prácticas para segurizar nuestras apis utilizando JWT y JWKS.
Video: https://www.youtube.com/watch?v=bMwgLaDyD1w
Introducción al OWASP Top 10 - Los diez riesgos mas importantes en aplicaciones web
- Es un documento EDUCATIVO.
- Es GRATUITO.
- DESCRIBE los riesgos más críticos en aplicaciones Web
Para cada riesgo, aporta:
- Descripción del mismo
- Escenario de ejemplo de un ataque
- Pautas para verificar si nuestra aplicación es vulnerable
- Recomendaciones para prevenir dicho riesgo
Diapositivas de la charla "Seguridad en Aplicaciones Web" durante las Jornadas del "IV Obradoiro de Criptografía, Privacidade e Seguridade" en la Facultad de Informática de A Coruña
Como desarrolladores web, una de las principales preocupaciones es cuán vulnerables son nuestros sitios o aplicaciones web. Esta charla explica algunos riesgos de seguridad y, más importante, cómo evitarlos. Basado en los riesgos de seguridad más críticos en el desarrollo web según OWASP Top Ten 2010, y con algunos ejemplos en PHP (aunque es fácilmente aplicable en otros entornos).
En los últimos años, las arquitecturas cloud han evolucionado a un modelo serverless que trae como principales ventajas la posibilidad de ejecutar código sin aprovisionar ni administrar servidores. Este tipo de arquitecturas permite ejecutar el código en una infraestructura con alta disponibilidad y escalado automático, así como capacidades de monitorización de forma automática. Sin embargo, estos tipos de arquitecturas introducen un conjunto completamente nuevo de implicaciones de seguridad que deben tenerse en cuenta al crear sus aplicaciones.
El OWASP Serverless Top 10 es una excelente referencia para conocer los posibles riesgos de seguridad y las consecuencias de implementar una arquitectura serverless, así como también cómo mitigarlos.
En esta charla se analizará el estado actual de la seguridad en arquitecturas serverless, los principales riesgos y cómo podríamos mitigarlos de una forma sencilla. Entre los puntos a tratar podemos destacar:
-Introducción a las arquitecturas serverless
-Seguridad en arquitecturas serverless y OWASP Serverless Top 10
-Pentesting sobre aplicaciones serverless
-Mejoras prácticas de seguridad al trabajar en entornos cloud
La presentación hace referencia a los ataques más comunes sobre las aplicaciones Web. La idea principal es concientizar a los desarrolladores/administradores, para que tengan en cuenta a qué amenazas y riesgos de seguridad están expuestas sus aplicaciones. Es importante señalar que existen más ataques, los cuales no figuran en la presentación
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("<b>","<b>").replace("</b>","</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