OpenBSD pledge() für Linux
Zusammenfassung
Justine Tunney implementiert OpenBSDs pledge-Konzept auf Linux mit Seccomp-BPF und weiteren Kernelmechanismen.
Ideen
- Anwendungen deklarieren erlaubte Fähigkeitsgruppen mit verständlichen Versprechen.
- Spätere pledge-Aufrufe können Rechte weiter reduzieren, niemals wieder erweitern.
- Linux-Syscalls werden hinter portablen Promise-Kategorien verborgen.
- Seccomp-BPF erzwingt die resultierenden Systemaufrufbeschränkungen im Kernel.
- Selbstbeschränkung verkleinert die Folgen später ausnutzbarer Programmfehler.
Einsichten
- Sicherheits-APIs werden häufiger eingesetzt, wenn Regeln auf Anwendungskonzepte passen.
- Grobe, verständliche Grenzen können wertvoller als perfekte, unwartbare Policies sein.
- Portabilität verlangt eine stabile Semantik oberhalb unterschiedlicher Kernelmechanismen.
Fakten
- OpenBSD führte pledge ursprünglich als eigene Sicherheitsfunktion ein.
- Die Linux-Implementierung verwendet überwiegend Seccomp-BPF.
- Promise-Gruppen beschreiben Fähigkeiten wie Dateizugriff, Netzwerk oder Prozessstart.
Empfehlungen
- Setze pledge erst nach Initialisierung und reduziere Rechte anschließend erneut.
- Teste alle Fehlerpfade, Updates und optionalen Funktionen unter der Policy.
Referenzen
Der Link zur Originalquelle öffnet einen neuen Tab.