OpenTelemetry-Export (Enterprise)
Eine Enterprise-Flotte kann ihren Erkennungs-Stream an das Monitoring weiterreichen, das Sie ohnehin betreiben: ein OpenTelemetry-Event (OTLP) je bewerteter Änderung, gestreamt vom Daemon zu Ihrem eigenen Collector. Es bleibt im eigenen Netz und berührt nie die PoisonZero-Cloud. Diese Seite listet, was exportiert wird, wohin es geht und wie es konfiguriert wird.
Was es ist
Ein besitzergebundener OpenTelemetry-Export, der jedes Erkennungs-Event an einen von Ihnen betriebenen Collector oder SIEM weiterreicht:
- Standard-OTLP: kein proprietärer Agent und keine maßgeschneiderte Integration; jeder OpenTelemetry-kompatible Collector oder Backend funktioniert.
- Feste Attributnamen im Namensraum
poisonzero.*plus gespiegeltesecurity_rule.*-Attribute, damit Dashboards und Alerts stabil bleiben, während Modell oder Flotte wechseln. - Enterprise-Feature, im Cloud-Modus und im Private-Modus gleichermaßen.
- Fail-soft: ist der Collector nicht erreichbar, wiederholt der Export im Hintergrund; Erkennung und Durchsetzung werden nie blockiert.
Was exportiert wird
Je bewerteter Änderung wird ein Event (poisonzero.detection) ausgegeben. Dies ist der vollständige Attributsatz, mit dem OTLP-Schlüssel, was er trägt und wann er befüllt wird:
| Attribut | Beschreibung | Wann befüllt |
|---|---|---|
poisonzero.verdict.label | Das Verdikt-Label, benign oder malicious | Immer |
poisonzero.verdict.danger | Der gerechnete Gefahrenwert im Bereich 0 bis 1 | Immer |
poisonzero.verdict.category | Die Angriffskategorie: direct-injection, exfiltration, meta-attack, role-play, subtle oder benign | Wenn eine Kategorie gesetzt ist |
poisonzero.verdict.danger_band | Ein grobes Gefahren-Band zum Gruppieren ohne den Rohwert | Wenn ein Band gesetzt ist |
poisonzero.threat_level | Schweregrad-Stufe, low, medium oder high; das Feld zum Alarmieren | Immer |
poisonzero.evidence.present | Ob belegte Evidenz zum Verdikt gefunden wurde (boolean) | Immer |
poisonzero.evidence.grounded | Ob diese Evidenz in der Änderung belegt ist (boolean) | Wenn Evidenz vorhanden ist |
poisonzero.evidence.hash | SHA-256 des Evidenz-Auszugs | Wenn Evidenz vorhanden ist |
poisonzero.evidence.length | Länge des Evidenz-Auszugs | Wenn Evidenz vorhanden ist |
poisonzero.evidence.quote | Der Evidenz-Auszug selbst, redigiert oder wörtlich je Detailstufe | Nur bei Detailstufe redacted oder full und nur bei einem Event mit Threat-Level high |
poisonzero.chunk.index | Index des bewerteten Fensters, wenn die Änderung gefenstert wurde | Wenn die Änderung gefenstert wurde |
poisonzero.chunk.count | Anzahl der bewerteten Fenster | Wenn die Änderung gefenstert wurde |
poisonzero.file.path_hash | SHA-256 des Dateipfads; der Pfad selbst wird auf der Standardstufe nie ausgegeben | Immer |
poisonzero.model.tier | Die Stufe des Erkennungsmodells | Wenn die Modellstufe gesetzt ist |
poisonzero.model.version | Die Version des Erkennungsmodells | Wenn die Modellversion gesetzt ist |
poisonzero.model.sha256 | SHA-256 des Erkennungsmodell-Artefakts | Wenn der Modell-Hash gesetzt ist |
poisonzero.decision.action | Was der Daemon tat: flag, detected_kept, quarantine_reversible oder revert (allow wird nie exportiert) | Immer |
poisonzero.decision.reason_code | Warum, falls zutreffend: malformed_output, degraded_score oder ungrounded_evidence | Wenn ein Grund zutrifft |
file.path | Der Dateipfad, redigiert oder wörtlich je Detailstufe, im Standard-Semconv-Feld | Nur bei Detailstufe redacted oder full und nur bei einem Event mit Threat-Level high |
security_rule.name | Die Modell-Identität, in den OpenTelemetry-Security-Namensraum gespiegelt für generische SIEMs | Immer |
security_rule.version | Die Modellversion, in den Security-Namensraum gespiegelt | Wenn die Modellversion gesetzt ist |
security_rule.category | Die Angriffskategorie, in den Security-Namensraum gespiegelt | Wenn eine Kategorie gesetzt ist |
security_rule.uuid | Die Kennung des Modell-Artefakts, in den Security-Namensraum gespiegelt | Wenn der Modell-Hash gesetzt ist |
Wohin es geht
Der Stream läuft vom Daemon zu Ihrem Collector über OTLP/HTTP. Jeder OpenTelemetry-kompatible Collector oder Backend funktioniert, zum Beispiel:
- Grafana
- Datadog
- Splunk
- Elastic
- Ihr eigener OpenTelemetry-Collector
Detailstufe
Sie entscheiden lokal, je Export-Profil, wie viel jedes Event trägt. Hashes ist der Standard:
| Stufe | Was sie hinzufügt |
|---|---|
hashes (Standard) | Nur Hashes, Enums und Zahlen; kein Dateipfad und kein Evidenz-Auszug. |
redacted | Ergänzt einen redigierten Dateipfad und einen redigierten Evidenz-Auszug. |
full | Ergänzt den wörtlichen Evidenz-Auszug: eine bewusste lokale Entscheidung. |
full ist nur aus einem lokalen Profil erreichbar, nie über Remote-Config, und der Private-Modus bleibt stets bei hashes.Konfiguration
Der Export wird je Daemon über ein benanntes Export-Profil konfiguriert, dasselbe Muster wie die BYO-Inferenz-Profile. Standard-OpenTelemetry-Umgebungsvariablen werden berücksichtigt:
| Variable | Wirkung |
|---|---|
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT | Vollständiger OTLP-Logs-Endpunkt, unverändert genutzt (kein Pfad wird angehängt). |
OTEL_EXPORTER_OTLP_ENDPOINT | Basis-Endpunkt; der Daemon hängt den Standardpfad /v1/logs an. |
OTEL_EXPORTER_OTLP_HEADERS | Collector-Header als key=value,key=value (auch die _LOGS_HEADERS-Variante). |
Für eine Flotte wird das Profil zentral über eine eigene Admin-API gepflegt (/v1/otel-config, GET / PUT / DELETE). Collector-Auth-Header liegen im Backend-Secret-Manager, nie im Daemon-Image eingebacken.
.local-Collector mit erzwungenen Hashes, sodass eine private Bereitstellung weiterhin Telemetrie an eine strikt geräteinterne Senke schicken kann, ohne einen Remote-Egress-Pfad zu öffnen.Weiterlesen
Der Daemon-Egress, den er nicht nutzt: Netzwerk- und Firewall-Anforderungen. Was der Cloud-Modus zur Bewertung sendet: Was der Cloud-Modus sendet.
Erkennungs-Events direkt im Stack, den Sie schon betreiben.
Standard-OpenTelemetry, feste Attributnamen, und der Stream verlässt nie Ihr Netz. Ein Enterprise-Feature.
Sign me up