SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Fernando Redondo Ramírez 
@pronoide_fer 
Seguridad de las aplicaciones 
web con Spring Security 3.x 
MADRID · NOV 21-22 · 2014
Roadmap 
MADRID · NOV 21-22 · 2014 
• ¿Quien soy? 
• Una pequeña 
introducción a Spring 
Security 
• Manos a la obra 
• Más allá…
Whoami 
• Emprendedor y gestor de pronoide desde 2003 
• Formador Java & Friends (Java EE, Spring, Groovy, Maven, 
Jenkins, Sonar, Weblogic, Jboss, Websphere, Discotecas y demás ) 
• Haciendo cosas con Java desde 1999 
• Ingeniero Informático 
• Felizmente casado y padre de dos hijos ;) 
• Quise ser físico después de ser informático y me 
encantaban la serie de expedientes X 
MADRID · NOV 21-22 · 2014
Breve Introducción a Spring Security 
• ¿No es la seguridad una característica estándar de 
Java EE? Si, por supuesto. Pero: 
• La seguridad Java EE ⇒Esta basada en restricciones 
• La seguridad Java EE ⇒Solo define un perímetro de 
seguridad 
• La seguridad Java EE ⇒sus características dependen en 
última instancia de cada Servidor de Aplicaciones Server 
(Reinos, SSO, Cifrado, etc) 
• La seguridad Java EE ⇒Las aplicaciones securizadas con 
Java EE no se pueden transportar fácilmente entre 
plataformas diferentes o versiones distintas de un 
servidor 
• La seguridad Java EE ⇒Difícil de adaptar a Web 2.0 o a 
requerimientos cambiantes 
MADRID · NOV 21-22 · 2014
Breve Introducción a Spring Security 
• ¿Por qué utilizar Spring Security? 
Porque: 
• Spring Security ⇒Basado en conceder permisos 
• Spring Security ⇒Seguridad tanto perimetral 
como jerárquica 
• Spring Security ⇒Las características son 
independientes del servidor de aplicaciones 
• Spring Security ⇒Aplicaciones Java EE seguras y 
transportables 
• Spring Security ⇒Adaptabilidad and versatilidad 
MADRID · NOV 21-22 · 2014
Breve Introducción a Spring Security 
Métodos de Negocio 
Seguridad en invocación de los 
métodos de los Objetos de Negocio 
Proxies/Interceptores de 
Securidad 
MADRID · NOV 21-22 · 2014 
• ¡Arquitectura y se acabó! 
Spring Security 3 
Clases y estructuras 
SecurityContextHolder 
SecurityContext 
Authentication 
GrantedAuthority 
Peticiones Web 
Seguridad Web/HTTP 
Cadena de filtros de seguridad 
Autentificación 
AuthenticationManager 
AuthenticationProviders 
UserDetailsService 
Autorización 
AccessDecisionManager 
Voters 
AfterInvocationManager
Tu próxima misión 
¡Necesito seguridad en 
la aplicación de los 
Expedientes X! 
MADRID · NOV 21-22 · 2014
¡Manos a la obra! (Más tarde en casa) 
MADRID · NOV 21-22 · 2014 
Antes de empezar, hay que… 
1. Instalar git en tu equipo 
http://git-scm.com/book/en/Getting-Started-Installing-Git 
2. Descargar Spring Tool Suite 3.5/3.6 
https://spring.io/tools/sts/all 
3. Arrancar Spring Tool Suite (STS) y elegir o crear 
un workspace (recordar ejecutarlo con un JDK) 
4. Descargar 
http://pronoide.com/downloads/codemotion2014-spring-security- 
xfiles.zip y descomprimirlo en la carpeta del 
workspace. 
5. ¡Ve a tu ritmo! Es bastante fácil…
La webapp de los Expedientes X 
Importar la webapp (File/Import/Git/Proyect from Git) 
MADRID · NOV 21-22 · 2014
La webapp de los Expedientes X 
MADRID · NOV 21-22 · 2014 
¡Ejecutarla!
Etapa: Configurar Spring Security en una webapp 
i. Configurar un filtro interceptor para todas las peticiones web 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security en una webapp 
ii. Crear un nuevo fichero de configuración de Spring beans 
con una configuración mínima inicial y cargar vía web.xml 
context parameter 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security en una webapp 
iii. Configurar explícitamente los mecanismos de login / logout 
iv. Arreglar problemas con recursos, imagenes y ficheros CSS 
MADRID · NOV 21-22 · 2014
La webapp de los Expedientes X 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security en una webapp 
v. Encriptar las claves de los usuarios vía Spring Security Crypto 
MADRID · NOV 21-22 · 2014 
Module 
• Cifrar claves 
• Configurar el algoritmo y el campo de salt. Luego usar dichas 
claves en el fichero de configuración de seguridad
Etapa: Configurar Spring Security en una webapp 
vi. Añadir la característica Remember Me al proceso de login 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security en una webapp 
vii. Asegurar el canal de transporte (HTTPS) 
MADRID · NOV 21-22 · 2014 
• Establecer restricciones y puertos 
• Configurar servidor tomcat (crear el connector SSL )
Etapa: Configurar Spring Security en una webapp 
MADRID · NOV 21-22 · 2014 
viii. Gestionar la expiración de sesiones 
ix. Manejar la concurrencia de sessiones
Etapa: Configurar Spring Security en una webapp 
x. Usar la librería de etiquetas de JSP (Spring Security Taglibs) 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security en una webapp 
xi. Uso de SpEL para proteger URLs (Spring Expression 
MADRID · NOV 21-22 · 2014 
Language) 
xii. Uso de SpEL con las etiquetas de Spring Security
¡Pero que has hecho! 
¿Sólo hay seguridad en el 
acceso a los recursos 
Web? ¿Eso es lo mejor 
que lo puedes hacer? 
Prueba esta URL y observa lo que ocurre: 
https://localhost:8443/fbi/xfiles/declassify?id=0 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security en los métodos de negocio 
xii. Asegurar las invocaciones a los métodos de negocio 
mediantes las Anotaciones de Spring Security 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security en los métodos de negocio 
xiii. Asegurar las invocaciones de métodos con AspectJ pointcuts 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security en los métodos de negocio 
xiv. Asegurar las invocaciones de métodos con SpEL (Preinvocación) 
MADRID · NOV 21-22 · 2014
¡Mucho mejor! Pero… 
¿Qué haces viendo expedientes que 
no son tuyos? 
¿Por qué eres capaz de acceder al 
expediente de tu hermana? 
¿Y por qué accedes a ciertas horas 
de la noche? 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security de forma jerárquica 
xiv. Asegurar las invocaciones de métodos con SpEL (Postinvocación) 
xiv. Asegurar las invocaciones de métodos con SpEL (Filtrar resultados) 
MADRID · NOV 21-22 · 2014
Etapa: Configurar Spring Security de forma jerárquica 
xvii. Personalización de los votantes de acceso 
MADRID · NOV 21-22 · 2014 
• Codificar un nuevo votante
Etapa: Configurar Spring Security de forma jerárquica 
xviii.Personalización de los votantes de acceso (continuación) 
• Descartar la configuración automática de Spring Security y mostrar la real 
• Personalizar el comportamiento del Access Decision Manager 
MADRID · NOV 21-22 · 2014
Etapa: Spring Security Bola Extra 1 
xix. Personalización de la cadena de filtros de seguridad (Ejemplo A) 
MADRID · NOV 21-22 · 2014 
• Crear un filtro personalizado 
• Colocarlo en la cadena de filtros
Etapa: Spring Security Bola Extra 2 
xix. Personalización de la cadena de filtros de seguridad (Ejemplo B) 
MADRID · NOV 21-22 · 2014 
• Crear un filtro personalizado 
• Colocarlo en la cadena de filtros
El Fumador (The smoking man) 
Todas estas características de 
Spring Security están bastante 
bien, pero siempre me quedará 
usar el ataque Java2: 
<%System.exit(0);%> 
MADRID · NOV 21-22 · 2014
Más allá… 
• Configuraciones explicitas 
y no implicitas 
• Gestión de ACL’s 
• Autentificación con DataSources, 
LDAP, X509, OPENID, Java EE, etc 
• Captchas 
• Single Sign On 
• Java Config 
“… in most of my work, the laws of physics rarely seems to apply.” 
Fox Mulder 1x01 "Pilot" 
MADRID · NOV 21-22 · 2014
¡Gracias! 
@pronoide_fer 
https://github.com/fredondo/ 
fredondo@pronoide.com 
http://pronoide.es 
MADRID · NOV 21-22 · 2014
Apendice: ¡Manos a la obra(en casa)! 
Navegar a través del código del proyecto con git_presenter 
1. Instalar jruby o ruby 
MADRID · NOV 21-22 · 2014 
http://jruby.org/getting-started 
https://www.ruby-lang.org/en/installation/ 
2. Instalar git presenter (gem install git_presenter) 
3. Cuando el codigo este preparado ejecutar el comando"git-presenter 
init" 
4. Una vez inicializado se puede empezar la presentación con "git-presenter 
start" 
5. Después usar los siguientes comandos para navegar por la 
presentación 
• next/n: move to the next slide (commit) 
• back/b: move to the back slide (commit) 
• end/e: move to the end of presentation 
• start/s: move to the start of presentation 
• list/l : list slides in presentation 
• help/h: display this message

