Laboratorio · Lección 03

Máquinas virtuales, snapshots y ventanas de daño

Un contenedor comparte núcleo con tu portátil. Para casi todo el curso eso basta; para ejecutar una muestra de software malicioso, no. Esta lección traza la línea entre las dos herramientas, explica qué es exactamente una instantánea —y por qué no es una copia de seguridad—, y define el concepto que de verdad gobierna un laboratorio destructivo: la ventana de daño, el trozo de tiempo que estás dispuesto a perder.

Al terminar sabrás

  • Decidir con criterio cuándo un contenedor basta y cuándo hace falta una máquina virtual.
  • Explicar qué guarda una instantánea, cómo se implementa y por qué degrada el rendimiento si acumulas muchas.
  • Argumentar por qué una instantánea no es una copia de seguridad, con el escenario concreto en que falla.
  • Elegir el modo de red de una máquina virtual de laboratorio y descartar el modo puente sin dudarlo.
  • Enumerar qué sobrevive a una reversión, que es donde se equivoca casi todo el mundo.
  • Definir la ventana de daño de tu laboratorio como un número, no como una sensación.

1Por qué importa

Hay un momento en la carrera de cualquiera que trabaje en seguridad en que tiene que ejecutar algo que no quiere ejecutar. Una muestra recibida en un incidente, un binario de un repositorio dudoso, un instalador que hace cosas raras. En ese momento la pregunta “¿esto es peligroso?” es inútil: se asume que sí. La pregunta correcta es “si es tan malo como puede ser, ¿qué pierdo y cómo vuelvo?”.

Responder eso con precisión es lo que separa a alguien que analiza de alguien que reza. Y la respuesta no es un producto ni una casilla que se activa: es una combinación de tres decisiones —qué tipo de aislamiento usas, cada cuánto tomas una instantánea y qué canales dejas abiertos entre la máquina sacrificable y la tuya—. Las tres se toman antes de ejecutar nada, porque después ya no hay decisión que tomar.

Hay además una razón que no es de análisis de malware y aplica a todo el mundo: un laboratorio reversible te vuelve valiente. Cuando destruir y reconstruir cuesta dos minutos, pruebas cosas que no probarías si costara una tarde. La mayor parte de lo que se aprende en este curso viene de romper algo a fondo, y romper a fondo solo es razonable si volver es barato.

El objetivo real

Al terminar tienes que poder decir, para tu propio laboratorio, una frase como esta: “si algo se me escapa dentro de la máquina virtual, pierdo como mucho el trabajo de la última hora, no toca mis archivos porque no hay carpetas compartidas, y no habla con nadie porque la red es solo de anfitrión”. Con números, no con adjetivos.

2Conceptos

Vocabulario de esta lección
  • Hipervisor: la capa que reparte el hardware entre varias máquinas virtuales. De tipo 1 si corre directamente sobre el hardware, de tipo 2 si corre como aplicación sobre tu sistema.
  • Máquina virtual: sistema completo con su propio núcleo. Esa es la única diferencia que importa frente a un contenedor.
  • Instantánea: punto de retorno. Congela el estado del disco y, opcionalmente, la memoria.
  • Copia sobre escritura: la técnica que hace que una instantánea sea instantánea. A partir de ella, los cambios se escriben en un archivo aparte.
  • Cadena de instantáneas: la pila de deltas acumulados. Cada nivel añade una indirección de lectura.
  • Plantilla: máquina limpia, actualizada y con herramientas, de la que salen todas las demás. Se toca lo mínimo y se clona mucho.
  • Ventana de daño: el intervalo entre el último estado bueno conocido y el momento en que reviertes. Todo lo que ocurra ahí se pierde, y todo compromiso ocurrido ahí tuvo ese tiempo para actuar.
  • Escape del invitado: fallo que permite salir de la máquina virtual al anfitrión. Raro y caro, pero existe.

3Explicación profunda

Contenedor o máquina virtual: dónde está la línea

Como viste en la lección anterior, un contenedor es un proceso de tu sistema con vistas restringidas. Su frontera son los namespace y los cgroup, y esa frontera se apoya en el mismo núcleo que ejecuta todo lo demás en tu máquina. Una máquina virtual, en cambio, ejecuta su propio núcleo sobre hardware emulado o virtualizado; la frontera la impone el hipervisor con ayuda del procesador.

