Consola y flota

Exportación OpenTelemetry (Enterprise)

Una flota Enterprise puede reenviar su flujo de detección a la monitorización que ya operas: un evento OpenTelemetry (OTLP) por cada cambio evaluado, transmitido del daemon a tu propio colector. Se queda en tu red y nunca toca la nube de PoisonZero. Esta página lista qué se exporta, adónde va y cómo se configura.

~7 min de lectura · Consola y flota

Qué es

Una exportación OpenTelemetry ligada al propietario que reenvía cada evento de detección a un colector o SIEM que tú operas:

  • OTLP estándar: sin agente propietario ni integración a medida; cualquier colector o backend compatible con OpenTelemetry funciona.
  • Nombres de atributo fijos bajo el espacio poisonzero.*, más los atributos espejo security_rule.*, para que paneles y alertas se mantengan estables mientras el modelo o la flota cambian.
  • Función Enterprise, tanto en modo Cloud como en modo Privado.
  • Fail-soft: si el colector no está disponible, la exportación reintenta en segundo plano; la detección y la aplicación nunca se bloquean.
Por defecto, ningún contenido sale del daemon: los eventos llevan verdicto, nivel de amenaza, decisión y versión del modelo. Un extracto de contenido solo se adjunta en la banda de amenaza más alta y solo si subes el nivel de detalle localmente (ver abajo).

Qué se exporta

Se emite un evento (poisonzero.detection) por cada cambio evaluado. Este es el conjunto completo de atributos, con la clave OTLP, qué lleva y cuándo se rellena:

AtributoDescripciónCuándo se rellena
poisonzero.verdict.labelLa etiqueta del verdicto de detección, benign o maliciousSiempre
poisonzero.verdict.dangerEl valor de peligro calculado en el rango 0 a 1Siempre
poisonzero.verdict.categoryLa categoría de ataque: direct-injection, exfiltration, meta-attack, role-play, subtle o benignCuando hay una categoría
poisonzero.verdict.danger_bandUna banda de peligro gruesa para agrupar sin el valor brutoCuando hay una banda
poisonzero.threat_levelNivel de gravedad, low, medium o high; el campo por el que alertarSiempre
poisonzero.evidence.presentSi se encontró evidencia respaldada para el verdicto (booleano)Siempre
poisonzero.evidence.groundedSi esa evidencia está respaldada en el cambio (booleano)Cuando hay evidencia
poisonzero.evidence.hashSHA-256 del extracto de evidenciaCuando hay evidencia
poisonzero.evidence.lengthLongitud del extracto de evidenciaCuando hay evidencia
poisonzero.evidence.quoteEl extracto de evidencia en sí, redactado o literal según el nivel de detalleSolo en nivel redacted o full, y solo para un evento de nivel de amenaza high
poisonzero.chunk.indexÍndice de la ventana evaluada cuando el cambio se dividióCuando el cambio se dividió en ventanas
poisonzero.chunk.countNúmero de ventanas evaluadasCuando el cambio se dividió en ventanas
poisonzero.file.path_hashSHA-256 de la ruta del archivo; la ruta en sí nunca se emite en el nivel por defectoSiempre
poisonzero.model.tierEl nivel del modelo de detecciónCuando hay nivel de modelo
poisonzero.model.versionLa versión del modelo de detecciónCuando hay versión de modelo
poisonzero.model.sha256SHA-256 del artefacto del modelo de detecciónCuando hay hash de modelo
poisonzero.decision.actionQué hizo el daemon: flag, detected_kept, quarantine_reversible o revert (allow nunca se exporta)Siempre
poisonzero.decision.reason_codePor qué, cuando aplica: malformed_output, degraded_score o ungrounded_evidenceCuando aplica un motivo
file.pathLa ruta del archivo, redactada o literal según el nivel de detalle, en el campo estándar de convenciones semánticasSolo en nivel redacted o full, y solo para un evento de nivel de amenaza high
security_rule.nameLa identidad del modelo, reflejada en el espacio de nombres de seguridad de OpenTelemetry para SIEM genéricosSiempre
security_rule.versionLa versión del modelo, reflejada en el espacio de nombres de seguridadCuando hay versión de modelo
security_rule.categoryLa categoría de ataque, reflejada en el espacio de nombres de seguridadCuando hay una categoría
security_rule.uuidEl identificador del artefacto del modelo, reflejado en el espacio de nombres de seguridadCuando hay hash de modelo

Adónde va

El flujo va del daemon a tu colector por OTLP/HTTP. Cualquier colector o backend compatible con OpenTelemetry funciona, por ejemplo:

  • Grafana
  • Datadog
  • Splunk
  • Elastic
  • Tu propio colector OpenTelemetry
Nunca toca la nube de PoisonZero. El flujo OTLP va del daemon a tu colector, sin más, y funciona sin conectividad de nube alguna, daemons privados y on-prem incluidos.

Nivel de detalle

Decides localmente, por perfil de exportación, cuánto lleva cada evento. Hashes es el valor por defecto:

NivelQué añade
hashes (por defecto)Solo hashes, enumeraciones y números; sin ruta de archivo ni extracto de evidencia.
redactedAñade una ruta de archivo redactada y un extracto de evidencia redactado.
fullAñade el extracto de evidencia literal: una decisión local deliberada.
El contenido (ruta de archivo o extracto de evidencia) solo se adjunta para un evento de envenenamiento probado (nivel de amenaza high), nunca para las bandas inferiores. El nivel full solo es alcanzable desde un perfil local, nunca vía configuración remota, y el modo Privado se queda siempre en hashes.

Configuración

La exportación se configura por daemon mediante un perfil de exportación con nombre, el mismo patrón que los perfiles de inferencia BYO. Se respetan las variables de entorno estándar de OpenTelemetry:

VariableEfecto
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTEndpoint OTLP de logs completo, usado tal cual (no se añade ninguna ruta).
OTEL_EXPORTER_OTLP_ENDPOINTEndpoint base; el daemon añade la ruta estándar /v1/logs.
OTEL_EXPORTER_OTLP_HEADERSCabeceras del colector como key=value,key=value (también la variante _LOGS_HEADERS).

Para una flota, el perfil se gestiona de forma centralizada mediante una API de administración dedicada (/v1/otel-config, GET / PUT / DELETE). Las cabeceras de autenticación del colector se guardan en el gestor de secretos del backend, nunca incrustadas en la imagen del daemon.

El modo Privado ignora cualquier configuración de colector remoto y solo acepta un colector en loopback o .local con hashes impuestos, de modo que un despliegue privado aún puede emitir telemetría a un sumidero estrictamente local sin abrir una vía de egress remota.

Sigue leyendo

El egress del daemon que no usa: requisitos de red y cortafuegos. Qué envía el flujo asistido por la nube para la evaluación: qué envía el modo Cloud.

¿Te resultó útil?

Eventos de detección, dentro del stack que ya operas.

OpenTelemetry estándar, nombres de atributo fijos, y el flujo nunca sale de tu red. Una función Enterprise.

Sign me up