Parte: 4 — Seguridad de aplicaciones web · Fuente: OWASP Top 10 (2021) ⏱️ Duración estimada: 75 min · Nivel: Fundamentos
Dominar el OWASP Top 10 (2021) como marco de referencia y taxonomía: qué representa cada categoría, cómo se relacionan entre sí y cómo usarlo para estructurar una auditoría web. Es el mapa que da nombre y contexto a todo lo que atacaremos en el resto de la parte.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | A01 Broken Access Control | La categoría más frecuente hoy |
| 2 | A02 Cryptographic Failures | Datos sensibles mal protegidos |
| 3 | A03 Injection (incluye XSS) | Clásico de alto impacto |
| 4 | A04 Insecure Design | Fallos de arquitectura, no de código |
| 5 | A05 Security Misconfiguration | Defaults inseguros omnipresentes |
| 6 | A06–A10 | Componentes, auth, integridad, logging, SSRF |
| 7 | Metodología de riesgo OWASP | Convierte hallazgos en prioridades |
El OWASP Top 10 es el documento de referencia de la seguridad web: un consenso de la industria, revisado cada pocos años (la edición vigente es la de 2021), sobre las diez categorías de riesgo más críticas en aplicaciones web. Es importante entender qué es y qué no es. No es una lista de vulnerabilidades concretas ni un estándar de cumplimiento exhaustivo; es un instrumento de concienciación y priorización que agrupa fallos por su naturaleza. Su valor para esta parte es doble: ordena las 30 clases dándoles un marco común, y es el vocabulario con el que un informe de pentest web se comunica con desarrolladores y dirección.
La metodología detrás importa: las categorías se ordenan combinando prevalencia (con qué frecuencia aparecen), explotabilidad, detectabilidad e impacto, a partir de datos reales de cientos de miles de aplicaciones. Por eso el orden cambia entre ediciones y refleja cómo evoluciona el ecosistema.
A01 Broken Access Control encabeza la lista de 2021 tras subir desde el quinto puesto, y su ascenso cuenta una historia: el fallo más extendido no es técnico-sofisticado, es dejar que un usuario acceda a lo que no le corresponde —ver el pedido de otro cambiando un número (IDOR), llamar a una función de administración sin ser administrador—. Es barato de explotar, difícil de detectar automáticamente y de impacto directo. A02 Cryptographic Failures (antes "Sensitive Data Exposure") agrupa los datos sensibles mal protegidos: sin cifrar en tránsito o en reposo, con algoritmos rotos, con claves mal gestionadas —todo lo de la Parte 2 visto desde el fallo—. A03 Injection —que en 2021 absorbió el XSS— cubre que datos del usuario acaben interpretados como código o comando: SQL, comandos del sistema, LDAP, y el propio XSS.
A04 Insecure Design fue una categoría nueva en 2021 con una idea potente: hay fallos que no son bugs de implementación sino de diseño, ausencias de un control que nunca se pensó. No se arreglan parcheando código; se arreglan con modelado de amenazas antes de programar. A05 Security Misconfiguration recoge lo inseguro por defecto: paneles expuestos, cabeceras ausentes, permisos excesivos, mensajes de error verbosos. El resto —A06 componentes vulnerables, A07 fallos de identificación y autenticación, A08 fallos de integridad de software y datos, A09 fallos de registro y monitorización, A10 SSRF (añadido por votación de la comunidad, clase 099)— completa el cuadro.
La conclusión práctica que ordena la parte: el Top 10 es el índice mental con el que se aborda cualquier aplicación. Ante un objetivo nuevo, recorrerlo categoría por categoría —"¿tiene control de acceso roto? ¿inyecciones? ¿mala configuración?"— garantiza cobertura y evita el sesgo de ir solo a la vulnerabilidad que uno domina. Para una checklist más exhaustiva y verificable existe OWASP ASVS (clase 115), pero el Top 10 es el punto de partida de todo pentest web.
| Término | Definición concisa |
|---|---|
| OWASP Top 10 | Consenso de las diez categorías de riesgo web más críticas |
| Categoría de riesgo | Agrupación de fallos por naturaleza, no un bug concreto |
| Prevalencia | Con qué frecuencia aparece un fallo en aplicaciones reales |
| A01 Broken Access Control | Acceder a lo que no corresponde; el nº1 de 2021 |
| A02 Cryptographic Failures | Datos sensibles mal protegidos |
| A03 Injection | Datos interpretados como código; incluye XSS desde 2021 |
| A04 Insecure Design | Fallo de diseño, no de implementación |
| A05 Security Misconfiguration | Inseguro por defecto o mal configurado |
| A06 Componentes vulnerables | Dependencias con fallos conocidos |
| A07 Fallos de autenticación | Identificación y gestión de sesión débiles |
| A08 Fallos de integridad | Software o datos sin verificar |
| A09 Fallos de registro | Falta de logging y monitorización |
| A10 SSRF | Server-Side Request Forgery; añadido por la comunidad |
| OWASP ASVS | Estándar de verificación más detallado que el Top 10 |
Ejercicio aplicado de taxonomía y priorización (no ofensivo aún).
/#/score-board) y filtra retos por categoría.Entrega una matriz Top 10 con las 10 categorías, un ejemplo concreto por cada una, su CWE principal y un control de mitigación. Criterio de aceptación: las 10 categorías están cubiertas, los ejemplos son distintos y realistas, y cada control mitiga la causa raíz (no solo el síntoma).
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| Tratar el Top 10 como checklist completa | Es concienciación; usa ASVS/WSTG para cobertura |
| Confundir categoría con vulnerabilidad | Una categoría agrupa muchas CWE |
| Ignorar A04 por ser "abstracta" | El diseño inseguro es causa de muchos bugs |
| Priorizar solo por moda | Prioriza por riesgo en tu contexto |
| Usar la versión 2017 | Cambió el orden y las categorías; usa 2021 |
❓ ¿El Top 10 basta para certificar seguridad? No. Es concienciación. Para verificación usa OWASP ASVS y para testing la WSTG.
❓ ¿Con qué frecuencia cambia? Cada 3–4 años aproximadamente, según datos de la industria y encuestas.
❓ ¿Dónde encaja XSS ahora? Dentro de A03 Injection desde 2021, porque comparte causa raíz: datos no confiables interpretados como código.
Clase 086 — Arquitectura web moderna y superficie de ataque