SlideShare una empresa de Scribd logo
Seguridad en Aplicaciones Web
 con Spring Security 3 [Taller]
         Fernando Redondo Ramírez
              @pronoide_fer
Índice
•   ¿Quién soy?
•   Breve Introducción a Spring Security 3
•   ¡Manos a la obra!
•   Más allá del taller
•   Enlaces
•   Preguntas
¿Quién soy?



• Emprendedor y empresario en Pronoide
  desde 2003
• Formador Java & Friends
• Haciendo cosas con Java desde 1999
• Ingeniero técnico informático
• Casado y padre de dos hijos
 (la segunda hija podría estar naciendo ahora… ¡uff!)
Breve Introducción a Spring Security 3
• ¿La seguridad JEE no es estándar? Sí, pero:
   1. Seguridad JEE ⇒ Basada en restricciones
      (Constraints)
   2. Seguridad JEE ⇒ Exclusivamente perimetral
   3. Seguridad JEE ⇒ Funcionalidades dependientes de
      cada Servidor de Aplicaciones (Realms, SSO, Cifrado,
      etc.)
   4. Seguridad JEE ⇒ Aplicaciones JEE no transportables
      entre plataformas o versiones del mismo servidor
   5. Seguridad JEE ⇒ Difícil de adaptar a para
      aplicaciones Web 2.0 y/o nuevos requerimientos
Breve Introducción a Spring Security 3
• ¿La seguridad JEE no es estándar? Sí, pero:
   1. Spring Security ⇒ Basada en otorgar permisos
   2. Spring Security ⇒ Perimetral y jerárquica
   3. Spring Security ⇒ Funcionalidades
      independientes del Servidor de Aplicaciones
   4. Spring Security ⇒ Aplicaciones JEE
      transportables
   5. Spring Security ⇒ Versátil y adaptable
Breve Introducción a Spring Security 3
    Arquitectura (¡y se acabó!)
          Peticiones Web                  Métodos Negocio
                                     Business Object (Method) Security
           Web/HTTP Security
                                       Proxies/Interceptores de
    Cadena de filtros de seguridad
                                              seguridad


    Seguridad Aplicaciones             SecurityContextHolder
                                          SecurityContext
       Spring Security 3                  Authentication
                                         GrantedAuthority



            Autentificación                    Autorización
         AuthenticationManager            AccessDecisionManager
         AuthenticationProviders                  Voters
          UserDetailsService             AfterInvocationManager
¡Manos a la obra!

                               ¡¡Necesito seguridad
                                en la aplicación de
                                los Expedientes X!!




Notas
1. Descargar http://pronoide.com/descargas/fbi.war
2. Importar war en STS 2.8
3. Ejecutar la aplicación
4. Entrar en http://localhost:8080/fbi/index.jsp
Etapa: Configurar Spring Security en la aplicación web
i.   Configurar el filtro interceptor de las peticiones web
Etapa: Configurar Spring Security en la aplicación web
ii. Crear el fichero para la configuración de seguridad
    con una seguridad mínima y cargarlo en el web.xml
Etapa: Configurar Spring Security en la aplicación web
iii. Configurar el login/logout explícitamente




iv. Solucionar problemas de recursos, CSS e imágenes
Etapa: Configurar Spring Security en la aplicación web
v. Proteger contraseñas de los usuarios encriptándolas
  •   Generar claves con Spring Basic Crypto Module




  •   Poner las claves cifradas y configurar el algoritmo y el salt
Etapa: Configurar Spring Security en la aplicación web
vi. Añadir funcionalidad “Remember Me”
Etapa: Configurar Spring Security en la aplicación web
vii. Seguridad en el canal de transporte (HTTPS)
  •   Configurar restricciones y puertos




  •   Crear conector SSL en Servidor
Etapa: Configurar Spring Security en la aplicación web
viii. Control de la expiración de sesiones




ix. Control de la concurrencia de sesiones
Etapa: Configurar Spring Security en la aplicación web
x. Uso de la librería de etiquetas (Spring Security Taglibs)
Etapa: Configurar Spring Security en la aplicación web
xi. Uso Expresiones SpEL para proteger URL’s




