Sven Rautenberg: hack request in 1 sekunde 5

Beitrag lesen

Moin!

ich wollte mal die unix spezies fragen ,ob ein aufgerufenes script

Dein Logfile beweist, dass _kein_ Skript aufgerufen wurde. Insofern sind alle darauf folgenden Annahmen und Herleitungen falsch - zumindest für diesen konkreten Fall.

das zig mal in einer sekunde aufgerufen wird dem server schaden oder gar zerstören könnte.

Es ist problemlos möglich, den Server durch gezielte Überlastung, also den Aufruf von ungeschützten (dazu komme ich gleich) und rechenaufwendigen Skripten lahmzulegen.

Hier auf dem Self-Server kamen die Probleme auch immer mal wieder vor - teilweise wohl absichtlich, teilweise auch eher unabsichtlich (Benutzer-Dummheit in besonders schweren Fällen).

Das Problem: Die Suche und die Archivanzeige wurden mit vielen parallelen Aufrufen ausgelastet. Die Suche hatte zwar einen Überlastschutz eingebaut, der zu Beginn des Skripts die aktuelle Serverlast checkt und ggf. das Skript dann mit einer Fehlermeldung abbricht, das Problem war aber, dass dieses Skript selbst in Perl geschrieben ist und somit trotzdem erst einmal der Perl-Interpreter angeworfen werden mußte.

Die jetzige Lösung ist, dass ein kleines C-Programm, welches direkt und ohne großen Overhead startet, die Last prüft und bei freien Ressourcen dann das Perl-Skript startet.

Die Archiv-Anzeige hingegen wurde mal von einem wildgewordenen Spider überfallen. Der hatte wahnsinnig viele parallele Anfragen an den Server gestellt - und fürs Archiv werden auch wieder Perl-Skripte aufgerufen. Da sich der Spider-Programmierer (ein Suchmaschinenprojekt an einer deutschen Hochschule) irgendwie nicht wirklich entschuldigen wollte (dabei sollte allen Spider-Programmierern klar sein, dass sie sich extrem unfreundlich verhalten, wenn sie einen Server mit 100 parallelen Requests überfallen), wurde die IP-Adresse kurzerhand ausgesperrt.

Der Server kann bei solchen Überlast-Situationen - je nach Betriebssystem - durchaus abstürzen, zumindest aber total unansprechbar werden - für jeglichen Zugriff, auch für die Kommandozeile.

Schaden kann eigentlich nur dadurch entstehen, dass der Server aus dieser Situation nicht wirklich "nett" befreit werden kann. Wenn man es nicht schafft, die ausufernden Prozesse sauber oder unsauber abzuschießen, sondern die harte Methode mit einem Reset nutzen muß (Netzwerkkabel ziehen würde eigentlich helfen - nur kommt man da meist nicht ran, weil der Server im Rechenzentrum steht), dann können geöffnete Dateien und Datenbanken durchaus Datenverluste verursachen.

Der Prozessor kann übrigens auch durchbrennen, wenn er durch die hohe Last und mangelhafte Kühlung überhitzt. Dem Self-Server ist genau das schon mal passiert. Dagegen helfen Intel-Prozessoren - die brennen nicht durch, die regeln bei Überhitzung die Prozessortemperatur herunter. Der P4 kann laut TomsHardwareGuide wohl sogar das komplette Abnehmen des Kühlkörpers verkraften und läuft weiter!

- Sven Rautenberg

--
SELFTREFFEN 2003 - http://selftreffen.kuemmi.ch/
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|