OWASP Top 10: 2021

Principales pruebas realizadas a aplicaciones Web basado en OWASP Top 10: 2021

A01:2021 Broken Access Control
Pérdida de Control de Acceso
  • Prueba de violación del principio del mínimo privilegio.
  • Prueba para eludir comprobaciones de control de acceso.
  • Prueba edición o vista de la cuenta de otro usuario con solo saber su Id.
  • Prueba de acceso a API con distintos métodos (DELETE, GET, POST, PUT).
  • Prueba de manipulación de Token, Cookie o campo oculto.
  • Prueba de revisión de configuraciones CORS.
  • Prueba de navegación forzada como usuario no autenticado.
A02:2021 Cryptographic Failures
Fallas Criptográficas
  • Prueba de transmisión de datos en texto claro.
  • Prueba para determinar si se utilizan algoritmos o protocolos criptográficos obsoletos o débiles de forma predeterminada.
  • Prueba para determinar si se utilizan llaves por default.
  • Prueba de protocolos de navegación segura como HTTPS.
  • Prueba de validez del certificado TLS/SSL.
  • Prueba para determinar si se ignoran vectores de inicialización.
  • Prueba para determinar si se utilizan generadores de aleatoriedad.
  • Prueba para determinar si se utilizan funciones Hash obsoletas como MD5 o SHA1.
A03:2021 Injection
  • Prueba de validación de datos de entrada.
  • Prueba de validación de existencia de consultas dinámicas o no parametrizadas.
  • Prueba para determinar si se utilizan datos dañinos dentro de los parámetros de búsqueda.
  • Prueba para determinar si se pueden generar consultas dinámicas por medio de concatenaciones.
A04:2021 Insecure Design
Diseño Inseguro

El diseño inseguro abarca muchos aspectos que deben ser tomados desde que se inicia el S-SDLC (Secure Software Development LifeCycle).

Ejemplos que hay que revisar:

  • Revisión de mensajes de Errores en busca de información útil.
  • Almacenamiento no protegido de secretos, por ejemplo, en el navegador.
  • Errores en la Lógica de Negocio.
  • ...
A05:2021 Security Misconfiguration
Configuración de Seguridad Incorrecta
  • Revisión de permisos incorrectamente configurados en Servicios de la Nube.
  • Revisión de características no necesarias instaladas o habilitadas.
  • Búsqueda de cuentas por defecto con sus respectivas contraseñas habilitadas o sin cambios.
  • Revisión del manejo de errores, en busca de la pila de mensajes (stack trace) o errores informativos.
  • Prueba de revisión de valores por defecto en tecnologías utilizadas.
  • Prueba de directivas de seguridad en servidores (encabezados).
  • Prueba de uso de software vulnerable (con CVEs conocidos).
A06:2021 Vulnerable and Outdated Components
Componentes Vulnerables y Desactualizados
  • Prueba de validación de las versiones de los componentes.
  • Búsqueda de CVEs de acuerdo a las tecnologías encontradas.
  • Buscar en general toda librería que no esté actualizada o no esté en versión LTS.
A07:2021 Identification and Authentication Failures
Fallas de Identificación y Autenticación
  • Prueba de ataque usuario/contraseña válidos. Diccionario.
  • Prueba con fuerza bruta.
  • Prueba con credenciales por defecto.
  • Prueba de recuperación de Passwords.
A08:2021 Software and Data Integrity Failures
Fallas en el Software e Integridad de los Datos

Se relaciona principalmente con la ausencia de validación de los datos y software entre el origen y destino (podría ser cliente y servidor). Muchas veces no existe una comprobación de la integridad que permitiría que un atacante modifique los datos en tránsito, y en las consecuencias más graves, permitir ejecución remota de comandos.

Ejemplos que hay que revisar:

  • Prueba de revisión de transacciones firmadas por medio de un algoritmo robusto (firma digital).
A09:2021 Security Logging and Monitoring Failures
Fallas en el Registro y Monitoreo de Seguridad

Tiene cierto grado de dificultad detectar este tipo de vulnerabilidades porque requieren notificación por parte del sistema de monitoreo que supervisa la aplicación atacada.

Ejemplos que hay que revisar:

  • Ataque a la aplicación analizada y esperar por retroalimentación del SOC que realiza el monitoreo de dicha aplicación.
A10:2021 Server-Side Request Forgery
Falsificación de Solicitudes del Lado del Servidor (SSRF)

Este vulnerabilidad puede revisarse con apoyo de otras técnicas como Phishing. Debemos crear una liga válida de la aplicación examinada la cual realizará una acción que pueda afectar el contenido de esta.

¿Cómo podemos revisar esta vulnerabilidad?:

  • Prueba de liga con Phishing. Enviar la liga a un usuario de la aplicación y que ejecute la liga.
  • Prueba de liga desde entorno externo. Ejecutar la liga desde un origen no válido o esperado por la aplicación.