Contenu connexe

Tendances

Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"Alonso Caballero
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRootedCON
 
Ramón Pinuaga - Authenticode para malotes [rooted2017]
Ramón Pinuaga - Authenticode para malotes [rooted2017]Ramón Pinuaga - Authenticode para malotes [rooted2017]
Ramón Pinuaga - Authenticode para malotes [rooted2017]RootedCON
 
Actividad No. 6.3: Escaneo de vulnerabilidades con Nessus
Actividad No. 6.3: Escaneo de vulnerabilidades con NessusActividad No. 6.3: Escaneo de vulnerabilidades con Nessus
Actividad No. 6.3: Escaneo de vulnerabilidades con NessusFrancisco Medina
 
Webinar Gratuito: Técnicas Antiforenses Básicas
Webinar Gratuito: Técnicas Antiforenses BásicasWebinar Gratuito: Técnicas Antiforenses Básicas
Webinar Gratuito: Técnicas Antiforenses BásicasAlonso Caballero
 
Practica 4 - Instalación y Actualización de Nessus
Practica 4 - Instalación y Actualización de NessusPractica 4 - Instalación y Actualización de Nessus
Practica 4 - Instalación y Actualización de NessusMeztli Valeriano Orozco
 
Webinar Gratuito: Transferir Archivos a un Sistema Comprometido
Webinar Gratuito: Transferir Archivos a un Sistema ComprometidoWebinar Gratuito: Transferir Archivos a un Sistema Comprometido
Webinar Gratuito: Transferir Archivos a un Sistema ComprometidoAlonso Caballero
 
