SlideShare una empresa de Scribd logo

PyGoat Analizando la seguridad en aplicaciones Django.pdf

La seguridad en aplicaciones web es un aspecto fundamental para garantizar la protección de los datos y la confidencialidad de los usuarios. Si nuestro objetivo es aprender como Django gestiona la seguridad, PyGoat es una aplicación desarrollada con Django vulnerable de forma intencionada que puede ser utilizada para aprender a asegurar nuestras aplicaciones Django. En esta charla, analizamos como Django gestiona la seguridad utilizando la aplicación vulnerable Pygoat, identificando los problemas de seguridad subyacentes. Aprenderemos sobre vulnerabilidades de seguridad comunes como las que aparecen en el OWASP Top 10 en aplicaciones Django y cómo solucionarlas para que podamos mantener nuestras aplicaciones a salvo de atacantes. Entre los puntos a tratar podemos destacar: Introducción a la seguridad en aplicaciones Django Pygoat como ejemplo de aplicación vulnerable Vulnerabilidades OWASP top 10 y mitigación

1 de 46
Descargar para leer sin conexión
PyGoat: Analizando la
seguridad en aplicaciones
Django José Manuel Ortega
@jmortegac
Agenda
● Introducción a la seguridad en aplicaciones
Django
● Pygoat como ejemplo de aplicación vulnerable
● Vulnerabilidades OWASP top 10 y mitigación
Introducción a la seguridad en aplicaciones Django
● Inyección SQL: El ORM (Object-Relational Mapping) de Django puede
prevenir algunos tipos de inyección SQL, pero no es infalible. Se debe
tener cuidado de escapar correctamente cualquier entrada
suministrada por el usuario al crear consultas SQL.
● Cross-site scripting (XSS): El motor de plantillas de Django escapa
automáticamente cualquier dato que se muestre en una página, pero
aún es posible crear una vulnerabilidad si los datos suministrados por el
usuario se incluyen en un script JavaScript.
● Falsificación de petición en sitios cruzados (CSRF): Django incluye
protección contra CSRF por defecto, pero esta protección puede ser
eludida si el desarrollador no toma las medidas adecuadas.
Introducción a la seguridad en aplicaciones Django
● Vulnerabilidades de carga de archivos: Si una aplicación permite a los
usuarios subir archivos, es importante validar correctamente los
archivos para evitar que se ejecute código malicioso en el servidor.
● Vulnerabilidades de divulgación de archivos: Los desarrolladores
deben asegurarse de que cualquier archivo que no esté destinado a ser
accesible públicamente esté debidamente protegido contra el acceso
no autorizado.
● Validación de entrada inadecuada: Los desarrolladores no
comprueban las entradas del usuario, lo que da lugar a posibles
inyecciones de código en la plantilla. Esto se conoce comúnmente como
CWE-20: Improper Input Validation.
Introducción a la seguridad en aplicaciones Django
● Vulnerabilidades SQL Injection
● CVE-2022-34265: Potential SQL injection via
Trunc(kind) and Extract(lookup_name) arguments
Introducción a la seguridad en aplicaciones Django
● https://github.com/django/django/commit/54eb8
a374d5d98594b264e8ec22337819b37443c

Recomendados

Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0José Moreno
 
Introducción a las vulnerabilidades web
Introducción a las vulnerabilidades webIntroducción a las vulnerabilidades web
Introducción a las vulnerabilidades webPablo 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
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoToni de la Fuente
 
Seguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASPSeguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASPMarcos Harasimowicz
 
Seguridad en servidores
Seguridad en servidoresSeguridad en servidores
Seguridad en servidoresTaty Millan
 

Más contenido relacionado

Similar a PyGoat Analizando la seguridad en aplicaciones Django.pdf

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
 
Seguridad web
Seguridad webSeguridad web
Seguridad webcamposer
 
Inyecciones sql para aprendices
Inyecciones sql para aprendicesInyecciones sql para aprendices
Inyecciones sql para aprendicesTensor
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securityseguridadelinux
 
Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4tantascosasquenose
 
