← CC3091

OWASP Top 10

Semestre 02, 2026

Introducción

Idea central

La seguridad no es una fase que se agrega al final del proyecto, es una propiedad que se construye durante todo el ciclo de desarrollo.

  • El OWASP Top 10 es el documento de referencia más usado en la industria para entender los riesgos de seguridad más críticos en aplicaciones web.
  • No es una lista de vulnerabilidades sueltas, es una lista de causas raíz que se repiten en miles de aplicaciones.

OWASP

Open Worldwide Application Security Project, una fundación sin fines de lucro dedicada a mejorar la seguridad del software.

Todo su material es abierto y gratuito.
Lo produce una comunidad global de desarrolladores, auditores e investigadores.
ZAP y Dependency-Check son sus herramientas de análisis.
ASVS y Cheat Sheet Series son su material de referencia.

El Top 10 como estándar de referencia

  • Es un documento de concientización, no una certificación ni una lista de cumplimiento.
  • Su valor está en dar un lenguaje común entre desarrollo, arquitectura, QA y seguridad para hablar de riesgo.
  • Muchos marcos regulatorios y contratos de software lo citan como línea base mínima.
  • La edición vigente es OWASP Top 10:2025, publicada en su versión final en enero de 2026.

Vocabulario de la medición

La lista no se arma por opinión, se arma con datos de la industria. Para leer esos datos hacen falta tres siglas.

CWE: catálogo público de tipos de error de programación, como no validar la entrada del usuario o guardar contraseñas sin cifrar.
CVE: registro de vulnerabilidades concretas encontradas en productos reales, cada una con su identificador.
CVSS: puntaje de 0 a 10 que mide qué tan grave es una vulnerabilidad registrada.

Los datos detrás de la lista

  • 13 organizaciones aportaron los resultados de sus pruebas sobre más de 2.8 millones de aplicaciones.
  • Cada categoría del Top 10 agrupa varios CWE emparentados, 248 en total.
  • Prevalencia: porcentaje de aplicaciones probadas donde se encontró al menos un error de esa categoría.
  • Las categorías más prevalentes suben de posición en la lista.
  • La gravedad de cada categoría sale de los CVE ya reportados y de sus puntajes CVSS.

Seguridad en el ciclo de desarrollo

  • Corregir un defecto de seguridad en producción cuesta mucho más que evitarlo en diseño.
  • La práctica actual es desplazar la seguridad hacia la izquierda del ciclo, lo que la industria llama shift left.
  • La seguridad deja de ser una revisión final y se integra en cada etapa del proceso.

Seguridad por etapa

Requerimientos: casos de abuso junto a los casos de uso.
Diseño: modelado de amenazas sobre los flujos críticos.
Construcción: revisión de código y análisis estático.
Pruebas: análisis dinámico y pruebas de penetración.
Operación: configuración endurecida y monitoreo continuo.

OWASP Top 10:2025

  • A01 Broken Access Control — control de acceso roto
  • A02 Security Misconfiguration — configuración de seguridad incorrecta
  • A03 Software Supply Chain Failures — fallas en la cadena de suministro
  • A04 Cryptographic Failures — fallas criptográficas
  • A05 Injection — inyección

OWASP Top 10:2025

  • A06 Insecure Design — diseño inseguro
  • A07 Authentication Failures — fallas de autenticación
  • A08 Software or Data Integrity Failures — fallas de integridad de software o datos
  • A09 Security Logging and Alerting Failures — fallas de registro y alerta
  • A10 Mishandling of Exceptional Conditions — manejo incorrecto de condiciones excepcionales

A01 — Broken Access Control

Definición

El control de acceso hace cumplir la política de que un usuario no puede actuar fuera de los permisos que le corresponden.

  • Cuando falla, un atacante accede a datos ajenos, modifica información o ejecuta funciones de negocio que no le corresponden.
  • Es la categoría número uno desde 2021 y en 2025 absorbió también el SSRF.

A01 — Fallas comunes

Permitir por defecto en lugar de denegar por defecto.
Cambiar un identificador en la URL y ver el registro de otro usuario.
API sin control de acceso en POST, PUT y DELETE.
Elevación de privilegios manipulando tokens JWT o cookies.
Navegación forzada a páginas administrativas sin autenticación.
CORS mal configurado que expone la API a orígenes no autorizados.

A01 — Prevención

  • Denegar por defecto todo recurso que no sea explícitamente público.
  • Implementar el control de acceso del lado del servidor, nunca en el código del cliente.
  • Validar la propiedad del registro en el modelo de dominio, no solo el rol del usuario.
  • Registrar los intentos fallidos y aplicar límites de tasa en las API.
  • Invalidar la sesión al cerrar sesión y usar tokens de vida corta.

A02 — Security Misconfiguration

Definición

El software puede estar bien programado y aun así ser inseguro por cómo está configurado.

  • Subió del puesto 5 al puesto 2, impulsada por la complejidad de la nube, los contenedores y la infraestructura como código.

