Hallo,
wir ihr sicher mitbekommen habt hatten wir am Donnerstag interessanten Besuch auf dem Server ( Server Down - Sicherheitslücke ). Zwei Spielern ist es gelungen, sich mit verschiedenen Admin-Accounts auf dem Server einzuloggen. Da Moderatoren bannen und ähnlich dubiose Tätigkeiten doch nicht zu den alltäglichen Routineaufgaben der Admins gehören, war ziemlich schnell klar, dass etwas nicht stimmt. Anda hat reagiert und mich benachrichtigt, wodurch wir den unliebsamen Besuchern auf die Spur kommen konnten.
Letztlich ist zum Glück nichts schlimmes passiert. Die Schummler haben sich recht friedlich verhalten. Ein paar Worldedit-Experimente (die sofort wieder rückgängig gemacht wurden), eine neue Welt in Ambar, ein paar fehlende Worldguard-Regionen und ein etwas merkwürdig buchstabierter Name von Gredy waren die stärksten Auswirkungen. Nichts, das wir nicht in ein paar Minuten wieder beheben konnten.
Die viel wichtigere Konsequenz für uns ist, dass wir eine gefährliche Lücke in unserem Serversystem schließen konnten. So können andere Leute aus den Weiten des Internets zumindest diesen Trick nicht mehr benutzen, um potenziell viel größeren Schaden anzurichten. Doch selbst wenn so etwas nocheinmal gelingen sollte - durch ständige Backups und andere Sicherheitsvorkehrungen sind wir bestens gewappnet.
Für alle, die die Details interessieren: so sind sie auf unseren Server gekommen:
Aus der Sicht eines Spielers, der sich mit dem Server Asylum verbindet, ist Asylum ein einziger großer Minecraft-Server. Aus Sicht eines Administrators laufen aber eigentlich zwei Server mehr oder weniger unabhängig nebeneinander. Einer für Ambar, der andere für die alten Welten. Um diese beiden Server miteinander zu verbinden, ist ein BungeeCord-Proxy vorgeschaltet. Mit diesem Proxy verbindet sich der Computer des Spielers. Je nachdem in welcher Welt man sich gerade befindet, leitet der Proxy die Daten an den richtigen Server weiter.
Die „Einlasskontrolle“ auf den Server findet auf diesem Proxy statt. Hier wird überprüft, dass auch jeder Zugriff auf den Account hat, mit dem er sich verbindet. Eigentlich sollten die beiden Minecraft-Server nur Daten vom Proxy entgegen nehmen. Scheinbar ist es findigen Programmierern aber gelungen, diesen Schutz zu umgehen und einen Hack-Client zu schreiben, der sich direkt mit den Servern im Hintergrund verbindet und damit die Einlasskontrolle des Proxies umgeht. Genau das haben unsere trickreichen Gäste ausgenutzt.
Normalerweise wäre das auf Asylum immernoch nicht möglich, weil unsere Firewall den direkten Zugang zu den beiden Servern blockiert. Dummerweise gab es bei unserem Hoster vor Kurzem einen Stromausfall, wodurch der Server ungeplant neu gestartet wurde. Dabe wurde die Firewall nicht wieder richtig aktiviert.
Unsere Gegenmaßnahmen waren folgende:
Zum Einen haben wir die Firewall natürlich wieder aktiviert und sichergestellt, dass sie bei jedem Server-Reboot automatisch angeschaltet wird.
Wir haben ein neues Sicherheitsplugin programmiert und eingebaut, das nur denjenigen Spielern erlaubt auf den Server zu verbinden, die auch bereits mit dem Proxy verbunden sind. Dadurch wären wir jetzt selbst ohne Firewall gegen diesen Angriff geschützt.
Jedes Teammitglied mit weiter reichenden Permissions muss sich beim Login auf dem Server mit zusätzlichem Passwort authentifizieren. Diesen Schutz haben wir ausgeweitet, so dass es unter keinen Umständen mehr möglich sein sollte, entsprechende Befehle zu verwenden.
Wir haben sicherheitskritische Befehle wie das Permission-Management, das berühmt-berüchtigte /op und noch einige andere ingame komplett gesperrt. Diese können nur noch von der Konsole aus eingegeben werden.
Damit ist unser Server wieder ein ganzes Stück sicherer. Das tolle an Asylum ist: es bietet für uns selbst nach so vielen Jahren immer wieder neue Herausforderungen!
