Product SiteDocumentation Site

5.10. Allgemeine chroot- und suid-Paranoia

chroot ist eine der mchtigsten Mglichkeiten, einen Daemon oder einen Benutzer oder einen anderen Dienst zu beschrnken. Denken Sie einfach an ein Gefngnis um Ihr Ziel, welches das Ziel nicht verlassen kann (normalerweise, es gibt aber einige Bedingungen, die einem einen Ausbruch aus solch einem Gefngnis ermglichen). Wenn Sie einem Benutzer oder einem Dienst nicht trauen, knnen Sie eine modifizierte root-Umgebung fr ihn erzeugen. Dies kann einiges an Plattenplatz bentigen, da Sie alle bentigten Programme ebenso wie Bibliotheken in das Gefngnis kopieren mssen. Aber danach ist die Wirkung des Schadens, selbst wenn der Benutzer etwas bsartiges macht, auf das Gefngnis beschrnkt.
Viele Dienste, die als Daemonen laufen, knnen von dieser Vorgehensweise profitieren. Die Daemonen, die Sie mit Ihrer Debian-Distribution installieren, laufen jedoch nicht standardmig in einem chroot-Gefngnis.[50]
Dies beinhaltet: Name-Server (wie bind), Web-Server (wie apache), Mail-Server (wie sendmail) und FTP-Server (wie wu-ftpd). Wahrscheinlich ist es nur fair zu sagen, dass die Komplexitt von BIND der Grund dafr ist, warum er in den letzten Jahren so oft fr Attacken verwundbar war (vergleiche Abschnitt 5.7, „Absichern von BIND“).
Jedoch bietet Debian einige Software an, die helfen kann, chroot-Umgebungen aufzubauen. Sehen Sie Abschnitt 5.10.1, „Automatisches Erstellen von Chroot-Umgebungen“.
Wenn Sie irgendwelche Dienste in Ihrem System laufen lassen, sollten Sie dies so sicher wie nur mglich tun. Dies beinhaltet: Entziehung von root-Privilegien, Starten in beschrnkten Umgebungen (wie ein chroot-Gefngnis) oder Ersetzen durch ein sichereres quivalent.
Seien Sie jedoch gewarnt, dass aus einem chroot-Gefngnis ausgebrochen werden kann, wenn der Benutzer, der im Inneren luft, der Superuser ist. Sie mssen also sicherstellen, dass der Dienst als nicht privilegierter Benutzer luft. Durch Einschrnken seiner Umgebung schrnken Sie die welt-lesbaren/ausfhrbaren Dateien, auf die der Dienst zugreifen kann, ein. Auf diese Weise begrenzen Sie die Mglichkeiten einer Rechteerweiterung durch lokale Sicherheitsverwundbarkeiten des Systems. Selbst in dieser Situation knnen Sie nicht vllig sicher sein, dass es fr einen cleveren Angreifer keinen Weg gibt, irgendwie aus dem Gefngnis auszubrechen. Der ausschlieliche Einsatz sicherer Server-Programme, die einen guten Ruf bezglich Sicherheit haben, ist eine zustzliche gute Sicherheitsmanahme. Selbst kleinste Lcher wie offene Datei-Handle knnen von einem versierten Angreifer zum Einbruch in das System verwendet werden. Schlielich war chroot nicht als Sicherheits-, sondern als ein Testwerkzeug gedacht.

5.10.1. Automatisches Erstellen von Chroot-Umgebungen

Es gibt verschiedene Programme, um Server und Dienste automatisch in ein Chroot-Gefngnis einzusperren. Debian bietet zurzeit (akzeptiert im Mai 2002) Wietse Venemas chrootuid im Paket chrootuid, ebenso wie compartment und makejail an. Diese Programme knnen verwendet werden, um eine eingeschrnkte Umgebung zum Ausfhren beliebiger Programme aufzusetzen (chrootuid erlaubt es Ihnen sogar, es unter einem eingeschrnkten Benutzer laufen zu lassen).
Einige dieser Werkzeuge knnen verwendet werden, um das Chroot-Gefngnis leicht aufzusetzen. Zum Beispiel kann das makejail-Programm ein chroot-Gefngnis mit kurzen Konfigurationsdateien erzeugen und aktualisieren. (Es bietet Beispielskonfigurationsdateien fr bind, apache, postgresql und mysql.) Es versucht alle Dateien, die vom Daemon bentigt werden, mittels strace, stat und Debians Paketabhngigkeiten zu bestimmen und in das Gefngnis zu installieren. Weitere Information gibt es unter http://www.floc.net/makejail/. Jailer ist ein hnliches Werkzeug und kann von http://www.balabit.hu/downloads/jailer/ heruntergeladen werden und ist auch als Debian-Paket verfgbar.


[50] Es wird versucht, diese mit minimalen Rechten laufen zu lassen, was beinhaltet, Daemonen unter ihren eigenen Benutzern, anstatt unter Root, laufen zu lassen.