Informe proyecto nessus
Informe proyecto nessusInforme proyecto nessus
Informe proyecto nessusLethy Mendez
 
Manual Nesus And Nmap
Manual Nesus And NmapManual Nesus And Nmap
Manual Nesus And NmapVictor Guana
 

Tendances (14)

Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molina
 
Kali_Linux_v2_ReYDeS.pdf
Kali_Linux_v2_ReYDeS.pdfKali_Linux_v2_ReYDeS.pdf
Kali_Linux_v2_ReYDeS.pdf
 
Ramón Pinuaga - Authenticode para malotes [rooted2017]
Ramón Pinuaga - Authenticode para malotes [rooted2017]Ramón Pinuaga - Authenticode para malotes [rooted2017]
Ramón Pinuaga - Authenticode para malotes [rooted2017]
 
Actividad No. 6.3: Escaneo de vulnerabilidades con Nessus
Actividad No. 6.3: Escaneo de vulnerabilidades con NessusActividad No. 6.3: Escaneo de vulnerabilidades con Nessus
Actividad No. 6.3: Escaneo de vulnerabilidades con Nessus
 
Webinar Gratuito: Técnicas Antiforenses Básicas
Webinar Gratuito: Técnicas Antiforenses BásicasWebinar Gratuito: Técnicas Antiforenses Básicas
Webinar Gratuito: Técnicas Antiforenses Básicas
 
Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015
 
Practica 4 - Instalación y Actualización de Nessus
Practica 4 - Instalación y Actualización de NessusPractica 4 - Instalación y Actualización de Nessus
Practica 4 - Instalación y Actualización de Nessus
 
Kali linux v2_re_y_des
Kali linux v2_re_y_desKali linux v2_re_y_des
Kali linux v2_re_y_des
 
