Was sind Capabilities
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