A02 — Fallas comunes

Cuentas y contraseñas por defecto que nunca se cambiaron.
Servicios, puertos o funciones innecesarias habilitadas.
Mensajes de error detallados expuestos al usuario final.
Permisos abiertos en almacenamiento en la nube.
Encabezados de seguridad ausentes o mal configurados.

A02 — Prevención

  • Definir un proceso de endurecimiento repetible y automatizado para todos los ambientes.
  • Mantener desarrollo, pruebas y producción configurados de forma equivalente.
  • Eliminar componentes y funciones que no se usan.
  • Revisar la configuración dentro del pipeline, no como tarea manual.

A03 — Software Supply Chain Failures

Nueva en 2025

Reemplaza y amplía la antigua categoría de componentes vulnerables y desactualizados.

  • Ya no se trata solo de usar una biblioteca con vulnerabilidades conocidas.
  • Cubre todo el proceso de construir, distribuir y actualizar software.

A03 — Alcance

Dependencias directas y transitivas sin control de versiones.
Componentes obtenidos de fuentes no confiables.
Pipelines de CI/CD con permisos excesivos o sin separación de funciones.
Repositorios, estaciones de trabajo y servidores de construcción sin endurecer.

A03 — Casos reales

SolarWinds, 2019. Actualizaciones firmadas del proveedor llevaron malware a unas 18,000 organizaciones.
Log4Shell, 2021. Una vulnerabilidad crítica en una biblioteca de registro presente en medio mundo.
Shai-Hulud, 2025. Un gusano autopropagante en npm que infectó más de 500 paquetes y robó credenciales.

A03 — Prevención

  • Mantener un SBOM del proyecto, el inventario de todo lo que se incluye.
  • Fijar versiones exactas y verificar integridad con firmas o sumas de verificación.
  • Monitorear bases de vulnerabilidades como CVE, NVD y OSV de forma continua.
  • Obtener componentes solo de fuentes oficiales y por canales seguros.
  • Usar autenticación multifactor y menor privilegio en repositorios y pipelines.

A04 — Cryptographic Failures

Definición

El foco está en la protección de los datos, tanto en tránsito como en reposo.

  • Antes se llamaba Sensitive Data Exposure, un nombre que describía el síntoma.
  • El nombre actual apunta a la causa raíz, que es el mal uso de la criptografía.

A04 — Fallas comunes

Transmitir datos en texto claro, sin TLS.
Usar algoritmos obsoletos como MD5 o SHA-1.
Guardar contraseñas con hash simple en lugar de funciones diseñadas para contraseñas.
Claves versionadas en el repositorio o generadas con aleatoriedad predecible.

A04 — Prevención

  • Clasificar los datos y definir qué requiere cifrado según su sensibilidad.
  • No almacenar datos sensibles que no sean necesarios.
  • Usar TLS actualizado en todo tránsito y algoritmos vigentes en reposo.
  • Almacenar contraseñas con Argon2, bcrypt o scrypt, con salt por usuario.
  • Gestionar las claves en un servicio dedicado, con rotación definida.

A05 — Injection

Definición

Ocurre cuando datos no confiables se envían a un intérprete como parte de un comando o consulta.

  • Incluye inyección SQL, NoSQL, de comandos del sistema operativo, LDAP y también Cross-Site Scripting.
  • Bajó del puesto 3 al 5 porque los frameworks modernos ya traen defensas por defecto.

A05 — Fallas comunes

Construir consultas concatenando cadenas con entrada del usuario.
Pasar parámetros directamente a comandos del sistema operativo.
Insertar entrada del usuario en el HTML de la página sin escapar.

A05 — Prevención

  • Usar consultas parametrizadas o un ORM que las genere.
  • Validar la entrada en el servidor con listas de permitidos.
  • Escapar la salida según el contexto donde se inserta.
  • Limitar los registros que devuelve una consulta, para acotar la fuga si el ataque tiene éxito.

A06 — Insecure Design

Idea central

Un diseño inseguro no se arregla con una implementación perfecta.

Defecto de implementación: un error al escribir el código.
Defecto de diseño: la ausencia de un control que nunca se pensó.

A06 — Fallas comunes

Recuperación de contraseña basada en preguntas de seguridad adivinables.
Ausencia de límites de negocio, como comprar mil boletos en una sola transacción automatizada.
No considerar escenarios de abuso al definir los requerimientos.

A06 — Prevención

  • Hacer modelado de amenazas sobre los flujos críticos del sistema.
  • Escribir casos de abuso junto a los casos de uso.
  • Usar patrones de diseño seguros y componentes ya endurecidos.
  • Separar por capas y por inquilinos según el nivel de exposición de cada parte.

A07 — Authentication Failures

Definición

Confirmar la identidad del usuario y sostener esa identidad durante toda la sesión.

  • En 2025 cambió de nombre, de Identification and Authentication Failures a Authentication Failures.

