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/destructiveHintverkeerd 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, nietfirm. 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
- Een bron aansluiten — het algemene bronmodel en configuratiebestand.
- Claude Code aansluiten — het coöperatieve pad dat de backstop aanvult.
- Dekking en attributie-betrouwbaarheid — de clean/lossy/opaque en firm/approximate/unknown assen.
- De toegangskaart — wat deze observaties opbouwen.