Pruebas extra-funcionales, más observabilidad durante tus pruebas funcionales
Pruebas extra-funcionales, más observabilidad durante tus pruebas funcionalesPruebas extra-funcionales, más observabilidad durante tus pruebas funcionales
Pruebas extra-funcionales, más observabilidad durante tus pruebas funcionalesFederico Toledo
 
Argentesting 2017 - Anatomia Framework Automatización
Argentesting 2017 - Anatomia Framework AutomatizaciónArgentesting 2017 - Anatomia Framework Automatización
Argentesting 2017 - Anatomia Framework AutomatizaciónArgentesting
 
.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta
.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta
.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta.NET UY Meetup
 
Inyeccionessqlparaaprendices complemento clase 1
Inyeccionessqlparaaprendices complemento clase 1Inyeccionessqlparaaprendices complemento clase 1
Inyeccionessqlparaaprendices complemento clase 1Tensor
 
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
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Webacksec
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaJorge Pacheco Mengual
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasCarlos Camacho
 
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3tantascosasquenose
 
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...Dani Adastra
 

Similar a PyGoat Analizando la seguridad en aplicaciones Django.pdf (20)

Mod security
Mod securityMod security
Mod security
 
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]
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
 
Inyecciones sql para aprendices
Inyecciones sql para aprendicesInyecciones sql para aprendices
Inyecciones sql para aprendices
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_security
 
Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4
 
Pruebas extra-funcionales, más observabilidad durante tus pruebas funcionales
Pruebas extra-funcionales, más observabilidad durante tus pruebas funcionalesPruebas extra-funcionales, más observabilidad durante tus pruebas funcionales
Pruebas extra-funcionales, más observabilidad durante tus pruebas funcionales
 
Testing Android Security
Testing Android SecurityTesting Android Security
Testing Android Security
 
Argentesting 2017 - Anatomia Framework Automatización
Argentesting 2017 - Anatomia Framework AutomatizaciónArgentesting 2017 - Anatomia Framework Automatización
Argentesting 2017 - Anatomia Framework Automatización
 
.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta
.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta
.NET UY Meetup 5 - MVC For Human Beings by Leonardo Botta
 
Inyeccionessqlparaaprendices complemento clase 1
Inyeccionessqlparaaprendices complemento clase 1Inyeccionessqlparaaprendices complemento clase 1
Inyeccionessqlparaaprendices complemento clase 1
 
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
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Web
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - Sistemas
 
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
 
Conferencia Monitoreo de Servidores con Nagios
Conferencia Monitoreo de Servidores con NagiosConferencia Monitoreo de Servidores con Nagios
Conferencia Monitoreo de Servidores con Nagios
 
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
 
Taller de Owasp
Taller de OwaspTaller de Owasp
Taller de Owasp
 

Más de Jose Manuel Ortega Candel

Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...Jose Manuel Ortega Candel
 
Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Jose Manuel Ortega Candel
 
Evolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdfEvolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdfJose Manuel Ortega Candel
 
Implementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfImplementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfJose Manuel Ortega Candel
 
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
 
Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud Jose Manuel Ortega Candel
 
Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python Jose Manuel Ortega Candel
 
Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)Jose Manuel Ortega Candel
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanJose Manuel Ortega Candel
 
ELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue TeamELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue TeamJose Manuel Ortega Candel
 
Monitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source toolsMonitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source toolsJose Manuel Ortega Candel
 
Python memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collectorPython memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collectorJose Manuel Ortega Candel
 
Machine Learning para proyectos de seguridad(Pycon)
Machine Learning para proyectos de seguridad(Pycon)Machine Learning para proyectos de seguridad(Pycon)
Machine Learning para proyectos de seguridad(Pycon)Jose Manuel Ortega Candel
 
