Durcir le compilateur eBPF

Risque faible Coché par défaut dans IbexWall Catalogue révisé le: 2026-11-05

Rend le code produit par le compilateur eBPF plus difficile à détourner pour les attaques qui y glissent des instructions choisies.

Pourquoi il compte

Les programmes eBPF sont transformés en code machine par un compilateur à la volée. Une attaquante capable de charger un programme peut forger des constantes à l’intérieur pour que, lues depuis un autre décalage, elles deviennent des instructions de son choix. C’est le JIT spraying, et le durcissement existe pour l’empêcher.

Comment il fonctionne

Met net.core.bpf_jit_harden à 2. Des protections comme l’aveuglement des constantes s’appliquent alors aux programmes eBPF de tous les utilisateurs, pas seulement aux non privilégiés. La documentation du noyau note un léger coût en performance, quand le JIT est utilisé.

À qui il s'adresse

Une précaution peu coûteuse pour presque tous. Les machines qui font un traitement réseau intensif en eBPF et comptent chaque bit de vitesse peuvent préférer mesurer d’abord.

Ce que vous pouvez remarquer

En général rien. Les programmes eBPF peuvent être légèrement plus lents, ce qui ne se voit que sur des configurations réseau ou de traçage très chargées.

Le vérifier sur votre ordinateur

Lire la valeur actuelle :

sysctl net.core.bpf_jit_harden

Une valeur plus stricte que celle-ci convient aussi.

L'appliquer à la main

La définir maintenant (jusqu'au prochain redémarrage) :

sudo sysctl -w net.core.bpf_jit_harden=2

La conserver après les redémarrages, dans un fichier qui vous appartient :

sudo tee /etc/sysctl.d/90-kernel-bpf-jit-harden.conf <<'EOF'
net.core.bpf_jit_harden = 2
EOF
sudo sysctl --system

L'annuler

Supprimez le fichier et redémarrez, ou remettez l'ancienne valeur avec sysctl -w.

Réglages liés

Sources

Linux Hardening Guide (madaidans)
2.2.1
Linux kernel documentation
net.core.bpf_jit_harden