[DE] Linux Dateirechte - SUID

in #deutsch7 years ago

sec-image.png

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.

passwd.PNG

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.png

find bietet die Möglichkeit Befehle mittels -exec aus zu führen:
findwhoami.png

Nun wird das SUID-Bit gesetzt: chmod +s /usr/bin/find
chmodfind.png

Anschließend führen wir den selben Befehl wie zuvor aus:
findwhoamiroot.png

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 !

Sort:  

Mal wieder etwas neues gelernt. Selbst als jahrelanger Nutzer, habe ich das SUID-Bit davor noch nicht verstanden.