El cierre del módulo 8 lo dejó claro: tras aplicar cada estándar y herramienta de OWASP sobre BazarNube —remediar el Top Ten, verificar con ASVS, guiar con SAMM, escanear con ZAP y coserlo todo con DevSecOps—, el paso siguiente es demostrar que ese conocimiento está consolidado. Esta lección es esa demostración. No introduce conceptos nuevos: te pone a prueba de forma integradora sobre todo lo recorrido. Encontrarás un banco de preguntas tipo test con respuesta razonada que barre el Top Ten 2021, ASVS, SAMM, ZAP y las buenas prácticas, y un caso práctico final de evaluación sobre BazarNube en el que tendrás que identificar vulnerabilidades, proponer controles y mapearlos a OWASP, con una rúbrica de autoevaluación para medir tu dominio con honestidad. Tómatelo como el examen que tú mismo te corriges: si algo falla, sabrás exactamente a qué lección volver.
Contenido
- Cómo usar esta evaluación
- Banco de preguntas tipo test (con respuestas y explicación)
- Caso práctico final: auditoría exprés de BazarNube
- Rúbrica de autoevaluación
- Interpretar tu resultado
- Errores comunes y consejos
- Ejercicios
- Conclusión
Cómo usar esta evaluación
Para que la nota signifique algo, hazla en condiciones de examen:
- Primero responde, luego corrige. Cubre las soluciones y contesta el test entero antes de leer ninguna explicación.
- Sin apuntes en el test. El banco de preguntas mide lo que recuerdas; el caso práctico sí admite consultar la documentación (así se trabaja en la realidad).
- Escribe tus respuestas del caso práctico antes de mirar la rúbrica: autoevaluarse de memoria infla la nota.
- Anota a qué módulo pertenece cada fallo. El objetivo no es la cifra, sino detectar tus lagunas y volver a la lección concreta.
La evaluación se estructura en dos bloques: 20 preguntas tipo test (conocimiento) y un caso práctico (aplicación). La sección ## Ejercicios del final contiene el propio examen completo con sus soluciones.
Banco de preguntas tipo test (con respuestas y explicación)
A continuación, el banco por áreas. Las respuestas y explicaciones están al final, en la sección de soluciones, para que puedas hacerlo a ciegas. Cada pregunta indica entre corchetes el área que evalúa.
Bloque A — OWASP Top Ten 2021 (M3)
P1. [A01] Un usuario de BazarNube cambia el id de la URL /pedidos/1024 por /pedidos/1025 y ve el pedido de otra persona. ¿Qué categoría del Top Ten 2021 aplica y cómo se llama el patrón?
a) A03 Inyección — SQLi
b) A01 Control de Acceso Roto — IDOR
c) A07 Fallos de Identificación — fijación de sesión
d) A05 Configuración de Seguridad Incorrecta
P2. [A02] ¿Cuál de estas prácticas corresponde a A02 Fallos Criptográficos?
a) Validar la entrada del buscador con consultas parametrizadas
b) Almacenar contraseñas con un hash lento y con sal (p. ej. bcrypt/Argon2)
c) Añadir la cabecera X-Frame-Options
d) Limitar la tasa de peticiones por usuario
P3. [A03] La consulta "SELECT * FROM productos WHERE nombre LIKE '%" + q + "%'" del buscador de BazarNube es vulnerable. ¿Cuál es el control primario recomendado?
a) Escapar comillas manualmente
b) Un WAF que filtre palabras clave SQL
c) Consultas parametrizadas / sentencias preparadas
d) Ocultar los mensajes de error de la base de datos
P4. [A05/A06] BazarNube expone un panel de administración accesible sin autenticación y con la contraseña por defecto del framework. ¿Qué dos categorías del Top Ten describen mejor el problema? a) A05 Configuración Incorrecta y A07 Fallos de Identificación/Autenticación b) A02 Fallos Criptográficos y A03 Inyección c) A08 Fallos de Integridad y A09 Registro y Monitorización d) A04 Diseño Inseguro y A10 SSRF
P5. [A10] La función de "importar catálogo desde URL" de BazarNube permite indicar http://169.254.169.254/... y devuelve metadatos internos del proveedor cloud. ¿De qué se trata?
a) XXE
b) SSRF (A10)
c) Open Redirect
d) Deserialización insegura
P6. [A08] ¿Qué control mitiga A08 Fallos de Integridad de Software y Datos?
a) Verificar firmas/hashes de dependencias y artefactos (p. ej. SCA + integridad de la cadena de suministro)
b) Rotar las claves TLS cada 90 días
c) Aplicar Content-Security-Policy
d) Usar tokens JWT con expiración corta
Bloque B — ASVS (M4)
P7. [ASVS] ¿Qué afirma correctamente sobre los niveles ASVS? a) L1 es el más exigente y L3 el mínimo b) L1 es un mínimo verificable en caja negra; L2 es el estándar para la mayoría de apps; L3 es para aplicaciones críticas c) Los niveles miden la madurez del equipo, no del producto d) ASVS solo aplica a APIs REST
P8. [ASVS] BazarNube maneja pagos y datos personales. En 07-05 se decidió apuntar a ASVS L2. ¿Qué representa mejor el papel de ASVS en el proyecto? a) Una herramienta de escaneo dinámico b) Un catálogo de requisitos verificables usados como criterios de aceptación c) Un modelo de madurez organizativa por dominios d) Una metodología de threat modeling
Bloque C — SAMM (M5)
P9. [SAMM] ¿Qué pregunta responde OWASP SAMM que ASVS no responde? a) ¿Es seguro este endpoint concreto? b) ¿Qué CWE tiene esta vulnerabilidad? c) ¿Cómo de maduro es nuestro programa de seguridad y cómo mejorarlo? d) ¿Qué payload explota esta inyección?
P10. [SAMM] SAMM organiza la práctica de seguridad en cinco funciones de negocio. ¿Cuál de estas es una de ellas? a) Governance (Gobierno) b) Firewalling c) Pentesting d) Cifrado
Bloque D — ZAP (M6)
P11. [ZAP] En el pipeline de BazarNube se usó ZAP en modo baseline. ¿Qué caracteriza a ese modo? a) Realiza ataques activos intrusivos contra la aplicación b) Es un análisis pasivo/rápido pensado para no romper el build y detectar regresiones c) Solo funciona en modo escritorio con intervención manual d) Sustituye por completo a las pruebas de penetración manuales
P12. [ZAP] ¿Cuál es la diferencia entre el escaneo pasivo y activo de ZAP? a) El pasivo modifica las peticiones; el activo solo observa b) El pasivo observa el tráfico sin enviar ataques; el activo envía peticiones maliciosas para provocar vulnerabilidades c) Son sinónimos d) El activo es más seguro para ejecutar en producción
P13. [ZAP] Para probar zonas de BazarNube que requieren login, ZAP necesita: a) Nada especial, escanea todo por defecto b) Configurar un contexto con autenticación y gestión de sesión/usuarios c) Desactivar HTTPS d) Ejecutarse siempre como baseline
Bloque E — Buenas prácticas / S-SDLC / DevSecOps (M7)
P14. [S-SDLC] ¿Por qué es más barato corregir un fallo de seguridad en fase de diseño que tras un incidente? a) Porque los diseñadores cobran menos b) Porque el coste de corrección crece a medida que avanza el ciclo de vida; en producción implica reingeniería, respuesta a incidentes y daño reputacional c) Porque en diseño no hay que escribir código d) No es más barato, es un mito
P15. [Threat modeling] STRIDE es un modelo para clasificar amenazas. ¿Qué representa la "T"? a) Testing b) Tampering (Manipulación) c) Trust (Confianza) d) Transport
P16. [DevSecOps] ¿Qué tipo de herramienta detecta secretos (claves, tokens) filtrados en el repositorio? a) DAST (p. ej. ZAP) b) SAST (p. ej. Semgrep) c) Secret scanning (p. ej. gitleaks) d) SCA (p. ej. Dependency-Check)
P17. [DevSecOps] Asocia la herramienta con su categoría: Dependency-Check. a) SAST — analiza el código fuente b) SCA — analiza dependencias de terceros por vulnerabilidades conocidas c) DAST — ataca la app en ejecución d) Secret scanning
P18. [Cultura] ¿Cuál es el papel de un Security Champion? a) Sustituir al equipo de seguridad b) Ser el punto de referencia de seguridad dentro de su equipo de desarrollo y escalar el conocimiento c) Ejecutar únicamente los escáneres d) Aprobar despliegues sin revisión
P19. [Gates] Un quality gate de seguridad en CI/CD sirve para: a) Acelerar el build ignorando hallazgos b) Bloquear (o alertar) el pipeline cuando aparecen hallazgos por encima de un umbral de severidad definido c) Cifrar el tráfico entre servicios d) Generar documentación automática
P20. [Integración] ¿Qué afirmación resume mejor la filosofía del curso aplicada a BazarNube? a) La seguridad es una fase final antes de desplegar b) La seguridad es una propiedad continua del proceso y de la cultura, integrada en todo el ciclo c) Basta con pasar un pentest anual d) La seguridad depende de comprar suficientes herramientas
Caso práctico final: auditoría exprés de BazarNube
Lee el siguiente extracto de una nueva funcionalidad de BazarNube y responde por escrito antes de mirar la rúbrica.
Contexto. BazarNube añade "Regalos": un usuario sube una imagen desde una URL, escribe una dedicatoria y envía el regalo a otro usuario indicando su
user_id. El backend expone:
POST /regaloscon cuerpo{ "para_user_id": 88, "imagen_url": "http://...", "mensaje": "<texto>" }.- La imagen se descarga en el servidor desde
imagen_urlpara generar una miniatura.- El
mensajese guarda y se muestra tal cual (HTML) en la página del destinatario.- Para consultar un regalo:
GET /regalos/{id}— devuelve el regalo sin comprobar quién lo pide.- Las contraseñas de usuario se guardan con
MD5(password)sin sal.- No hay ningún registro de esta acción en los logs.
Tu tarea:
- Identifica al menos cuatro vulnerabilidades.
- Para cada una, propón un control concreto.
- Mapea cada vulnerabilidad a su categoría del Top Ten 2021 y al área OWASP relevante (ASVS/otra).
Escribe tu respuesta ahora. La solución modelo y la rúbrica están más abajo.
Rúbrica de autoevaluación
Puntúa tu respuesta al caso práctico con esta rúbrica (máximo 20 puntos):
| Criterio | 0 pts | 1 pt | 2 pts |
|---|---|---|---|
| Identificación de vulnerabilidades | Menos de 3 correctas | 3-4 correctas | 5+ correctas y bien nombradas |
| Mapeo al Top Ten 2021 | Mayoría incorrecta | Algunas correctas | Todas correctas |
| Controles propuestos | Genéricos o erróneos | Correctos pero incompletos | Concretos y verificables |
| Referencia a ASVS/estándar | Ausente | Mencionada | Requisito ASVS concreto por control |
| Priorización por riesgo | No prioriza | Prioriza sin justificar | Prioriza y justifica el orden |
Suma los cinco criterios (cada uno hasta 2 puntos = 10) y multiplica el bloque test por su peso; ver la interpretación siguiente.
Interpretar tu resultado
Combina las dos partes. El test aporta 20 puntos (1 por acierto) y el caso práctico 10 (rúbrica), total 30.
| Puntuación total | Nivel | Recomendación |
|---|---|---|
| 27-30 | Dominio sólido | Estás listo para plantearte una certificación (lección 09-02) |
| 21-26 | Competente | Repasa los módulos de los fallos concretos antes de certificarte |
| 15-20 | En progreso | Vuelve a M3, M4 y M7; rehaz el caso práctico |
| < 15 | Bases por consolidar | Repite el curso desde M3 con los laboratorios de 09-03 |
Recuerda: el número orienta, pero lo importante es a qué lección te manda cada fallo. Un 24 con todos los errores concentrados en ZAP se arregla repasando M6; un 24 disperso pide un repaso más amplio.
Errores Comunes y Consejos
- Estudiar para el test y no para el caso. Memorizar las 10 categorías no equivale a detectarlas en código real. El caso práctico es el que mide el dominio verdadero; dale más peso.
- Confundir SAMM con ASVS. Es el error conceptual más frecuente del curso: SAMM mide la madurez del programa; ASVS define requisitos del producto. Si fallaste P8 o P9, vuelve a 05-01 y 04-01.
- Nombrar la vulnerabilidad sin proponer control verificable. "Tiene SSRF" no es una respuesta completa; "validar el destino con una allow-list y bloquear rangos internos como 169.254.0.0/16" sí lo es.
- No priorizar. En una auditoría real no todo pesa igual: un IDOR explotable en producción va antes que un log ausente. La rúbrica premia justificar el orden.
- Consejo: repite esta evaluación pasadas una o dos semanas. La retención real se mide en diferido, no justo después de leer la lección.
Ejercicios
Los tres ejercicios constituyen el examen completo. Hazlos en orden y sin mirar las soluciones.
Ejercicio 1 — Test. Responde las 20 preguntas del banco anterior (P1 a P20). Anota tu letra para cada una.
Ejercicio 2 — Caso práctico. Resuelve la "auditoría exprés de BazarNube": identifica vulnerabilidades, propón controles y mapéalos a OWASP. Puntúate con la rúbrica.
Ejercicio 3 — Plan de repaso. A partir de tus fallos en los ejercicios 1 y 2, redacta un mini plan: lista los módulos a repasar ordenados por número de errores, y una acción concreta por módulo (una lección a releer o un laboratorio a hacer).
Soluciones
Solución 1 — Respuestas del test:
| Pregunta | Respuesta | Explicación breve |
|---|---|---|
| P1 | b | Acceso a un recurso ajeno cambiando un identificador directo = IDOR, dentro de A01 Control de Acceso Roto. |
| P2 | b | El almacenamiento seguro de contraseñas es criptografía aplicada = A02. |
| P3 | c | El control primario contra SQLi es la parametrización; el WAF es defensa en profundidad, no la solución. |
| P4 | a | Panel expuesto = A05 (config incorrecta); credenciales por defecto = A07 (autenticación). |
| P5 | b | Forzar al servidor a pedir una URL interna es SSRF = A10. |
| P6 | a | Verificar firmas/hashes de dependencias y artefactos mitiga A08. |
| P7 | b | L1<L2<L3 en exigencia; L2 es el objetivo típico. |
| P8 | b | ASVS es un catálogo de requisitos verificables, útil como criterios de aceptación. |
| P9 | c | SAMM mide y guía la madurez del programa. |
| P10 | a | Governance es una de las cinco funciones de SAMM. |
| P11 | b | El baseline es pasivo/rápido, pensado para CI sin romper el build. |
| P12 | b | Pasivo observa; activo ataca. |
| P13 | b | Hace falta un contexto con autenticación y gestión de sesión. |
| P14 | b | El coste de corrección crece con el avance del ciclo. |
| P15 | b | T = Tampering (Manipulación). |
| P16 | c | Los secretos se detectan con secret scanning (gitleaks). |
| P17 | b | Dependency-Check es SCA (análisis de dependencias). |
| P18 | b | El champion es el referente de seguridad de su equipo. |
| P19 | b | Un gate bloquea/alerta según umbral de severidad. |
| P20 | b | La seguridad como propiedad continua es la tesis del curso. |
Solución 2 — Caso práctico (respuesta modelo):
| # | Vulnerabilidad | Control propuesto | Top Ten 2021 | Estándar |
|---|---|---|---|---|
| 1 | IDOR en GET /regalos/{id} (no comprueba propietario/destinatario) |
Control de acceso por objeto: verificar que el solicitante es emisor o destinatario | A01 | ASVS V4 (Control de acceso) |
| 2 | SSRF en la descarga de imagen_url (permite URLs internas) |
Allow-list de dominios/esquemas, resolver y bloquear rangos internos (169.254/16, 10/8), timeouts | A10 | ASVS V12/V5 |
| 3 | XSS almacenado en mensaje (se muestra como HTML sin escapar) |
Codificación de salida contextual / sanitización; CSP como defensa en profundidad | A03 | ASVS V5 (Validación y codificación) |
| 4 | Fallo criptográfico: contraseñas en MD5 sin sal |
Hash lento con sal (bcrypt/Argon2/scrypt) y migración progresiva | A02 | ASVS V2 (Autenticación) |
| 5 | Registro/monitorización insuficiente: acción sin logs | Registrar la creación/consulta de regalos con contexto (quién, qué, cuándo) y alertar anomalías | A09 | ASVS V7 (Logging) |
Priorización razonada: 1 y 3 primero (explotables directamente y afectan a datos de usuarios), 2 a continuación (impacto grave pero requiere abusar de la importación), 4 (crítico pero explotable solo si hay fuga de la BD) y 5 transversal (habilita la detección de los demás). Si identificaste 4 de estas 5 con su control y mapeo, tu comprensión del Top Ten aplicado es sólida.
Solución 3 — Plan de repaso. No hay solución única. Un ejemplo bien hecho: "Fallé P11-P13 (ZAP) y el control SSRF del caso -> M6 y 03/A10. Acciones: releer 06-04 (automatización) y montar Juice Shop para practicar SSRF (ver 09-03)." Lo correcto es que el plan salga de tus errores reales, priorice por frecuencia y termine en acciones concretas y verificables, no en buenas intenciones.
Conclusión
Esta evaluación ha cerrado el círculo que abrió el módulo 8: primero aplicaste OWASP sobre BazarNube y ahora has medido cuánto de ello domina de verdad. Si has hecho el test a ciegas y el caso práctico por escrito, ya tienes un mapa honesto de tus fortalezas y de las lecciones a las que conviene volver. Esa autoevaluación no es un trámite: es exactamente el criterio con el que decidirás si estás listo para dar el siguiente paso, acreditar tu conocimiento ante terceros. En la próxima lección, 09-02 Certificación OWASP, aclararemos qué papel juega OWASP en el ecosistema de certificaciones de seguridad de aplicaciones, qué certificaciones de la industria encajan con lo que has aprendido y cómo elegir la adecuada según tu perfil. Llegas a ella con lo esencial ya demostrado: no solo saber, sino saber aplicarlo.
Curso de OWASP: Directrices y Estándares para la Seguridad en Aplicaciones Web
Módulo 1: Introducción a OWASP
Módulo 2: Principales Proyectos de OWASP
- OWASP Top Ten
- OWASP ASVS (Application Security Verification Standard)
- OWASP SAMM (Software Assurance Maturity Model)
- OWASP ZAP (Zed Attack Proxy)
- Otros Proyectos Clave: WSTG, Cheat Sheets y Dependency-Check
Módulo 3: OWASP Top Ten 2021 en Profundidad
- A01:2021 – Pérdida de Control de Acceso
- A02:2021 – Fallos Criptográficos y Exposición de Datos Sensibles
- A03:2021 – Inyección
- Cross-Site Scripting (XSS) en Profundidad
- A04:2021 – Diseño Inseguro
- A05:2021 – Configuración de Seguridad Incorrecta
- Entidades Externas XML (XXE)
- A06:2021 – Componentes Vulnerables y Desactualizados
- A07:2021 – Fallos de Identificación y Autenticación
- A08:2021 – Fallos de Integridad de Software y Datos (Deserialización Insegura)
- A09:2021 – Fallos de Registro y Monitorización
- A10:2021 – Server-Side Request Forgery (SSRF)
Módulo 4: OWASP ASVS (Application Security Verification Standard)
- Introducción a ASVS
- Niveles de Verificación
- Requisitos de Seguridad
- Implementación de ASVS en Proyectos
Módulo 5: OWASP SAMM (Software Assurance Maturity Model)
Módulo 6: OWASP ZAP (Zed Attack Proxy)
- Introducción a ZAP
- Instalación y Configuración
- Escaneo de Vulnerabilidades
- Automatización de Pruebas de Seguridad
Módulo 7: Buenas Prácticas y Recomendaciones
- Ciclo de Vida de Desarrollo Seguro (SDLC)
- Modelado de Amenazas (Threat Modeling)
- Integración de Seguridad en DevOps (DevSecOps)
- Capacitación y Concienciación en Seguridad
- Herramientas y Recursos Adicionales
Módulo 8: Ejercicios Prácticos y Casos de Estudio
- Ejercicio 1: Identificación de Vulnerabilidades
- Ejercicio 2: Implementación de Controles de Seguridad
- Caso de Estudio 1: Análisis de un Incidente de Seguridad
- Caso de Estudio 2: Mejora de la Seguridad en una Aplicación Web
