SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Asegurando tus APIs:
Explorando el OWASP Top 10 de
Seguridad en APIs
José Manuel Ortega
jose.manuelortega@owasp.org
Welcome to Commit Conf
∘ Introducir el concepto de seguridad en las APIs
∘ OWASP Top 10 y su importancia para la seguridad en
APIs
∘ Actualización del OWASP Top 10 security en 2023
∘ Herramientas para evaluar y mejorar la seguridad de
tus APIs.
∘ Estrategias y mejores prácticas para garantizar la
seguridad de tus APIs.
Introducir el concepto de seguridad en las APIs
● Amenazas comunes a la seguridad de las API
○ Ataques de inyección
○ Ataques man-in-the-middle (MITM)
○ Ataques denegación de servicio distribuida
(DDoS)
○ Ataques de control de acceso a las aplicaciones
Guidelines
https://owasp.org/API-S
ecurity/editions/2023/e
n/0x00-header
OWASP Top 10 y su importancia para la seguridad
en APIs
Actualización del OWASP Top 10 security en 2023
Actualización del OWASP Top 10 security en 2023
1.Broken Object Level Authorization – Autorización a nivel de
objeto rota
https://api.example.com/v1.1/users/payment/show?user_id=12
https://api.example.com/v1.1/messages/show?id=d0c240ea139206
019f692d
Actualización del OWASP Top 10 security en 2023
1.Broken Object Level Authorization – Autorización a nivel de
objeto rota
Actualización del OWASP Top 10 security en 2023
1.Broken Object Level Authorization
# Inicializar el gestor de archivos
gestor_archivos = GestorArchivos()
# Subir algunos archivos
archivo1 = Archivo("archivo1.txt", id_usuario=1)
archivo2 = Archivo("archivo2.txt", id_usuario=2)
gestor_archivos.subir_archivo(archivo1)
gestor_archivos.subir_archivo(archivo2)
# Un atacante intenta acceder a un archivo que no le pertenece
id_usuario_atacante = 3
nombre_archivo_a_acceder = "archivo1.txt"
archivo_a_acceder =
gestor_archivos.obtener_archivo(nombre_archivo_a_acceder,
id_usuario_atacante)
class Archivo:
def __init__(self, nombre_archivo, id_usuario):
self.nombre_archivo = nombre_archivo
self.id_usuario = id_usuario
class GestorArchivos:
def __init__(self):
self.archivos = []
def subir_archivo(self, archivo):
self.archivos.append(archivo)
def obtener_archivo(self, nombre_archivo,
id_usuario):
for archivo in self.archivos:
if archivo.nombre_archivo == nombre_archivo:
return archivo
return None
Actualización del OWASP Top 10 security en 2023
1.Broken Object Level Authorization
def obtener_archivo(self, nombre_archivo, id_usuario):
for archivo in self.archivos:
if archivo.nombre_archivo == nombre_archivo and archivo.id_usuario ==
id_usuario:
return archivo
return None
Actualización del OWASP Top 10 security en 2023
2.Broken Authentication – Autenticación rota
● La autenticación podría verse comprometida de muchas
maneras. Por ejemplo, si la autenticación permite la fuerza
bruta, contraseñas débiles o un control de identidad no
verificable, podría romperse fácilmente.
Actualización del OWASP Top 10 security en 2023
2.Broken Authentication – Autenticación rota
POST /graphql
{
"query":"mutation {
login (username:"<username>",password:"<password>") {
token
}
}"
}
Actualización del OWASP Top 10 security en 2023
2.Broken Authentication – Autenticación rota
● Tokens leaks
https://api.example.com/v1.1/users/payment/show?user_id=12
&access_token=360f91d065e56a15a0d9a0b4e170967b
Actualización del OWASP Top 10 security en 2023
2.Broken Authentication – Autenticación rota
● Json Web Tokens
Actualización del OWASP Top 10 security en 2023
3.Broken Object Property Level Authorization – Autorización
de nivel de propiedad de objeto rota
● Expone propiedades de un objeto consideradas sensibles y a
las que no debe acceder el usuario.
● Permite al usuario cambiar, añadir y o eliminar el valor de una
propiedad sensible, para la que no debería tener acceso.
Actualización del OWASP Top 10 security en 2023
3.Broken Object Property Level Authorization – Autorización
de nivel de propiedad de objeto rota
● https://api.example.com/v1.1/users/show?user_id=12
{
"id": 6253282,
"username": "vickieli7",
"screen_name": "Vickie",
"location": "San Francisco, CA",
"bio": "Infosec nerd. Hacks and secures. Creates god awful infographics.",
"api_token": "8a48c14b04d94d81ca484e8f32daf6dc",
"phone_number": "123-456-7890",
"address": "1 Main St, San Francisco, CA, USA"
}
Actualización del OWASP Top 10 security en 2023
3.Broken Object Property Level Authorization
note1 = Note("Nota privada de Juan", user_id=1)
note2 = Note("Nota secreta de María", user_id=2)
note_manager = NoteManager()
note_manager.add_note(note1)
note_manager.add_note(note2)
# Supongamos que un usuario intenta ver las notas de otro
usuario (un atacante)
usuario_malicioso_id = 3
notas_usuario_malicioso =
note_manager.get_notes_for_user(usuario_malicioso_id)
for nota in notas_usuario_malicioso:
print(nota.content)
class Note:
def __init__(self, content, user_id):
self.content = content
self.user_id = user_id
class NoteManager:
def __init__(self):
self.notes = []
def add_note(self, note):
self.notes.append(note)
def get_notes_for_user(self, user_id):
return [note for note in self.notes if
note.user_id == user_id]
Actualización del OWASP Top 10 security en 2023
3.Broken Object Property Level Authorization
def get_notes_for_user(self, user_id, request_user_id):
# Verificar si el usuario solicitante tiene permiso para ver
las notas del usuario especificado
if user_id == request_user_id:
return [note for note in self.notes if note.user_id ==
user_id]
else:
return None
Actualización del OWASP Top 10 security en 2023
4.Unrestricted Resource Consumption – Consumo de
recursos sin restricciones
● La explotación de esta vulnerabilidad por atacantes mediante
un ataque de denegación de servicio (DoS), ante la falta de
suficientes recursos para atender a todas las peticiones que se
realizan a la API.
● Un aumento sustancial de los costes operativos asociado al
incremento de los recursos que se deben emplear, por
ejemplo, más almacenamiento en la nube.
Actualización del OWASP Top 10 security en 2023
5.Broken Function Level Authorization – Autorización rota a
nivel de función
Actualización del OWASP Top 10 security en 2023
5.Broken Function Level Authorization – Autorización rota a
nivel de función
Actualización del OWASP Top 10 security en 2023
5.Broken Function Level Authorization
def actualizar_perfil_usuario(id_usuario, nuevos_datos):
# Obtener datos del usuario (asumiendo una conexión a la base de datos)
datos_usuario = obtener_datos_usuario(id_usuario)
# Actualizar datos (asumiendo la manipulación de datos)
datos_usuario.update(nuevos_datos)
# Guardar datos actualizados (asumiendo interacción con la base de datos)
guardar_datos_usuario(datos_usuario)
return {"mensaje": "Perfil actualizado correctamente"}
Actualización del OWASP Top 10 security en 2023
5.Broken Function Level Authorization
def actualizar_perfil_usuario(usuario_actual, id_usuario, nuevos_datos):
# Compruebe si el usuario actual tiene permiso para actualizar el perfil objetivo
if not esta_autorizado(usuario_actual, id_usuario):
return {"error": "No autorizado para actualizar el perfil"}
def esta_autorizado(usuario_actual, id_usuario_objetivo):
"""
Esta función determina si el usuario actual está autorizado para actualizar el perfil objetivo.
(Reemplace con su lógica de autorización basada en roles y permisos de usuario)
"""
return usuario_actual.id == id_usuario_objetivo # Ejemplo: Permitir solo actualizaciones de
uno mismo
# Uso (asumiendo un objeto de usuario 'usuario_actual' que ha iniciado sesión)
actualizar_perfil_usuario(usuario_actual, usuario_actual.id, {"nombre": "Juana Pérez"})
Actualización del OWASP Top 10 security en 2023
6. Unrestricted Access to Sensitive Business Flows-Acceso
sin restricciones a flujos empresariales sensibles
● OWASP señala que cuando se crea un endpoint de API, se
expone un flujo de negocio y es fundamental entender que hay
flujos de negocio más sensibles que otros y el acceso excesivo
a ellos puede resultar perjudicial para la empresa.
● Ejemplos de estos flujos pueden ser los de compra de un
producto, el de publicación de comentarios o el de reservas.
● La vulnerabiliadd se produce cuando se expone un flujo de
negocio sensible sin contar con mecanismos que restrinjan el
acceso de forma adecuada.
Actualización del OWASP Top 10 security en 2023
7.Server Side Request Forgery – Falsificación de peticiones
del lado del servidor
Actualización del OWASP Top 10 security en 2023
7.Server Side Request Forgery – Falsificación de peticiones
del lado del servidor
● Validación de entrada de usuario
● Listas blancas de direcciones y recursos permitidos
● Limitar permisos y aplicar el principio de mínimo
privilegio.
Actualización del OWASP Top 10 security en 2023
8.Security Misconfiguration – Configuración incorrecta o no
segura
● Faltan parches de seguridad
● Configuraciones por defecto
● Funciones innecesarias que están activadas
● La aplicación no utiliza seguridad de la capa de transporte
(TLS) ni una política de intercambio de recursos entre orígenes
(CORS).
● Los mensajes de error que exponen información confidencial
Actualización del OWASP Top 10 security en 2023
8.Security Misconfiguration – Configuración incorrecta o no
segura
● Poner en marcha un proceso de hardening
● Revisar y actualizar las configuraciones de la API
● Automatizar la evaluación de la configuración y los
ajustes en todos los entornos
Actualización del OWASP Top 10 security en 2023
9.Improper Asset Management – Gestión inadecuada de
activos
Actualización del OWASP Top 10 security en 2023
10.Unsafe Consumption of APIs – Consumo no seguro de
APIs
● Una API interactúa con otras a través de un canal no cifrado.
● No se validan ni sanean los datos obtenidos de otras API antes de
procesarlos y trasladarlos a componentes de la API.
● No se validan las redirecciones.
● No se limitan los recursos que se pueden emplear para procesar
respuestas de servicios de terceros.
● No se implementan tiempos de espera en las interacciones con
servicios de terceros.
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
Herramientas para evaluar y mejorar la seguridad
crAPI https://github.com/OWASP/crAPI Completely
Ridiculous
API (crAPI)
Pixi https://github.com/DevSlop/Pixi Vulnerable REST
API based on the
MEAN stack
VAmPI https://github.com/erev0s/VAmPI OWASP API Top
10 vulnerabilities
vAPI https://github.com/roottusk/vapi OWASP API Top
10-based exercises
BankGround https://gitlab.com/karelhusa/bankg
round
Open source project to
learn
REST and GraphQL
security
Estrategias y mejores prácticas para garantizar la
seguridad de tus APIs
● Implementar comprobaciones de autorización a nivel de objeto y
considerar la posibilidad de utilizar ID de objetos generados
aleatoriamente.
● Asignar y aplicar privilegios en funciones que requieran
confidencialidad.
● Establecer límites al tamaño de las peticiones, las frecuencias y a
qué pueden acceder los usuarios.
● Imponer restricciones a los flujos de llamdas que podrían ser el
origen de un ataque si se usan en exceso.
● Evitar configuraciones inseguras cuando sea posible.
● Documentar los servicios y actualizar estos catálogos
periódicamente.
Estrategias y mejores prácticas para garantizar la
seguridad de tus APIs
● Mejorar la gobernanza de las APIs
● Utilizar herramientas de descubrimiento de APIs
● Desplegar una pasarela API
● Añadir un firewall de aplicaciones web (WAF)
● Cifrar todos los datos (mediante TLS, por ejemplo)
● Utilizar OAuth para controlar el acceso de la APIs
● Aplicar la limitación de velocidad para restringir la frecuencia con
la que se puede llamar a su API.
● Considerar un enfoque de confianza cero o zero trust
Asegurando tus APIs:
Explorando el OWASP Top 10 de
Seguridad en APIs
José Manuel Ortega
jose.manuelortega@owasp.org