Machine learning para proyectos de seguridad
Machine learning para proyectos de seguridadMachine learning para proyectos de seguridad
Machine learning para proyectos de seguridadJose Manuel Ortega Candel
 
osint + python: extracting information from tor network and darkweb
osint + python: extracting information from tor network and darkweb osint + python: extracting information from tor network and darkweb
osint + python: extracting information from tor network and darkweb Jose Manuel Ortega Candel
 

Más de Jose Manuel Ortega Candel (20)

Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
 
Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops
 
Evolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdfEvolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdf
 
Implementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfImplementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdf
 
Computación distribuida usando Python
Computación distribuida usando PythonComputación distribuida usando Python
Computación distribuida usando Python
 
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
 
Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud
 
Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python
 
Implementing cert-manager in K8s
Implementing cert-manager in K8sImplementing cert-manager in K8s
Implementing cert-manager in K8s
 
Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)
 
Python para equipos de ciberseguridad
Python para equipos de ciberseguridad Python para equipos de ciberseguridad
Python para equipos de ciberseguridad
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
 
ELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue TeamELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue Team
 
Monitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source toolsMonitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source tools
 
Python Memory Management 101(Europython)
Python Memory Management 101(Europython)Python Memory Management 101(Europython)
Python Memory Management 101(Europython)
 
SecDevOps containers
SecDevOps containersSecDevOps containers
SecDevOps containers
 
Python memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collectorPython memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collector
 
Machine Learning para proyectos de seguridad(Pycon)
Machine Learning para proyectos de seguridad(Pycon)Machine Learning para proyectos de seguridad(Pycon)
Machine Learning para proyectos de seguridad(Pycon)
 
Machine learning para proyectos de seguridad
Machine learning para proyectos de seguridadMachine learning para proyectos de seguridad
Machine learning para proyectos de seguridad
 
osint + python: extracting information from tor network and darkweb
osint + python: extracting information from tor network and darkweb osint + python: extracting information from tor network and darkweb
osint + python: extracting information from tor network and darkweb
 

Último

IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024Isidro Navarro
 
Lista de datos (tecnología) combinación de...
Lista de datos (tecnología) combinación de...Lista de datos (tecnología) combinación de...
Lista de datos (tecnología) combinación de...NicolleAndrade7
 
FACULTAD DE DERECHO MEXICALI. TRABAJO DE TECNOLOGIAS DE LA INVESTIGACION JUR...
FACULTAD DE DERECHO MEXICALI. TRABAJO DE  TECNOLOGIAS DE LA INVESTIGACION JUR...FACULTAD DE DERECHO MEXICALI. TRABAJO DE  TECNOLOGIAS DE LA INVESTIGACION JUR...
FACULTAD DE DERECHO MEXICALI. TRABAJO DE TECNOLOGIAS DE LA INVESTIGACION JUR...yaniraoceguera
 
Creación de una base de datos en el hosting.pptx
Creación de una base de datos en el hosting.pptxCreación de una base de datos en el hosting.pptx
Creación de una base de datos en el hosting.pptxALEJANDRAJOCELYNGUTI
 
Premio (tecnología actividad)combinación...
Premio (tecnología actividad)combinación...Premio (tecnología actividad)combinación...
Premio (tecnología actividad)combinación...NicolleAndrade7
 
Situación comparativa de los Ferrocarriles en el mundo y en Colombia
Situación comparativa de los Ferrocarriles en el mundo y en ColombiaSituación comparativa de los Ferrocarriles en el mundo y en Colombia
Situación comparativa de los Ferrocarriles en el mundo y en ColombiaEnrique Posada
 
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...Telefónica
 
Ley de Delitos Informaticos y su aplicación en el sector privado.pptx
Ley de Delitos Informaticos y su aplicación en el sector privado.pptxLey de Delitos Informaticos y su aplicación en el sector privado.pptx
Ley de Delitos Informaticos y su aplicación en el sector privado.pptxBasile
 
