Parallax Deception
Capa de orquestación y decisión para ciberengaño

Diseñá la realidad que el adversario va a creer.

Parallax Deception coordina decoys de red, identidades simuladas, honeytokens y canarytokens bajo un mismo objeto de operación, con un motor de reglas determinista que cierra el ciclo observar → decidir → desplegar → reajustar.

observador a observador b activo real plano aparente lo que el adversario cree
Paralaje: el mismo objeto ocupa dos posiciones aparentes según desde dónde se lo mire. Una operación de engaño hace exactamente eso — y esta herramienta decide, despliega y mide el desplazamiento.
1.950 tests automatizados 7 pasos de metodología implementados 1:1 6 tipos de capacidad registrados MITRE ATT&CK · MITRE Engage · STIX 2.1 Python 3.10+ · Flask AGPLv3 + licencia comercial
Qué es

La categoría importa: lo primero es descartar las tres cosas con las que se confunde.

La capa que le falta al ciberengaño open source.

Operar engaño hoy con herramientas libres significa decisiones manuales y desconectadas: nadie dice qué desplegar ni cuándo, nadie compara lo planificado contra lo que efectivamente pasó, y cada herramienta vive en su propia interfaz con su propio modelo de datos.

No es otro honeypot

Un honeypot cubre una superficie. Una operación necesita varias, coordinadas entre sí y con un estado común.

No es otro generador de honeytokens

El señuelo es el medio. La decisión de dónde ponerlo, con qué historia y hasta cuándo es el trabajo real.

No es una plataforma de detección

La detección es el resultado. Acá se diseña, se despliega y se mide lo que hace que ocurra.

Es la capa de arriba: herramientas de deception que hoy viven cada una en su interfaz, unificadas bajo un objeto de operación con perfil de adversario, reglas de interacción, escenarios, telemetría e informe de cierre.

Metodología

Los 7 pasos son una secuencia real, no una lista: cada uno consume lo que produjo el anterior.

Construido desde el framework, no mapeado después.

El modelo de datos implementa 1:1 los siete pasos de la metodología publicada de CTI a ciberengaño (Pacheco & Staino). No es una herramienta a la que después se le pegó un framework encima: cada paso es una parte del modelo, persistida, editable y auditada.

Observar Decidir Desplegar Reajustar
01

Perfil de adversario y TTPs

Catálogo curado de MITRE ATT&CK con selección por táctica, precarga desde grupos APT conocidos e ingesta de informes de CTI en .txt/.pdf — extracción determinista presentada como sugerencia, nunca aplicada sola.

02

Reglas de interacción y decisiones estratégicas

Qué se permite y qué se prohíbe, entorno, restricciones legales, contacto de escalamiento, objetivos estratégicos, roles y recursos. Más los criterios de cierre, incluidas condiciones de evento que terminan la operación sola.

03

Escenarios

Cada escenario con su nivel de engaño y sus TTPs vinculadas: la unidad que después conecta la intención con las capacidades concretas que la materializan.

04

Capacidades y efecto esperado

El triple Ver – Pensar – Hacer de MITRE Engage por capacidad desplegada, con matriz visual de actividades (Goals × Approaches × Activities) y sugerencias derivadas de las TTPs esperadas y del objetivo estratégico, etiquetadas por origen.

05

Narrativa

La historia que sostiene la ficción y su impacto psicológico buscado: empleados, infraestructura y documentos ficticios contando lo mismo, no un conjunto de señuelos sueltos.

06

Retroalimentación CTI

Esperado contra observado con heatmap de TTPs estilo ATT&CK Navigator, IoCs tipados, informe en Markdown, JSON y PDF, y exportación STIX 2.1 lista para un SIEM/SOAR.

07

Reoperar

Una operación nueva precargada con lo aprendido de la cerrada: las TTPs observadas que no estaban en el perfil original vuelven al paso 1 y el ciclo empieza otra vez con más información.

El motor

Determinista y auditable. Contracorriente a propósito, con argumento de seguridad detrás.

Reglas condición → acción. Ningún LLM decide qué desplegar.

Las reglas son YAML editable, evaluadas en tiempo real contra el bus de eventos, y cada disparo queda registrado. La razón no es purismo: interpretar contenido no confiable producido por un atacante como entrada de una decisión automática es una superficie de ataque, no una comodidad. La generación por modelo existe en la herramienta, pero solo para contenido de la ficción — nunca para la decisión.

# Cada disparo queda en el historial persistido de la operación.
rules:
  - name: "Escaneo en el decoy de borde: desplegar el señuelo interno y activar"
    when:
      event_type: interaction
      plugin_id: dolost-borde-1
      payload:
        kind: scan
    then:
      - action: deploy
        plugin_id: honeytoken-finanzas-1
      - action: transition
        to: active

