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.
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.
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.
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).
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.
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 !