Limitar um programa que inspeciona outro

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

Um programa só pode se anexar aos próprios filhos, então um malware na sua sessão não lê nem altera seus outros programas.

Por que importa

ptrace é a chamada que depuradores usam para ler e alterar outro programa em execução. Sem limites, um malware rodando como você pode se anexar ao seu navegador, agente de SSH ou gerenciador de senhas e tirar segredos da memória deles. A documentação do kernel usa exatamente esse cenário para explicar por que o Yama existe.

Como funciona

Define kernel.yama.ptrace_scope como 1 (ptrace restrito). Um processo só pode se anexar aos próprios descendentes, ou a um processo que o nomeou como depurador permitido. O modo 2 permite só administradores e o modo 3 proíbe por completo.

Quem deve usar

Um padrão saudável para desktops e servidores. Desenvolvedores que anexam depuradores a programas em execução podem usar sudo, ou iniciar o programa sob o depurador.

O que você pode notar

gdb -p ou strace -p num programa já em execução falha com ptrace: Operation not permitted. Iniciar o programa pelo gdb ou strace continua funcionando, como usar sudo.

Verifique no seu computador

Leia o valor atual:

sysctl kernel.yama.ptrace_scope

Um valor mais restritivo que este também serve.

Aplique à mão

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

sudo sysctl -w kernel.yama.ptrace_scope=1

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

sudo tee /etc/sysctl.d/90-kernel-ptrace.conf <<'EOF'
kernel.yama.ptrace_scope = 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.3
Linux kernel documentation, Yama
ptrace_scope