Operadores de Kubernetes: El poder de la automatización
Operadores de Kubernetes: El poder de la automatizaciónOperadores de Kubernetes: El poder de la automatización
Operadores de Kubernetes: El poder de la automatizaciónEdith Puclla
 
Las Tic en casa, las tics en diferentes ambitos
Las Tic en casa, las tics en diferentes ambitosLas Tic en casa, las tics en diferentes ambitos
Las Tic en casa, las tics en diferentes ambitosvikicarmine14
 
Breve Resumen Modelos Evaluación REDs e Instrumentos
Breve Resumen Modelos Evaluación REDs e InstrumentosBreve Resumen Modelos Evaluación REDs e Instrumentos
Breve Resumen Modelos Evaluación REDs e Instrumentosdarkcrow08
 
Realiza tu primera contribucion a la OCA
Realiza tu primera contribucion a la OCARealiza tu primera contribucion a la OCA
Realiza tu primera contribucion a la OCAMaxime Chambreuil
 
Manual de usuario Dongle Zigbee 3.0 Sonoff
Manual de usuario Dongle Zigbee 3.0 SonoffManual de usuario Dongle Zigbee 3.0 Sonoff
Manual de usuario Dongle Zigbee 3.0 SonoffDomotica daVinci
 
presentacion de una computadora modelo uncs
presentacion de una computadora modelo uncspresentacion de una computadora modelo uncs
presentacion de una computadora modelo uncscarlocarrillocacc
 
BIG DATA EJEMPLOS. desarrrollo de curso.pdf
BIG DATA EJEMPLOS. desarrrollo de curso.pdfBIG DATA EJEMPLOS. desarrrollo de curso.pdf
BIG DATA EJEMPLOS. desarrrollo de curso.pdfexpertoleonelmartine
 
Es una presentacion de memorias usb para booting
Es una presentacion de memorias usb para bootingEs una presentacion de memorias usb para booting
Es una presentacion de memorias usb para bootingcarlocarrillocacc
 
cronogramangeneralnadso___856567bd2e7b829___.pdf
cronogramangeneralnadso___856567bd2e7b829___.pdfcronogramangeneralnadso___856567bd2e7b829___.pdf
cronogramangeneralnadso___856567bd2e7b829___.pdfjhongarciarojas123
 
Carta Word y excel: Primer trabajo tecnología
Carta Word y excel: Primer trabajo tecnologíaCarta Word y excel: Primer trabajo tecnología
Carta Word y excel: Primer trabajo tecnologíaSofiaDiaz692624
 
Practica Web de la Sesión 2 , Creacion de base de datos
Practica Web de la Sesión 2 , Creacion de base de datosPractica Web de la Sesión 2 , Creacion de base de datos
Practica Web de la Sesión 2 , Creacion de base de datosChristianRivera122452
 
Arenas Camacho Jose Fernando-Practica sesión 2.pptx
Arenas Camacho Jose Fernando-Practica sesión 2.pptxArenas Camacho Jose Fernando-Practica sesión 2.pptx
Arenas Camacho Jose Fernando-Practica sesión 2.pptxJOSEFERNANDOARENASCA
 

Último (20)

IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024
 
Lista de datos (tecnología) combinación de...
Lista de datos (tecnología) combinación de...Lista de datos (tecnología) combinación de...
Lista de datos (tecnología) combinación de...
 
FACULTAD DE DERECHO MEXICALI. TRABAJO DE TECNOLOGIAS DE LA INVESTIGACION JUR...
FACULTAD DE DERECHO MEXICALI. TRABAJO DE  TECNOLOGIAS DE LA INVESTIGACION JUR...FACULTAD DE DERECHO MEXICALI. TRABAJO DE  TECNOLOGIAS DE LA INVESTIGACION JUR...
FACULTAD DE DERECHO MEXICALI. TRABAJO DE TECNOLOGIAS DE LA INVESTIGACION JUR...
 
Creación de una base de datos en el hosting.pptx
Creación de una base de datos en el hosting.pptxCreación de una base de datos en el hosting.pptx
Creación de una base de datos en el hosting.pptx
 