xii. Uso Expresiones SpEL con etiquetas Security Taglib
¡Pero que has hecho!

                    ¿¿Sólo hay seguridad
                      en el acceso a los
                       recursos web??




      Prueba y verás:
      https://localhost:8443/fbi/expedientesx
      /clasificar?id=1
Etapa: Configurar Spring Security en Servicios de Negocio
 xiii. Seguridad en la invocación de métodos de negocio
       con anotaciones Spring Security
Etapa: Configurar Spring Security en Servicios de Negocio
 xiv. Seguridad en la invocación de métodos de negocio
      con anotaciones JSR-250
Etapa: Configurar Spring Security en Servicios de Negocio
 xv. Seguridad en la invocación de métodos de negocio
     con Pointcuts de AspectJ
Etapa: Configurar Spring Security en Servicios de Negocio
 xvi. Seguridad en la invocación de métodos de negocio
      con Expresiones SpEL (Preinvocación)
Mucho mejor pero…
      ¿¿Qué haces consultando
   expedientes que no son tuyos??
   ¿¿Cómo es que puedes ver el de
           tu hermana??
        ¿¿… y a estas horas??
Etapa: Configurar Spring Security de forma jerárquica
  xvii.Seguridad en la invocación de métodos de negocio
       con Expresiones SpEL (Postinvocación)
Etapa: Configurar Spring Security de forma jerárquica
  xviii.Seguridad en la invocación de métodos de negocio
       con Expresiones SpEL (Filtro de resultados)
Etapa: Configurar Spring Security de forma jerárquica
  xix. Utilización del sistema de votantes
    •   Codificar un votante
Etapa: Configurar Spring Security de forma jerárquica
  xix. Utilización del sistema de votantes (cont.)
    •   Explicitar la configuración del espacio de nombres Security




    •   Personalizar la configuración del accessDecisionManager
Etapa: Configurar Spring Security de forma jerárquica
  xx. Personalizar la cadena de filtros de seguridad
    •   Crear un filtro para recordar el usuario que hace login
Etapa: Configurar Spring Security de forma jerárquica
  xx. Personalizar la cadena de filtros de seguridad (cont.)
    •   Crear un filtro para evitar el uso del botón “volver” tras
        hacer logout
The Smoking Man

       Todo esto de Spring Security
       esta muy bien, pero siempre
       me quedará el ataque Java2
        <%System.exit(0);%>
Más allá del taller. A partir de aquí…
• Configuraciones explícitas no implícitas
• Gestión de ACL’s
• Autentificación vía DataSources, LDAP,
  X509, OPENID, JEE, etc
• Captcha
• Single Sign On
• Secure Remoting
• “... en la mayoría de mi trabajo, las leyes de
  la física rara vez se aplican.” Mulder 1x01 "Pilot"
¿preguntas?



The Truth is Out There
(La Verdad está ahí afuera)
Referencias
• Spring Security 3.1 Reference
  http://bit.ly/uQFyUY
• JSR-250 Annotations
  http://en.wikipedia.org/wiki/JSR_250
• Spring SpEL
  http://bit.ly/xIuueQ
• Spring Security Common Built-In Expressions
  http://bit.ly/worFP0
• Spring Security Adding Custom filters
  http://bit.ly/z2vQWQ
• Constantes Spring Security
  http://bit.ly/yszYqm
• Clasificación de la información por países
  http://bit.ly/zLCoNT
¡Gracias!


•   @pronoide_fer
•   fredondo@pronoide.com
•   http://pronoide.com
•   http://blog.pronoide.es

Más contenido relacionado

PPT
Spring Security
ODP
InSpring security
PDF
Seguridad de las aplicaciones web con Spring Security 3.x
DOCX
Asp seguridad
PPTX
Seguridad en Aplicaciones Web
PPTX
Seguridad web
PDF
Webinar Gratuito: Metasploit Framework
PDF
Seguridad en servidores WEB. Modulo mod_security
Spring Security
InSpring security
Seguridad de las aplicaciones web con Spring Security 3.x
Asp seguridad
Seguridad en Aplicaciones Web
Seguridad web
Webinar Gratuito: Metasploit Framework
Seguridad en servidores WEB. Modulo mod_security

La actualidad más candente (20)

