Endurecer o compilador do eBPF

Risco baixo Marcada por padrão no IbexWall Catálogo revisado em: 2026-11-05

Torna mais difícil abusar do código que o compilador do eBPF produz em ataques que introduzem instruções escolhidas.

Por que importa

Programas eBPF viram código de máquina por um compilador just-in-time. Um atacante que consegue carregar um programa pode forjar constantes dentro dele para que, lidas de um deslocamento diferente, virem instruções escolhidas por ele. Isso se chama JIT spraying, e o endurecimento existe para impedir.

Como funciona

Define net.core.bpf_jit_harden como 2. Proteções como a ofuscação de constantes passam a valer para programas eBPF de todos os usuários, não só os sem privilégio. A documentação do kernel observa que custa alguma performance e que vale quando o JIT está em uso.

Quem deve usar

Uma precaução barata para quase todos. Máquinas com processamento pesado de pacotes em eBPF, que se importam com cada bit de velocidade, podem preferir medir antes.

O que você pode notar

Normalmente nada. Programas eBPF podem rodar um pouco mais devagar, o que só aparece em cenários carregados de rede ou rastreio.

Verifique no seu computador

Leia o valor atual:

sysctl net.core.bpf_jit_harden

Um valor mais restritivo que este também serve.

Aplique à mão

Defina agora (até a próxima reinicialização):

sudo sysctl -w net.core.bpf_jit_harden=2

Mantenha após reinicializações, em um arquivo seu:

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

Desfaça

Remova o arquivo e reinicie, ou volte ao valor antigo com sysctl -w.

Configurações relacionadas

Fontes

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