ContenedorMáquina virtual
NúcleoEl tuyo, compartidoPropio
ArranqueSegundos o menosDecenas de segundos
Coste en disco y memoriaBajoAlto
Punto de retornoRecrear desde la imagenInstantánea, con memoria incluida si quieres
Contiene un fallo de aplicación
Contiene un exploit de núcleoNoSí, salvo escape del invitado
Sirve para software malicioso desconocidoNoSí, con las precauciones de esta lección

La regla operativa del curso sale directa de esa tabla: contenedores para practicar con software que tú controlas; máquina virtual para ejecutar software que no controlas. Casi todas las fases caen en el primer grupo. Las de ofensiva y las de análisis caen en el segundo, y por eso esta lección llega antes que ellas.

Conviene decir también lo que una máquina virtual no arregla. El hipervisor es software, tiene fallos y existen escapes del invitado documentados. Son raros, valen mucho dinero y rara vez se gastan en alguien que está estudiando; pero la frase correcta es “muchísimo más caro de atravesar”, no “imposible”. Si el material es de verdad sensible, el aislamiento se hace con hardware separado y sin red, y eso es otra conversación.

Qué es realmente una instantánea

Una instantánea no copia el disco. Sería lentísimo. Lo que hace es congelar el archivo de disco actual, marcarlo de solo lectura y crear encima un archivo nuevo donde van todas las escrituras posteriores. Es copia sobre escritura, y por eso tomarla es prácticamente instantáneo aunque el disco ocupe cien gigas.

# Antes de la instantanea
  [ disco.base ]  <- lecturas y escrituras van aqui

# Despues de tomar "limpia"
  [ disco.base ]  (solo lectura, congelado)
        ^
  [ delta-limpia ]  <- todas las escrituras nuevas van aqui

# Despues de tomar "antes-de-ejecutar"
  [ disco.base ] <- [ delta-limpia ] <- [ delta-antes ]  <- escrituras

# Revertir a "limpia" = tirar los deltas por encima. No borra el base.
Revertir no reconstruye nada: descarta capas. Por eso es instantáneo y por eso lo descartado no se puede recuperar después.

De esa implementación salen tres consecuencias que la gente descubre tarde y mal. La primera: cada nivel de la cadena añade una indirección de lectura. Con dos o tres no se nota; con quince, la máquina virtual va notablemente peor y nadie sabe por qué. Las instantáneas son puntos de retorno, no un historial de versiones.

La segunda: el espacio en disco crece con los cambios, no con el número de instantáneas, pero crece de forma difícil de predecir. Una máquina que descarga actualizaciones grandes puede duplicar su tamaño en un rato sin que hayas hecho nada.

Y la tercera, la importante: una instantánea no es una copia de seguridad. Vive en el mismo almacenamiento que el disco al que protege y depende de ese disco base para tener sentido. Si el disco del anfitrión falla, si borras el directorio de la máquina virtual o si el archivo base se corrompe, la instantánea se va con él. Protege contra “he roto el sistema operativo invitado”, no contra “he perdido el almacenamiento”. Son dos riesgos distintos y necesitan dos mecanismos distintos.

Un detalle más, que cambia el flujo de trabajo: hay instantáneas con memoria y sin ella. Con memoria guardan además el estado de la RAM, así que al revertir la máquina vuelve exactamente al instante congelado, con los procesos vivos. Ocupan más y tardan más, y a cambio son la única forma de conservar un estado que solo existe en memoria, como una clave descifrada o un proceso a medias. Para análisis dinámico son imprescindibles; para “vuelve a estar limpia”, sobran.

La red de la máquina virtual: tres modos, uno prohibido

Todo el aislamiento del disco no sirve de nada si la máquina tiene salida libre. Los hipervisores ofrecen básicamente tres modos, y elegir por defecto es exactamente el error:

ModoQué puede alcanzar la máquinaPara un laboratorio
Solo anfitriónAl anfitrión y a otras máquinas del mismo grupo. Nada más.La opción por defecto. Equivale a internal: true.
Red internaSolo a otras máquinas virtuales. Ni siquiera al anfitrión.Aún mejor cuando el laboratorio tiene varias máquinas.
NATA internet, saliendo con la dirección del anfitrión.Solo temporalmente, para instalar, y se apaga después.
PuenteA tu red local como una máquina más, con dirección propia.Nunca. Pone un sistema comprometido dentro de tu red.

El modo puente merece la prohibición explícita porque es el que más se elige por accidente: es el que “simplemente funciona” cuando algo no conecta. Una máquina virtual en puente aparece en tu red como un equipo más; si dentro hay software malicioso, ese software está en tu red doméstica o corporativa, no en tu laboratorio. El aislamiento del hipervisor sigue intacto y da igual, porque el ataque no necesita escapar: le has dado una salida por la puerta.

