Dateirechte sind in Linux Systemen ein grundlegendes Konzept mit dem Schreib-, und Leserechte sowie das Ausführen von Dateien verwaltet werden.
In diesem Beitrag möchte ich mich auf ein nicht ganz so geläufiges Dateirecht beschränken - das SUID-Bit.
Durch setzen des SetUserID-Bits wird eine Datei immer mit den Rechten des Dateibesitzers ausgeführt.
Wofür wird das Dateirecht gebraucht ?
Ein Beispiel für einen sinnvollen Einsatzzweck dieses Dateirechts ist das Programm passwd, was Kennwörter von Benutzern und Gruppen ändert. Damit ein Benutzer selbst sein eigenes Passwort ändern kann, muss das SUID-Recht gesetzt sein. Somit wird das Programm als root ausgeführt.
Darstellung
Dargestellt wird das SUID-Bit wie folgt:
An der Stelle der Dateiberechtigung zum Ausführen einer Datei (x) ist das SUID-Bit an einem s oder S zu erkennen.
Ein kleines s bedeutet hierbei, dass neben dem SUID-Bit auch eine Ausführung möglich ist. Bei einem großen S dagegen ist dies nicht möglich.
Warum ist das SUID-Bit "gefährlich" ?
Das SUID-Bit sollte sehr vorsichtig eingesetzt werden und nur, wenn dies wirklich notwendig ist. Denn durch das priviligierte Ausführen einer Datei entsteht ein potentielles Sicherheitsrisiko. Wird eine Datei entsprechend manipuliert besteht die Möglichkeit einer Rechteausweitung (Privilegien-Eskalation).
Beispiel
Das Programm find mit den ursprünglichen Rechten:
find bietet die Möglichkeit Befehle mittels -exec
aus zu führen:
Nun wird das SUID-Bit gesetzt: chmod +s /usr/bin/find
Anschließend führen wir den selben Befehl wie zuvor aus:
Damit ist es nun also möglich beliebigen Code als root aus zu führen. Hat ein unautorisierter Zugriff auf ein System stattgefunden, so kann hierduch eine "Backdoor" eingerichtet werden, mit der es möglich ist von jedem Benutzer aus Administratorrechte zu erlangen.
Welche Dateien haben das SUID-Bit gesetzt ?
Gefunden werden können Dateien mit SUID-Rechten beispielsweise mittels:
find / -user root -perm -4000 -print 2>/dev/null
Offene Fragen beantworte ich wie immer gerne in den Kommentaren.
Vielen Dank fürs Lesen !
Mal wieder etwas neues gelernt. Selbst als jahrelanger Nutzer, habe ich das SUID-Bit davor noch nicht verstanden.