[ sobre · honeyvault ]

Qué hacemos aquí

HoneyVault es un laboratorio que monitoriza ataques web reales contra un entorno señuelo, los analiza y los muestra al público de forma anonimizada — explicando cómo funcionan y cómo defenderse de ellos.

// proceso
01
Capturamos

Mantenemos un cebo (intranet web ficticia) deliberadamente expuesto. Cada petición que entra queda registrada con su contexto: ruta, parámetros, payload, marca temporal.

02
Corroboramos

Un IDS observa la misma red y emite alertas independientes. Cuando el cebo y el IDS ven el mismo intento dentro de una ventana corta, la evidencia queda corroborada por dos fuentes.

03
Firmamos

Calculamos un SHA-256 sobre el dato bruto en el momento de la ingesta. El dato original es inmutable: cualquier cambio posterior se detecta verificando el hash.

04
Anonimizamos

Antes de publicar nada, enmascaramos la IP, redactamos credenciales y eliminamos lo que pueda identificar al atacante o exponer detalles internos.

05
Publicamos

El caso saneado se publica en el catálogo público. El original sigue intacto y trazable internamente; al público solo llega lo divulgativo.

// qué encuentras aquí
// para quién es

Para quien quiera entender cómo se atacan las aplicaciones web en la práctica: estudiantes que están aprendiendo, profesionales que quieren ejemplos didácticos y curiosos que prefieren ver un ataque real explicado antes que leer una definición de manual.

// principios
Integridad

El dato original no se modifica. Cada evidencia lleva su SHA-256 desde la captura y se puede verificar.

Anonimización

Lo que sale al público no permite identificar a nadie: IPs enmascaradas, credenciales redactadas, nunca el dato crudo.

Trazabilidad

Toda acción interna queda en un registro append-only. La API no expone modificación ni borrado de ese registro.

Aislamiento

El cebo vive en su propia red, sin acceso a la base de datos ni al panel. Los logs viajan en una sola dirección.

// cómo está montado

El sistema tiene tres piezas que viven en contenedores separados: el cebo y el IDS por un lado (red aislada, sin acceso a nada interno), y la API más la base de datos por otro. La comunicación es unidireccional vía ficheros de log.

   Atacante
      │
      ▼
   Honeypot PHP  ──►  access.jsonl  ──┐
   (cebo)                              │
                                       ▼
   Suricata IDS  ──►  eve.json    ──► Ingesta API
                                       │  (solo-lectura)
                                       ▼
                              Correlación
                              IP + objetivo + 5s
                                       │
                                       ▼
                              Evidencia inmutable
                              + SHA-256 (por fuente
                              y por evidencia)
                                       │
                                       ▼
                              Anonimización
                              (IP enmascarada,
                               credenciales redactadas)
                                       │
                                       ▼
                              Publicación
                              (catálogo público)
FrontendNext.js + TypeScript + Tailwind + Recharts
BackendFastAPI + Pydantic v2 + SQLAlchemy 2 + Alembic
Base de datosMySQL 8 (InnoDB, utf8mb4)
CeboPHP 8 — intranet ficticia con gestor documental
IDSSuricata con reglas custom (SQLi, XSS, escaneo…)
InfraDocker Compose, dos redes aisladas, volúmenes solo-lectura
GeolocalizaciónDB-IP Lite (offline, solo país agregado al público)
// garantías técnicas
Integridad por SHA-256

Cada fuente y cada evidencia llevan su SHA-256 calculado en el momento de la ingesta. La verificación recalcula sobre el dato original y compara; cualquier alteración posterior se detecta.

Append-only de aplicación

El registro de auditoría no expone endpoints de modificación ni borrado en la API. Toda lectura, anotación, verificación, publicación o exportación queda en él.

Aislamiento del cebo

El honeypot y el IDS viven en su propia red Docker. No resuelven DNS hacia la API ni hacia la base de datos. Los logs viajan en una sola dirección: ellos escriben, la API lee solo-lectura.

Anonimización al publicar

El dato original nunca se modifica. La publicación crea un snapshot saneado aparte: IP enmascarada, credenciales y tokens redactados, rutas internas eliminadas.

Privacidad de origen

La IP del atacante solo vive internamente para correlación. Al público se expone únicamente el país agregado, resuelto con base offline (sin llamadas a terceros).

Exportación verificable

Un ZIP por evidencia o incidente con manifiesto, fuentes crudas individuales y receta de verificación. Cualquiera puede recomputar los SHA-256 sin la app y confirmar que el contenido no se ha tocado.