Webinar Gratuito: Transferir Archivos a un Sistema Comprometido
Webinar Gratuito: Transferir Archivos a un Sistema ComprometidoWebinar Gratuito: Transferir Archivos a un Sistema Comprometido
Webinar Gratuito: Transferir Archivos a un Sistema Comprometido
 
Presentacion Guia OWASP 2014
Presentacion Guia OWASP 2014Presentacion Guia OWASP 2014
Presentacion Guia OWASP 2014
 
Dprn3 u3 a1_rodp
Dprn3 u3 a1_rodpDprn3 u3 a1_rodp
Dprn3 u3 a1_rodp
 
Informe proyecto nessus
Informe proyecto nessusInforme proyecto nessus
Informe proyecto nessus
 
Manual Nesus And Nmap
Manual Nesus And NmapManual Nesus And Nmap
Manual Nesus And Nmap
 

Similaire à Seguridad de las aplicaciones web con Spring Security 3.x

Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big DataCuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big DataRuben Pertusa Lopez
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoLuciano Moreira da Cruz
 
Gestiondeauditoriasdeseguridad
GestiondeauditoriasdeseguridadGestiondeauditoriasdeseguridad
Gestiondeauditoriasdeseguridadoscar lopez
 
Curso Virtual Fundamentos de Hacking Etico 2017
Curso Virtual Fundamentos de Hacking Etico 2017Curso Virtual Fundamentos de Hacking Etico 2017
Curso Virtual Fundamentos de Hacking Etico 2017Alonso Caballero
 
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...RootedCON
 
Kali linux v2_re_y_des (1)
Kali linux v2_re_y_des (1)Kali linux v2_re_y_des (1)
Kali linux v2_re_y_des (1)Polo Perez
 
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
 
Pruebas de seguridad continuas para dev ops
Pruebas de seguridad continuas para dev opsPruebas de seguridad continuas para dev ops
Pruebas de seguridad continuas para dev opsStephen de Vries
 
M2 com practico_arodri
M2 com practico_arodriM2 com practico_arodri
M2 com practico_arodriarodri7703
 
Tema 9 comando kali linux (1)
Tema 9 comando kali linux (1)Tema 9 comando kali linux (1)
Tema 9 comando kali linux (1)YuniorGregorio2
 
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...SolidQ
 
Seguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio ElectrónicoSeguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio ElectrónicoRené Olivo
 
Servidores web de altas prestaciones. Tema 6
Servidores web de altas prestaciones. Tema 6Servidores web de altas prestaciones. Tema 6
Servidores web de altas prestaciones. Tema 6pacvslideshare
 
Curso Virtual OWASP TOP 10 2021
Curso Virtual OWASP TOP 10 2021Curso Virtual OWASP TOP 10 2021
Curso Virtual OWASP TOP 10 2021Alonso Caballero
 
Construyendo tu propio laboratorio de pentesting
Construyendo tu propio laboratorio de pentestingConstruyendo tu propio laboratorio de pentesting
Construyendo tu propio laboratorio de pentestingJaime Andrés Bello Vieda
 

Similaire à Seguridad de las aplicaciones web con Spring Security 3.x (20)

#avanttic_webinar: Seguridad en Oracle Cloud Infrastructure
#avanttic_webinar: Seguridad en Oracle Cloud Infrastructure#avanttic_webinar: Seguridad en Oracle Cloud Infrastructure
#avanttic_webinar: Seguridad en Oracle Cloud Infrastructure
 
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big DataCuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 
Gestiondeauditoriasdeseguridad
GestiondeauditoriasdeseguridadGestiondeauditoriasdeseguridad
Gestiondeauditoriasdeseguridad
 
Curso Virtual Fundamentos de Hacking Etico 2017
Curso Virtual Fundamentos de Hacking Etico 2017Curso Virtual Fundamentos de Hacking Etico 2017
Curso Virtual Fundamentos de Hacking Etico 2017
 
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
 
Kali linux v2_re_y_des (1)
Kali linux v2_re_y_des (1)Kali linux v2_re_y_des (1)
Kali linux v2_re_y_des (1)
 
Practical Spring Cloud
Practical Spring CloudPractical Spring Cloud
Practical Spring Cloud
 
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
 
