Aller au contenu

eBPF / Tetragon (le filet de sécurité noyau)

La source ebpf est la moitié anti-évasion de la carte R/RW. Là où le chemin coopératif voit ce qu’un agent rapporte, celle-ci voit ce que le noyau a fait — lectures/écritures de fichiers et connexions sortantes — même quand un agent désactive sa propre télémétrie, parce qu’elle tourne hors du contrôle de l’agent.

Deux décisions de conception la définissent, et toutes deux constituent la posture de sécurité :

  • Elle ne charge pas elle-même de programmes eBPF. Tetragon effectue la capture noyau, déployé comme service durci distinct détenant CAP_BPF + CAP_PERFMON. Le connecteur est un consommateur en lecture seule, sans aucune capacité, de l’export d’événements JSON de Tetragon (un fichier/FIFO partagé, mode 0600, ou stdin).
  • Elle est aveugle aux corps TLS et aux charges utiles. Elle observe des relations d’accès — jamais le contenu.

Le dépôt fournit le déploiement de référence sous connectors/ebpf/deploy/ : un DaemonSet Tetragon durci, les deux TracingPolicies (accès fichier, réseau), et une variante Compose pour les hôtes uniques.

ChampValeur
Source du signalebpf
Moderead / write fichier, arêtes de connexion réseau
Origineune identité d’exécution (processus/conteneur) — type identity, jamais un agent résolu
Confiancetoujours approximate — voir ci-dessous
Palier de couverturefilet de sécurité noyau

L’approximate est précis, pas modeste : l’accès est une vérité terrain du noyau (l’appel système a eu lieu) ; ce que le noyau ne peut pas fournir, c’est l’agent — il connaît le processus et le cgroup, pas quel agent gouverné c’était. Le module de carte d’accès améliore l’attribution lorsqu’une source d’identité lie l’identité d’exécution à un agent.

Sur Kubernetes, appliquez le DaemonSet et les TracingPolicies fournis :

Fenêtre de terminal
kubectl apply -f connectors/ebpf/deploy/tetragon-daemonset.yaml
kubectl apply -f connectors/ebpf/deploy/tracingpolicy-file-access.yaml
kubectl apply -f connectors/ebpf/deploy/tracingpolicy-network.yaml

Tetragon écrit son export JSON dans le volume partagé (/var/run/olivares/tetragon.log) ; le connecteur le lit de l’autre côté. Sur un hôte unique, connectors/ebpf/deploy/docker-compose.yaml est la même séparation sans Kubernetes. L’architecture complète et les notes de durcissement sont dans connectors/ebpf/deploy/README.md.

{
"sources": [{
"name": "node-kernel-backstop",
"kind": "ebpf",
"tenant": "<tenant-id>",
"config": {
"events_path": "/var/run/olivares/tetragon.log",
"detect_evasion": "true"
}
}]
}
CléDéfautSignification
events_path- (stdin)flux d’événements JSON de Tetragon — fichier, FIFO ou stdin
followtruecontinuer la lecture à mesure que le flux grandit
detect_evasionfalseoptionnel : signaler un processus d’agent connu dont la télémétrie coopérative devient muette alors que le noyau le voit encore agir
evasion_window5mdélai de grâce avant de signaler une connexion coopérative manquante
agent_signaturesclaude,claude-codenoms d’exécutables classés comme agents coopératifs pour le détecteur
otlp_endpoints127.0.0.1:4317,127.0.0.1:4318les points d’accès de télémétrie coopérative dont le détecteur corrèle les connexions

Le connecteur consomme les événements Tetragon ProcessKprobe (opérations sur fichiers et connexions réseau) et ProcessExit (état du détecteur) ; ProcessExec sert au contexte d’attribution et n’est jamais émis comme arête.

Les arêtes du noyau rejoignent la carte d’accès attribuées à des identités d’exécution, toujours marquées approximate. La sortie du détecteur atterrit dans Security sous forme de constats — une session qui cesse d’émettre alors que le noyau voit encore de l’activité est exactement le cas pour lequel cette source existe :

La vue Security listant les constats issus des sources détectives du parc. La vue Security listant les constats issus des sources détectives du parc.
  • Sa profondeur d’attribution de bout en bout est encore en cours de validation. Le chemin coopératif et l’audit natif des magasins sont les signaux vérifiés et à haute fidélité ; traitez le filet de sécurité noyau comme un rehausseur de plancher, pas comme une source primaire achevée (Honnêteté et limites).
  • La portée de Tetragon est celle de ses TracingPolicies. Les politiques fournies couvrent l’accès fichier et les connexions réseau ; ce qu’elles ne tracent pas n’existe pas dans l’export.
  • Processus ≠ agent. Sans liaison d’identité, chaque arête du noyau reste approximate — par conception, pas par accident.