Restringir o eBPF a administradores

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

O eBPF deixa programas executar código dentro do kernel e é fonte constante de falhas. Isto o limita a programas privilegiados.

Por que importa

O eBPF permite que programas carreguem pequenos trechos de código que o kernel executa por eles. O kernel verifica esse código com um verificador, e erros nesse verificador repetidamente permitiram que usuários comuns escapassem para o controle total da máquina. Se só programas privilegiados puderem carregar eBPF, esses erros ficam fora do alcance dos demais.

Como funciona

Define kernel.unprivileged_bpf_disabled como 1. Chamadas a bpf() sem CAP_BPF ou CAP_SYS_ADMIN passam a falhar com erro de permissão. A documentação do kernel diz que, uma vez em 1, o valor não volta a 0 sem reiniciar; o valor 2 desativa, mas deixa um administrador mudar depois.

Quem deve usar

Certo para a maioria dos desktops e servidores. Deixe desligado se você roda ferramentas eBPF como usuário comum, como alguns experimentos de rastreio ou rede.

O que você pode notar

Programas que carregam eBPF sem privilégios falham com Operation not permitted. Rode-os como root ou com a capacidade certa. Software de desktop raramente precisa disso.

Verifique no seu computador

Leia o valor atual:

sysctl kernel.unprivileged_bpf_disabled

Um valor mais restritivo que este também serve.

Aplique à mão

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

sudo sysctl -w kernel.unprivileged_bpf_disabled=1

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

sudo tee /etc/sysctl.d/90-kernel-unprivileged-bpf.conf <<'EOF'
kernel.unprivileged_bpf_disabled = 1
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
kernel.unprivileged_bpf_disabled