Pruebas de seguridad continuas para dev ops
Pruebas de seguridad continuas para dev opsPruebas de seguridad continuas para dev ops
Pruebas de seguridad continuas para dev ops
 
M2 com practico_arodri
M2 com practico_arodriM2 com practico_arodri
M2 com practico_arodri
 
Tema 9 comando kali linux (1)
Tema 9 comando kali linux (1)Tema 9 comando kali linux (1)
Tema 9 comando kali linux (1)
 
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
SSIS a fondo: monitorización y ajustes del servicio en producción - SolidQ Su...
 
Seguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio ElectrónicoSeguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio Electrónico
 
Servidores web de altas prestaciones. Tema 6
Servidores web de altas prestaciones. Tema 6Servidores web de altas prestaciones. Tema 6
Servidores web de altas prestaciones. Tema 6
 
Vulnerabilidades de un sistema informático
Vulnerabilidades de un sistema informáticoVulnerabilidades de un sistema informático
Vulnerabilidades de un sistema informático
 
Curso Virtual OWASP TOP 10 2021
Curso Virtual OWASP TOP 10 2021Curso Virtual OWASP TOP 10 2021
Curso Virtual OWASP TOP 10 2021
 
Seguridad clase-2
Seguridad clase-2Seguridad clase-2
Seguridad clase-2
 
Construyendo tu propio laboratorio de pentesting
Construyendo tu propio laboratorio de pentestingConstruyendo tu propio laboratorio de pentesting
Construyendo tu propio laboratorio de pentesting
 
Cisco CCNA Security
Cisco CCNA Security Cisco CCNA Security
Cisco CCNA Security
 

Plus de Fernando Redondo Ramírez

Plus de Fernando Redondo Ramírez (7)

Codemotion 2015 spock_workshop
Codemotion 2015 spock_workshopCodemotion 2015 spock_workshop
Codemotion 2015 spock_workshop
 
Spring IO 2015 Spock Workshop
Spring IO 2015 Spock WorkshopSpring IO 2015 Spock Workshop
Spring IO 2015 Spock Workshop
 
Greach 2015 Spock workshop
Greach 2015 Spock workshopGreach 2015 Spock workshop
Greach 2015 Spock workshop
 
Javacro 2014 Spring Security 3 Speech
Javacro 2014 Spring Security 3 SpeechJavacro 2014 Spring Security 3 Speech
Javacro 2014 Spring Security 3 Speech
 
Javacro 2014 SemameStreet Grails 2 Speech
Javacro 2014  SemameStreet Grails 2 SpeechJavacro 2014  SemameStreet Grails 2 Speech
Javacro 2014 SemameStreet Grails 2 Speech
 
Greach 2014 Sesamestreet Grails2 Workshop
Greach 2014 Sesamestreet Grails2 Workshop Greach 2014 Sesamestreet Grails2 Workshop
Greach 2014 Sesamestreet Grails2 Workshop
 
Greach2013 taller-grails2
Greach2013 taller-grails2Greach2013 taller-grails2
Greach2013 taller-grails2
 