Premio (tecnología actividad)combinación...
Premio (tecnología actividad)combinación...Premio (tecnología actividad)combinación...
Premio (tecnología actividad)combinación...
 
Situación comparativa de los Ferrocarriles en el mundo y en Colombia
Situación comparativa de los Ferrocarriles en el mundo y en ColombiaSituación comparativa de los Ferrocarriles en el mundo y en Colombia
Situación comparativa de los Ferrocarriles en el mundo y en Colombia
 
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
 
Ley de Delitos Informaticos y su aplicación en el sector privado.pptx
Ley de Delitos Informaticos y su aplicación en el sector privado.pptxLey de Delitos Informaticos y su aplicación en el sector privado.pptx
Ley de Delitos Informaticos y su aplicación en el sector privado.pptx
 
Operadores de Kubernetes: El poder de la automatización
Operadores de Kubernetes: El poder de la automatizaciónOperadores de Kubernetes: El poder de la automatización
Operadores de Kubernetes: El poder de la automatización
 
Las Tic en casa, las tics en diferentes ambitos
Las Tic en casa, las tics en diferentes ambitosLas Tic en casa, las tics en diferentes ambitos
Las Tic en casa, las tics en diferentes ambitos
 
Breve Resumen Modelos Evaluación REDs e Instrumentos
Breve Resumen Modelos Evaluación REDs e InstrumentosBreve Resumen Modelos Evaluación REDs e Instrumentos
Breve Resumen Modelos Evaluación REDs e Instrumentos
 
Realiza tu primera contribucion a la OCA
Realiza tu primera contribucion a la OCARealiza tu primera contribucion a la OCA
Realiza tu primera contribucion a la OCA
 
Manual de usuario Dongle Zigbee 3.0 Sonoff
Manual de usuario Dongle Zigbee 3.0 SonoffManual de usuario Dongle Zigbee 3.0 Sonoff
Manual de usuario Dongle Zigbee 3.0 Sonoff
 
presentacion de una computadora modelo uncs
presentacion de una computadora modelo uncspresentacion de una computadora modelo uncs
presentacion de una computadora modelo uncs
 
BIG DATA EJEMPLOS. desarrrollo de curso.pdf
BIG DATA EJEMPLOS. desarrrollo de curso.pdfBIG DATA EJEMPLOS. desarrrollo de curso.pdf
BIG DATA EJEMPLOS. desarrrollo de curso.pdf
 
Es una presentacion de memorias usb para booting
Es una presentacion de memorias usb para bootingEs una presentacion de memorias usb para booting
Es una presentacion de memorias usb para booting
 
cronogramangeneralnadso___856567bd2e7b829___.pdf
cronogramangeneralnadso___856567bd2e7b829___.pdfcronogramangeneralnadso___856567bd2e7b829___.pdf
cronogramangeneralnadso___856567bd2e7b829___.pdf
 
Carta Word y excel: Primer trabajo tecnología
Carta Word y excel: Primer trabajo tecnologíaCarta Word y excel: Primer trabajo tecnología
Carta Word y excel: Primer trabajo tecnología
 
Practica Web de la Sesión 2 , Creacion de base de datos
Practica Web de la Sesión 2 , Creacion de base de datosPractica Web de la Sesión 2 , Creacion de base de datos
Practica Web de la Sesión 2 , Creacion de base de datos
 
Arenas Camacho Jose Fernando-Practica sesión 2.pptx
Arenas Camacho Jose Fernando-Practica sesión 2.pptxArenas Camacho Jose Fernando-Practica sesión 2.pptx
Arenas Camacho Jose Fernando-Practica sesión 2.pptx
 

