chroot

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen


Das Board mit Freiheiten

chroot

chroot steht für „change root“ und ist eine Funktion auf Unix-Systemen, um das Rootverzeichnis zu ändern. Sie wirkt sich nur auf den aktuellen Prozess und seine Kindprozesse aus. „chroot“ selbst kann sich auf den Systemaufruf chroot(2) als auch auf das Dienstprogramm chroot(8) beziehen.

Ein Programm, das auf ein Verzeichnis re-rooted wurde, kann nicht mehr auf Dateien außerhalb dieses Verzeichnisses zugreifen. Chrooting bietet somit eine einfache Möglichkeit, nicht vertrauenswürdige, Test- oder sonstwie gefährliche Programme in eine Sandbox zu versetzen. Es ist ein einfacher Jail-Mechanismus, aus dem aber durchaus leicht wieder ausgebrochen werden kann.

In der Praxis wird "Chrooting" dadurch erschwert, dass Programme beim Start erwarten, Platz für temporäre Dateien, Konfigurationsdateien, Gerätedateien und Shared Libraries an bestimmten festen Orten vorzufinden. Um Programme also innerhalb des chroot-Verzeichnisses laufen lassen zu können, muss das Verzeichnis mit diesen notwendigen Dateien ausgestattet werden. Dabei ist vorsichtig vorzugehen, damit über sie nicht versehentlich Zugriff auf das restliche System ermöglicht wird.

Einsatz

Rechtetrennung
Ein chroot kann als Vorsorgemaßnahme gegen einen Sicherheitsbruch eingesetzt werden, indem es einen potentiellen Angreifer daran hindert, mit einem kompromittierten Programm Schaden anzurichten oder das System zu sondieren. Beispielsweise kann ein Dateiserver im Netzwerk das Verzeichnis, aus dem er einen Client bedient, direkt nach der Verbindungsaufnahme chrooten. Einen ähnlichen Ansatz verfolgt der Mail Transfer Agent der seine Aufgabe auf mehrere kleine, hintereinandergeschaltete Programme aufteilt, die jedes für sich in eigenen Chroots laufen. Ein guter Einsatz ist chroot auch für FTP Server, damit FTP User nicht aus ihrem "home" Directory in ein anderes Verzeichnis wechseln können.
Honeypot
Ein chroot-Verzeichnis kann so bestückt werden, dass ein echtes System mit Netzwerkdiensten simuliert wird. Der chroot-Mechanismus kann dann dieses System kompromittierende Angreifer daran hindern, zu erkennen, dass sie sich in einer künstlichen Umgebung befinden, oder in das echte System auszubrechen.
Testen
Die durch den chroot-Mechanismus erreichte Isolation ist auch zu Testzwecken nützlich. In ein solches Verzeichnis kann eine eigene Kopie des Betriebssystems installiert werden und als Testumgebung für Software dienen, deren Einsatz in einem Produktivsystem zu riskant wäre.
Reparatur
Um ein Linux/Unix System mit Hilfe einer Boot-CD wie Knoppix zu reparieren, kann chroot genutzt werden um auf dem eingemounteten System zu arbeiten. So kann beispielsweise ein vergessenes Root-Passwort wiederhergestellt werden.



Wichtige links