TheHive y Cortex
Una misma VM aloja TheHive (gestión de casos e incidentes; recibe las alertas críticas escaladas desde Graylog) y Cortex (análisis de observables mediante analyzers y respuesta mediante responders).
| Parámetro | Valor |
|---|---|
| VM | 106 · thehive-cortex |
| Redes | prod0 + log0 |
IP (prod0) | 172.17.33.104 |
| Acceso (TheHive) | http://172.17.33.104:9000/ |
| Acceso (Cortex) | http://172.17.33.104:9001/ |
| Versión probada | TheHive 5.4.8-1 · Cortex 3.1.8-1 |
| Depende de | MISP arrancado (conector); Graylog para el flujo de alertas |
Arranque
Sección titulada «Arranque»qm start 106qm status 106Espera entre 60 y 120 segundos antes de diagnosticar un fallo: TheHive y Cortex pueden responder a distinta velocidad aunque compartan VM.
Validación
Sección titulada «Validación»No basta con que la VM figure como running en Proxmox: estas comprobaciones confirman que el componente funciona correctamente y se comunica con el resto del entorno.
Red y puertos
Sección titulada «Red y puertos»ping -c 3 172.17.33.104nc -zvw3 172.17.33.104 22nc -zvw3 172.17.33.104 9000nc -zvw3 172.17.33.104 9001curl -sS --connect-timeout 10 http://172.17.33.104:9000/api/statuscurl -I --connect-timeout 10 http://172.17.33.104:9000/curl -I --connect-timeout 10 http://172.17.33.104:9001/api/status debe devolver un JSON con la versión de TheHive.
Interfaz web
Sección titulada «Interfaz web»- La página de
:9000corresponde a TheHive y la de:9001a Cortex. - Es posible autenticarse con las credenciales entregadas.
- No aparecen errores de backend, base de datos o migraciones.
No cambies conectores, analyzers ni responders durante la validación salvo incidencia demostrada.
Interna por SSH
Sección titulada «Interna por SSH»systemctl status thehive --no-pagersystemctl status cortex --no-pagerss -lntp | grep -E ':9000|:9001'df -hfree -hfind /opt/Cortex-Analyzers/analyzers -mindepth 1 -maxdepth 1 -type d | wc -lfind /opt/Cortex-Analyzers/responders -mindepth 1 -maxdepth 1 -type d | wc -lAmbos servicios deben estar active (running), los dos puertos en escucha y debe existir un conjunto no vacío de analyzers y responders (como referencia, el entorno restaurado contiene 138 analyzers y 41 responders instalados).
Conectores
Sección titulada «Conectores»Tras el acceso básico: entra en TheHive, revisa los conectores MISP y Cortex y confirma que ambos muestran estado OK. No regeneres claves API ni recrees conectores si los objetos restaurados siguen presentes.
Flujo extremo a extremo
Sección titulada «Flujo extremo a extremo»Cierra aquí la validación que quedó pendiente en la página de Graylog: confirma que una alerta crítica llega hasta TheHive con el _createdBy del feeder correcto.
Provoca el evento desde otra máquina con varios intentos de login SSH fallidos contra el Wazuh Manager — basta con disparar la regla 100100 (nivel 10, ya dentro del rango rule_level:[10 TO 15] que dispara el escalado; no hace falta llegar a la regla 100101):
for i in $(seq 1 8); do ssh usuario-inexistente@172.17.33.101; done(escribe cualquier contraseña en cada intento; unos 8 intentos en menos de 2 minutos son suficientes para superar el frequency/timeframe de la regla.)
Después:
- En Graylog, confirma que la definición de evento
graylog2thehive - CRITICALse disparó (Alerts → Event Definitions → graylog2thehive - CRITICAL, revisa su historial). - En TheHive, confirma que aparece una alerta nueva y que su campo
_createdBycorresponde al usuario feeder configurado enTHEHIVE_APIKEY. - Si la alerta no llega, revisa
journalctl -u graylog-thehiveen esta VM: ahí queda el registro de la llamada a la API de TheHive.
Configuración aplicada
Sección titulada «Configuración aplicada»La integración siguiente ya viene aplicada en el backup. Documentamos cómo se construyó para verificarla o reconstruirla.
application.conf de TheHive
Sección titulada «application.conf de TheHive»Las conexiones con MISP y Cortex se definen en /etc/thehive/application.conf:
# MISPmisp { interval = 1m servers = [ { name = "Misp-Prod" url = "<URL_SERVIDOR_MISP>" auth = { type = "bearer" key = "<CLAVE_API_MISP>" } ssl-skip-validation = true published = false importUnpublished = true maxAge = 30d } ]}
# CORTEXcortex { servers = [ { name = "Cortex-Prod" url = "<URL_SERVIDOR_CORTEX>" auth = { type = "bearer" key = "<CLAVE_API_CORTEX>" } default = true } ]}Sustituye <URL_SERVIDOR_MISP> / <URL_SERVIDOR_CORTEX> por las direcciones de tus instancias y las claves por los tokens correspondientes (la de MISP se obtiene como se describe en la página de MISP; la de Cortex, desde la gestión de usuarios de la organización en Cortex).
Conectores en la interfaz de TheHive
Sección titulada «Conectores en la interfaz de TheHive»La integración se completa desde Platform Management → Connectors:

Cortex — introduce la URL del servidor y la clave API:


MISP — introduce la URL, la clave API y las opciones de exportación:



Con ambos configurados, el estado debe ser OK:

Analyzers de Cortex
Sección titulada «Analyzers de Cortex»En Organization → Analyzers están habilitados:
AIL_OnionLookup_1_0,AbuseIPDB_1_0yAbuse_Finder_3_0— análisis de amenazas e IPs maliciosas;MISP_2_1— consulta de indicadores contra la instancia MISP del entorno;VirusTotal_GetReport_3_1yVirusTotal_Scan_3_1— consulta de reportes y escaneo activo de observables.




Responders de Cortex
Sección titulada «Responders de Cortex»Para la respuesta ante incidentes mediante Velociraptor está habilitado el responder Velociraptor_0_2:

Puente Graylog → TheHive (creación automática de alertas)
Sección titulada «Puente Graylog → TheHive (creación automática de alertas)»Esta misma VM aloja también el servicio graylog-thehive.service (/opt/graylog-thehive/), un puente que recibe los webhooks de Graylog (evento crítico escalado) y crea la alerta correspondiente en TheHive vía su API.
systemctl status graylog-thehive --no-pagergrep -c THEHIVE_APIKEY /opt/graylog-thehive/.envEl puente se autentica contra TheHive con la clave API de un usuario analista existente (el “feeder”), configurada en THEHIVE_APIKEY dentro de ese .env. Las alertas creadas quedan registradas como creadas por ese mismo usuario (campo _createdBy).
Claves API que debes registrar
Sección titulada «Claves API que debes registrar»Credenciales
Sección titulada «Credenciales»| Acceso | Usuario | Contraseña |
|---|---|---|
Consola/su | root | Root.TheHive |
| SSH | lab | Lab.TheHive |
| TheHive web | admin@thehive.local | secret |
| TheHive web | analista1@thehive.local | analista1 |
| TheHive web | analista2@thehive.local | analista2 |
| Cortex web | sysadm | (contraseña de fábrica, nunca registrada — resetéala con la API, ver nota abajo) |
Recursos adicionales
Sección titulada «Recursos adicionales»Siguiente paso
Sección titulada «Siguiente paso»Continúa con Grafana.