§ SIEM
Splunk-Integration
Übertragen Sie jeden Agent-Trace — einschließlich Policy-Verstößen — über den HTTP Event Collector in Splunk. Ihr SOC triagiert KI-Agenten-Incidents mit den SPL-Workflows, die es bereits einsetzt.
Funktionsweise
Execlave sendet abgeschlossene Traces asynchron an Splunk: Ereignisse werden gebündelt und von einem dedizierten Export-Worker nach dem Commit des Traces zugestellt, sodass die SIEM-Zustellung dem Enforcement-Pfad niemals Latenz hinzufügt. Fehlgeschlagene Batches werden mit Backoff erneut versucht. Das HEC-Token wird im Ruhezustand Envelope-verschlüsselt — es wird niemals als Klartext-Konfiguration gespeichert.
Ereignisse kommen mit source="execlave:traces" und einer optionalen, von Ihnen steuerbaren Index- / Sourcetype-Überschreibung an.
Einrichtung
Zwei Schritte: Erstellen Sie ein HEC-Token in Splunk und richten Sie Execlave dann darauf aus.
1 · HEC-Token in Splunk erstellen
In Splunk Web: Settings → Data Inputs → HTTP Event Collector → New Token. Benennen Sie es (z. B. execlave), wählen Sie einen Ziel-Index aus oder erstellen Sie einen (z. B. ai_agents) und schließen Sie ab. Stellen Sie sicher, dass HEC global aktiviert ist (Global Settings → All Tokens → Enabled), und notieren Sie den Port — Splunk Cloud verwendet https://http-inputs-<stack>.splunkcloud.com:443, selbstverwaltete Instanzen verwenden standardmäßig Port 8088.
2 · Integration in Execlave konfigurieren
Gehen Sie zu Settings → Integrations und fügen Sie ein Splunk HEC-Ziel hinzu:
| Feld | Wert |
|---|---|
URL | Basis-HEC-URL, z. B. https://splunk.example.com:8088 (ohne Pfad). |
Token | Das HEC-Token aus Schritt 1 (geheim). |
Index | Optional — überschreibt den Standard-Index des Tokens. |
Sourcetype | Optional — z. B. execlave:trace. |
Klicken Sie auf Test connection — Execlave ruft den HEC-Health-Endpunkt auf, um das Token zu validieren, bevor Exporte aktiviert werden.
Event-Format & Feldreferenz
Jeder Trace ist ein HEC-Event. Zeitstempel sind Epoch-Sekunden; der gesamte Governance-Kontext befindet sich im Event-Body.
{ "time": 1765360800.123, "host": "execlave", "source": "execlave:traces", "sourcetype": "execlave:trace", "index": "ai_agents", "event": { "trace_id": "9f4e2c1a-7b3d-4e8f-a1c2-3d4e5f6a7b8c", "organization_id": "org_2x...", "agent_id": "support-bot", "agent_uuid": "c0a8012e-...", "status": "policy_blocked", "model": "gpt-4o", "prompt_tokens": 412, "completion_tokens": 0, "total_tokens": 412, "cost_usd": 0.0021, "duration_ms": 184, "environment": "production", "span_type": "tool", "span_name": "send_email", "session_id": "sess_91...", "user_id": "user_44...", "agent_name": "Support Bot", "autonomy_level": "act_with_approval", "agent_status": "active", "idp_bound": true }}| Feld | Typ | Beschreibung |
|---|---|---|
trace_id | string | Eindeutiger Trace-Identifikator — Join-Schlüssel zurück zum Execlave-Dashboard. |
parent_trace_id | string | Übergeordneter Trace für mehrstufige / delegierte Agentenläufe. |
organization_id | string | Execlave-Organisation, zu der der Trace gehört. |
agent_id | string | Ihre geschäftliche Agenten-ID (wie registriert). |
agent_uuid | string | Interne Execlave-Agenten-UUID. |
status | string | success · error · timeout · policy_blocked · limit_exceeded · flagged_for_review |
model | string | LLM-Modellname für den Span. |
prompt_tokens / completion_tokens / total_tokens | number | Token-Nutzung. |
cost_usd | number | Berechnete Kosten des Spans in USD. |
duration_ms | number | Echtzeit-Dauer des Spans. |
environment | string | z. B. production, staging. |
span_type | string | llm · tool · agent · retrieval · chain. |
span_name | string | Name des Tools oder Schritts (z. B. send_email). |
error_type / error_message | string | Wird bei Error-Spans befüllt. |
session_id / user_id | string | Zuordnung zur Endnutzer-Sitzung, sofern gemeldet. |
agent_name | string | Anzeigename aus der Agenten-Registry, sofern der Agent registriert ist. |
autonomy_level | string | observe · advise · act_with_approval · autonomous — die deklarierte Governance-Stufe des Agenten. |
agent_status | string | active · paused · inactive · archived · error. |
idp_bound | boolean | True, wenn der Agent an einen externen Identity Provider gebunden ist (Workload Identity Federation). |
Paket gespeicherter Suchen
Kopieren Sie diese unter Settings → Searches, reports, and alerts. Planen Sie sie und verknüpfen Sie Alert-Aktionen mit Ihrem bestehenden On-Call-Workflow.
Policy-Verstöße nach Agent
Die zentrale SOC-Ansicht: welche Agenten welche Policies auslösen. Governance-Ergebnisse (policy_blocked, flagged_for_review, limit_exceeded) sind eigenständige Statuswerte und werden niemals in Transportfehler eingefaltet.
source="execlave:traces" status IN ("policy_blocked", "flagged_for_review", "limit_exceeded")| stats count AS violations, latest(_time) AS last_seen BY agent_id, span_name, status, environment| sort - violationsAnstieg von Agentenfehlern (Alert-Kandidat)
Alle 15 Minuten planen; auslösen, wenn ein Agent den Schwellenwert überschreitet.
source="execlave:traces" status IN ("error", "timeout")| timechart span=15m count BY agent_id| where count > 10Kosten-Ausreißer
Ausgaben pro Agent über den Suchzeitraum. Kombinieren Sie dies mit Execlaves Echtzeit-Kosten-Schutzschalter — Splunk liefert die rückblickende Sicht, der Schutzschalter stoppt die laufenden Verluste in Echtzeit.
source="execlave:traces"| stats sum(cost_usd) AS spend_usd, sum(total_tokens) AS tokens BY agent_id, environment| where spend_usd > 50| sort - spend_usdWiederholt blockierte Tool-Aufrufe (möglicher Missbrauch / Prompt-Injection)
Ein Nutzer oder eine Sitzung, der/die wiederholt einen Agenten in blockierte Tool-Aufrufe treibt, ist ein starkes Injection-Signal — eskalieren Sie gemäß dem Incident-Workflow unten.
source="execlave:traces" status="policy_blocked" span_type="tool"| stats count AS blocked_calls, values(span_name) AS tools BY agent_id, user_id| where blocked_calls > 5Vom Alert zum abgeschlossenen Incident
Diese Suchen decken die Detektionshälfte ab. Die Hälfte für Triage, Beweissicherung und Behebung — das Abrufen des vollständigen Traces, der Audit-Chain und des Agenten-Pass aus Execlave und das anschließende Pausieren des Agenten oder Verschärfen der Policy — ist vollständig im Incident-Response-Workflow dokumentiert.