![]() Mailinglisten-Archive |
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