Gameserver härten

Ein befreundeter Admin hat einen Gameserver laufen, auf jenem offiziell Minecraft und TeamSpeak3 läuft.
Bei diesem Minecraft-Server gibt es verschiedene Welten, deswegen mehrere JVMs. Der Zugriff darauf wird über einen eigens dafür geschriebenen Proxy realisiert.

Alles schön und gut, ein normaler User hat seinen Spaß, die Services laufen, der Admin ist zufrieden. Doch was sieht ein Angreifer?
Ein simpler Portscan offenbart folgendes:

PORT      STATE SERVICE
22/tcp open ssh
5000/tcp open upnp
5010/tcp open telelpathstart
10011/tcp open unknown
25510/tcp open unknown
25511/tcp open unknown
25512/tcp open unknown
25565/tcp open minecraft
25580/tcp open unknown
25581/tcp open unknown
25583/tcp open unknown
25584/tcp open unknown
25585/tcp open unknown
25590/tcp open unknown
30033/tcp open unknown


UDP ist hier leider ungenau, aber mit mehr Zeit hätte man noch folgendes herausgefunden:
PORT      STATE         SERVICE
5353/udp open|filtered zeroconf
42960/udp open|filtered unknown


Zeroconf bzw. der avahi-daemon dient der Autokonfiguration im LAN und hat auf einem Server nichts zu suchen.
Des Weiteren funktioniert die Proxy-Strategie zum Switchen der User auf verschiedene Welten anscheinend nicht, da neben Minecraft noch ein paar andere Ports offen stehen.
Doch die richtigen Probleme zeigen sich erst auf der Maschine selbst:

netstat -pleunt



Es läuft alles als root. Hat eine einzige Applikation einen Fehler/Bug, oder wird diese falsch konfiguriert, so kann sie das gesamte System zerstören.

Bugs? Welche Bugs sollen das denn bitte sein?

Zuerst einmal sind Minecraft und TeamSpeak3 proprietäre Software. Bedeutet, das Fixen und ein Großteil des Finden von Bugs, liegt in der Hand der entsprechenden Firmen.

OpenJDK in der RedHat CVE Datenbank
Version 8u51 des OpenJDK ist mittlerweile mehr als 7 Monate alt...

Bleiben wir fair, solch ein Server hat keinen Anspruch auf Professionalität.
Doch was wäre, wenn alle Sicherheitsupdates automatisch eingespielt werden würden?
Linux bietet den Komfort, Applikationen in-place zu aktualisieren, dabei werden die Dateien des entsprechenden Programms mit der neuen Version überschrieben, ergo werden sie erst nach einem Neustart der Applikation in den Speicher geladen.
nmap -O -vv targethost
#Uptime guess: 25.715 days (since Mon Feb 8 04:32:37 2016)

Offenbart eine Uptime von mindestens 25 Tagen.
Die entsprechende Einstellung /proc/sys/net/ipv4/tcp_timestamps ist per default aktiv.
Angenommen, aktualisierte Dienste werden sofort nach dem Update neu gestartet, bei Minecraft mag das noch gehen, bei einer wichtigen Systembibliothek wird's schwierig, beim Kernel...
Kernel live-patching, für privat, hmm...
Nein. Ich mache das nicht.

So kann man davon ausgehen, dass systemkritische Updates der letzten 25 Tage noch nicht geladen wurden.

Alle paar Wochen Updates laden, Neustart, fertig, ist da die einfachere Lösung.