Editor con resaltado y validación en línea contra el parser real — no una reimplementación en JavaScript — y un constructor visual para quien no escribe YAML.

Guarda de ejecución

Las reglas de interacción frenan de verdad

Antes de ejecutar cualquier acción, el motor consulta las RoE de esa operación. Si está prohibida no se ejecuta, no falla en silencio y queda registrada como rechazada, con motivo. Más un tope configurable de acciones por cadena de eventos, como defensa contra cascadas.

Trazabilidad

Todo lo manual también queda escrito

Cada acción de un operador — desplegar, rotar, retirar — se atribuye a una identidad y se persiste en un historial encadenado con SHA-256, que señala la entrada exacta si alguien alteró el archivo. El motor conserva su propia historia, separada.

Qué hace

Recorrido completo: diseñar, validar antes de tocar infraestructura, ejecutar, observar, cerrar.

De la hipótesis sobre el adversario al informe que alimenta tu CTI.

Diseño de la operación

  • Catálogo de plantillas para arrancar desde una operación esqueleto en vez de un formulario en blanco.
  • Wizard de creación en tres pasos, con revisión final antes de confirmar.
  • Inventario de activos con criticidad, importable por CSV, y cobertura declarada activo → capacidad.
  • Árbol visual de la operación: escenarios, capacidades, actividades de Engage y recursos concretos, con estado real por nodo.
  • Migas (breadcrumbs) como relación de primera clase: declarar que una capacidad lleva a otra y ver ese camino dibujado.

Validación antes de operar

  • Ensayo en seco: recorrido determinista sobre el diseño que detecta huecos estructurales — TTPs que ninguna capacidad podría observar, escenarios sin punto de entrada, migas rotas, capacidades aisladas. Sin desplegar nada.
  • Coherencia de la ficción: narrativa, empleados, infraestructura y documentos señuelo en una sola vista, para juzgar si cuentan la misma historia.
  • Vista de preparación cruzando las ocho actividades estratégicas de Engage contra los datos reales de la operación.

Ejecución

  • Ciclo de vida completo por capacidad: desplegar, rotar, retirar, con estado en vivo y feedback real de Docker o WinRM.
  • Desplegar la campaña entera de un click, con resumen explícito de qué se desplegó, qué ya estaba, qué se salteó y qué falló.
  • Notificaciones en tiempo real por WebSocket durante una corrida.
  • Tarjetas de estado en vivo en el listado: qué está corriendo ahora mismo, sin abrir cada operación.

Observación y análisis

  • Telemetría normalizada — eventos, IoCs tipados, TTPs observadas — en un almacén correlacionable entre operaciones.
  • Incidentes: agrupar manualmente eventos relacionados para estudiarlos juntos; clasificación TLP que viaja al export STIX.
  • Enriquecimiento opcional de IoCs contra VirusTotal, siempre a pedido explícito.
  • Perfil de adversario vivo: incorporar TTPs observadas y no esperadas mientras la operación sigue corriendo.
  • Portafolio agregado: cobertura de TTPs y de actividades de Engage entre todas las operaciones, con fuente, período y alcance declarados.

Cierre del ciclo

  • Informe post-operación en Markdown, JSON y PDF.
  • Exportación STIX 2.1 validada contra la implementación de referencia de OASIS, con referencia real a ATT&CK y entrega manual por webhook a un SIEM/SOAR.
  • Grafo GraphML de la operación completa, para abrir en Gephi.
  • Kit de material para taller con stakeholders: para completar a mano, no un informe más.

Entorno de práctica

  • Modo Playground: levanta un laboratorio real en Docker por operación, con vista de atacante y vista de defensor.
  • Comparación en vivo de lo planificado contra lo observado, mientras la corrida pasa.
  • Y la nota honesta de qué TTPs esperadas el escenario fijo del laboratorio no puede producir, en vez de simular cobertura total.
Superficies

Cinco superficies reales, un mock de referencia para desarrollo, y un puente que solo ingiere telemetría de lo que ya tenés.

Un contrato de plugins de tres métodos.

Un tercero integra su propia herramienta declarando un entry point en su propio paquete, sin tocar una línea del core. Las capacidades que vienen de fábrica se registran exactamente igual, sin trato especial.

Decoys de red y host Docker

Señuelos de alta interacción con estado de contenedor en vivo, despliegue individual o por campaña.

Identidad y comportamiento simulado WinRM

Empleados ficticios con actividad real sobre máquinas de la ficción. La generación por modelo produce contenido, nunca decisiones.

Honeytokens de archivo Nativo

Credenciales ficticias en disco, sin dependencias externas, con detección de acceso y rotación de contenido sin reubicar el archivo.

Canarytokens Thinkst · self-hosted

Cloud, documentos con beacon, DNS, QR, correo. Encaja directo con el modelo de migas: un canarytoken es una miga.

