Saltar al contenido

Guías

Conectar el backstop eBPF

Usa el observador eBPF para señales de I/O de archivos y red no cooperativas, con cobertura clean-tier sin depender del agente.

Actualizado:

El eBPF backstop es el observador non-cooperative de ground truth. Se engancha a tracepoints de syscalls del kernel y reporta I/O de ficheros y red como aristas del access map que ningún agente en userspace puede evadir, desactivar ni tergiversar. Donde la telemetria cooperativa confia en que el agente informe con honestidad, el backstop no lo hace — observa el kernel, no el agente.

Para el modelo general de fuentes y la estructura de OLIVARES_SOURCES_CONFIG, consulta Conectar una fuente. Para la via cooperativa que el backstop complementa, consulta Conectar Claude Code.

Que observa

El backstop instrumenta syscalls a nivel de kernel — open, read, write, connect, sendto, recvfrom y sus variantes — y emite una observacion por cada evento de I/O relevante. La clasificación lectura/escritura proviene de la propia syscall, no de lo que el agente declare, por lo que es autoritativa del mismo modo que la clase READ/WRITE de pgAudit es autoritativa: el kernel realizo la operación, por tanto la operación ocurrio.

El resultado es un flujo de aristas del access map que atribuyen I/O de ficheros y red a una identidad de proceso en el host. Estas aristas alimentan el mismo access map que cualquier otra fuente.

Por que existe

La telemetria cooperativa — exportaciones OpenTelemetry, payloads de hooks, introspeccion MCP — es mas rica y de mayor nivel, pero es cooperativa: es el agente quien la emite. Un agente que desactiva su exportador OTel, o un runtime que nunca tuvo uno, no produce ninguna senal cooperativa.

El eBPF backstop cierra esa brecha. Un agente que deja de exportar telemetria sigue haciendo syscalls; el kernel las sigue viendo; el backstop las sigue reportando. Este es el ground truth al que hace referencia el documento Conectar Claude Code:

El ground truth para actividad genuinamente non-cooperative es el backstop kernel/eBPF, no esta heurística.

Esa heurística — detectar una sesión que deja de emitir OTel mientras sus hooks siguen disparandose — es una senal de anomalia del lado cooperativo. El backstop hace observable el lado non-cooperative.

Nivel de cobertura

El backstop es de nivel clean en el modelo de fidelidad. Lectura vs escritura se determina a partir de la syscall, no de lo que el agente declare. El documento de fidelidad lo enumera junto a pgAudit y CloudTrail: “the kernel-level eBPF ground truth.” La cobertura clean no implica atribución clean — consulta los limites mas abajo.

Cuando usarlo frente a la observacion cooperativa

Se componen; no se sustituyen entre si.

  • Cooperativo (OTel, hooks, MCP) — contexto de mayor nivel: sesiones, herramientas, modelos, coste. El mapa mas rico.
  • Non-cooperative (eBPF) — la garantia anti-evasión: lo que realmente ocurrio a nivel de kernel, independientemente de lo que el agente decidiera reportar.

Ejecuta ambos. La via cooperativa construye el mapa rico contra el que gobiernas. El backstop proporciona el suelo infalsificable que captura cualquier cosa que la via cooperativa haya pasado por alto — evasión, mala configuración, o un runtime sin telemetria.

Modelo de despliegue

El backstop se ejecuta en cada host donde los agentes operan, integrado en el serve estándar como source kind ebpf junto a pgaudit, s3cloudtrail, runtime, mcp y claude. Dado que los programas eBPF se enganchan al kernel del host, una sola instancia por host cubre todos los procesos de agentes. No hay paso de instalacion por agente.

Capacidades Linux

El tracing eBPF requiere privilegios elevados de kernel. Como mínimo, el proceso que carga los programas eBPF necesita capacidades de la familia CAP_BPF y CAP_PERFMON (o equivalentes, dependiendo de la version del kernel — kernels mas antiguos las engloban en CAP_SYS_ADMIN).

:::caution El conjunto exacto de capacidades depende de tu version de kernel, distribucion y modulo de seguridad (AppArmor, SELinux). Consulta la documentacion propia del conector para los flags precisos requeridos — esta página no enumera un conjunto definitivo porque varia entre entornos. Ejecutarlo en un contenedor requiere grants de capacidades explicitos (y posiblemente un montaje del filesystem BPF); un pod de Kubernetes con restricciones necesita overrides en securityContext. :::

Configuración

Selecciona kind: "ebpf" en OLIVARES_SOURCES_CONFIG, usando la misma estructura de source-entry que cualquier otro conector:

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

Las claves exactas de config pertenecen al conector; lee su descriptor en lugar de copiar un schema no verificado. El objeto config de arriba esta intencionalmente vacio — esta página sigue la misma regla que Conectar una fuente: solo documentamos claves que hemos verificado, y no hemos verificado la superficie de configuración del conector eBPF desde estos docs web.

Propiedades anti-evasión

El backstop no depende de la cooperación del agente:

  • Un agente que desactiva su exportador OTel sigue generando syscalls en el kernel — el backstop las ve.
  • Un agente que miente en su telemetria cooperativa no puede mentir al kernel. El registro de syscalls es autoritativo.
  • Un servidor MCP que informa incorrectamente readOnlyHint / destructiveHint no afecta a lo que el backstop observa — son senales cooperativas que no consume.

La heurística del lado cooperativo en Conectar Claude Code — una sesión cuyo OTel se silencia mientras los hooks siguen disparandose — es una senal de deteccion. El backstop es el ground truth al que apunta esa senal.

Limites honestos

El backstop observa lo que el kernel ve, no lo que el agente pretende. Esa distincion importa:

  • La atribución es a nivel de proceso. El I/O se atribuye a una identidad de proceso (PID, UID, ruta del binario). Si multiples agentes comparten un proceso, el backstop no puede separar sus accesos — la atribución es approximate, no firm. La atribución por agente requiere una senal de identidad por agente; consulta Fidelidad.
  • Sin contexto de sesión ni herramienta. El backstop ve syscalls, no sesiones ni nombres de herramientas. No puede indicar que tool call provoco una escritura de fichero — solo que el proceso escribio el fichero. La via cooperativa lleva ese contexto.
  • Dependencia de la version de kernel. La disponibilidad de tracepoints eBPF varia entre versiones de kernel. Confirma la version mínima de kernel contra la documentacion propia del conector.
  • Sin contenido de payload. Como cualquier otra fuente, el backstop emite identificadores y una clasificación lectura/escritura, nunca contenido de ficheros ni payloads de red.

Relacionado

Buscar documentación