Dernier

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
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 JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Dernier (13)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
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
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Seguridad de las aplicaciones web con Spring Security 3.x

  • 1. Fernando Redondo Ramírez @pronoide_fer Seguridad de las aplicaciones web con Spring Security 3.x MADRID · NOV 21-22 · 2014
  • 2. Roadmap MADRID · NOV 21-22 · 2014 • ¿Quien soy? • Una pequeña introducción a Spring Security • Manos a la obra • Más allá…
  • 3. Whoami • Emprendedor y gestor de pronoide desde 2003 • Formador Java & Friends (Java EE, Spring, Groovy, Maven, Jenkins, Sonar, Weblogic, Jboss, Websphere, Discotecas y demás ) • Haciendo cosas con Java desde 1999 • Ingeniero Informático • Felizmente casado y padre de dos hijos ;) • Quise ser físico después de ser informático y me encantaban la serie de expedientes X MADRID · NOV 21-22 · 2014
  • 4. Breve Introducción a Spring Security • ¿No es la seguridad una característica estándar de Java EE? Si, por supuesto. Pero: • La seguridad Java EE ⇒Esta basada en restricciones • La seguridad Java EE ⇒Solo define un perímetro de seguridad • La seguridad Java EE ⇒sus características dependen en última instancia de cada Servidor de Aplicaciones Server (Reinos, SSO, Cifrado, etc) • La seguridad Java EE ⇒Las aplicaciones securizadas con Java EE no se pueden transportar fácilmente entre plataformas diferentes o versiones distintas de un servidor • La seguridad Java EE ⇒Difícil de adaptar a Web 2.0 o a requerimientos cambiantes MADRID · NOV 21-22 · 2014
  • 5. Breve Introducción a Spring Security • ¿Por qué utilizar Spring Security? Porque: • Spring Security ⇒Basado en conceder permisos • Spring Security ⇒Seguridad tanto perimetral como jerárquica • Spring Security ⇒Las características son independientes del servidor de aplicaciones • Spring Security ⇒Aplicaciones Java EE seguras y transportables • Spring Security ⇒Adaptabilidad and versatilidad MADRID · NOV 21-22 · 2014
  • 6. Breve Introducción a Spring Security Métodos de Negocio Seguridad en invocación de los métodos de los Objetos de Negocio Proxies/Interceptores de Securidad MADRID · NOV 21-22 · 2014 • ¡Arquitectura y se acabó! Spring Security 3 Clases y estructuras SecurityContextHolder SecurityContext Authentication GrantedAuthority Peticiones Web Seguridad Web/HTTP Cadena de filtros de seguridad Autentificación AuthenticationManager AuthenticationProviders UserDetailsService Autorización AccessDecisionManager Voters AfterInvocationManager
  • 7. Tu próxima misión ¡Necesito seguridad en la aplicación de los Expedientes X! MADRID · NOV 21-22 · 2014
  • 8. ¡Manos a la obra! (Más tarde en casa) MADRID · NOV 21-22 · 2014 Antes de empezar, hay que… 1. Instalar git en tu equipo http://git-scm.com/book/en/Getting-Started-Installing-Git 2. Descargar Spring Tool Suite 3.5/3.6 https://spring.io/tools/sts/all 3. Arrancar Spring Tool Suite (STS) y elegir o crear un workspace (recordar ejecutarlo con un JDK) 4. Descargar http://pronoide.com/downloads/codemotion2014-spring-security- xfiles.zip y descomprimirlo en la carpeta del workspace. 5. ¡Ve a tu ritmo! Es bastante fácil…
  • 9. La webapp de los Expedientes X Importar la webapp (File/Import/Git/Proyect from Git) MADRID · NOV 21-22 · 2014
  • 10. La webapp de los Expedientes X MADRID · NOV 21-22 · 2014 ¡Ejecutarla!
  • 11. Etapa: Configurar Spring Security en una webapp i. Configurar un filtro interceptor para todas las peticiones web MADRID · NOV 21-22 · 2014
  • 12. Etapa: Configurar Spring Security en una webapp ii. Crear un nuevo fichero de configuración de Spring beans con una configuración mínima inicial y cargar vía web.xml context parameter MADRID · NOV 21-22 · 2014
  • 13. Etapa: Configurar Spring Security en una webapp iii. Configurar explícitamente los mecanismos de login / logout iv. Arreglar problemas con recursos, imagenes y ficheros CSS MADRID · NOV 21-22 · 2014
  • 14. La webapp de los Expedientes X MADRID · NOV 21-22 · 2014
  • 15. Etapa: Configurar Spring Security en una webapp v. Encriptar las claves de los usuarios vía Spring Security Crypto MADRID · NOV 21-22 · 2014 Module • Cifrar claves • Configurar el algoritmo y el campo de salt. Luego usar dichas claves en el fichero de configuración de seguridad
  • 16. Etapa: Configurar Spring Security en una webapp vi. Añadir la característica Remember Me al proceso de login MADRID · NOV 21-22 · 2014
  • 17. Etapa: Configurar Spring Security en una webapp vii. Asegurar el canal de transporte (HTTPS) MADRID · NOV 21-22 · 2014 • Establecer restricciones y puertos • Configurar servidor tomcat (crear el connector SSL )
  • 18. Etapa: Configurar Spring Security en una webapp MADRID · NOV 21-22 · 2014 viii. Gestionar la expiración de sesiones ix. Manejar la concurrencia de sessiones
  • 19. Etapa: Configurar Spring Security en una webapp x. Usar la librería de etiquetas de JSP (Spring Security Taglibs) MADRID · NOV 21-22 · 2014
  • 20. Etapa: Configurar Spring Security en una webapp xi. Uso de SpEL para proteger URLs (Spring Expression MADRID · NOV 21-22 · 2014 Language) xii. Uso de SpEL con las etiquetas de Spring Security
  • 21. ¡Pero que has hecho! ¿Sólo hay seguridad en el acceso a los recursos Web? ¿Eso es lo mejor que lo puedes hacer? Prueba esta URL y observa lo que ocurre: https://localhost:8443/fbi/xfiles/declassify?id=0 MADRID · NOV 21-22 · 2014
  • 22. Etapa: Configurar Spring Security en los métodos de negocio xii. Asegurar las invocaciones a los métodos de negocio mediantes las Anotaciones de Spring Security MADRID · NOV 21-22 · 2014
  • 23. Etapa: Configurar Spring Security en los métodos de negocio xiii. Asegurar las invocaciones de métodos con AspectJ pointcuts MADRID · NOV 21-22 · 2014
  • 24. Etapa: Configurar Spring Security en los métodos de negocio xiv. Asegurar las invocaciones de métodos con SpEL (Preinvocación) MADRID · NOV 21-22 · 2014
  • 25. ¡Mucho mejor! Pero… ¿Qué haces viendo expedientes que no son tuyos? ¿Por qué eres capaz de acceder al expediente de tu hermana? ¿Y por qué accedes a ciertas horas de la noche? MADRID · NOV 21-22 · 2014
  • 26. Etapa: Configurar Spring Security de forma jerárquica xiv. Asegurar las invocaciones de métodos con SpEL (Postinvocación) xiv. Asegurar las invocaciones de métodos con SpEL (Filtrar resultados) MADRID · NOV 21-22 · 2014
  • 27. Etapa: Configurar Spring Security de forma jerárquica xvii. Personalización de los votantes de acceso MADRID · NOV 21-22 · 2014 • Codificar un nuevo votante
  • 28. Etapa: Configurar Spring Security de forma jerárquica xviii.Personalización de los votantes de acceso (continuación) • Descartar la configuración automática de Spring Security y mostrar la real • Personalizar el comportamiento del Access Decision Manager MADRID · NOV 21-22 · 2014
  • 29. Etapa: Spring Security Bola Extra 1 xix. Personalización de la cadena de filtros de seguridad (Ejemplo A) MADRID · NOV 21-22 · 2014 • Crear un filtro personalizado • Colocarlo en la cadena de filtros
  • 30. Etapa: Spring Security Bola Extra 2 xix. Personalización de la cadena de filtros de seguridad (Ejemplo B) MADRID · NOV 21-22 · 2014 • Crear un filtro personalizado • Colocarlo en la cadena de filtros
  • 31. El Fumador (The smoking man) Todas estas características de Spring Security están bastante bien, pero siempre me quedará usar el ataque Java2: <%System.exit(0);%> MADRID · NOV 21-22 · 2014
  • 32. Más allá… • Configuraciones explicitas y no implicitas • Gestión de ACL’s • Autentificación con DataSources, LDAP, X509, OPENID, Java EE, etc • Captchas • Single Sign On • Java Config “… in most of my work, the laws of physics rarely seems to apply.” Fox Mulder 1x01 "Pilot" MADRID · NOV 21-22 · 2014
  • 33. ¡Gracias! @pronoide_fer https://github.com/fredondo/ fredondo@pronoide.com http://pronoide.es MADRID · NOV 21-22 · 2014
  • 34. Apendice: ¡Manos a la obra(en casa)! Navegar a través del código del proyecto con git_presenter 1. Instalar jruby o ruby MADRID · NOV 21-22 · 2014 http://jruby.org/getting-started https://www.ruby-lang.org/en/installation/ 2. Instalar git presenter (gem install git_presenter) 3. Cuando el codigo este preparado ejecutar el comando"git-presenter init" 4. Una vez inicializado se puede empezar la presentación con "git-presenter start" 5. Después usar los siguientes comandos para navegar por la presentación • next/n: move to the next slide (commit) • back/b: move to the back slide (commit) • end/e: move to the end of presentation • start/s: move to the start of presentation • list/l : list slides in presentation • help/h: display this message