phpbar.de logo

Mailinglisten-Archive

[php] "Server-Attacken" l�hmen?

[php] "Server-Attacken" l�hmen?

Thomas Koudela thomas at koudela.net
Mo M�r 29 19:25:24 CEST 2010


Am Montag, den 29.03.2010, 16:04 +0200 schrieb "Mario Ha�ler":
> Hallo allerseits!
> 
> Ich werte regelm��ig error.logs aus und �rgere mich dann �ber sowas:
> 
> [Thu Mar 25 21:00:40 2010] [error] s15281379.rootmaster.info  File does not exist: /www/shop/admin/file_manager.php
> [Thu Mar 25 21:00:40 2010] [error] s15281379.rootmaster.info  File does not exist: /www/onlineshop/admin/file_manager.php
> [Thu Mar 25 21:00:40 2010] [error] s15281379.rootmaster.info  File does not exist: /www/store/admin/file_manager.php
> [Thu Mar 25 21:00:40 2010] [error] s15281379.rootmaster.info  File does not exist: /www/cart/admin/file_manager.php
> [Thu Mar 25 21:00:40 2010] [error] s15281379.rootmaster.info  File does not exist: /www/boutique/admin/file_manager.php
> [Thu Mar 25 21:00:40 2010] [error] s15281379.rootmaster.info  File does not exist: /www/oscommerce/admin/file_manager.php
> [Thu Mar 25 21:00:40 2010] [error] s15281379.rootmaster.info  File does not exist: /www/osc/admin/file_manager.php
> [Thu Mar 25 21:00:40 2010] [error] s15281379.rootmaster.info  File does not exist: /www/catalog1/admin/file_manager.php
> [... usw. ...]

Kenn' ich. Allerdings habe ich selten wie in diesem Fall acht in einer
Sekunde.

> Hier versucht also ein "Angreifer" durch systematisches Ausprobieren
> herauszufinden, ob ich ein bestimmtes Software-Paket installiert habe,
> vermutlich um bei Erfolg dessen Sicherheitsl�cke auszunutzen. Da die
> Software nicht installiert ist, passiert zwar nichts weiter als der
> Eintrag von lauter 404-Fehlermeldungen in die error.log, aber ich w�rde
> gerne dem "Angreifer" eins auswischen.

Rache als Motiv? ;-)

> Meine �berlegung dazu: Der Server ist so konfiguriert, dass im Fehler-
> fall 404 ein bestimmtes PHP-Skript aufgerufen wird. Dies k�nnte ich
> mit Mustern f�ttern (hier z. B. "admin/file_manager.php") und bei
> einem Treffer die Antwort an den Anfrage-Sender verz�gern, sodass es
> diesem zu lange dauert und er hoffentlich von weiteren Anfragen ab-
> sieht. Meine Fragen hierzu:
> 
>  1. Ist das sinnvoll? Ist es wahrscheinlich, dass weitere Anfragen
>     ausbleiben, wenn die erste verz�gert wird?

N�. Du wirst wahrscheinlich in der Summe die gleiche Anzahl an Angriffen
haben, aber besser verteilt.

>  2. Geht das �berhaupt? Der Angreifer fragt evtl. nur die Header ab
>     und nicht den Seiteninhalt. (Er braucht ja nur den Return-Code
>     200 oder 404 wissen.) Liefert der Apache-Server diese Header
>     bzw. diesen Return-Code bereits aus, bevor mein Skript �berhaupt
>     dran kommt und die Antwort verz�gern kann?

Die Header werden erst gesendet, sobald die erste Ausgabe ausgef�hrt
wird. Insofern w�rde die Antwort tats�chlich verz�gert.

>  3. K�nnte sich ein solches Verz�gern nachteilig auf meine Seiten
>     oder den Server, auf denen meine Seiten liegen, auswirken?
>     (Serverlast, offene Prozesse, ...)

Eine PHP-Datei - selbst wenn sie au�er der Ausgabe nur eine
sleep-Anweisung beherbergt - ben�tigt nat�rlich mehr Rechenaufwand als
das HTML-�quivalent. Und als offener Prozess z�hlt sie w�hrend dieser
Zeit wohl auch. Ein Nachtunen und einen leichten Performanceeinbruch
musst Du bei einem Server, welcher am Limit f�hrt, wohl in Kauf nehmen.

>  4. Welche Alternativen gibt es? Kann man die Anzahl der Zugriffe
>     pro Zeiteinheit begrenzen? Vielleicht sogar dynamisch, d. h.
>     je mehr gefragt wird, desto langsamer reagieren?

Da m�sst ich jetzt selber googlen.

>  5. Sollte man das �berhaupt in Erw�gung ziehen oder lieber die
>     Finger davon lassen?

Diese Anfragen treten normalerweise nicht in einem Umfang auf, dass sie
einen nennenswerten Anteil der Serverlast ausmachen. Ich w�rde diese
"Fehler" aber nicht mitloggen lassen. Erstens �bersieht man so die
wichtigen Fehlermeldungen und zweitens schreibt Dein System dadurch
dauernd in eine Datei, was unn�tig Ressourcen verbraucht.

> Wenn viele Seiten sich in der beschriebenen Weise "zur Wehr" setzen
> w�rden, dann k�nnte man diese Angreifer doch gut lahm legen, oder?

N�. W�hrend Dein Server mit der Antwort wartet, hat der Angreifer auch
nichts zu tun... Und kann weitere Anfragen starten.

> Mir ist bewusst, dass mein Anteil klein ist, aber mir geht es ja in
> erster Linie um den "Schutz" meiner Seiten.

Der einzige Schl�ssel zum Schutz gegen solche Attacken ist IMO fremden
PHP-Code immer gegenzulesen. Gerade in beliebter OpenSource-Software
wird gerne mal ein Trojaner versteckt. (Habe selber vor Jahren mal
schlechte Erfahrung gemacht.)

> Mir ist auch klar, dass manche Fragen eher den Server ber�hren (hier:
> Apache), aber vielleicht kennt sich der eine oder andere ja auch damit
> aus.
> 
> Freue mich �ber jede Antwort.
> 
> Viele Gr��e,
> 
> Mario Ha�ler

Hoffe es war was n�tzliches dabei.

Sch�ne Gr��e,
Thomas Koudela


php::bar PHP Wiki   -   Listenarchive