Laboratorios de seguridad: Juice Shop, DVWA y WebGoat

Tres laboratorios de ejemplo enseñan seguridad de aplicaciones web dejando que el alumno ataque un sitio inseguro a propósito: OWASP Juice Shop, DVWA y WebGoat. Cada uno se inicia en la copia de laboratorio del alumno desde una tarjeta de la página Contenedor, o como un laboratorio que usted propone en un módulo, y se abre desde la página del laboratorio como cualquier otro servicio web de un laboratorio.

Existen para que el alumnado aprenda cómo funcionan las debilidades y luego construya y defienda software que no las tenga. Cada objetivo está dentro de la copia de laboratorio del propio alumno, y nada aquí enseña a dirigir una herramienta contra un equipo que no es de quien lo hace. Una copia no tiene ruta a internet ni a ningún otro alumno, así que lo único que puede atacar es la aplicación que el laboratorio inició para él.

Para qué sirven los laboratorios y quién ve qué

Son laboratorios de aprendizaje para una clase, a menudo de alumnos de 16 y 17 años, y cada uno empieza enunciando la regla: ataque su propia copia, nunca un sitio que no sea suyo. Atacar un sistema sin permiso es delito en el Reino Unido (Computer Misuse Act 1990), así que una buena primera conversación trata de por qué existe la regla y de qué es la divulgación responsable.

Una copia es privada del alumno que la inició. Un miembro del personal que imparte el módulo puede abrirla para ver lo que ha hecho, y abrir el trabajo de un alumno queda registrado en el registro de acceso, que el alumno puede leer. Nada de esto se califica automáticamente: el alumno entrega pruebas y usted las califica, como cualquier otro laboratorio.

Los tres son programas de terceros, ejecutados sin modificar desde las imágenes públicas de cada proyecto y no distribuidos por nosotros: OWASP Juice Shop (licencia MIT), DVWA (GPL-3.0) y WebGoat (GPL-2.0). Las versiones están fijadas, de modo que un laboratorio no cambia a mitad de curso.

OWASP Juice Shop

Una tienda en línea con más de un centenar de retos del OWASP Top 10: inyección, autenticación rota, control de acceso roto, cross-site scripting, mala configuración de seguridad y más. Pulse Abrir en la página del laboratorio para ver la tienda. Un marcador (Score Board) lista los retos por dificultad y pone cada uno en verde al resolverlo; no está enlazado en ningún sitio: encontrarlo es el primer reto.

Pistas que no dan la respuesta: mire lo que el navegador envía y recibe, lea lo que hace el código de la página y pregúntese, de cada entrada, qué da por supuesto el programa. Las pistas del Score Board llegan más lejos, y quien lo ha intentado antes aprende más de ellas. La tienda olvida su estado cuando el laboratorio se detiene, así que quien siga mañana copia el código de continuación que ofrece el Score Board.

Se ejecuta con una cuenta sin privilegios en menos de 512 MB; unos pocos retos que necesitan internet o un servicio de IA no pueden resolverse en un laboratorio, que no tiene salida.

DVWA, la Damn Vulnerable Web Application

Una debilidad cada vez: inyección SQL, inyección SQL ciega, inyección de comandos, cross-site scripting (reflejado y almacenado), CSRF, subida de archivos, inclusión de archivos, identificadores de sesión débiles, fuerza bruta y más. El laboratorio crea la base de datos del alumno, así que no hay nada que preparar: ábralo e inicie sesión como admin con la contraseña password.

Empieza en el nivel de seguridad bajo (low). La página DVWA Security lo sube a medium, high e impossible, y el mismo ejercicio en cada nivel muestra qué cambia cada arreglo y por qué el arreglo fácil no basta, que es el objetivo del laboratorio. El botón View Source muestra el código del nivel activo. El ejercicio CAPTCHA no está disponible, porque necesita un servicio en internet. Detener y volver a iniciar el laboratorio da un DVWA nuevo, igual que Create / Reset Database en la página de configuración.

WebGoat

Un curso guiado: cada lección explica una debilidad, por ejemplo inyección, control de acceso roto, deserialización insegura, errores con JWT o recorrido de rutas, y pide al alumno que la aproveche; la lección se marca completada cuando lo consigue. Sirve como primera introducción y como trabajo para casa.