El modo NAT es el matiz razonable. Instalar el sistema y las herramientas necesita internet. La disciplina es: NAT mientras preparas, instantánea llamada “plantilla” cuando terminas, y cambio a solo anfitrión antes de meter nada sospechoso dentro. Que el cambio de red venga antes que la muestra no es una formalidad: después ya no puedes confiar en la máquina para nada, ni siquiera para cambiarle la red.

Qué sobrevive a una reversión

Aquí es donde falla la intuición. Revertir devuelve el disco —y la memoria, si la instantánea la incluía— a un estado anterior. No devuelve nada que ya haya salido de la máquina. La lista de supervivientes es más larga de lo que parece:

Lo que una reversión no deshace
  • Lo escrito en carpetas compartidas. Viven en el disco del anfitrión; el disco de la máquina virtual no las incluye.
  • Lo copiado por el portapapeles compartido y lo arrastrado entre ventanas. Son canales entre los dos sistemas, activos por defecto en muchas instalaciones.
  • Lo que salió por la red. Credenciales exfiltradas, una conexión de vuelta ya establecida, un correo enviado. Si tuvo salida, ya está fuera.
  • Lo escrito en un dispositivo conectado, sea un USB o un disco montado.
  • La firmware y la configuración de la propia máquina virtual en algunos hipervisores, que no siempre entra en la instantánea.
  • La evidencia. Al revertir destruyes exactamente lo que necesitarías para entender qué pasó.

Ese último punto merece una regla de trabajo: antes de revertir, toma una instantánea del estado sucio. Cuesta segundos, te permite volver a la escena del crimen y es la diferencia entre “ejecuté algo raro y lo deshice” y “ejecuté algo raro y puedo contarte qué hizo”. Un laboratorio que solo sabe volver atrás enseña la mitad.

La ventana de daño, expresada como número

La ventana de daño tiene dos caras y conviene medir las dos. Hacia atrás, es cuánto trabajo pierdes al revertir: si tu última instantánea es de hace tres horas, pierdes tres horas. Hacia delante, es cuánto tiempo tuvo el problema para actuar: si algo se ejecutó justo después de esa instantánea y lo detectas ahora, tuvo tres horas de red, de disco y de lo que le hayas dejado abierto.

Las dos caras empujan en direcciones opuestas y por eso hay que decidir a propósito. Instantáneas muy frecuentes reducen la pérdida y alargan la cadena, con lo que la máquina va peor y acabas limpiando cadenas a mano. Instantáneas escasas mantienen la máquina ágil y convierten cada reversión en una tarde perdida. No hay un valor correcto; hay un valor tuyo, y el trabajo consiste en escribirlo.

Un patrón que funciona bien para este curso: una instantánea plantilla con el sistema limpio y las herramientas puestas, que no se toca nunca; una instantánea por sesión, tomada al empezar; y una instantánea antes de cada acción irreversible, que se descarta al terminar el ejercicio. Tres niveles, cadena corta, y la peor pérdida posible es la sesión en curso.

4Ejemplo sencillo

# Instantanea = punto de guardado de un videojuego

guardar partida       tomar la instantanea
cargar partida        revertir: vuelves al punto, pierdes lo de despues
la tarjeta de memoria el disco del anfitrion

# Donde se rompe la analogia, y es lo que hay que recordar

si se estropea la tarjeta   pierdes la partida Y todos los guardados
                            -> una instantanea NO es una copia de seguridad

si mandaste una carta       cargar partida no la trae de vuelta
durante la partida          -> lo que salio de la maquina, salio
La analogía sirve para entender el mecanismo y engaña justo en las dos cosas que importan: la instantánea comparte destino con el disco, y no revierte el mundo exterior.

5Ejemplo técnico

El ciclo completo, con los nombres que vas a usar durante todo el curso. Da igual el hipervisor: los cuatro pasos son los mismos y el orden no es negociable.

el ciclo de una sesión de laboratorio
1 · preparar red en NAT · instalar sistema y herramientas · actualizar apagar · instantanea "plantilla" 2 · aislar ANTES de traer nada red a solo-anfitrion · carpetas compartidas desactivadas portapapeles compartido desactivado · sin USB conectado 3 · trabajar instantanea "sesion" al empezar instantanea "antes-de-X" justo antes de cada accion irreversible 4 · cerrar instantanea "sucio" ANTES de revertir <- el paso que todos se saltan revertir a "plantilla" · consolidar la cadena · apagar