Más contenido relacionado

Similar a Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf

PyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfPyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfJose Manuel Ortega Candel
 
Asp seguridad
Asp seguridad Asp seguridad
Asp seguridad gerardd98
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Jose Gratereaux
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones webJose Mato
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Webacksec
 
Taller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffcTaller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffcjinkalel kalel
 
Taller oracle seguridad backup recovery 22092008
Taller oracle seguridad backup recovery 22092008Taller oracle seguridad backup recovery 22092008
Taller oracle seguridad backup recovery 22092008wilder sanchez
 
Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Fernando Redondo Ramírez
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_oooYuzel Sederap
 
Protegiendo los secretos de tus aplicaciones con Azure Key Vault
Protegiendo los secretos de tus aplicaciones con Azure Key VaultProtegiendo los secretos de tus aplicaciones con Azure Key Vault
Protegiendo los secretos de tus aplicaciones con Azure Key VaultLuis Beltran
 
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
 
Connection String Parameter Pollution
Connection String Parameter PollutionConnection String Parameter Pollution
Connection String Parameter PollutionChema Alonso
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_oooYuzel Sederap
 
Colombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptxColombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptxLuis Beltran
 

Similar a Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf (20)

WebAttack - Presentación
WebAttack - PresentaciónWebAttack - Presentación
WebAttack - Presentación
 
PyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfPyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdf
 
Asp seguridad
Asp seguridad Asp seguridad
Asp seguridad
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones web
 
Base de datos
Base de datosBase de datos
Base de datos
 
Seguridad sql server
Seguridad sql serverSeguridad sql server
Seguridad sql server
 
Web app attacks
Web app attacksWeb app attacks
Web app attacks
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Web
 
Taller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffcTaller oracle ccfcffcfcfcfcfcffc
Taller oracle ccfcffcfcfcfcfcffc
 
Taller oracle seguridad backup recovery 22092008
Taller oracle seguridad backup recovery 22092008Taller oracle seguridad backup recovery 22092008
Taller oracle seguridad backup recovery 22092008
 
Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_ooo
 
Protegiendo los secretos de tus aplicaciones con Azure Key Vault
Protegiendo los secretos de tus aplicaciones con Azure Key VaultProtegiendo los secretos de tus aplicaciones con Azure Key Vault
Protegiendo los secretos de tus aplicaciones con Azure Key Vault
 
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
 
Connection String Parameter Pollution
Connection String Parameter PollutionConnection String Parameter Pollution
Connection String Parameter Pollution
 
Inyecciones SQL
Inyecciones SQLInyecciones SQL
Inyecciones SQL
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_ooo
 
Colombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptxColombia Bootcamp Azure Key Vault.pptx
Colombia Bootcamp Azure Key Vault.pptx
 
Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)
 

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
 
Sharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8sSharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8sJose 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
 

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
 
Sharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8sSharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8s
 
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
 

Último

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
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
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
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
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
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
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
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
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
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (19)

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
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .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)
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
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
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
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
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
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...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf

  • 1. Asegurando tus APIs: Explorando el OWASP Top 10 de Seguridad en APIs José Manuel Ortega jose.manuelortega@owasp.org
  • 2. Welcome to Commit Conf ∘ Introducir el concepto de seguridad en las APIs ∘ OWASP Top 10 y su importancia para la seguridad en APIs ∘ Actualización del OWASP Top 10 security en 2023 ∘ Herramientas para evaluar y mejorar la seguridad de tus APIs. ∘ Estrategias y mejores prácticas para garantizar la seguridad de tus APIs.
  • 3. Introducir el concepto de seguridad en las APIs ● Amenazas comunes a la seguridad de las API ○ Ataques de inyección ○ Ataques man-in-the-middle (MITM) ○ Ataques denegación de servicio distribuida (DDoS) ○ Ataques de control de acceso a las aplicaciones
  • 5. OWASP Top 10 y su importancia para la seguridad en APIs
  • 6. Actualización del OWASP Top 10 security en 2023
  • 7. Actualización del OWASP Top 10 security en 2023 1.Broken Object Level Authorization – Autorización a nivel de objeto rota https://api.example.com/v1.1/users/payment/show?user_id=12 https://api.example.com/v1.1/messages/show?id=d0c240ea139206 019f692d
  • 8. Actualización del OWASP Top 10 security en 2023 1.Broken Object Level Authorization – Autorización a nivel de objeto rota
  • 9. Actualización del OWASP Top 10 security en 2023 1.Broken Object Level Authorization # Inicializar el gestor de archivos gestor_archivos = GestorArchivos() # Subir algunos archivos archivo1 = Archivo("archivo1.txt", id_usuario=1) archivo2 = Archivo("archivo2.txt", id_usuario=2) gestor_archivos.subir_archivo(archivo1) gestor_archivos.subir_archivo(archivo2) # Un atacante intenta acceder a un archivo que no le pertenece id_usuario_atacante = 3 nombre_archivo_a_acceder = "archivo1.txt" archivo_a_acceder = gestor_archivos.obtener_archivo(nombre_archivo_a_acceder, id_usuario_atacante) class Archivo: def __init__(self, nombre_archivo, id_usuario): self.nombre_archivo = nombre_archivo self.id_usuario = id_usuario class GestorArchivos: def __init__(self): self.archivos = [] def subir_archivo(self, archivo): self.archivos.append(archivo) def obtener_archivo(self, nombre_archivo, id_usuario): for archivo in self.archivos: if archivo.nombre_archivo == nombre_archivo: return archivo return None
  • 10. Actualización del OWASP Top 10 security en 2023 1.Broken Object Level Authorization def obtener_archivo(self, nombre_archivo, id_usuario): for archivo in self.archivos: if archivo.nombre_archivo == nombre_archivo and archivo.id_usuario == id_usuario: return archivo return None
  • 11. Actualización del OWASP Top 10 security en 2023 2.Broken Authentication – Autenticación rota ● La autenticación podría verse comprometida de muchas maneras. Por ejemplo, si la autenticación permite la fuerza bruta, contraseñas débiles o un control de identidad no verificable, podría romperse fácilmente.
  • 12. Actualización del OWASP Top 10 security en 2023 2.Broken Authentication – Autenticación rota POST /graphql { "query":"mutation { login (username:"<username>",password:"<password>") { token } }" }
  • 13. Actualización del OWASP Top 10 security en 2023 2.Broken Authentication – Autenticación rota ● Tokens leaks https://api.example.com/v1.1/users/payment/show?user_id=12 &access_token=360f91d065e56a15a0d9a0b4e170967b
  • 14. Actualización del OWASP Top 10 security en 2023 2.Broken Authentication – Autenticación rota ● Json Web Tokens
  • 15. Actualización del OWASP Top 10 security en 2023 3.Broken Object Property Level Authorization – Autorización de nivel de propiedad de objeto rota ● Expone propiedades de un objeto consideradas sensibles y a las que no debe acceder el usuario. ● Permite al usuario cambiar, añadir y o eliminar el valor de una propiedad sensible, para la que no debería tener acceso.
  • 16. Actualización del OWASP Top 10 security en 2023 3.Broken Object Property Level Authorization – Autorización de nivel de propiedad de objeto rota ● https://api.example.com/v1.1/users/show?user_id=12 { "id": 6253282, "username": "vickieli7", "screen_name": "Vickie", "location": "San Francisco, CA", "bio": "Infosec nerd. Hacks and secures. Creates god awful infographics.", "api_token": "8a48c14b04d94d81ca484e8f32daf6dc", "phone_number": "123-456-7890", "address": "1 Main St, San Francisco, CA, USA" }
  • 17. Actualización del OWASP Top 10 security en 2023 3.Broken Object Property Level Authorization note1 = Note("Nota privada de Juan", user_id=1) note2 = Note("Nota secreta de María", user_id=2) note_manager = NoteManager() note_manager.add_note(note1) note_manager.add_note(note2) # Supongamos que un usuario intenta ver las notas de otro usuario (un atacante) usuario_malicioso_id = 3 notas_usuario_malicioso = note_manager.get_notes_for_user(usuario_malicioso_id) for nota in notas_usuario_malicioso: print(nota.content) class Note: def __init__(self, content, user_id): self.content = content self.user_id = user_id class NoteManager: def __init__(self): self.notes = [] def add_note(self, note): self.notes.append(note) def get_notes_for_user(self, user_id): return [note for note in self.notes if note.user_id == user_id]
  • 18. Actualización del OWASP Top 10 security en 2023 3.Broken Object Property Level Authorization def get_notes_for_user(self, user_id, request_user_id): # Verificar si el usuario solicitante tiene permiso para ver las notas del usuario especificado if user_id == request_user_id: return [note for note in self.notes if note.user_id == user_id] else: return None
  • 19. Actualización del OWASP Top 10 security en 2023 4.Unrestricted Resource Consumption – Consumo de recursos sin restricciones ● La explotación de esta vulnerabilidad por atacantes mediante un ataque de denegación de servicio (DoS), ante la falta de suficientes recursos para atender a todas las peticiones que se realizan a la API. ● Un aumento sustancial de los costes operativos asociado al incremento de los recursos que se deben emplear, por ejemplo, más almacenamiento en la nube.
  • 20. Actualización del OWASP Top 10 security en 2023 5.Broken Function Level Authorization – Autorización rota a nivel de función
  • 21. Actualización del OWASP Top 10 security en 2023 5.Broken Function Level Authorization – Autorización rota a nivel de función
  • 22. Actualización del OWASP Top 10 security en 2023 5.Broken Function Level Authorization def actualizar_perfil_usuario(id_usuario, nuevos_datos): # Obtener datos del usuario (asumiendo una conexión a la base de datos) datos_usuario = obtener_datos_usuario(id_usuario) # Actualizar datos (asumiendo la manipulación de datos) datos_usuario.update(nuevos_datos) # Guardar datos actualizados (asumiendo interacción con la base de datos) guardar_datos_usuario(datos_usuario) return {"mensaje": "Perfil actualizado correctamente"}
  • 23. Actualización del OWASP Top 10 security en 2023 5.Broken Function Level Authorization def actualizar_perfil_usuario(usuario_actual, id_usuario, nuevos_datos): # Compruebe si el usuario actual tiene permiso para actualizar el perfil objetivo if not esta_autorizado(usuario_actual, id_usuario): return {"error": "No autorizado para actualizar el perfil"} def esta_autorizado(usuario_actual, id_usuario_objetivo): """ Esta función determina si el usuario actual está autorizado para actualizar el perfil objetivo. (Reemplace con su lógica de autorización basada en roles y permisos de usuario) """ return usuario_actual.id == id_usuario_objetivo # Ejemplo: Permitir solo actualizaciones de uno mismo # Uso (asumiendo un objeto de usuario 'usuario_actual' que ha iniciado sesión) actualizar_perfil_usuario(usuario_actual, usuario_actual.id, {"nombre": "Juana Pérez"})
  • 24. Actualización del OWASP Top 10 security en 2023 6. Unrestricted Access to Sensitive Business Flows-Acceso sin restricciones a flujos empresariales sensibles ● OWASP señala que cuando se crea un endpoint de API, se expone un flujo de negocio y es fundamental entender que hay flujos de negocio más sensibles que otros y el acceso excesivo a ellos puede resultar perjudicial para la empresa. ● Ejemplos de estos flujos pueden ser los de compra de un producto, el de publicación de comentarios o el de reservas. ● La vulnerabiliadd se produce cuando se expone un flujo de negocio sensible sin contar con mecanismos que restrinjan el acceso de forma adecuada.
  • 25. Actualización del OWASP Top 10 security en 2023 7.Server Side Request Forgery – Falsificación de peticiones del lado del servidor
  • 26. Actualización del OWASP Top 10 security en 2023 7.Server Side Request Forgery – Falsificación de peticiones del lado del servidor ● Validación de entrada de usuario ● Listas blancas de direcciones y recursos permitidos ● Limitar permisos y aplicar el principio de mínimo privilegio.
  • 27. Actualización del OWASP Top 10 security en 2023 8.Security Misconfiguration – Configuración incorrecta o no segura ● Faltan parches de seguridad ● Configuraciones por defecto ● Funciones innecesarias que están activadas ● La aplicación no utiliza seguridad de la capa de transporte (TLS) ni una política de intercambio de recursos entre orígenes (CORS). ● Los mensajes de error que exponen información confidencial
  • 28. Actualización del OWASP Top 10 security en 2023 8.Security Misconfiguration – Configuración incorrecta o no segura ● Poner en marcha un proceso de hardening ● Revisar y actualizar las configuraciones de la API ● Automatizar la evaluación de la configuración y los ajustes en todos los entornos
  • 29. Actualización del OWASP Top 10 security en 2023 9.Improper Asset Management – Gestión inadecuada de activos
  • 30. Actualización del OWASP Top 10 security en 2023 10.Unsafe Consumption of APIs – Consumo no seguro de APIs ● Una API interactúa con otras a través de un canal no cifrado. ● No se validan ni sanean los datos obtenidos de otras API antes de procesarlos y trasladarlos a componentes de la API. ● No se validan las redirecciones. ● No se limitan los recursos que se pueden emplear para procesar respuestas de servicios de terceros. ● No se implementan tiempos de espera en las interacciones con servicios de terceros.
  • 31. Herramientas para evaluar y mejorar la seguridad
  • 32. Herramientas para evaluar y mejorar la seguridad
  • 33. Herramientas para evaluar y mejorar la seguridad
  • 34. Herramientas para evaluar y mejorar la seguridad
  • 35. Herramientas para evaluar y mejorar la seguridad
  • 36. Herramientas para evaluar y mejorar la seguridad
  • 37. Herramientas para evaluar y mejorar la seguridad
  • 38. Herramientas para evaluar y mejorar la seguridad
  • 39. Herramientas para evaluar y mejorar la seguridad
  • 40. Herramientas para evaluar y mejorar la seguridad
  • 41. Herramientas para evaluar y mejorar la seguridad
  • 42. Herramientas para evaluar y mejorar la seguridad
  • 43. Herramientas para evaluar y mejorar la seguridad crAPI https://github.com/OWASP/crAPI Completely Ridiculous API (crAPI) Pixi https://github.com/DevSlop/Pixi Vulnerable REST API based on the MEAN stack VAmPI https://github.com/erev0s/VAmPI OWASP API Top 10 vulnerabilities vAPI https://github.com/roottusk/vapi OWASP API Top 10-based exercises BankGround https://gitlab.com/karelhusa/bankg round Open source project to learn REST and GraphQL security
  • 44. Estrategias y mejores prácticas para garantizar la seguridad de tus APIs ● Implementar comprobaciones de autorización a nivel de objeto y considerar la posibilidad de utilizar ID de objetos generados aleatoriamente. ● Asignar y aplicar privilegios en funciones que requieran confidencialidad. ● Establecer límites al tamaño de las peticiones, las frecuencias y a qué pueden acceder los usuarios. ● Imponer restricciones a los flujos de llamdas que podrían ser el origen de un ataque si se usan en exceso. ● Evitar configuraciones inseguras cuando sea posible. ● Documentar los servicios y actualizar estos catálogos periódicamente.
  • 45. Estrategias y mejores prácticas para garantizar la seguridad de tus APIs ● Mejorar la gobernanza de las APIs ● Utilizar herramientas de descubrimiento de APIs ● Desplegar una pasarela API ● Añadir un firewall de aplicaciones web (WAF) ● Cifrar todos los datos (mediante TLS, por ejemplo) ● Utilizar OAuth para controlar el acceso de la APIs ● Aplicar la limitación de velocidad para restringir la frecuencia con la que se puede llamar a su API. ● Considerar un enfoque de confianza cero o zero trust
  • 46. Asegurando tus APIs: Explorando el OWASP Top 10 de Seguridad en APIs José Manuel Ortega jose.manuelortega@owasp.org