A07 — Fallas comunes

Permitir contraseñas débiles o filtradas en brechas conocidas.
No limitar los intentos de inicio de sesión, habilitando fuerza bruta.
Identificadores de sesión expuestos en la URL o que no se invalidan al salir.
Recuperación de cuenta más débil que el inicio de sesión mismo.

A07 — Prevención

  • Implementar autenticación multifactor donde el riesgo lo justifique.
  • Verificar las contraseñas contra listas de credenciales filtradas.
  • Aplicar límites de intentos y retardos progresivos, registrando los fallos.
  • Generar identificadores de sesión aleatorios del lado del servidor, con expiración explícita.

A08 — Software or Data Integrity Failures

Definición

Confiar en código o en datos sin verificar su origen ni su integridad.

Actualizaciones que se aplican sin verificar la firma del paquete.
Deserializar objetos provenientes de una fuente no confiable.

A08 — Prevención

  • Verificar firmas digitales en actualizaciones y artefactos.
  • Evitar la deserialización de datos no confiables o restringirla a tipos conocidos.
  • Usar Subresource Integrity al cargar recursos externos desde un CDN.
  • Proteger el pipeline con revisión de cambios y segregación de funciones.

A09 — Security Logging and Alerting Failures

Idea central

Sin registro y alerta no hay detección, y sin detección un incidente puede durar meses sin que nadie se entere.

  • En 2025 el nombre pasó de monitoring a alerting, para enfatizar que registrar no basta si nadie reacciona.

A09 — Fallas comunes

Eventos de autenticación y de control de acceso que no se registran.
Registros que solo quedan en el servidor local y se pierden con él.
Alertas que nadie revisa o umbrales mal definidos.
Registros que guardan datos sensibles en texto claro.

A09 — Prevención

  • Registrar inicios de sesión, fallos de acceso y transacciones de alto valor con contexto suficiente.
  • Centralizar los registros y protegerlos contra alteración.
  • Definir alertas accionables y quién responde a cada una.
  • Tener un plan de respuesta a incidentes y ejercitarlo.

A10 — Mishandling of Exceptional Conditions

Nueva en 2025

Agrupa 24 CWE sobre el manejo incorrecto de errores y condiciones inesperadas.

  • La idea central es que el comportamiento del sistema cuando algo sale mal también es una decisión de diseño.

A10 — Fallas comunes

Fallar de forma abierta, donde un error en la verificación termina concediendo el acceso.
Devolver trazas de la excepción al usuario, revelando estructura interna.
Capturar excepciones de forma genérica y continuar como si nada hubiera pasado.
Dejar el sistema en estado inconsistente tras un error a medio camino.

A10 — Prevención

  • Fallar de forma cerrada, denegando por defecto cuando la verificación no se completa.
  • Devolver mensajes de error genéricos al usuario y el detalle solo al registro.
  • Manejar cada excepción de forma explícita y probar las rutas de error.
  • Usar transacciones para que una operación fallida no deje datos a medias.

Cambios respecto a 2021

Dos categorías nuevas, A03 cadena de suministro y A10 condiciones excepcionales.
Tres renombramientos, entre ellos A07 y A09.
Una fusión, SSRF dejó de ser categoría propia y quedó dentro de A01.
Cuatro reordenamientos, con Security Misconfiguration subiendo del 5 al 2.

Tendencia de fondo

Lectura

El riesgo se movió del código aislado hacia el proceso, la configuración y las dependencias.

  • Injection e Insecure Design bajaron posiciones porque los frameworks resolvieron parte del problema.
  • Configuración y cadena de suministro subieron porque hoy el software se ensambla más de lo que se escribe.

Prácticas para el equipo de desarrollo

Modelado de amenazas en el diseño de cada funcionalidad crítica.
SAST, análisis estático del código propio en cada integración.
SCA, análisis de las dependencias con SBOM actualizado.
DAST, análisis dinámico sobre la aplicación desplegada con OWASP ZAP.

Prácticas en el día a día

Revisión de código con una lista de verificación de seguridad, no solo de estilo.
Pruebas de regresión de seguridad, para que un defecto corregido no regrese.
Formación continua del equipo sobre los riesgos vigentes.

Límites del Top 10

Es un punto de partida, no un programa completo de seguridad.

  • Cubre riesgos frecuentes, no todos los riesgos del sistema.
  • No reemplaza al modelado de amenazas propio de la aplicación.
  • Para verificación formal existe el OWASP ASVS, que define niveles y requisitos comprobables.
  • Una aplicación puede pasar el Top 10 y seguir siendo insegura frente a las amenazas de su dominio.

Recursos

OWASP Top 10:2025 — top10.owasp.org/2025
Cheat Sheet Series — cheatsheetseries.owasp.org
ASVS, estándar de verificación de seguridad
OWASP ZAP — zaproxy.org