Naar inhoud

Handleidingen

eBPF-backstop aansluiten

De kernel-level eBPF-observer — niet-coöperatieve ground truth voor bestands- en netwerk-I/O die geen agent kan ontwijken.

Laatst bijgewerkt:

De eBPF-backstop is de niet-coöperatieve ground-truth-observer. Het haakt aan op kernel-syscall-tracepoints en rapporteert bestands- en netwerk-I/O als toegangskaart-verbindingen die geen userspace-agent kan ontwijken, uitschakelen of verkeerd voorstellen. Waar coöperatieve telemetrie erop vertrouwt dat de agent eerlijk rapporteert, doet de backstop dat niet — het observeert de kernel, niet de agent.

Voor het algemene bronmodel en de OLIVARES_SOURCES_CONFIG-structuur, zie Een bron aansluiten. Voor het coöperatieve pad dat de backstop aanvult, zie Claude Code aansluiten.

Wat het observeert

De backstop instrumenteert kernel-level syscalls — open, read, write, connect, sendto, recvfrom en hun varianten — en zendt één observatie per relevante I/O-gebeurtenis uit. De lees/schrijf-classificatie komt van de syscall zelf, niet van wat de agent beweert, dus het is gezaghebbend op dezelfde manier als pgAudit’s READ/WRITE-klasse gezaghebbend is: de kernel heeft de operatie uitgevoerd, dus de operatie is gebeurd.

Het resultaat is een stroom van toegangskaart-verbindingen die bestands- en netwerk-I/O attribueren aan een procesidentiteit op de host. Deze verbindingen voeden dezelfde toegangskaart als elke andere bron.

Waarom het bestaat

Coöperatieve telemetrie — OpenTelemetry-exports, hook-payloads, MCP-introspectie — is rijker en hoger niveau, maar het is coöperatief: de agent is degene die het uitzendt. Een agent die zijn OTel-exporter uitschakelt, of een runtime die er nooit een had, produceert helemaal geen coöperatief signaal.

De eBPF-backstop sluit dat gat. Een agent die stopt met het exporteren van telemetrie maakt nog steeds syscalls; de kernel ziet ze nog steeds; de backstop rapporteert ze nog steeds. Dit is de ground truth waar de Claude Code aansluiten documentatie naar verwijst:

Ground truth voor echt niet-coöperatieve activiteit is de kernel/eBPF- backstop, niet deze heuristiek.

Die heuristiek — het detecteren van een sessie die stopt met OTel-uitzending terwijl de hooks nog vuren — is een coöperatief-zijde-anomaliesignaal. De backstop maakt de niet-coöperatieve kant observeerbaar.

Dekkingstier

De backstop is clean tier in het betrouwbaarheidsmodel. Lezen versus schrijven wordt bepaald vanuit de syscall, niet vanuit wat de agent beweert. De betrouwbaarheidsdocumentatie vermeldt het naast pgAudit en CloudTrail: “de kernel-level eBPF ground truth.” Clean dekking impliceert geen clean attributie — zie beperkingen hieronder.

Wanneer te gebruiken versus coöperatieve observatie

Ze componeren; ze vervangen elkaar niet.

  • Coöperatief (OTel, hooks, MCP) — hogerniveau-context: sessies, tools, modellen, kosten. De rijkere kaart.
  • Niet-coöperatief (eBPF) — de anti-ontwijkingsgarantie: wat er daadwerkelijk is gebeurd op kernelniveau, ongeacht wat de agent koos te rapporteren.

Draai beide. Het coöperatieve pad bouwt de rijke kaart waarop je bestuurt. De backstop biedt de onvervalste ondergrens die alles opvangt wat het coöperatieve pad miste — ontwijking, verkeerde configuratie, of een runtime zonder telemetrie.

Deploymentmodel

De backstop draait op elke host waar agents worden uitgevoerd, aangesloten in standaard serve als brontype ebpf naast pgaudit, s3cloudtrail, runtime, mcp en claude. Omdat eBPF-programma’s aanhaken op de hostkernel, dekt één instantie per host elk agentproces. Er is geen per-agent-installatiestap.

Linux-capabilities

eBPF-tracing vereist verhoogde kernelprivileges. Minimaal heeft het proces dat de eBPF-programma’s laadt capabilities nodig in de CAP_BPF- en CAP_PERFMON- familie (of equivalent, afhankelijk van kernelversie — oudere kernels bundelen deze in CAP_SYS_ADMIN).

:::caution De exacte capabilityset hangt af van je kernelversie, distributie en beveiligingsmodule (AppArmor, SELinux). Raadpleeg de eigen documentatie van de connector voor de precieze vereiste vlaggen — deze pagina vermeldt geen definitieve set omdat het varieert per omgeving. Draaien in een container vereist expliciete capability- toekenningen (en mogelijk een BPF-bestandssysteemkoppeling); een beveiligde Kubernetes-pod heeft securityContext-overschrijvingen nodig. :::

Configuratie

Selecteer kind: "ebpf" in OLIVARES_SOURCES_CONFIG, met dezelfde bronentry- structuur als elke andere connector:

{
  "sources": [
    {
      "name": "host-backstop",
      "kind": "ebpf",
      "tenant": "acme",
      "config": {}
    }
  ]
}

De exacte configsleutels zijn eigendom van de connector; lees de descriptor ervan in plaats van een niet-geverifieerd schema te kopiëren. Het config-object hierboven is bewust leeg — deze pagina volgt dezelfde regel als Een bron aansluiten: we documenteren alleen sleutels die we hebben geverifieerd, en we hebben het eBPF- connector-configoppervlak niet geverifieerd vanuit deze webdocumentatie.

Anti-ontwijkingseigenschappen

De backstop is niet afhankelijk van agentcoöperatie:

  • Een agent die zijn OTel-exporter uitschakelt genereert nog steeds kernel-syscalls — de backstop ziet die.
  • Een agent die liegt in zijn coöperatieve telemetrie kan niet liegen tegen de kernel. Het syscall-record is gezaghebbend.
  • Een MCP-server die readOnlyHint / destructiveHint verkeerd rapporteert heeft geen invloed op wat de backstop observeert — dat zijn coöperatieve signalen die het niet consumeert.

De coöperatief-zijde heuristiek in Claude Code aansluiten — een sessie waarvan de OTel stil wordt terwijl hooks blijven vuren — is een detectie- signaal. De backstop is de ground truth waar dat signaal naar wijst.

Eerlijke beperkingen

De backstop observeert wat de kernel ziet, niet wat de agent van plan is. Dat onderscheid doet ertoe:

  • Attributie is op procesniveau. I/O wordt geattribueerd aan een procesidentiteit (PID, UID, binair pad). Als meerdere agents één proces delen, kan de backstop hun toegangen niet scheiden — attributie is approximate, niet firm. Per-agent-attributie vereist een per-agent-identiteitssignaal; zie Betrouwbaarheid.
  • Geen sessie- of toolcontext. De backstop ziet syscalls, geen sessies of toolnamen. Het kan je niet vertellen welke tool-call een bestandsschrijfactie triggerde — alleen dat het proces het bestand schreef. Het coöperatieve pad draagt die context.
  • Kernelversie-afhankelijkheid. De beschikbaarheid van eBPF-tracepoints varieert per kernelversie. Bevestig de minimale kernelversie tegen de eigen documentatie van de connector.
  • Geen payload-inhoud. Zoals elke bron, zendt de backstop identifiers en een lees/schrijf-classificatie uit, nooit bestandsinhoud of netwerkpayloads.

Gerelateerd

Documentatie doorzoeken