Wie schützen die Webhoster sich vor "bösartigen" Skripten?
Adam
- webhosting
Hi,
ich frage mich wie Webhoster sich vor bösartigen Skripten schützen. Zum Beispiel würde ja eine Nichtstuende-Endlosschleife schon 100% CPU Auslastung erzeugen. Wird das mit einer Virtualisierungssoftware gelöst wo man eine maximale CPU und Speicherauslastung festlegen kann oder wie?
Hello,
ich frage mich wie Webhoster sich vor bösartigen Skripten schützen. Zum Beispiel würde ja eine Nichtstuende-Endlosschleife schon 100% CPU Auslastung erzeugen. Wird das mit einer Virtualisierungssoftware gelöst wo man eine maximale CPU und Speicherauslastung festlegen kann oder wie?
Die Scriptlaufzeit wird einfach begrenzt
Da werden auch die endlosesten Endlosschliefen plötzlich! endlich.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Tom,
Die Scriptlaufzeit wird einfach begrenzt
Da werden auch die endlosesten Endlosschliefen plötzlich! endlich.
Aber selbst wenn man die Skriptlaufzeit sehr niedrig hält z.B. 1 Sekunde (oder ist das nicht niedrig?) und dann sagen wir mal 50 Leute gleichzeitig das Skript aufrufen könnte man doch auch schon den Server für einige Zeit zum Stillstand bringen, oder nicht?
Habe gerade mal bei Funpic (einem Free-Webhoster) phpinfo() aufgerufen und dort steht max_execution_time auf 10 Sekunden.
Hello,
Habe gerade mal bei Funpic (einem Free-Webhoster) phpinfo() aufgerufen und dort steht max_execution_time auf 10 Sekunden.
Die Anzahl der Sekunden ist leider kein maß für die Anzhal der Ticks oder Instructions, die Du pro Sekunde schaffst. da ist das Filesystem und sein Bus genauso wichtig, wie die Größe des Hauptspeichers, die Busbreite des Hauptrechners, usw.
Multitaskingfähige Systeme haben i.d.R. ziemlich ausgeklügelte Methoden, um den "normalen" Prozessen nur das übrig zu lassen, was das Kernsystem für sein Überleben und seine Administration übrig lässt.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hi!
ich frage mich wie Webhoster sich vor bösartigen Skripten schützen.
Das kommt auch ein wenig auf die verwendete Sprache an. Da PHP ja nunmal für den Einsatz im Web geschaffen wurde, bietet es einiges an Konfigurationsmöglichkeiten (über die php.ini), z.B. max_execution_time, was ja bereits erwähnt wurde.
Oder eben auch den safe_mode. Dieser ist aber nur begrenzt sinnvoll, da PHP z.B. gegen viele externe Libs gelinkt ist, die nichts vom Safemode wissen, u.a.. Aber das ist eine andere Sache...
Bei anderen Sprachen als PHP wird das schon etwas schwieriger mit der Konfiguration. Für ein C-Programm, daß über's CGI läuft, kann man die Laufzeit nicht so einfach über eine php.ini (oder c.ini) einstellen.
Allerdings wird eine Endlosschleife nicht die gesamte Rechenleistung verbrauchen. Meist handelt es sich ja um Unix/Linux-Server. Da kann man zum einen recht einfach festlegen, wieviel Rechenlesitung ein Prozess verbrauchen darf und zum anderen sind die Systeme so gebaut, daß eine Endlosschleife nicht das gesamte System lahmlegt. Ist halt kein Windows 98...
Zum Beispiel würde ja eine Nichtstuende-Endlosschleife schon 100% CPU Auslastung erzeugen.
Ja, eben das passiert nicht.
Naja und neben der Rechenleistung gibt es noch ganz andere Dinge, gegen die sich der Hoster absichern muß (bzw. sollte).
Man kann ja nicht davon ausgehen, daß jeder, der eine eigene Website (mit z.B. PHP) erstellt, auch wirklich Ahnung von sicherer Programmierung hat.
In einem anderen Board hat jemand vor kurzem Codes zu seinen PHP-Scripten gepostet. Um die Site ohne Frames zu bauen, nutzte er PHP und include(). Das hat er aber so schlecht gemacht, daß es möglich war, mit seiner index.php und einer Parameterübergabe per URL, auf jede Datei in unterhalb seines Document-Root-Verzeichnisses zuzugreifen.
Glücklicherweise hat der Hoster seinen Server so konfiguriert, daß es nicht möglich ist, auf Verzeichnisse überhalb seines Document-Root-Verzeichnisses, sprich auf andere Userverzeichnisse, zuzugreifen.
Dann war sein Gästebuch-Script so schlecht gecodet, daß es möglich war, mit Hilfe einer einfachen SQL-Injection, Zugriff auf seine komplette Datendank zu erlangen.
Und dann war da noch das Mailformular... Darüber wäre es mir möglich gewesen, diesen Formmailer zum Spammen zu nutzen. Ich habe das nicht versucht, aber vermutlich hat sich der Hoster auch dagegen abgesichert.
Man kann den MTA ja so konfigurieren, daß es nicht möglich ist, mal eben schnell zig-Tausend-Mails aufeinmal/hintereinander abzuschicken.
Naja, und weil es halt so viele Leute gibt, die nicht wirklich programmieren können und damit Tür und Tor für Angreifer öffnen, muß der Hoster halt einiges absichern.
So werden beispielsweise bei PHP meist einige Funktionen deaktiviert.
Auch läuft der Webserver und/oder PHP meist unter einem Useraccount mit stark eingeschränkten Rechten. Meist ist der User hier ein "nobody".
Mit User- und Datei-Rechten kann man schon mal einiges tun.
Bei vielen Hostern läuft der Apache (oder halt anderer Webserver) und die serverseitigen Sprachen in einer chroot-Umgebung.
In jedem Fall gibt es da eine ganze Menge an Dingen, die zu beachten ist, wenn man einen Webserver aufsetzt. Es ist keine leichte Aufgabe, seinen Server wirklich sicher laufen zu lassen.
Schöner Gruß und gute Nacht,
rob