¿Qué es el OWASP Top 10?

La Open Web Application Security Project (OWASP) es una fundación sin ánimo de lucro cuyo objetivo es mejorar la seguridad del software. Su documento más conocido, el OWASP Top 10, identifica las diez categorías de vulnerabilidades más críticas en aplicaciones web, basándose en datos reales de miles de auditorías en todo el mundo.

Seguir el OWASP Top 10 no es opcional si manejas datos de usuarios. Es el mínimo exigible en cualquier auditoría de seguridad profesional y es referencia explícita en normativas como el ENS, ISO 27001 y el cumplimiento PCI-DSS.

Dato: El 94% de las aplicaciones auditadas presentan al menos una vulnerabilidad del OWASP Top 10. En nuestras auditorías, la media es de 4,3 categorías afectadas por aplicación.

Las 10 Categorías del OWASP Top 10

A01 Broken Access Control — Control de Acceso Roto

La categoría más crítica desde 2021. Ocurre cuando un usuario puede acceder a recursos o funciones para las que no tiene permiso. El caso más común es el IDOR (Insecure Direct Object Reference): cambiar el ID en una URL para acceder a datos de otro usuario.

GET /api/facturas/1042 → factura del usuario A
GET /api/facturas/1043 → factura del usuario B ← acceso no autorizado

También incluye escalada de privilegios (un usuario normal accede a funciones de administrador), CSRF y exposición de rutas de administración.

A02 Cryptographic Failures — Fallos Criptográficos

Transmisión de datos sensibles en texto claro, uso de algoritmos débiles (MD5, SHA1, DES), contraseñas en base de datos sin hashear con bcrypt/Argon2, claves API hardcodeadas en el código fuente o certificados TLS mal configurados.

Un fallo criptográfico expone datos como contraseñas, tarjetas de crédito o información médica. Es la puerta de entrada a las brechas de datos masivas.

A03 Injection — Inyección (SQLi, XSS, Command Injection)

El clásico. Ocurre cuando datos no validados se envían a un intérprete (base de datos, shell, LDAP). SQL Injection sigue siendo una de las vulnerabilidades más explotadas activamente.

SELECT * FROM usuarios WHERE email='admin'--' AND pass='x'
-- El '--' comenta el resto: acceso sin contraseña

También incluye XSS (Cross-Site Scripting), que permite ejecutar JavaScript malicioso en el navegador de la víctima para robar sesiones o redirigir a páginas de phishing.

A04 Insecure Design — Diseño Inseguro

Fallos en la arquitectura y el diseño de la aplicación que no pueden corregirse solo con parches: ausencia de límites de intentos de login (permite fuerza bruta), flujos de recuperación de contraseña que revelan si un email existe, o lógica de negocio que permite saltarse pasos de pago.

El diseño inseguro requiere rediseño, no solo parcheo.

A05 Security Misconfiguration — Configuración de Seguridad Incorrecta

Credenciales por defecto activas (admin/admin), mensajes de error que exponen stack traces con rutas internas, cabeceras de seguridad HTTP ausentes (CSP, HSTS, X-Frame-Options), directorios listables, servicios innecesarios expuestos o permisos cloud excesivos.

Es la categoría más frecuente en auditorías de empresas que migraron rápidamente a cloud.

A06 Vulnerable and Outdated Components — Componentes Vulnerables

Uso de librerías, frameworks o dependencias con CVEs conocidos sin parchear. Log4Shell (CVE-2021-44228, CVSS 10.0) afectó a millones de sistemas que usaban una librería Java sin actualizar. Lo mismo aplica a WordPress con plugins desactualizados, versiones antiguas de Spring, jQuery o Apache.

Un inventario actualizado de dependencias (SCA) y un proceso de gestión de parches son la solución.

A07 Identification and Authentication Failures — Fallos de Autenticación

Ausencia de MFA en cuentas privilegiadas, tokens de sesión predecibles o que no expiran, contraseñas débiles permitidas sin política de complejidad, exposición del token JWT en URL, o endpoints de login sin protección contra credential stuffing.

POST /api/login {"user":"admin","pass":"admin123"} → 200 OK
-- Sin límite de intentos: atacante puede probar millones de combinaciones
A08 Software and Data Integrity Failures — Fallos de Integridad

Actualización de software sin verificación de firma, deserialización insegura de objetos que permite ejecución de código, pipelines CI/CD sin control de integridad o dependencias cargadas desde fuentes no verificadas (ataques de supply chain como el de SolarWinds o XZ Utils).

A09 Security Logging and Monitoring Failures — Fallos de Monitorización

La mayoría de brechas exitosas se detectan semanas o meses después. Sin logs de acceso adecuados, sin alertas ante comportamientos anómalos y sin un proceso de respuesta a incidentes, un atacante puede moverse libremente por tus sistemas. El tiempo medio de detección de una brecha es de 194 días (IBM Cost of Data Breach 2024).

A10 Server-Side Request Forgery (SSRF)

El servidor hace peticiones HTTP a URLs controladas por el atacante. En entornos cloud, el objetivo habitual es el endpoint de metadatos de la instancia, que devuelve credenciales temporales de IAM con privilegios elevados.

GET /fetch?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/role
→ AccessKeyId, SecretAccessKey, Token de AWS en texto claro

Cómo auditar tu aplicación contra el OWASP Top 10

Existen dos niveles de testing: el análisis automático con herramientas como OWASP ZAP, Burp Suite Community o Nikto, que detecta vulnerabilidades conocidas con alta tasa de falsos positivos; y la auditoría manual profesional, que cubre los fallos de lógica de negocio, el encadenamiento de vulnerabilidades y los fallos de diseño que ningún scanner puede detectar.

Para aplicaciones con datos de usuarios, pagos o información sensible, la auditoría manual es el estándar mínimo recomendado. Explora nuestro servicio de pentesting web con metodología OWASP para conocer cómo lo hacemos.

OWASPSQLiXSSIDORBroken Access ControlSSRFPentesting Web
// Auditoría OWASP
¿Tu aplicación supera el OWASP Top 10?

Auditamos tu aplicación web o API con metodología OWASP Top 10 de forma manual y exhaustiva. Informe técnico con evidencias + re-test incluido. Respuesta en menos de 24h.

Solicitar auditoría OWASP →