Was sind Capabilities

Aus Xinux Wiki
Version vom 10. Januar 2023, 07:45 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=Grundsätzliches= *Für Normaluser funktionieren viele Befehle nur, wenn ihnen Set-UID administrative Privilegien verleiht. *Doch das ist riskant – ein Bug…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Grundsätzliches

  • Für Normaluser funktionieren viele Befehle nur, wenn ihnen Set-UID administrative Privilegien verleiht.
  • Doch das ist riskant – ein Bug und etwas Pech genügen, schon ist der User Root.
  • Klug gesetzte Posix Capabilities statt S-Bits beschränken die Zusatzrechte dagegen auf das Nötigste.
  • Ohne Set-UID-Programme läuft kein Linux-System.
  • Solange jedes mit S-Bit ausgestattete Programm sicher entworfen und programmiert ist, sind S-Bits zwar ein Segen.
  • Sie bergen aber ein erhebliches Risiko:
  • Ein Fehler in einem einzelnen S-Bit-Programm genügt, und ein normaler User kann sich dessen sämtliche Rechte verschaffen, in der Regel also Root werden.
  • Als privilegierter Prozess setzen sich Set-UID-Root-Programme über alle Berechtigungsprüfungen hinweg.
  • Dabei brauchen die meisten Tools bei Weitem nicht alle Privilegien des Root-Rechts.

Root zerteilt

  • Seit Kernel 2.2 unterteilt Linux das Root-Recht in diskrete Privilegien, über die ein Prozess verfügen kann.
  • Diese Privilegien heißen unter Linux Posix Capabilities oder Pcaps, während Sun sie in Solaris als Privilege bezeichnet.
  • Ein Prozess darf unter Linux sogar die notwendigen Pcaps für einzelne Codeabschnitte aktivieren (auf »effective« setzen) oder abschalten.
  • Sie sind somit für Bugs in anderen Codeteilen nicht nutzbar.
  • Welche Capabilities unter Linux bereitstehen sieht man hier

Anwendungsmöglichkeiten

  • Apparmor
  • SElinux
  • systemd
  • setcap

Quelle