Herramientas de usuario

Herramientas del sitio


informatica:seguridad:cursos:hacking_etico_descubriendo_vulnerabilidades_en_aplicaciones_web:owasp_top_10

OWASP Top 10

OWASP

OWASP son las siglas de Open Web ApplicationSecurity Project.

Organización sin ánimo de lucro creada con el objetivo de fomentar la seguridad del software.

Inicialmente centrada en la seguridad en aplicaciones web, pero a día de hoy también abarca:

  • Móviles
  • APIs
  • Web Services…

Ofrece Herramientas y recursos.

Proyectos

Destacar dos proyectos:

OWASP Web Security TestingGuide

  • Separado en 12 categorías
    • Recolección de información
    • Gestión de Configuración e Implementación
    • Gestión de Identidades
    • Autenticación
    • Autorización
    • Gestión de sesiones
    • Validación de entrada de datos
    • Manejo de errores
    • Cifrado débil
    • Lógica de negocio
    • Pruebas en el lado del cliente
    • Testing de APIs
  • Un total de 97 controles explicados

OWASP Top 10

A1: Inyección

En qué consiste

Presente en las entradas de datos del usuario.

Ejemplos: SQLi, LDAP, Xpath, Command Injection, XML, etc.

Se inyecta una cadena de strings que es interpretada por la aplicación, de forma que el atacante se aprovecha de ello

Cómo detectarla

Comprobar que las entradas de datos son validadas tanto en el lado cliente como en el servidor.

Fuerza bruta de inyecciones buscando un comportamiento anómalo en la aplicación.

Medidas de prevención

Validaciones de entrada en los datos en el servidor a través de listas blancas (sólo acepto los datos si coinciden con lo que se está esperando).

Utilizar APIs seguras para evitar el uso de intérpretes completos y proporcione una interfaz parametrizada.

A2: Pérdida de Autenticación

En qué consiste

Acceso no autorizado a la parte privada de las aplicaciones (formularios de login)

A través de ataques de fuerza bruta o diccionarios

Uso de usuarios y contraseñas por defecto

Cómo detectarla

Comprobar si se pueden automatizar ataques (fuerza bruta, captchas)

Política de contraseñas inseguras

Almacena las contraseñas en texto claro o cifradas con algoritmos débiles

Dispone de autenticación multi-factor

IDs de sesión expuestos o que no se invalidan de forma correcta tras el cierre de sesión

Medidas de prevención

Implementar autenticación multi-factor

Política de contraseñas robusta (no se permiten contraseñas por defecto o sencillas)

Mensajes de información genéricos (“El usuario o la contraseña son incorrectos”, “si el usuario facilitado existe se ha enviado un correo de recuperación a la dirección facilitada”)

IDs de sesión aleatorios, que sean almacenados de forma segura y deshabilitados tras un tiempo de inactividad

A3:Exposición de Datos Sensibles

En qué consiste

Datos sensibles no cifrados (texto plano), ya sea en el transporte o en el almacenamiento, que son accesibles a través de ataques como el “man-in-the-middle”, o acceso al servidor

Datos sensibles: Datos personales, datos bancarios, datos de salud, credenciales…

Cómo detectarla

Identificar si la aplicación trata datos sensibles y cuáles son

¿Se protegen cuando se encuentran en tránsito y cuando se almacenan? Comprobar que no se transmiten ni se almacenan en texto claro

Identificar algoritmos criptográficos utilizados ¿se consideran débiles?

Medidas de prevención

Clasificar los datos que trata la aplicación

No almacenar datos de forma innecesaria

Si se tratan datos sensibles cifrarlos tanto en tránsito como en almacenamiento

Utilizar algoritmos de cifrado robustos

Deshabilitar almacenamiento de datos sensibles en la caché y en el navegador

A4: Entidades Externas XML (XXE)

En qué consiste

Aprovecharse de los procesadores XML que usan las aplicaciones web para cargar o incluir contenido malicioso que sea procesado por la aplicación

Cómo detectarla

Comprobar si la aplicación acepta XML de fuentes de terceros (no confiables) y ejecuta el contenido de los mismos

Si la aplicación usa SOAP en una versión previa a la 1.2 posiblemente sea vulnerable

Si la aplicación es vulnerable a XXE, puede ser vulnerable también a ataques de denegación de servicio (Billion Laughs)

Medidas de prevención

Si es posible, usar formatos de datos más sencillos como JSON