El paso 2 es el que ordena todo lo demás. Aislar después de introducir la muestra no es aislar: es cerrar la puerta cuando ya han entrado. Y el paso 4 en rojo es el que separa un laboratorio de aprendizaje de uno de análisis: sin la instantánea del estado sucio, cada vez que reviertes tiras a la basura la única prueba de lo que acababas de observar.

Sobre la consolidación: la mayoría de hipervisores tienen una operación para fusionar la cadena en un único disco. Conviene ejecutarla al terminar cada sesión larga; es lo que evita llegar a los quince niveles y preguntarse por qué la máquina virtual se arrastra.

6Diagrama

Línea de tiempo de una sesión: la instantánea plantilla, la instantánea de sesión, el momento en que se ejecuta algo dudoso y el momento de detección; la ventana de daño es el intervalo entre la última instantánea buena y la reversión ventana de dano plantilla limpia sesion ultimo estado bueno se ejecuta algo dudoso detectas y reviertes hacia atras: todo el trabajo de aqui se pierde hacia delante: todo este tiempo tuvo para actuar lo que salio por la red o por una carpeta compartida NO vuelve al revertir
La ventana de daño no se mide en gigas ni en instantáneas: se mide en minutos, y es la misma cifra por los dos lados.
Ver el mismo diagrama como código Mermaid (editable)
timeline
    title Sesion de laboratorio
    plantilla : estado limpio conocido
    sesion : ultimo estado bueno
    ejecucion : empieza la ventana de dano
    deteccion : instantanea del estado sucio
    reversion : vuelta a plantilla

7Código

La disciplina se vuelve real cuando se escribe. Esta ficha vive junto al laboratorio y se rellena antes de cada sesión; su valor no está en el formato sino en obligarte a poner un número donde antes había una sensación:

# laboratorio.yml — ficha de la maquina de analisis
maquina: lab-analisis
aislamiento:
  red: solo-anfitrion       # nunca puente; NAT solo al preparar
  carpetas_compartidas: false
  portapapeles: false
  arrastrar_soltar: false
  usb: false

instantaneas:
  plantilla: limpia + herramientas    # no se toca nunca
  cadencia_sesion: al empezar
  cadencia_accion: antes de cada accion irreversible
  antes_de_revertir: si         # conservar el estado sucio
  max_niveles_cadena: 4          # por encima, consolidar

ventana_de_dano:
  trabajo_que_acepto_perder: 60 min
  tiempo_max_de_actuacion: 60 min

copia_de_seguridad:
  que: notas y artefactos exportados, nunca el disco de la VM
  donde: fuera del almacenamiento de la maquina virtual
  # una instantanea NO cuenta como copia: comparte destino con el disco

Fíjate en el último bloque. Es el que corrige el error conceptual más caro de esta lección: la copia de seguridad protege de perder el almacenamiento, la instantánea protege de romper el sistema invitado. Confundirlas se descubre siempre en el peor momento posible.

8Qué puede salir mal

Los cinco errores que cuestan una tarde o algo peor

Red en puente “porque así funciona”. Es el error grave. La máquina virtual pasa a ser un equipo más de tu red local, y todo el aislamiento del hipervisor deja de importar porque nadie necesita escapar de nada.

Carpetas compartidas y portapapeles activos. Suelen venir activados de fábrica. Son dos canales bidireccionales entre la máquina sacrificable y tus archivos, y ninguno de los dos se revierte con una instantánea.

Revertir antes de mirar. Se pierde la evidencia entera. Si no sabes qué pasó, no puedes saber si además pasó algo fuera de la máquina.

Confundir instantánea con copia de seguridad. Comparten almacenamiento. Un fallo del disco del anfitrión o un borrado del directorio se lleva el disco base y todos sus puntos de retorno de una vez.

Cadenas interminables. Veinte instantáneas “por si acaso” degradan la máquina, ocupan un espacio impredecible y, cuando hay que consolidar, la operación tarda y a veces falla justo por falta de espacio.

9Cómo lo abusaría un atacante

Vista desde el otro lado

El software malicioso moderno sabe perfectamente que puede estar siendo observado dentro de una máquina virtual, y actúa en consecuencia. Busca las señales habituales —controladores del hipervisor, nombres de dispositivo característicos, poca memoria, un solo núcleo, ausencia de historial de uso— y si las encuentra no hace nada. Se queda quieto, o ejecuta una rutina inofensiva. El analista concluye que la muestra es limpia, que es exactamente el objetivo.