Abra el laboratorio, elija Register e invente un usuario y una contraseña para esta copia; el laboratorio tiene dos enlaces, WebGoat y WebWolf, y WebWolf es para las lecciones que indican usarlo. El progreso del alumno dura mientras el laboratorio está en marcha. WebGoat es una aplicación Java y recibe 1 GB, lo máximo de los tres; tarda unos segundos más en iniciar que los otros.

Proponer uno a una clase

Los tres están en la tarjeta « Laboratorios de ejemplo » de la página Contenedor, donde Iniciar ejecuta uno para probarlo. Para ponerlo como tarea, copie su archivo en un laboratorio suyo.

  1. Tomar el archivo. En la página Contenedor, pulse « Editar el archivo primero » en la tarjeta del laboratorio y copie el archivo. Empieza con la regla y las instrucciones de entrega.
  2. Crear el laboratorio. En su módulo añada un laboratorio de contenedores, elija « Escrito aquí », pegue el archivo y publíquelo. Pruebe primero su propia copia.
  3. Repartirlo. Asígnelo como cualquier tarea, con fecha límite si quiere, e indique en la tarea qué retos o lecciones completar.
  4. Calificar lo entregado. Abra la copia del alumno y las pruebas entregadas, califíquelas y devuélvalas con un motivo si necesitan más.

Qué pedir que entreguen los alumnos

Pruebas en dos mitades. Primero, la prueba del trabajo: una captura de los retos resueltos en el Score Board de Juice Shop, de cada ejercicio de DVWA hecho en low y de nuevo en high, o de cada lección de WebGoat marcada como completada, con la dirección del laboratorio visible en el navegador para que sea claramente su copia. Segundo, la comprensión: para cada una, una explicación escrita con sus palabras de qué es la debilidad, la entrada exacta que usaron y por qué funcionó, qué podría hacer un atacante con ella y cómo debería haberse escrito el código. La segunda mitad indica si se entendió o se copió de una guía.

Para un trabajo más exigente pida también la corrección: el código o la configuración corregidos de dos debilidades, en DVWA leyendo qué hace distinto el nivel high. Una pregunta breve al abrir la copia, como pedirles que resuelvan un reto de nuevo con usted delante, es una comprobación justa.

Dónde encaja cada laboratorio en un curso

Los laboratorios cubren temas que abarca una unidad de informática o ciberseguridad de tipo T-Level o BTEC del Reino Unido; compruebe la redacción exacta en la unidad de su organismo certificador, de la que aquí no se cita nada.

Juice Shop: el OWASP Top 10 en una aplicación realista, amenazas y vulnerabilidades, inyección, debilidades de autenticación y de sesión, control de acceso, fallos criptográficos y mala configuración, y la evaluación de vulnerabilidades como método. DVWA: programación segura y corrección, porque el mismo ejercicio en cuatro niveles es el mismo código, inseguro y luego corregido; validación de entradas, codificación de salidas, consultas parametrizadas y manejo de archivos. WebGoat: una primera introducción a cada clase de debilidad con la explicación al lado, y fundamentos de criptografía, tokens y deserialización.

Los tres apoyan la parte legal y ética de la unidad: autorización y alcance, Computer Misuse Act 1990, divulgación responsable y por qué solo se prueba un sistema que se tiene permiso para probar.

Preguntas frecuentes

¿Puede un alumno usar estos laboratorios para atacar un sitio real?
No. Una copia de laboratorio no tiene ruta a internet ni a la copia de otro alumno, así que el único objetivo es la aplicación que el laboratorio inició. El texto al inicio de cada laboratorio repite la regla: ataque su propia copia y nunca un sitio que no sea suyo.
¿Se califican solos los laboratorios?
No. El Score Board de Juice Shop y las marcas de WebGoat muestran al alumno su propio progreso, pero a usted no le llega nada. El alumno entrega capturas y una explicación escrita, y usted las califica.
¿Por qué los laboratorios no usan la última versión?
Cada uno está fijado a una versión que hemos iniciado y comprobado, para que la misma lección funcione igual para todos los alumnos y para usted. Las versiones cambian a propósito, nunca por sorpresa.
¿Qué laboratorios necesitan más memoria?
WebGoat, que recibe 1 GB. DVWA y su base de datos reciben 896 MB entre los dos y Juice Shop 512 MB. Cada uno cabe en los 2 GB que puede usar una copia de laboratorio.