PPTX
Grupo Nº1: Internet Explorer
PDF
Webinar Gratuito "Metasploit Framework"
PPTX
Seguridad Informática
PDF
Seguridad con ForeFront y SharePoint: Juntos mucho mejor
PDF
Webinar Gratuito: Técnicas Antiforenses Básicas
PDF
Completo conferencia seguridad_web_software_libre_2015
PPS
Nmap.potosim
DOCX
P 5 web os
PDF
PDF
Seguridad en Aplicaciones Web y Comercio Electrónico
PDF
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
DOCX
Antivirus
PPTX
Xss attacks
PDF
Los 10 Mandamientos de Seguridad para SysAdmin
PPT
SEGURIDAD
PDF
Testing Android Security
PDF
Testing Android Security
PDF
Webinar Gratuito: Kali Linux 2.0
Grupo Nº1: Internet Explorer
Webinar Gratuito "Metasploit Framework"
Seguridad Informática
Seguridad con ForeFront y SharePoint: Juntos mucho mejor
Webinar Gratuito: Técnicas Antiforenses Básicas
Completo conferencia seguridad_web_software_libre_2015
Nmap.potosim
P 5 web os
Seguridad en Aplicaciones Web y Comercio Electrónico
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
Antivirus
Xss attacks
Los 10 Mandamientos de Seguridad para SysAdmin
SEGURIDAD
Testing Android Security
Testing Android Security
Webinar Gratuito: Kali Linux 2.0
Publicidad

Destacado (7)

PDF
Taller Seguridad SCADA. Forum CIIP 2010
PDF
86535551 ciclo-de-vida-jsf
ODP
Spring Mvc Final
PPTX
Kanban Kata - Lean Kanban European Conference Tour 2012
PPTX
Norma de seguridad en los procesos de soldadura
PPT
Curso de Desarrollo Web 2
PDF
Work Rules!
Taller Seguridad SCADA. Forum CIIP 2010
86535551 ciclo-de-vida-jsf
Spring Mvc Final
Kanban Kata - Lean Kanban European Conference Tour 2012
Norma de seguridad en los procesos de soldadura
Curso de Desarrollo Web 2
Work Rules!
Publicidad

Similar a Springio2012 taller-seguridad-web-springsecurity-3 (20)

PPTX
El Estado de la Seguridad de IBM i en 2020
PPTX
Los 7 pecados del Desarrollo Web
PPTX
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
ODP
Curso basicoseguridadweb slideshare4
PPTX
Webinar Security Scan
PDF
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
ODP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
PPT
Seguridad en el Desarrollo de Aplicaciones Web PHP
PPTX
Aplicaciones seguras
PDF
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
PPTX
Temas owasp
PPT
Microsoft Windows Server 2003 Y Windows 2000 I
PPT
Microsoft Windows Server 2003 Y Windows 2000
PPTX
Las 5 mejoras rápidas y efectivas para la seguridad de IBM i
DOCX
Administracion seguridad
PDF
Intro Guía de Testing OWASP
PPTX
Seguridad, atributo crítico de un sistema
PDF
Web App Security, Ethical hacking for CodeCamp SDQ 5
PPTX
Seguridad en las apis desde un punto de vista de developer
El Estado de la Seguridad de IBM i en 2020
Los 7 pecados del Desarrollo Web
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Curso basicoseguridadweb slideshare4
Webinar Security Scan
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHP
Aplicaciones seguras
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
Temas owasp
Microsoft Windows Server 2003 Y Windows 2000 I
Microsoft Windows Server 2003 Y Windows 2000
Las 5 mejoras rápidas y efectivas para la seguridad de IBM i
Administracion seguridad
Intro Guía de Testing OWASP
Seguridad, atributo crítico de un sistema
Web App Security, Ethical hacking for CodeCamp SDQ 5
Seguridad en las apis desde un punto de vista de developer

Más de Fernando Redondo Ramírez (7)

PDF
Codemotion 2015 spock_workshop
PDF
Spring IO 2015 Spock Workshop
PDF
Greach 2015 Spock workshop
PDF
Javacro 2014 Spring Security 3 Speech
PDF
Javacro 2014 SemameStreet Grails 2 Speech
PDF
Greach 2014 Sesamestreet Grails2 Workshop
PDF
Greach2013 taller-grails2
Codemotion 2015 spock_workshop
Spring IO 2015 Spock Workshop
Greach 2015 Spock workshop
Javacro 2014 Spring Security 3 Speech
Javacro 2014 SemameStreet Grails 2 Speech
Greach 2014 Sesamestreet Grails2 Workshop
Greach2013 taller-grails2