La segunda técnica es esperar. Retrasar la actividad varias horas, o hasta el siguiente reinicio, deja fuera cualquier análisis de cinco minutos. Contra eso no vale mirar rápido: vale instrumentar y dejar correr, y ahí es donde tener una ventana de daño bien definida deja de ser burocracia.

La tercera, y la que conecta con esta lección, es buscar los canales que sobreviven a la reversión. Una carpeta compartida es el objetivo perfecto: escribir ahí es escribir en el anfitrión, no hace falta ningún fallo del hipervisor, y la reversión no lo toca. Con el portapapeles compartido pasa lo mismo en la otra dirección: es una vía cómoda para capturar lo que copies desde tu sistema.

Y por encima de todo, la salida a la red. Si la máquina virtual tiene internet o, peor, está en puente, ya no importa lo que hagas con el disco. Las credenciales que se llevó están fuera, la conexión de vuelta está establecida, y tu reversión es una ceremonia sin efecto.

10Cómo defenderlo

Qué hacer con esto mañana
  • Red en solo anfitrión o interna, siempre. NAT únicamente durante la preparación y se apaga antes de traer nada.
  • Desactiva los tres canales: carpetas compartidas, portapapeles y arrastrar y soltar. La transferencia se hace por un disco desechable que se descarta después.
  • Una plantilla intocable y clones para trabajar. La plantilla se actualiza a propósito, en una sesión dedicada, y se vuelve a congelar.
  • Cadena corta: pocos niveles y consolidación al terminar cada sesión larga.
  • Instantánea del estado sucio antes de revertir. Es la única forma de poder explicar después qué ocurrió.
  • Copia de seguridad de verdad, fuera del almacenamiento de la máquina virtual, para lo que no puedes perder: tus notas y los artefactos exportados.
  • Escribe la ventana de daño en la ficha del laboratorio, con dos números. Si no está escrita, en la práctica es infinita.

11Laboratorio

Estado: laboratorio local lab-00-vm
Targetninguno publicado · se opera con docker compose exec
Autorizaciónsistema local creado por ti para entrenamiento
Este laboratorio simula el ciclo de instantánea y reversión con contenedores para que puedas practicarlo sin instalar un hipervisor. Los conceptos son los mismos; el aislamiento no: un contenedor comparte núcleo contigo. Cuando el curso pida ejecutar software que no controlas, se hace en una máquina virtual real y con las reglas de esta lección.

El laboratorio no publica ningún puerto, así que su superficie hacia tu máquina es cero. Levántalo y comprueba el estado limpio:

cd cursos/seguridad/labs/lab-00-vm docker compose up -d docker compose exec invitada cat /disco/estado/marca.txt

Ahora el ciclo completo, con la ventana de daño entre medias:

instantánea, daño, reversión
docker compose exec instantaneas sh -c "mkdir -p /instantaneas/limpia && cp -a /disco/estado /instantaneas/limpia/" # punto de retorno tomado: aqui empieza la ventana de dano docker compose exec invitada sh -c "echo 'estado=roto' > /disco/estado/marca.txt && rm -f /disco/estado/datos.txt" docker compose exec invitada cat /disco/estado/marca.txt estado=roto docker compose exec instantaneas sh -c "rm -rf /disco/estado && cp -a /instantaneas/limpia/estado /disco/" docker compose exec invitada cat /disco/estado/marca.txt estado=limpio

Repite el ciclo, pero esta vez escribe algo en el disco después de la instantánea y antes de romper: al revertir lo vas a perder. Ese es el coste real de la ventana, y medirlo una vez con las manos vale más que leerlo diez.

Comprueba también el aislamiento y que no hay nada publicado. Cuando termines:

docker compose ps --format "{{.Service}} {{.Ports}}" docker compose exec consola sh -c "curl -m 5 -sS https://example.com" docker compose down -v

12Ejercicios

Contenedor o máquina virtual

Para cada tarea, di cuál usarías y por qué en una línea: (1) practicar inyección SQL contra una aplicación que tú escribiste; (2) ejecutar un binario recibido por correo en un incidente; (3) reproducir una vulnerabilidad de un servicio web con versión conocida; (4) probar una escalada de privilegios que abusa del núcleo; (5) montar cinco servicios que se hablan entre sí para practicar movimiento lateral.

