OWASP y bugs reales
El threat modelling se pregunta qué podría salir mal antes de construir algo.
OWASP te ayuda a reconocer qué ya salió mal en aplicaciones reales.
Un reporte de bug podría decir:
Un cliente que inició sesión puede cambiar el id en
/orders/123y leer el pedido de otra persona.
Eso es un bug real, pero también tiene un nombre compartido: control de acceso roto. En el OWASP Top 10, eso es A01.
Qué es OWASP
OWASP es el Open Worldwide Application Security Project, una comunidad sin fines de lucro que publica guías gratuitas de seguridad para aplicaciones.
El proyecto más conocido de OWASP es el OWASP Top 10. Es una lista de categorías de riesgo de seguridad comunes y graves en aplicaciones web.
Piénsalo como un mapa, no como una checklist.
La lista vigente actual es la de 2025
OWASP indica que la versión publicada más reciente es el OWASP Top 10 2025.
Los nombres y números de categoría de abajo corresponden a esa edición.
La lista le da a los desarrolladores un lenguaje común. En vez de decir "la app deja que los usuarios vean registros que no deberían ver", un equipo puede decir "esto es control de acceso roto."
El nombre corto no arregla el bug. Ayuda a que la gente encuentre más rápido la conversación correcta.
El Top 10 no prueba que una app sea segura. Te ayuda a reconocer los tipos de errores que los desarrolladores siguen encontrando en apps web reales.
Las categorías de 2025
No necesitas memorizar la lista. Lee cada categoría como una pregunta que puedes hacerte sobre el código.
| Código | Categoría | Pregunta para el desarrollador |
|---|---|---|
| A01 | Control de Acceso Roto | ¿Puede alguien acceder a datos o acciones que no debería? |
| A02 | Configuración Incorrecta de Seguridad | ¿Se lanzó con alguna configuración insegura? |
| A03 | Fallas en la Cadena de Suministro de Software | ¿Puedes confiar en los paquetes, herramientas y flujo de compilación? |
| A04 | Fallas Criptográficas | ¿Los datos privados están protegidos al almacenarse o enviarse? |
| A05 | Inyección | ¿El texto ingresado por el usuario puede convertirse en una instrucción? |
| A06 | Diseño Inseguro | ¿La decisión insegura se tomó antes de que existiera el código? |
| A07 | Fallas de Autenticación | ¿La app puede identificar de forma confiable a quién tiene enfrente? |
| A08 | Fallas de Integridad de Software o Datos | ¿El código o los datos fueron alterados antes de llegar a ti? |
| A09 | Fallas de Registro y Alertas de Seguridad | ¿Alguien notaría el ataque? |
| A10 | Manejo Inadecuado de Condiciones Excepcionales | ¿Un error deja la app en un estado inseguro? |
El orden importa menos que el hábito. Elige un bug real, ponle nombre a la categoría y luego explica el impacto en lenguaje simple.
Para el bug del id de pedido, la categoría es A01 Control de Acceso Roto. El impacto es: cualquier cliente que inició sesión puede leer el historial de pedidos y la dirección de entrega de otro cliente.
OWASP le da nombre al bug; tu reporte todavía tiene que explicar el daño.
Empieza con la pregunta simple. ¿Alguien puede leer algo privado? ¿Cambiar algo que no debería? ¿Hacer que la app deje de responder? El nombre de la categoría llega después de entender el daño.
OWASP después de STRIDE
STRIDE y OWASP son útiles en momentos distintos.
| Herramienta | Mejor momento | Pregunta |
|---|---|---|
| STRIDE | Antes y durante el diseño | ¿Qué podría salir mal? |
| OWASP Top 10 | Durante la revisión, pruebas y triage | ¿Qué tipo de bug es este? |
En una sesión de planificación, STRIDE te ayuda a notar que QuickBite necesita calcular el precio en el servidor.
En un reporte de bug real, OWASP te ayuda a decir que el precio controlado desde el navegador es un problema de integridad, y probablemente entra en inyección, control de acceso o diseño inseguro, dependiendo de cómo funcione.
Las herramientas encajan entre sí:
- STRIDE predice posibles fallas.
- La app se construye y se prueba.
- OWASP ayuda a nombrar los bugs que aparecen.
- El triage de bugs convierte el hallazgo en prioridad y siguiente acción.
No tienes que elegir uno u otro. Responden preguntas diferentes.
Ponlo a prueba
Cinco bugs de un backlog real. Ponle nombre a la categoría del OWASP 2025 para cada uno, y luego escribe el impacto en una frase que cualquier persona sin conocimientos técnicos pueda entender.
- Un cliente que inició sesión cambia el id en
/orders/1042y ve la dirección de entrega de otro cliente. - El panel de administración se lanza con la contraseña por defecto todavía activa.
- Un cuadro de búsqueda inserta directamente el texto escrito en una consulta a la base de datos.
- Los intentos fallidos de inicio de sesión nunca quedan registrados en ningún lado.
- Una dependencia fue actualizada la semana pasada por una cuenta de mantenedor que había sido tomada por alguien más.
Compara tus respuestas
| # | Categoría | Impacto en palabras simples |
|---|---|---|
| 1 | A01 Control de Acceso Roto | Cualquier cliente que inició sesión puede leer el historial de pedidos y la dirección de entrega de otro cliente |
| 2 | A02 Configuración Incorrecta de Seguridad | Cualquiera que conozca la contraseña por defecto tiene control administrativo total |
| 3 | A05 Inyección | Un visitante puede hacer que la base de datos ejecute comandos que la app nunca tuvo pensado permitir, leyendo o borrando datos |
| 4 | A09 Fallas de Registro y Alertas de Seguridad | Alguien puede adivinar contraseñas indefinidamente y nadie se enteraría jamás de que pasó |
| 5 | A03 Fallas en la Cadena de Suministro de Software | Código que tú no escribiste ni revisaste está corriendo dentro de tu aplicación |
El número 4 es el que genera más discusión, porque nada está técnicamente roto. Ese es justamente el punto de la categoría: la falla es que el ataque no deja rastro, así que ningún otro control tiene oportunidad de detectarlo.
Fíjate que la columna de impacto nunca nombra una categoría. Eso es intencional, y es el hábito que vale la pena quedarte: la categoría dirige el trabajo hacia el equipo correcto, y la frase que la acompaña es lo que hace que el trabajo se priorice.
Hacia dónde va esto ahora
OWASP te da nombres para los bugs comunes que aparecen en producción. El siguiente capítulo, triage de bugs, muestra cómo convertir uno de esos bugs en un reporte sobre el que un equipo pueda actuar.

