Wollte mich gerade bei **** einloggen, um etwas nachzusehen. Da kam folgende Meldung:
You have been permanently banned from this board.
Please contact the Board Administrator for more information.
Reason given for ban: mit Ulrich und Verbreitung von Unwahrheiten. In seinem Block wird aufgezeigt, dass der Protection Modus angeblich falsch ist aber bei ****, wenn man die Anleitung befolgt funktioniert. Dumm nur dass es reine FTP Einstellungen sind und es demnach nicht an der SOFTWARE **** liegt und mit der Anleitung auf **** sicher ist, was aber verschwiegen wird. Vielleicht erst denken, dann schreiben und zustimmen
A ban has been issued on your username.
Wenn man ein Gesamtpaket verkauft, sollte man auch dafür sorgen, dass es in unterschiedlichen Umgebungen sicher ist. Gehören nicht auch die FTP-Regeln dazu, die vom Installationsscript teilweise gesetzt werden. Leider sind diese unvollständig. Ich konnte aber auch leider keine genaueren Hinweise zum Absichern des Protected-Mode finden.
Meiner Meinung ist es fahrlässig den Kunden darüber im Unklaren zu lassen, was es für eine Auswirkung hat, wenn ein Mieter z.B. in das Kundenverzeichnis via FTP schreiben darf. Unser Problem ist es nicht die Sachen in den Griff zu bekommen. Wir werden den Providern Vorschläge für mögliche Lösungen geben. Eine möglicher Workaround wurde bereits vor langer Zeit veröffentlicht, welcher den Aufwand erheblich erhöht, aber einfach zu realisieren ist. Auch sind andere FTP-Regeln vorgeschlagen worden. Leider sind diese Vorschläge wohl immer noch nicht von jedem umgesetzt worden. Die Provider werden sich oftmals auch an Sie richten, da das **** ja eigentlich von Ihnen als "Protected" angeboten wird. Die Meinung werden sich die Kunden dann selbst bilden. Letztendlich kommt es auf ihre Flexibilität und die Bearbeitungszeit für etwaige Nachbesserungen bzw. Änderungen an. Wir werden als Tester in der Sache jedes mal Neutral bleiben. Da wir ja bereits die Lücken kennen, wird es für uns aber auch nicht viel Zeit in Anspruch nehmen. Vielen Dank, dass sie es uns wirklich so einfach machen.
Den restlichen Teil kann sich der Entwickler ersparen zu lesen. Ich weiß, dass er es tun wird und ich weiß auch wer hinter den Beiträgen von TomTom steckt. Da Sie aber keinerlei Einsicht zeigen, ist der restliche Teil der Nachricht auch nicht direkt an Sie gerichtet. Da es unter anderem auch einige Provider lesen werden, die über eine neue Strategie nachdenken, könnte folgendes vielleicht etwas aufschlussreich sein. Ich bezweifle sehr stark, dass Sie den kommenden Anforderungen des GSZ gerecht werden können, da ich diese Inhaltlich kenne und weiß wie Sie zur Zeit den Protected-Mode verwirklichen.
Eins vorweg: Provider, die sich das Sicherheitszertifikat ersparen wollen, sollten den restlichen Teil dennoch lesen, da es auch um die Sicherheit des Hosts geht.
Ich nenne mal paar Beispiele, in denen der Server mit einem ServerSideHack im Protection-Mode gestartet werden kann:
- Plugin des Cheatentwicklers wird vom ungeschützten Server gestartet, welches den eigentlichen Hack an eine Stelle kopiert auf die der GS Zugriff hat und worauf auch der Protected-Server zugreifen darf. Danach wird der GS als Protected-Server gestartet. Nach 10 Minuten (bei **** findet jedes mal eine Vollinstallation statt) sollte der Server dann erreichbar sein. Aufgrund dieser Tatsache, muss das Plugin an eine Stelle verschoben werden, die sich außerhalb des Gameserververzeichnisses des Protected-Servers befindet. Weil einige Provider den Befehl plugin_load immer noch nicht unterbunden haben und es anscheinend von Taklab auch nicht standardmäßig gesetzt wird, kann man das Plugin dann bequem nachladen. Technisch unversierte Cheater geben dem Cheatcoder dann die Zugangsdaten, damit derjenige den Hack installieren und kann. Früher hatte man z.B. auch /tmp als Dateiablage verwendet.
- Der Server wird im Protected-Modus gestartet und der Serveradmin kopiert dann sein Plugin via FTP einfach in sein Kundenverzeichnis. Das Plugin lädt er dann mit plugin_load.
- In dem Fall, dass plugin_load unterbunden ist, sucht sich der Hacker einen anderen Weg. Man lädt dafür im Unprotected-Mode ein modifiziertes Plugin. Man versucht dann die valve.rc des Protected-Servers mit einem Plugin durch eine andere modifizierte valve.rc zu ersetzen.
- Sollte wie bei **** der Server jedes mal neu installiert werden, wenn dieser in den Protection-Mode gestartet wird und der Protection-Mode plugin_load unterbunden wird, muss man einen anderen Weg gehen. Dies kann z.B. so aussehen, dass man z.B. die Startscripte des normalen Gameservers ändert. Dies kann einmal mit einem Serverplugin selbst geschehen oder direkt über FTP, falls der Anbieter nicht eigene Regeln gesetzt hat. Sobald man in der Lage ist Programme mit dem Startscript auszuführen, stehen einem viele Wege offen. Die Möglichkeiten beschränken sich auf die verfügbaren Programme des Hosts, den Verzeichnisberechtigungen und der Fantasie des Hackers. Ein weg wäre z.B. sich eine Shell zu öffnen, die im Hintergrund geforkt wird und dann auch weiterläuft, wenn der Gameserver beendet worden ist. Dann kann man über den direkten Zugang die Verzeichnisstruktur bestimmten, bequem den Prozess des Protected-Servers killen und den normalen Server starten oder Pornos herunterladen.
- Ein weiterer Weg wäre ein Plugin, welches eine Shell öffnet oder Prozesse starten kann. Darüber hätte man die gleichen Möglichkeiten wie im zuvor beschrieben Beispiel.
Manche beschriebene Szenarios sind Gedankenexperimente. Die Möglichkeit des Shellzugangs stellt eine potenzielle Gefahr für den Anbieter dar. Sofern der Kunde ein versierter Linux-Nutzer ist, kann sich dieser auch so auf dem Server bewegen, dass es nicht auffällt. Dies hat auch weniger mit dem Protection-Mode zu tun, würde es aber auch ermöglichen diesen dadurch auszuhebeln.
Die einfachste beschriebene Möglichkeit ist die Möglichkeit mit dem Upload des Plugins in das Kundenverzeichnis. Genau an diesem Punkt werden die Cheatcoder/Cheater zuerst ansetzen.
Man muss bedenken, dass der Gameserver alles kann, was der User darf. Das fängt beim kopieren, verschieben, löschen und anlegen von Dateien und Verzeichnissen an, herunterladen von Dateien via wget oder curl, das Ausführen von Perl/Python-Scripten, Prozesse steuern und starten, screen killen und hört beim Öffnen von Ports (UDP/TCP) auf.
Vielmehr sollten Provider primär darüber nachdenken, ob es nicht sicherer ist einen Gameserver generell im Chroot laufen zu lassen, auch wenn dies um einiges komplizierter ist. Daneben sollten Protected-Mode-Server in einem anderen Chroot gestartet werden. Dadurch hat man beide Arten der Gameserver voneinander gekapselt. Sollte man mit Symlinks und einer Master-Slave-Struktur arbeiten, muss ein Script in der Lage sein den Master-Server mit "mount -o bind" in ein Verzeichnis des Chroots zu mounten. Es sollte aber in jedem Fall gewährleistet sein, dass der Kunde und auch der GS selbst die Daten des Master-Servers nicht verändern darf. Eine Firewall mit entsprechen Regeln wäre auch sehr wichtig. Die Umsetzung eines Chroots ist generell sehr einfach. Die Umsetzung eines sicheren Chroots erfordert schon mehr Arbeit. Unter anderem geht es um das Selektive auswählen von Programmen, Libs und Geräte/Ressourcen unterhalb von /dev und /proc. Zuletzt dann auch noch dafür sorgen zu müssen, dass alles aktuell gehalten wird, ist keine einfach zu lösende Aufgabe. Sie lässt sich aber selbst mit gut strukturierten Shell-Scripts lösen.
Da es schon spät ist, werde ich hier an dieser Stelle abbrechen zu schreiben.