OpenCanary Thinkst · self-hosted

Tripwires livianos multi-servicio (SSH, FTP, HTTP, Telnet, MySQL) que registran lo que se tecleó del otro lado.

Puente de telemetría genérico Solo ingesta

Ingiere eventos de un stack externo con mapeo declarativo de campos, sin desplegarlo ni controlarlo, y los correlaciona contra las TTPs esperadas.

Uso continuo

Pensado para sostener la metodología en el tiempo, no solo para una demo.

Lo que hace falta cuando la operación deja de ser una demo.

Identidad

Login propio o SSO corporativo

Sin usuarios, la instancia queda abierta para un recorrido local; al crear el primero, la aplicación exige inicio de sesión en todas sus rutas. Contraseñas hasheadas, o inicio de sesión por OIDC contra tu proveedor — donde el proveedor autentica y la herramienta autoriza: un sujeto sin dar de alta no entra.

Aislamiento

Roles y equipos

Lectura, operación y administración sobre una allowlist central: una ruta nueva sin clasificar se deniega por defecto, incluso a administración. Las operaciones de otro equipo devuelven 404, no una lista filtrada a medias.

Secretos

Cifrado en reposo, con el límite dicho

Claves de API, tokens y credenciales quedan cifrados en disco. Protege una copia, un backup o un JSON reenviado; no protege a quien tenga acceso al host, y el módulo lo dice así en vez de insinuar más.

Despliegue

Instalación de producción documentada

Gunicorn, nginx con TLS y una unidad systemd, con creación desatendida del primer usuario y una advertencia explícita sobre dar acceso al socket de Docker.

Límites declarados

Preferimos que lo leas acá y no que lo descubras a mitad de una operación.

Lo que no hace, dicho por nosotros.

La herramienta está construida sobre una regla: asiste, nunca decide por vos. De ahí salen tanto sus fortalezas como estos límites, que son alcance intencional y no carencias escondidas.

×
No fabrica un score de efectividad

El resultado de una capacidad se registra como texto libre, con fecha y operador. Un porcentaje sintético sobre eso sería inventado, y no lo vas a encontrar en ninguna pantalla.

×
Las RoE gobiernan la automatización, no tus manos

Nacieron para acotar lo que el motor hace solo. Un operador que despliega a mano no pasa por esa guarda — queda auditado, no bloqueado.

×
La extracción de CTI es matching determinista, no comprensión

Reconoce identificadores y nombres de técnica o alias de grupo contra el catálogo curado. Puede tener falsos positivos y negativos reales; por eso se presenta como sugerencia y nunca se aplica sola.

×
No clona infraestructura ni genera digital twins

Es una decisión de alcance. Coordina y mide el engaño que desplegan las herramientas que ya usás, en vez de replicar tu entorno.

×
El escenario del laboratorio incluido es fijo

No es infinitamente configurable, y la interfaz lo marca escenario por escenario en vez de simular que todo lo esperado va a observarse.

Instalación

Sin checkouts hermanos, sin servicios separados, sin orquestar contenedores para la herramienta en sí.

Un comando para instalar. Uno para correr.

Todo vive en un solo proceso Flask: el núcleo, las capacidades nativas y la interfaz. Docker hace falta solo para los decoys de contenedor y el laboratorio, no para la aplicación.

# instalar
python3 -m venv venv && source venv/bin/activate
pip install -e ".[dev]"

# poblar con tres operaciones de ejemplo, completas y reales
python examples/seed_demo.py

# correr
python -m apate.web        # http://127.0.0.1:5000

Las operaciones de ejemplo llegan con telemetría, incidentes, clasificación TLP, inventario de activos y una operación ya cerrada — para ver el informe y el heatmap con datos reales desde el primer minuto. Correrlo de nuevo no duplica nada.

Licencia

Modelo dual: la misma funcionalidad, dos formas de licenciarla.

Libre de verdad, con una alternativa comercial para quien la necesita.

Edición libre

AGPLv3

Incluye hoy todo: modelo de operaciones, motor determinista y sus guardas, capacidades de engaño, telemetría, informes, catálogos de ATT&CK y Engage, interfaz web, laboratorio, identidad, roles, auditoría y puntos de extensión. El compromiso es explícito: nada de eso se mueve detrás de un pago más adelante.

Licencia comercial

La misma funcionalidad, otros términos

Para organizaciones que no pueden asumir las obligaciones de la AGPLv3 al integrar, modificar u ofrecer como servicio. No hay open core: no existe código, directorio ni capacidad comercial separada. Se monetiza una autorización de licencia, no la ausencia de funciones.

El engaño deja de ser intuición.

Diseñá la operación, validá el diseño antes de tocar infraestructura, deja que el motor decida según reglas que escribiste vos, y cerrá con un informe que tu programa de CTI puede ingerir.