Bundesamt für Sicherheit in der Informationstechnik

M 4.198 Installation einer Applikation in einem chroot Käfig

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Administrator

Zur Erhöhung der Sicherheit kann eine Applikation in einem sogenannten chroot-Käfig installiert werden. Durch den Systemaufruf chroot() wird unter Unix der Zugriff einer bestimmten Applikation auf einen Teil des Dateibaums beschränkt. Dies geschieht dadurch, dass alle Zugriffe, die dieser Applikation und die von ihr aufgerufenen Applikationen auf das Dateisystem durchführt, relativ zu dem Verzeichnis erfolgen, das beim Aufruf der Funktion chroot() angegeben wurde. Das Verzeichnis wird so zur Wurzel eines virtuellen Dateibaums, der als chroot-Käfig oder chroot jail bezeichnet wird. Auf darüber liegende Verzeichnisse und Dateien kann nicht zugegriffen werden. Somit können beispielsweise mehrere Dienste auf einem Server voneinander abgeschottet werden.

Neben dem Systemaufruf chroot() steht auch ein ausführbares Programm gleichen Namens zur Verfügung, das zum Start beliebiger Applikationen in einem solchen chroot-Käfig genutzt werden kann. Wenn es beispielsweise einem Angreifer gelingt, eigenen Programmcode im Prozessraum der Applikation auszuführen, würde der unmittelbare Schaden dadurch begrenzt werden, dass der Angreifer keinen direkten Zugriff auf das eigentliche Betriebssystem erhält. Es existieren Möglichkeiten, aus einem chroot-Käfig auszubrechen. Ein Angreifer muss aber erst erkennen, dass er sich in einem chroot-Käfig befindet. Dadurch wird ein Angriff verzögert. Während dieser Zeit kann eventuell der Angriff erkannt und Gegenmaßnahmen können eingeleitet werden.

Der chroot-Käfig muss Kopien aller Dateien enthalten, die zur Ausführung der Applikation notwendig sind. Welche Dateien dies sind, muss anhand der vorhandenen Dokumentation geprüft werden. Im Normalfall sind dies folgende Dateien und Verzeichnisse: dev, lib, usr/bin, var, var/run, etc, und die applikationsspezifischen Dateien und Verzeichnisse.

Wird in Betracht gezogen, eine Applikation in einem chroot-Käfig zu installieren, so muss ausreichend Zeit für Planung und Tests vorgesehen werden. Bei der Installation muss dokumentiert werden,

  • welches das Wurzelverzeichnis des chroot-Käfigs ist und
  • welche Betriebssystemkomponenten im chroot-Käfig zur Verfügung gestellt werden.

Insbesondere müssen einige Device Files im chroot-Käfig angelegt werden, des Weiteren werden entsprechend angepasste Versionen der Dateien /etc/passwd und /etc/group benötigt. Aus diesen Dateien sollten alle nicht benötigten Einträge bis auf den Benutzer und die Gruppe unter denen die Applikation betrieben werden soll, entfernt werden. Je nach Betriebssystem können noch weitere Einträge, die in den Dateien verbleiben sollten, erforderlich sein.

Prüffragen:

  • Wurde die Konfiguration des chroot-Käfigs ausreichend dokumentiert?

  • Wurden alle nötigen Daten in den chroot-Käfig kopiert?

Stand: 12. EL Stand 2011