Hay una sola pregunta que decide: ¿controlas el software que vas a ejecutar?
Todo lo que ataque al núcleo se sale del contenedor por definición, porque el núcleo es el tuyo.
Para topologías con muchas piezas, el coste importa: cinco máquinas virtuales son cinco sistemas operativos completos.
Solución

(1) contenedor: controlas el código. (2) máquina virtual, sin discusión: no controlas el binario. (3) contenedor: la imagen es conocida y el fallo es de aplicación. (4) máquina virtual: un exploit de núcleo ejecutado en un contenedor ataca tu núcleo. (5) contenedores: el coste de cinco máquinas virtuales no se justifica cuando todo el software es tuyo.

Clave: C · VM · C · VM · C. Si dudaste en el (4), vuelve a la tabla de la sección 3: es la fila que define toda la lección.

Mide tu ventana de daño

Con el lab-00-vm levantado, diseña un experimento que mida la ventana de daño en trabajo perdido. Toma una instantánea, produce una cantidad conocida de estado nuevo, rompe el disco, revierte y cuantifica exactamente qué desapareció. Después modifica el ciclo para reducir la pérdida a la mitad y explica qué coste pagas por esa reducción.

Para medir necesitas que el estado nuevo sea contable: archivos numerados, por ejemplo, en vez de contenido cualquiera.
Reducir la pérdida a la mitad significa tomar el punto de retorno con el doble de frecuencia. Piensa qué crece cuando haces eso.
Mira cuánto ocupa el almacén de instantáneas y cuánto tarda cada copia según crece el estado.
Solución

Un experimento válido: instantánea, crear cien archivos numerados, romper, revertir y contar cuántos quedan. Con una sola instantánea al principio, la pérdida es del cien por cien de lo creado después. Con una instantánea a mitad del trabajo, la pérdida baja a la mitad, y el patrón es lineal.

El coste tiene tres partes y las tres se miden en el laboratorio: espacio en el almacén, tiempo de cada copia —que crece con el estado— e interrupción del trabajo, que es la que la gente ignora y la que de verdad hace que nadie tome instantáneas. En una máquina virtual real se añade la cuarta: la cadena se alarga y la máquina se degrada.

Clave: la respuesta esperada es un número y un intercambio, no una preferencia. Si tu conclusión es “tomar instantáneas más a menudo es mejor”, no mediste el coste.

Investiga la detección de entorno virtualizado

Investiga qué señales usa el software malicioso para detectar que corre en una máquina virtual y escribe una lista de al menos seis, agrupadas por dónde viven: hardware emulado, controladores del hipervisor, entorno del sistema y comportamiento del usuario. Después responde la pregunta difícil: ¿cuáles de esas señales puedes eliminar y cuáles son inherentes a virtualizar? Termina explicando por qué esa carrera no se puede ganar del todo.

Empieza por lo obvio: nombres de dispositivos y de controladores que solo existen en un hipervisor concreto.
Hay una familia entera de señales que no son de hardware sino de uso: un sistema recién instalado no se parece a uno de una persona real.
Busca cómo se mide el coste de ciertas instrucciones bajo virtualización; ahí está la parte que no se puede disimular del todo.
Solución

Hardware emulado: identificadores de fabricante en la información del sistema, direcciones físicas de red con prefijos característicos, tamaños de disco redondos. Controladores: los servicios y utilidades de integración del hipervisor. Entorno: poca memoria, un solo núcleo, ningún documento reciente, historial de navegador vacío. Comportamiento: sin movimiento de ratón, sin teclado, tiempo de actividad de minutos.

Se pueden eliminar casi todas: cambiar identificadores, no instalar las utilidades de integración, dar memoria y núcleos generosos, poblar el perfil con actividad. Lo que no se puede eliminar es la diferencia de coste de ciertas operaciones bajo virtualización, medible con temporizadores. Por eso la carrera no se gana: el defensor esconde señales una a una y el atacante solo necesita una que funcione. La conclusión práctica no es camuflar mejor, es no depender de una sola técnica de análisis.

Clave: lo que se evalúa es la última frase. Una lista de señales sin la conclusión de que el análisis dinámico solo no basta se queda en curiosidad.

Red Team · sobrevive a la reversión

Dentro del lab-00-vm, y solo dentro de él: escribe algo desde la invitada que siga existiendo después de revertir. No vale desactivar la reversión ni tocar el compose. Cuando lo consigas, explica qué propiedad del diseño lo permitió y cuál sería el equivalente exacto en una máquina virtual real.

