MacOS X Server: Panik bei CGI
MacOS X Server hat einen schlimmen Bug, der Apples neues Serverbetriebssystem als Plattform fĂĽr Web-Server nahezu unbrauchbar macht.
MacOS X Server hat einen schlimmen Bug, der Apples neues Serverbetriebssystem als Plattform fĂĽr Web-Server nahezu unbrauchbar macht. Das ist besonders fatal, weil dies ein Anwendungsbereich ist, fĂĽr den MacOS X Server in seiner derzeitigen Version 1.0 ansonsten gut geeignet erscheint. Bei einem Test unter Last im c't-Labor quittierte der Rechner seinen Dienst, wenn der eingebaute Web-Server Apache mit Anfragen nach CGI-Skripten konfrontiert wurde: "System Panic".
CGI-Skripte (Common Gateway Interface) sind eine übliche und häufig benutzte Server-Erweiterung. Der Test führte regelmäßig zum Stillstand des Systems, wenn 32 oder mehr Prozesse wiederholt CGI-Skripte vom Server anforderten -- das entspricht einer Belastung, die mehrere hundert Surfer erzeugen würden. Der Rechner mußte jeweils per Reset-Knopf kalt gestartet werden. Selbst der in solchen Fälle vorgesehene Neustart ("press R to Reboot") oder der Aufruf des Low-Level-Debuggers ("press M to Monitor") funktionierten nicht mehr.
Ob die Prozesse lokal oder von Anwendern über das WWW gestartet werden, spielt keine Rolle. Das Verhalten kann jeder MacOS-X-Server-Besitzer reproduzieren -- selbst dann, wenn der Rechner gar nicht ans Internet angeschlossen ist. Dazu hat c't-Redakteur Jürgen Schmidt ein Shell Script (CGI Panic) geschrieben, das den eingebauten Apache Benchmark ("ab") zweiunddreißig mal nacheinander startet und damit den Absturz provoziert. Vergleichbare Programme wie etwa WebBench dürften dieselbe Reaktion auslösen. Damit öffnen sich Crackern ungeahnte Wege zur Sabotage: Sie können aus der Ferne ein CGI-Skript mehrmals nacheinander aufrufen und so jede Website unter MacOS X Server lahmlegen.
Daß der Apple-Apache den gesamten Rechner zum Absturz bringt, wirft kein gutes Licht auf die Implementation des Unix-Systems. Selbst mit 512 oder 1024 parallel laufenden Prozessen dürfte das System allenfalls langsam werden oder Fehlermeldungen ausgeben. Vermutlich handelt es sich um einen Fehler im Mach-Kernel, der bei Belastung mit einer größeren Anzahl Prozesse auftritt und keineswegs auf CGI-Skripte beschränkt ist.
Nachdem sie von c't ĂĽber den Fehler informiert wurden, konnten Apple-Mitarbeiter den Absturz reproduzieren. Solange kein Patch zur VerfĂĽgung steht, sollten MacOS-X-Server-Administratoren CGI-Skripte desaktivieren. (se)