Untersuchen eines Programms durch ein anderes begrenzen

Mittleres Risiko In IbexWall standardmäßig angehakt Katalog geprüft: 2026-11-05

Ein Programm darf sich nur an seine eigenen Kindprozesse anhängen, sodass Schadsoftware in Ihrer Sitzung Ihre anderen Programme weder lesen noch ändern kann.

Warum es wichtig ist

ptrace ist der Aufruf, mit dem Debugger ein anderes laufendes Programm lesen und verändern. Ohne Grenzen kann Schadsoftware unter Ihrem Konto Ihren Browser, den SSH-Agenten oder den Passwortmanager anhängen und Geheimnisse aus deren Speicher ziehen. Die Kernel-Dokumentation benutzt genau dieses Szenario, um Yama zu erklären.

Wie es funktioniert

Setzt kernel.yama.ptrace_scope auf 1 (eingeschränktes ptrace). Ein Prozess kann sich dann nur an eigene Nachfahren anhängen oder an einen Prozess, der ihn als erlaubten Debugger benannt hat. Modus 2 erlaubt es nur Administratoren, Modus 3 verbietet es ganz.

Für wen es sich eignet

Ein gesunder Standard für Desktops und Server. Entwickler, die Debugger an laufende Programme hängen, können sudo nutzen oder das Programm unter dem Debugger starten.

Was Sie bemerken könnten

gdb -p oder strace -p auf einem bereits laufenden Programm schlägt mit ptrace: Operation not permitted fehl. Das Starten aus gdb oder strace heraus funktioniert weiter, ebenso sudo.

Auf Ihrem Computer prüfen

Den aktuellen Wert lesen:

sysctl kernel.yama.ptrace_scope

Ein strengerer Wert als dieser ist ebenfalls in Ordnung.

Von Hand anwenden

Jetzt setzen (bis zum nächsten Neustart):

sudo sysctl -w kernel.yama.ptrace_scope=1

Nach Neustarts beibehalten, in einer eigenen Datei:

sudo tee /etc/sysctl.d/90-kernel-ptrace.conf <<'EOF'
kernel.yama.ptrace_scope = 1
EOF
sudo sysctl --system

Rückgängig machen

Entfernen Sie die Datei und starten Sie neu, oder setzen Sie den alten Wert mit sysctl -w zurück.

Verwandte Einstellungen

Quellen

Linux Hardening Guide (madaidans)
2.2.3
Linux kernel documentation, Yama
ptrace_scope