Ein Sicherheitsproblem im Apache beheben

Am 10. Juni 2001 wurde auf der renommierten BugTraq-Liste ein Hinweis auf ein Sicherheitsproblem mit dem bei MacOS X vorinstallierten Apache Webserver gepostet. Demnach ist es unter Umständen möglich, auf eigentlich geschützte Dateien eines mit dem Apache gehosteten Web-Angebots zuzugreifen.
Das Problem steht im Zusammenhang mit dem Dateisystem HFS+, da dieses Groß- und Kleinschreibung von Dateien nicht unterscheidet. Wenn man mit dem Apache ein Web-Angebot auf einem HFS+-Volume betreibt und beispielsweise eine geschützte Datei
/Library/WebServer/Documents/test/index.html
hat, so kann man auf diese auch ohne Berechtigung zugreifen, wenn man einfach den Namen des Verzeichnisses, in dem die Datei liegt, anders schreibt, z.B.
/Library/WebServer/Documents/TeSt/index.html
Verwendet man statt HFS+ das Filesystem UFS so tritt dieser Fehler nicht auf, da UFS Groß- und Kleinschreibung bei Dateinamen unterscheidet (der Ordner in der Schreibweise "TeSt" wäre dort ein anderer Ordner als "test" und würde erst gar nicht gefunden werden). Ferner trat das Problem auch nur in der Consumer-Version von MacOS X auf, nicht jedoch in MacOS X Server, da Apple dort ein Modul für den Apache mitliefert, das das Problem behebt.
Ende Juli hat Apple dann endlich das Web Sharing Update veröffentlicht, das dieses Modul enthält und auch unter der Consumer-Version von MacOS X installiert (zudem wird noch der Apache und OpenSSL aktualisiert).
Das Modul selbst übersetzen und installieren
Die folgende Beschreibung stammt noch aus der Zeit, als das Modul nur im Quelltext erhätlich war und beschreibt das Übersetzen und Installieren des Moduls "von Hand". Diese Schritte sind nicht nötig, wenn man stattdessen das o.g. Web Sharing Update einspielt.
Um das Modul herunterladen zu können, benötigt man einen Login, der jedoch kostenlos erhältlich ist. Apple will damit nur sicherstellen, dass man die Apple Public Source License, unter der dieses Modul veröffentlicht wird, akzeptiert. Dazu geht man wie folgt vor:
Unter der Adresse http://www.opensource.apple.com/projects/darwin/darwinserver/ findet sich der Quelltext des benötigten Apache-Moduls (zusammen mit drei weiteren Modulen). Klickt man auf "Apache Modules (tar+gzip archive)", so wird man zur Eingabe einer ID und eines Passworts aufgefordert. Wenn man noch keinen Login hat, kann man einfach auf Abbruch klicken. Dann wird man auf eine Seite verwiesen, auf der man die Apple Public Source License akzeptieren und anschließend per Formular einen Login erhalten kann. Mit diesem kehrt man dann zur Download-Seite zurück und kann das Modul nun herunterladen.
Nach dem Entpacken des Archivs erhält man insgesamt vier Ordner für ebensoviele Module. Uns soll hier aber nur das Modul "mod_hfs_apple" im gleichnamigen Ordner interessieren. Zum Übersetzen und Installieren des Moduls ist es nötig, ins Terminal zu wechseln:
cd mod_hfs_apple
make
Damit ist das Modul auch schon übersetzt. Für die eigentliche Installation ist noch etwas mehr Handarbeit nötig (diese Kommandos müssen mit root-Rechten durchgeführt werden):
su root
cp mod_hfs_apple.so /usr/libexec/httpd
cd /usr/libexec/httpd
chown root mod_hfs_apple.so
chgrp wheel mod_hfs_apple.so
chmod a+x mod_hfs_apple.so
Damit wurde das Modul in das richtige Verzeichnis kopiert und die Rechte richtig gesetzt. Nun müssen wir nur noch dem Apache mitteilen, dass er dieses Modul auch verwenden soll.
Dazu müssen zwei Zeilen in die Datei /etc/httpd/httpd.conf eingetragen werden. Man lädt diese Datei also von der Kommandozeile aus in seinen bevorzugten Editor (pico oder vi). In der Conf-Datei gibt es einen Abschnitt mit vielen LoadModule-Anweisungen. Ans Ende dieses Anweisungsblocks schreiben wir die neue Zeile
LoadModule apple_hfs_module libexec/httpd/mod_hfs_apple.so
Direkt hinter dem Block mit den LoadModule-Anweisungen folgt
ein Block von AddModule-Anweisungen. Ans Ende dieses Blocks
fügen wir folgende Zeile an:
AddModule mod_hfs_apple.c
Es ist dabei wichtig, dass die neuen LoadModule- bzw.
AddModule-Anweisungen an der gleichen Stelle des jeweiligen
Blocks stehen, d.h. man könnte sie auch jeweils als erste Zeile des
jeweiligen Blocks einfügen, nicht aber die eine Zeile an den Anfang
und die andere ans Ende. Die Reihenfolge der Module in den beiden
Anweisungsblöcken muss übereinstimmen.
Nach dem Speichern der httpd.conf-Datei muss der Apache nur neu gestartet werden.
Problem nicht behoben?
Leider ist damit das Sicherheitsproblem noch nicht vollständig
behoben, wie eine Leserzuschrift
an die News-Site Macintouch erläutert. Demnach behebt Apples
Apache-Modul das Problem nur für Directory-Regeln
in der httpd.conf, nicht aber für
Files-Regeln.
Wer wirklich sicher gehen will, dass sein Apache sicher ist, muss also diese Regeln auf evtl. Probleme überprüfen oder den Apache besser doch gleich auf einem UFS-Volume betreiben.
Beitrag von: Dirk (16. Sep. 2001)
|
|
MacOS X FAQ
Ein Sicherheitsproblem im Apache beheben
| 0 Kommentar(e) | (Neuen Account anlegen)