Parte: 9 — Forense digital y respuesta a incidentes · Fuente: NIST IR 8006 — Cloud Computing Forensic Science Challenges y documentación de AWS/Azure/GCP ⏱️ Duración estimada: 120 min · Nivel: Avanzado
Entender cómo cambia la forense cuando la evidencia vive en la nube: modelo de responsabilidad compartida, logs de plataforma (CloudTrail, Azure Activity Log, GCP Audit), snapshots de discos, y adquisición de instancias efímeras. Al terminar sabrás qué evidencia pedir, cómo preservarla y cómo investigar un compromiso de identidad en la nube.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Responsabilidad compartida | Define a qué evidencia accedes |
| 2 | CloudTrail y logs de control | Historial de acciones de API |
| 3 | Azure Activity/Sign-in Logs | Equivalente en Azure |
| 4 | GCP Audit Logs | Equivalente en GCP |
| 5 | Snapshots de disco | Adquisición de volúmenes |
| 6 | Instancias efímeras y contenedores | Evidencia que se evapora |
| 7 | Compromiso de identidad (IAM) | Vector dominante en nube |
| 8 | Preservación y aislamiento | Congelar la escena |
aws cloudtrail lookup-events, snapshots EBS, herramientas como Prowler para revisar configuración.gcloud logging read.Usa tu propia cuenta de nube en nivel gratuito. Simula el "incidente" tú mismo.
bash
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances
bash
aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=usuario-prueba
bash
aws ec2 create-snapshot --volume-id vol-0123456789 --description "Evidencia CASO-2026-01"
kql
SigninLogs | where ResultType != 0 | project TimeGenerated, UserPrincipalName, IPAddress, ResultDescription
bash
gcloud logging read 'logName:"cloudaudit.googleapis.com"' --limit 50 --format json
En tu cuenta de nube, simula un compromiso de credenciales (una clave IAM que "un atacante" usa desde otra sesión) y reconstruye, solo desde los logs de la plataforma, qué hizo, cuándo y desde dónde, preservando la evidencia de forma inmutable.
Criterio de aceptación: entregas un informe con la credencial comprometida, la línea de tiempo de sus acciones (con marcas UTC), la IP de origen, los recursos afectados y la prueba de que los logs de evidencia quedaron con retención/inmutabilidad.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| CloudTrail no tiene el evento | Trail no configurado para esa región/servicio. Habilita un trail multi-región. |
| Data Access logs vacíos en GCP | Desactivados por costo. Actívalos antes del incidente. |
| Snapshot no monta | Falta adjuntarlo a una instancia forense. Crea un volumen desde el snapshot. |
| Apagaste la instancia y perdiste RAM | Aísla por red, no por apagado, si quieres la memoria. |
| Logs alterables | Sin retención/inmutabilidad. Usa object lock o cuenta de logging separada. |
❓ ¿Qué evidencia no tengo en la nube? El hipervisor, el hardware y la red física del proveedor. Trabajas con lo que las APIs y logs exponen.
❓ ¿Cómo capturo una instancia efímera? Antes de que se destruya: snapshot del disco y, si puedes, volcado de memoria vía agente. Automatiza la captura ante alerta.
❓ ¿CloudTrail lo registra todo? Registra llamadas a la API (plano de control). Data events (S3, Lambda) y logs de aplicación requieren configuración adicional.
❓ ¿Cómo preservo logs para que no se borren? Exporta a almacenamiento con retención/immutabilidad (object lock) o a una cuenta/proyecto de logging aislado.