La reversión solo devuelve una cosa a su estado anterior. Todo lo demás queda intacto por definición.
Mira qué monta cada servicio y compáralo con lo que la reversión toca.
El gestor de instantáneas monta dos sitios. Solo uno de ellos se restaura.
Solución

La reversión restaura /disco/estado y nada más. Cualquier escritura fuera de esa ruta sobrevive: en otro directorio del propio disco, o —más interesante— en el almacén de instantáneas, que es un volumen distinto y que el procedimiento nunca limpia. Un archivo escrito ahí atraviesa todas las reversiones.

El equivalente real es directo y es el punto de la lección: la carpeta compartida con el anfitrión, el disco secundario montado, el USB conectado. Todos son almacenamiento que la instantánea del disco principal no incluye. Por eso la regla no es “toma instantáneas”, sino “sé exactamente qué entra en la instantánea y desconecta el resto”.

Clave: lo evaluable es la generalización, no el truco. Si tu respuesta nombra un archivo concreto pero no la propiedad —lo que no está en el punto de retorno no vuelve—, la mitad del ejercicio se perdió.

Blue Team · reconstruye qué pasó sin poder volver

Simula el error del paso 4: rompe la invitada, revierte sin conservar el estado sucio, y ahora intenta responder qué se rompió exactamente y cuándo. Anota qué preguntas no puedes contestar. Después repite el ejercicio conservando el estado sucio en el almacén y compara las dos listas.

Escribe primero las preguntas que querrías responder, antes de romper nada. Si no, después las adaptarás a lo que tengas.
Marcas de tiempo, contenido anterior y contenido posterior son tres cosas distintas y se pierden a la vez.
Conservar el estado sucio es una copia más al almacén, con otro nombre. Compara lo que puedes responder con ella.
Solución

Sin el estado sucio no puedes responder casi nada: no sabes qué archivos cambiaron, ni cuáles se crearon, ni las marcas de tiempo, ni si lo que se rompió fue lo único que se tocó. Solo te queda tu memoria de lo que hiciste, que es exactamente la fuente menos fiable en un incidente.

Con el estado sucio conservado, la comparación entre la copia limpia y la sucia responde de golpe qué cambió, qué apareció y qué desapareció. Esa comparación es la versión de andar por casa de lo que en la fase de detección se hace con herramientas de integridad de archivos, y el razonamiento es idéntico: necesitas el antes para que el después signifique algo.

Clave: el entregable es la lista de preguntas sin respuesta del primer intento. Léela cada vez que tengas la tentación de revertir rápido.

Architecture Challenge · un banco de análisis para un equipo

Diseña el entorno donde tres analistas de un equipo pequeño examinarían muestras desconocidas. Decide: dónde vive (equipos dedicados o infraestructura compartida), cómo entran las muestras y cómo salen los resultados sin abrir un canal bidireccional, qué red tiene, cómo se restaura entre análisis, y qué se conserva para poder revisar un caso seis meses después.

La entrada y la salida de datos son el problema central: cualquier canal cómodo es cómodo también para lo que analizas.
Un canal de un solo sentido, o uno con un paso intermedio que valida, cambia por completo el análisis de riesgo.
Piensa qué se conserva: la muestra, los artefactos, las capturas de red y las notas no tienen el mismo riesgo ni el mismo valor a largo plazo.
Solución

Una propuesta razonable: máquinas virtuales sobre un anfitrión dedicado, que no se usa para nada más, en una red aislada del resto de la organización. Entrada de muestras por un almacén de un solo sentido —se escribe desde fuera y se lee desde dentro— y nunca al revés. Salida de resultados en un formato inerte y revisado: notas de texto, indicadores extraídos y capturas, nunca ejecutables ni documentos que se abran solos.

Restauración desde plantilla entre cada análisis, siempre, sin excepción por prisa. Conservación: la muestra cifrada y con contraseña en un almacén separado del entorno de trabajo, los artefactos y las notas en el sistema de casos del equipo. Y una ficha por caso con la ventana de daño y las decisiones de aislamiento tomadas, porque dentro de seis meses nadie recordará si aquel análisis se hizo con la red abierta.

Clave: no hay una única respuesta. Se evalúa que los canales de entrada y salida sean de un solo sentido y que la restauración no dependa de que alguien se acuerde.

13Preguntas de comprensión

Comprobación

¿Por qué una instantánea no cuenta como copia de seguridad?

Protege contra “he roto el sistema invitado”, no contra “he perdido el almacenamiento”. Son dos riesgos distintos y necesitan dos mecanismos.