Último (20)

PDF
taller de informática - LEY DE OHM
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
clase auditoria informatica 2025.........
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPT
Que son las redes de computadores y sus partes
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
Diapositiva proyecto de vida, materia catedra
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
taller de informática - LEY DE OHM
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Power Point Nicolás Carrasco (disertación Roblox).pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
clase auditoria informatica 2025.........
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Calidad desde el Docente y la mejora continua .pdf
introduccion a las_web en el 2025_mejoras.ppt
Propuesta BKP servidores con Acronis1.pptx
Que son las redes de computadores y sus partes
Presentación PASANTIAS AuditorioOO..pptx
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Diapositiva proyecto de vida, materia catedra
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.

Springio2012 taller-seguridad-web-springsecurity-3

  • 1. Seguridad en Aplicaciones Web con Spring Security 3 [Taller] Fernando Redondo Ramírez @pronoide_fer
  • 2. Índice • ¿Quién soy? • Breve Introducción a Spring Security 3 • ¡Manos a la obra! • Más allá del taller • Enlaces • Preguntas
  • 3. ¿Quién soy? • Emprendedor y empresario en Pronoide desde 2003 • Formador Java & Friends • Haciendo cosas con Java desde 1999 • Ingeniero técnico informático • Casado y padre de dos hijos (la segunda hija podría estar naciendo ahora… ¡uff!)
  • 4. Breve Introducción a Spring Security 3 • ¿La seguridad JEE no es estándar? Sí, pero: 1. Seguridad JEE ⇒ Basada en restricciones (Constraints) 2. Seguridad JEE ⇒ Exclusivamente perimetral 3. Seguridad JEE ⇒ Funcionalidades dependientes de cada Servidor de Aplicaciones (Realms, SSO, Cifrado, etc.) 4. Seguridad JEE ⇒ Aplicaciones JEE no transportables entre plataformas o versiones del mismo servidor 5. Seguridad JEE ⇒ Difícil de adaptar a para aplicaciones Web 2.0 y/o nuevos requerimientos
  • 5. Breve Introducción a Spring Security 3 • ¿La seguridad JEE no es estándar? Sí, pero: 1. Spring Security ⇒ Basada en otorgar permisos 2. Spring Security ⇒ Perimetral y jerárquica 3. Spring Security ⇒ Funcionalidades independientes del Servidor de Aplicaciones 4. Spring Security ⇒ Aplicaciones JEE transportables 5. Spring Security ⇒ Versátil y adaptable
  • 6. Breve Introducción a Spring Security 3 Arquitectura (¡y se acabó!) Peticiones Web Métodos Negocio Business Object (Method) Security Web/HTTP Security Proxies/Interceptores de Cadena de filtros de seguridad seguridad Seguridad Aplicaciones SecurityContextHolder SecurityContext Spring Security 3 Authentication GrantedAuthority Autentificación Autorización AuthenticationManager AccessDecisionManager AuthenticationProviders Voters UserDetailsService AfterInvocationManager
  • 7. ¡Manos a la obra! ¡¡Necesito seguridad en la aplicación de los Expedientes X!! Notas 1. Descargar http://pronoide.com/descargas/fbi.war 2. Importar war en STS 2.8 3. Ejecutar la aplicación 4. Entrar en http://localhost:8080/fbi/index.jsp
  • 8. Etapa: Configurar Spring Security en la aplicación web i. Configurar el filtro interceptor de las peticiones web
  • 9. Etapa: Configurar Spring Security en la aplicación web ii. Crear el fichero para la configuración de seguridad con una seguridad mínima y cargarlo en el web.xml
  • 10. Etapa: Configurar Spring Security en la aplicación web iii. Configurar el login/logout explícitamente iv. Solucionar problemas de recursos, CSS e imágenes
  • 11. Etapa: Configurar Spring Security en la aplicación web v. Proteger contraseñas de los usuarios encriptándolas • Generar claves con Spring Basic Crypto Module • Poner las claves cifradas y configurar el algoritmo y el salt
  • 12. Etapa: Configurar Spring Security en la aplicación web vi. Añadir funcionalidad “Remember Me”
  • 13. Etapa: Configurar Spring Security en la aplicación web vii. Seguridad en el canal de transporte (HTTPS) • Configurar restricciones y puertos • Crear conector SSL en Servidor
  • 14. Etapa: Configurar Spring Security en la aplicación web viii. Control de la expiración de sesiones ix. Control de la concurrencia de sesiones
  • 15. Etapa: Configurar Spring Security en la aplicación web x. Uso de la librería de etiquetas (Spring Security Taglibs)
  • 16. Etapa: Configurar Spring Security en la aplicación web xi. Uso Expresiones SpEL para proteger URL’s xii. Uso Expresiones SpEL con etiquetas Security Taglib
  • 17. ¡Pero que has hecho! ¿¿Sólo hay seguridad en el acceso a los recursos web?? Prueba y verás: https://localhost:8443/fbi/expedientesx /clasificar?id=1
  • 18. Etapa: Configurar Spring Security en Servicios de Negocio xiii. Seguridad en la invocación de métodos de negocio con anotaciones Spring Security
  • 19. Etapa: Configurar Spring Security en Servicios de Negocio xiv. Seguridad en la invocación de métodos de negocio con anotaciones JSR-250
  • 20. Etapa: Configurar Spring Security en Servicios de Negocio xv. Seguridad en la invocación de métodos de negocio con Pointcuts de AspectJ
  • 21. Etapa: Configurar Spring Security en Servicios de Negocio xvi. Seguridad en la invocación de métodos de negocio con Expresiones SpEL (Preinvocación)
  • 22. Mucho mejor pero… ¿¿Qué haces consultando expedientes que no son tuyos?? ¿¿Cómo es que puedes ver el de tu hermana?? ¿¿… y a estas horas??
  • 23. Etapa: Configurar Spring Security de forma jerárquica xvii.Seguridad en la invocación de métodos de negocio con Expresiones SpEL (Postinvocación)
  • 24. Etapa: Configurar Spring Security de forma jerárquica xviii.Seguridad en la invocación de métodos de negocio con Expresiones SpEL (Filtro de resultados)
  • 25. Etapa: Configurar Spring Security de forma jerárquica xix. Utilización del sistema de votantes • Codificar un votante
  • 26. Etapa: Configurar Spring Security de forma jerárquica xix. Utilización del sistema de votantes (cont.) • Explicitar la configuración del espacio de nombres Security • Personalizar la configuración del accessDecisionManager
  • 27. Etapa: Configurar Spring Security de forma jerárquica xx. Personalizar la cadena de filtros de seguridad • Crear un filtro para recordar el usuario que hace login
  • 28. Etapa: Configurar Spring Security de forma jerárquica xx. Personalizar la cadena de filtros de seguridad (cont.) • Crear un filtro para evitar el uso del botón “volver” tras hacer logout
  • 29. The Smoking Man Todo esto de Spring Security esta muy bien, pero siempre me quedará el ataque Java2 <%System.exit(0);%>
  • 30. Más allá del taller. A partir de aquí… • Configuraciones explícitas no implícitas • Gestión de ACL’s • Autentificación vía DataSources, LDAP, X509, OPENID, JEE, etc • Captcha • Single Sign On • Secure Remoting • “... en la mayoría de mi trabajo, las leyes de la física rara vez se aplican.” Mulder 1x01 "Pilot"
  • 31. ¿preguntas? The Truth is Out There (La Verdad está ahí afuera)
  • 32. Referencias • Spring Security 3.1 Reference http://bit.ly/uQFyUY • JSR-250 Annotations http://en.wikipedia.org/wiki/JSR_250 • Spring SpEL http://bit.ly/xIuueQ • Spring Security Common Built-In Expressions http://bit.ly/worFP0 • Spring Security Adding Custom filters http://bit.ly/z2vQWQ • Constantes Spring Security http://bit.ly/yszYqm • Clasificación de la información por países http://bit.ly/zLCoNT
  • 33. ¡Gracias! • @pronoide_fer • fredondo@pronoide.com • http://pronoide.com • http://blog.pronoide.es