bk99.de entertain the web since 1997

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

Originalartikel lesen →