Vas a ejecutar una muestra desconocida en una máquina virtual. ¿Qué modo de red eliges?

En puente, la máquina es un equipo más de tu red. El aislamiento del hipervisor deja de importar porque nadie necesita escapar de nada.

Reviertes a una instantánea limpia. ¿Qué puede haber sobrevivido?

La reversión afecta al disco de la máquina virtual y a nada más. Lo que ya salió, salió, y por eso los canales se cierran antes y no después.

¿Qué es exactamente la ventana de daño?

Es la misma cifra medida por los dos lados, y por eso la frecuencia de instantáneas es un intercambio y no una preferencia.

0 / 4

14Reto adicional

Escribe el procedimiento de tu propio laboratorio

Redacta el procedimiento operativo de tu máquina de análisis, en una página, con la ficha de la sección 7 rellenada con tus números. Tiene que incluir: los pasos de preparación, el punto exacto en que se corta la red, la cadencia de instantáneas, qué se conserva antes de revertir, y una comprobación previa que puedas ejecutar para verificar que el aislamiento está como dice el papel.

Un procedimiento que no se puede verificar antes de empezar se convierte en decoración a la tercera sesión con prisa.
Los hipervisores tienen interfaz de línea de comandos: el estado de la red y de las carpetas compartidas se puede consultar sin abrir la ventana.
Escribe la comprobación como una lista de condiciones que devuelven verdadero o falso, no como un párrafo de recomendaciones.
Solución

Un procedimiento útil tiene tres partes. Preparación: sistema instalado y actualizado con red en NAT, herramientas puestas, apagado, instantánea plantilla. Corte: red a solo anfitrión, carpetas compartidas fuera, portapapeles fuera, sin dispositivos conectados, y solo entonces se introduce la muestra por un disco desechable. Sesión: instantánea al empezar, instantánea antes de cada acción irreversible, instantánea del estado sucio antes de revertir, y consolidación al cerrar.

La comprobación previa es lo que lo convierte en algo vivo: un script que consulta al hipervisor y falla si la red no es la esperada, si hay alguna carpeta compartida definida o si el portapapeles está habilitado. Que falle es el objetivo; una comprobación que nunca ha fallado suele ser una que no está mirando nada.

Clave: lo que se evalúa es que el corte de red esté antes de la muestra y que exista una verificación ejecutable. Un procedimiento sin comprobación previa es una intención.

15Resumen

Puntos clave
  • La línea es sencilla: contenedor para software que controlas, máquina virtual para software que no. La diferencia decisiva es el núcleo propio.
  • Una instantánea congela el disco y crea una capa de escritura encima. Revertir descarta capas: por eso es instantáneo y por eso lo descartado no vuelve.
  • Una instantánea no es una copia de seguridad: comparte destino con el disco al que protege.
  • Cadenas largas degradan la máquina. Pocos niveles y consolidar al cerrar.
  • Red en solo anfitrión o interna. El modo puente pone un sistema comprometido dentro de tu red y anula todo lo demás.
  • Sobreviven a la reversión: carpetas compartidas, portapapeles, tráfico emitido, dispositivos conectados y la ausencia de evidencia.
  • Instantánea del estado sucio antes de revertir, siempre. Sin el antes y el después no hay análisis posible.
  • La ventana de daño es un número escrito. Si no está escrita, en la práctica es infinita.
¿Cuál es la única diferencia que de verdad importa entre contenedor y máquina virtual?
El núcleo. El contenedor comparte el tuyo, así que no contiene un exploit de núcleo; la máquina virtual tiene el suyo propio.
¿Por qué tomar una instantánea es instantáneo aunque el disco sea enorme?
Porque no copia nada: congela el archivo actual como solo lectura y crea encima una capa donde van las escrituras nuevas.
Nombra tres cosas que sobreviven a revertir una máquina virtual.
Lo escrito en carpetas compartidas, lo copiado por el portapapeles compartido y todo lo que ya salió por la red. La reversión solo toca el disco de la máquina.
¿Qué haces justo antes de revertir, y por qué?
Una instantánea del estado sucio. Revertir destruye la evidencia, y sin el antes y el después no puedes explicar qué ocurrió.

16Mis notas

Cierre de la lección

Estas notas se guardan solo en este navegador. No se envían a ningún servidor. Expórtalas desde el panel de progreso si cambias de máquina.

17Recursos

Los comentarios se cargan solo si los pides, desde GitHub Discussions. No se carga nada de terceros mientras no pulses.