Mantener actualizados tanto los procesadores XML como las bibliotecas XML

SOAP en versión 1.2 o posterior

Validación de entrada de datos basada en lista blanca en el servidor

A5: Pérdida de Control de Acceso

En qué consiste

Fallos en la autorización de la aplicación, un usuario puede acceder a acciones para las que no tiene permisos

Pueden derivar en la pérdida de confidencialidad integridad y disponibilidad de la aplicación

Cómo detectarla

Modificando la URL, para tratar de acceder a funcionalidades o vistas de otro usuario (modificando la ruta, el id del usuario, etc.)

Elevación de privilegios, tratar de ejecutar acciones sin estar autenticado, o acciones de un rol superior (administrador)

Manipulación de JWT o cookies

Medidas de prevención

Estos controles se deben aplicar en el lado del servidor para que el atacante no pueda modificarlos

Política de denegar acceso por defecto, excepto si estás autorizado

Deshabilitar listado de directorios

Registro de errores de control de acceso

A6: Configuración de Seguridad Incorrecta

En qué consiste

Vulnerabilidades presentes en la aplicación por:

  • Vulnerabilidades conocidas que afectan a componentes
  • Usuarios por defecto
  • Directorios sin proteger
  • Etc.

Cómo detectarla

Detección de servicios, componentes y versiones, comprobar si tienen vulnerabilidades conocidas

Probar cuentas y usuarios por defecto

Permisos mal configurados

Medidas de prevención

Inventario de componentes y versiones, y mantenerlo actualizado

Revisar y actualizar configuraciones

Evitar el uso de funcionalidades y componentes innecesarios que puedan suponer un riesgo

A7: Cross-Site Scripting (XSS)

En qué consiste

Inyecciones JavaScript que se ejecutan en el navegador de la víctima que pueden desembocar en ataques en el lado cliente como:

  • Robo de sesión o apropiación de la cuenta
  • Descarga de software malicioso en el equipo de la víctima
  • Kryloggers
  • Etc.

Cómo detectarla

Probando inyecciones de XSS en las entradas de datos del usuario y analizando el comportamiento de la aplicación

Medidas de prevención

Validación en las entradas de datos usando listas blancas (qué es lo que estoy esperado)

Usar frameworks seguros

Habilitar una política de seguridad de contenido (CSP) para mitigar XSS

A8: Deserialización Insegura

En qué consiste

El atacante envía objetos manipulados a la aplicación para su deserialización

Pueden ser relacionados con la estructura de datos y objetos, modificando la lógica de negocio o consiguiendo ejecución remota de código

O manipulación de datos, modificando el contenido de datos existentes, relacionado con el control de acceso

Cómo detectarla

Modificando y manipulando los objetos que se envían a la aplicación y observando el comportamiento de la misma ¿los procesa? ¿los ignora?

Medidas de prevención

No aceptar objetos serializados de fuentes no confiables

Verificación de integridad

Verificación del tipo de los datos que se van a deserializar

Registrar excepciones y fallos en la deserialización

A9: Componentes con Vulnerabilidades Conocidas

En qué consiste

Vulnerabilidades públicas que afectan a componentes de la aplicación (servidores, frameworks, etc.)

Cómo detectarla

Buscando en bases de datos de vulnerabilidades públicas si existen vulnerabilidades que afecten a los componentes de la aplicación

Comprobar si existen exploits públicos

Medidas de prevención

Inventario actualizado de componentes y versiones, actualizar o parchear si aparecen vulnerabilidades que los afecten

Revisar librerías, no solo componentes principales.

A10: Registro y Monitoreo Insuficientes

En qué consiste

La aplicación no cuenta con herramientas de registro de logs y monitoreo suficientes (o no están bien configuradas) que le permitan identificar incidentes de seguridad en fases tempranas

Cómo detectarla

Realizando ejercicios ofensivos y buscando evidencias en los logs que podrían haber levantado alertas

Identificar los eventos auditables (sensibles), como inicios de sesión, fallos en el login, o transacciones sensibles y asegurarse de que se registran correctamente

Errores en registro poco claros

Medidas de prevención

Asegurarse de tener los registros mínimos configurados con alertas configuradas que puedan alertar de actividades sospechosas Trazas de auditoría en todas las transacciones de alto valor que tenga la aplicación

informatica/seguridad/cursos/hacking_etico_descubriendo_vulnerabilidades_en_aplicaciones_web/owasp_top_10.txt · Última modificación: por tempwin