PyGoat Analizando la seguridad en aplicaciones Django.pdf

  • 1. PyGoat: Analizando la seguridad en aplicaciones Django José Manuel Ortega @jmortegac
  • 2. Agenda ● Introducción a la seguridad en aplicaciones Django ● Pygoat como ejemplo de aplicación vulnerable ● Vulnerabilidades OWASP top 10 y mitigación
  • 3. Introducción a la seguridad en aplicaciones Django ● Inyección SQL: El ORM (Object-Relational Mapping) de Django puede prevenir algunos tipos de inyección SQL, pero no es infalible. Se debe tener cuidado de escapar correctamente cualquier entrada suministrada por el usuario al crear consultas SQL. ● Cross-site scripting (XSS): El motor de plantillas de Django escapa automáticamente cualquier dato que se muestre en una página, pero aún es posible crear una vulnerabilidad si los datos suministrados por el usuario se incluyen en un script JavaScript. ● Falsificación de petición en sitios cruzados (CSRF): Django incluye protección contra CSRF por defecto, pero esta protección puede ser eludida si el desarrollador no toma las medidas adecuadas.
  • 4. Introducción a la seguridad en aplicaciones Django ● Vulnerabilidades de carga de archivos: Si una aplicación permite a los usuarios subir archivos, es importante validar correctamente los archivos para evitar que se ejecute código malicioso en el servidor. ● Vulnerabilidades de divulgación de archivos: Los desarrolladores deben asegurarse de que cualquier archivo que no esté destinado a ser accesible públicamente esté debidamente protegido contra el acceso no autorizado. ● Validación de entrada inadecuada: Los desarrolladores no comprueban las entradas del usuario, lo que da lugar a posibles inyecciones de código en la plantilla. Esto se conoce comúnmente como CWE-20: Improper Input Validation.
  • 5. Introducción a la seguridad en aplicaciones Django ● Vulnerabilidades SQL Injection ● CVE-2022-34265: Potential SQL injection via Trunc(kind) and Extract(lookup_name) arguments
  • 6. Introducción a la seguridad en aplicaciones Django ● https://github.com/django/django/commit/54eb8 a374d5d98594b264e8ec22337819b37443c
  • 7. Introducción a la seguridad en aplicaciones Django ● Vulnerabilidades SQL Injection ● CVE-2023-31047: Potential bypass of validation when uploading multiple files using one form field ● https://www.djangoproject.com/weblog/2023/ma y/03/security-releases/ ● https://nvd.nist.gov/vuln/detail/CVE-2023-31047
  • 8. Introducción a la seguridad en aplicaciones Django
  • 9. Introducción a la seguridad en aplicaciones Django ● Vulnerabilidades SQL Injection def insecure(request): with connection.cursor() as cursor: baz = request.GET.get('baz') cursor.execute(f"SELECT foo FROM bar WHERE baz = {baz}") row = cursor.fetchone() # ... 1 ; DELETE FROM users ;
  • 10. Introducción a la seguridad en aplicaciones Django ● Vulnerabilidades SQL Injection def secure(request): with connection.cursor() as cursor: baz = request.GET.get('baz') cursor.execute("SELECT foo FROM bar WHERE baz = %s", [baz]) row = cursor.fetchone()
  • 11. Introducción a la seguridad en aplicaciones Django ● Vulnerabilidades SQL Injection ● Utilizar un mapeador relacional de objetos (ORM). Te ahorra escribir consultas SQL manualmente y previene automáticamente inyecciones SQL. ● El ORM más popular es SQLAlchemy https://www.sqlalchemy.org
  • 12. Introducción a la seguridad en aplicaciones Django ● Impacto SQL Injection ● Exponer información confidencial ● Acceso no autorizado ● Denegación de servicio ● Ejecución de código
  • 13. Introducción a la seguridad en aplicaciones Django ● Prevenir SQL Injection ● Consultas parametrizadas ● Validaciones en parámetros de entrada ● Prácticas de codificación segura ● Firewall de aplicaciones web (WAF)
  • 14. Pygoat como ejemplo de aplicación vulnerable ● https://owasp.org/www-project-pygoat ● https://github.com/adeyosemanputra/pygoat ● https://hub.docker.com/r/pygoat/pygoat $ docker pull pygoat/pygoat $ docker run --rm -p 8000:8000 pygoat/pygoat
  • 15. Vulnerabilidades OWASP top 10 y mitigación ● A1: Broken Access Control(Control de acceso roto) ● El control de acceso, a veces llamado autorización, es la forma en que una aplicación web otorga acceso al contenido y las funciones a algunos usuarios y no a otros. ● Estas comprobaciones se realizan después de la autenticación y rigen lo que los usuarios "autorizados" pueden hacer.
  • 16. Vulnerabilidades OWASP top 10 y mitigación
  • 17. Vulnerabilidades OWASP top 10 y mitigación
  • 18. Vulnerabilidades OWASP top 10 y mitigación
  • 19. Vulnerabilidades OWASP top 10 y mitigación
  • 20. Vulnerabilidades OWASP top 10 y mitigación ● A1: Broken Access Control(Control de acceso roto) ● Implementar mecanismos de control de acceso una vez y reutilizarlos en toda la aplicación. ● Los controles de acceso al modelo deben validar que el usuario pueda crear, leer, actualizar o eliminar cualquier registro. ● Deshabilitar la lista de directorios del servidor web ● Los identificadores de sesión con estado deben invalidarse en el servidor después de cerrar sesión.
  • 21. Vulnerabilidades OWASP top 10 y mitigación ● A1: Broken Access Control(Control de acceso roto) ● Los tokens de sesión (como los JWT) incluyen información sobre el usuario que ha iniciado sesión. ○ Validar que el token de sesión no está caducado ○ Comprobar que el token es válido ○ Verificar si el usuario (su información está en el token de sesión) tiene permitido realizar peticiones al endpoint actual
  • 22. Vulnerabilidades OWASP top 10 y mitigación ● A3: Inyección ● La inyección ocurre cuando un atacante introduce datos que no son de confianza y engaña al intérprete para que haga cosas que no debería, como ejecutar comandos no deseados o acceder a datos no autorizados.
  • 23. Vulnerabilidades OWASP top 10 y mitigación
  • 24. Vulnerabilidades OWASP top 10 y mitigación
  • 25. Vulnerabilidades OWASP top 10 y mitigación
  • 26. Vulnerabilidades OWASP top 10 y mitigación ● A3: Inyección ● Proporcionar una interfaz parametrizada o utilizar otras herramientas de mapeo relacional de objetos (ORM). ● Realizar validación de parámetros de entrada del lado del servidor. ● Para cualquier consulta dinámica, escapar los caracteres especiales utilizando la sintaxis de escape específica para ese intérprete.
  • 27. Vulnerabilidades OWASP top 10 y mitigación ● A5: Security Misconfiguration ● Se habilitan o instalan funciones innecesarias (por ejemplo, puertos, servicios, páginas, cuentas o privilegios innecesarios). ● Las cuentas predeterminadas y sus contraseñas están habilitadas. ● El manejo de errores revela seguimientos de pila u otros mensajes de error demasiado informativos para los usuarios.
  • 28. Vulnerabilidades OWASP top 10 y mitigación
  • 29. Vulnerabilidades OWASP top 10 y mitigación ● A5: Security Misconfiguration ● El modo de depuración de Django estaba habilitado. Esto puede provocar que se muestren a los usuarios mensajes de error y variables de entorno. ● En un entorno de producción, el modo de depuración debe desactivarse utilizando la siguiente configuración de Django (settings.py): ● DEBUG = False
  • 30. Vulnerabilidades OWASP top 10 y mitigación ● A8 Software and Data Integrity Failures ● Las errores de integridad del software y de los datos se relacionan con código e infraestructura que no protegen contra violaciones de integridad. Un ejemplo de esto es cuando una aplicación depende de bibliotecas o módulos de fuentes, repositorios que no son confiables. ● Ataques relacionados con objetos y estructuras de datos en los que el atacante modifica la lógica de la aplicación o logra la ejecución remota de código arbitrario si hay clases disponibles para la aplicación que pueden cambiar el comportamiento durante o después de la deserialización.
  • 31. Vulnerabilidades OWASP top 10 y mitigación
  • 32. Vulnerabilidades OWASP top 10 y mitigación ● A8 Software and Data Integrity Failures ● user+<script>document.getElementById("download_link").setA ttribute("href"%2C"%2Fstatic%2Ffake.txt")%3B<%2Fscript>us er+<script>document.getElementById("download_link").setAttr ibute("href"%2C"%2Fstatic%2Ffake.txt")%3B<%2Fscript> ● La URL de descarga se modifica y el usuario puede descargar un archivo arbitrario confiando en el dominio.
  • 33. Vulnerabilidades OWASP top 10 y mitigación ● A8 Software and Data Integrity Failures
  • 34. Vulnerabilidades OWASP top 10 y mitigación ● A10: Server Side Request Forgery (SSRF) ● Esta vulnerabilidad ocurre cada vez que una aplicación web busca un recurso remoto sin validar la URL proporcionada por el usuario. ● Permite que la aplicación redireccione a una URL controlada por el atacante. ● Ataques comunes: ataques a servicios/archivos internos, ataques a URL externas (DoS)
  • 35. Vulnerabilidades OWASP top 10 y mitigación
  • 36. Vulnerabilidades OWASP top 10 y mitigación
  • 37. Vulnerabilidades OWASP top 10 y mitigación
  • 38. Vulnerabilidades OWASP top 10 y mitigación https://github.com/boomcamp/django-security
  • 39. Vulnerabilidades OWASP top 10 y mitigación from django.contrib.auth.decorators import login_required from django.http import HttpResponse @login_required def secure_view(request): # Your view logic here return HttpResponse(“This is a secure view”)
  • 40. Vulnerabilidades OWASP top 10 y mitigación from functools import wraps from django.http import HttpResponse def admin_only(view_func): @wraps(view_func) def wrapper(request, *args, **kwargs): if request.user.is_superuser: return view_func(request, *args, **kwargs) else: return HttpResponse(“Access Denied”) return wrapper
  • 41. Vulnerabilidades OWASP top 10 y mitigación from django.contrib.auth import authenticate, login from django.http import HttpResponse def login_view(request): if request.method == ‘POST’: username = request.POST[‘username’] password = request.POST[‘password’] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return HttpResponse(“Login successful”) else: return HttpResponse(“Invalid credentials”) else: # Render login form return HttpResponse(“Login form”)
  • 42. Vulnerabilidades OWASP top 10 y mitigación from django.http import HttpResponsePermanentRedirect class EnforceHttpsMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): if not request.is_secure(): url = request.build_absolute_uri(request.get_full_path()) secure_url = url.replace(‘http://’, ‘https://’) return HttpResponsePermanentRedirect(secure_url) return self.get_response(request)
  • 43. Vulnerabilidades OWASP top 10 y mitigación from django.core.validators import FileExtensionValidator from django.forms import forms class FileUploadForm(forms.Form): file = forms.FileField(validators=[FileExtensionValidator(allowed_extensions=[‘pdf’, ‘docx’])])
  • 44. Vulnerabilidades OWASP top 10 y mitigación <form method=”post” action=”/submit-form/”> {% csrf_token %} <!—Form fields –> <button type=”submit”>Submit</button> </form>
  • 45. Vulnerabilidades OWASP top 10 y mitigación from django import forms from django.utils.html import escape class SecureForm(forms.Form): name = forms.CharField(max_length=100) email = forms.EmailField() def clean_name(self): name = self.cleaned_data[‘name’] # Sanitize user input sanitized_name = escape(name) return sanitized_name def clean_email(self): email = self.cleaned_data[‘email’] # Validate and sanitize user input if not email.endswith(‘@domain.com’): raise forms.ValidationError(“Invalid email domain”) sanitized_email = escape(email) return sanitized_email