Bagle-Wurm legt Web-Server lahm [Update]

Der aktuelle Bagle-Wurm (je nach Hersteller AG, AH oder AI) versucht von einer ganzen Reihe von Web-Servern eine Seite "o.php" abzurufen. Kleinere Server legt die Last der Anfragen lahm.

In Pocket speichern vorlesen Druckansicht 364 Kommentare lesen
Lesezeit: 2 Min.

Der aktuelle Bagle-Wurm (je nach Firma AG, AH oder AI) versucht von einer ganzen Reihe von Web-Servern eine Seite "o.php" abzurufen. Vor allem kleinere Sites haben mittlerweile Probleme, die Last der Zugriffe zu verarbeiten und sind nicht oder nur noch schwer zu erreichen. Betroffene berichten von mehr als hundert Anfragen pro Sekunde.

Arne Oberdieck, technisch Verantwortlicher für den Schulen-ans-Netz-Server empfiehlt zwei Maßnahmen: Zum einen sollte man eine leere Datei "o.php" anlegen. Deren Auslieferung erzeugt deutlich weniger Systemlast als eine entsprechende Fehlermeldung (404). Des weiteren rät er geplagten Admins, in der Server-Konfiguration die KeepAlive-Funktion zu deaktivieren, was die Systembelastung weiter senkt. Nach diesen beiden Änderungen war zumindest der Schulen-ans-Netz-Server wieder erreichbar.

Update:
Der Administrator von BerlinOnline.de hat ähnliche Erfolge mit folgender Ergänzung zur Apache-Konfiguration erzielt:

<LocationMatch "^/o.php">
Order Allow,Deny
Deny from all
ErrorDocument 403 "Sorry
SetEnv nokeepalive
SetEnv downgrade-1.0
SetEnv force-response-1.0
</LocationMatch>

Michael Stegmann von Network Design hat auf dem von ihm betreuten IIS-Server .php auf ASP.NET umgeleitet. Er empfiehlt ebenfalls, statt eines Fehlers eine leere Datei zurückzuliefern, da Fehlerdokumente (Status 4xx) von Proxies und Caches nicht zwischengespeichert werden. Der folgende ASP-Code in "o.php" setzt deshalb extra ein hohes Verfallsdatum.

<%@ Page Language="C#" Debug="false" EnableSessionState="false" 
EnableViewState="false" %>

<%
Response.Clear();
Response.ContentType = "text/plain";
Response.Cache.SetExpires(DateTime.Now.AddDays(30));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Write("not allowed");
%>

Siehe dazu auch: (ju)