Zum Inhalt springen

Unnötige Dienste aus dem Internet erreichbar

CWE-1327CWE-668OWASP A05:2021Aktualisiert 4. September 20264 Min. Lesezeit

Dienste, die nur intern benötigt werden, aber dennoch am Internet hängen, Datenbanken, Verwaltungsports, Überwachungsoberflächen, Warteschlangen, werden automatisiert gefunden und angegriffen. Sie fallen aus der regulären Anwendungsverwaltung heraus, laufen häufig auf Standardeinstellungen und sind dadurch ein attraktiverer Eingang als die Anwendung selbst.

Die meiste Aufmerksamkeit für Sicherheit richtet sich auf die Anwendung, denn das ist der Teil, der bewusst ans Internet gehängt wurde. Die schwerwiegendsten Befunde liegen regelmäßig daneben: eine Datenbank, ein Verwaltungsport oder eine Überwachungsoberfläche, die unbemerkt dazugekommen ist. Im Folgenden lesen Sie, wie das geschieht und warum diese Dienste so attraktiv sind.

Welche Dienste hängen unbeabsichtigt am Internet?

Von unnötigen Diensten am Internet spricht man, wenn Ports erreichbar sind, die nur intern eine Aufgabe haben. In der Praxis handelt es sich um eine wiederkehrende Auswahl: Datenbanken, Zwischenspeicher, Nachrichtenwarteschlangen, Suchindizes, Verwaltungsoberflächen, Überwachungsanzeigen, Ports zur Containerverwaltung und Verwaltungsprotokolle des Servers selbst.

Fast nie ist das eine bewusste Entscheidung. Es entsteht dadurch, dass ein Dienst sich standardmäßig an alle Netzwerkschnittstellen bindet statt nur an die lokale, dadurch, dass eine Firewallregel vorübergehend geöffnet und nie zurückgenommen wurde, dadurch, dass ein neuer Server ohne dieselben Beschränkungen wie der vorherige ausgerollt wurde, oder dadurch, dass ein Testaufbau in der Produktion gelandet ist.

Gefährlich macht diese Dienste, dass sie nicht dafür entworfen wurden, am Internet zu hängen. In ihren Standardeinstellungen gehen sie davon aus, dass jeder, der sie erreichen kann, auch dazugehört. Häufig bedeutet das: keine Authentifizierung oder eine Authentifizierung mit Zugangsdaten, die jeder kennt. Denken Sie an ein Gebäude mit gut gesicherter Vordertür, neben der eine Kellerluke offensteht, weil niemand erwartet hat, dass dort jemand entlanggeht.

Wie werden diese Dienste gefunden?

Verwundbar:

Ein Scan von außen auf den Server einer Anwendung liefert mehr als erwartet:

443/tcp   open  https        Anwendung (beabsichtigt)
22/tcp    open  ssh          OpenSSH 8.2
3306/tcp  open  mysql        MySQL 8.0.28
6379/tcp  open  redis        Redis 6.2.6
9200/tcp  open  http         Elasticsearch 7.10.2
2375/tcp  open  http         Docker Engine API

Nur der erste gehört dorthin. Der Rest ist Beifang, und der Schweregrad geht weit auseinander. Die Datenbank ist ein Ziel für einen Angriff auf die Zugangsdaten. Der Zwischenspeicher läuft in seiner Standardform ohne Authentifizierung, was auf freien Zugriff auf alles hinausläuft, was darin steht, oft Sitzungen und Token. Der Suchindex gibt in seiner Standardkonfiguration den vollständigen Inhalt an jeden preis, der danach fragt. Und der Port zur Containerverwaltung ist der schwerwiegendste: Er ermöglicht es, Container auf dem Host zu starten, was faktisch der Ausführung von Code mit hohen Rechten entspricht.

Das Auffinden erfordert kein gezieltes Interesse an Ihnen. Der vollständige Adressbereich des Internets wird fortlaufend abgesucht, und die Ergebnisse sind durchsuchbar. Ein Port, der geöffnet wird, steht kurz darauf in diesen Übersichten.

Sicher:

# Der Dienst lauscht nur auf der lokalen Schnittstelle
bind 127.0.0.1
protected-mode yes
requirepass <langes, zufälliges Geheimnis>
# Und die Firewall weist standardmäßig ab, erlaubt je Ausnahme
ufw default deny incoming
ufw allow 443/tcp
ufw allow from 10.0.4.0/24 to any port 22
ufw enable

Die beiden Maßnahmen ergänzen einander bewusst. Ein Dienst, der nur auf der lokalen Schnittstelle lauscht, ist auch dann nicht erreichbar, wenn eine Firewallregel falsch steht. Und eine Firewall, die standardmäßig abweist, schützt auch den Dienst, der sich nach einer Aktualisierung wieder an alle Schnittstellen gebunden hat.

Ein erreichbarer Port zur Containerverwaltung ohne Authentifizierung ist kein Konfigurationsfehler, sondern unmittelbarer Zugriff: Jeder, der ihn erreichen kann, kann einen Container mit Zugriff auf das Dateisystem des Hosts starten. Das darf unter keinen Umständen aus dem Internet erreichbar sein.

Welche Auswirkungen haben unnötig erreichbare Dienste?

Der Schweregrad reicht von mittel bis kritisch, je nach Dienst. Bei einer Überwachungsanzeige bleibt es bei Informationen über Ihre Infrastruktur. Bei einer Datenbank oder einem Zwischenspeicher ohne Authentifizierung ist es ein vollständiges Datenleck. Bei einem Port zur Containerverwaltung ist es die Übernahme des Servers.

Diese Kategorie zeichnet aus, dass der Angriff automatisiert verläuft und nicht auf Sie gerichtet ist. Es wird fortlaufend nach offenen Ports mit bekannten Merkmalen gesucht, und was antwortet, wird ausprobiert. Ihre Größe oder Sichtbarkeit spielt keine Rolle; es geht um Erreichbarkeit.

Hinzu kommt, dass diese Dienste aus der regulären Verwaltung herausfallen. Die Anwendung wird getestet, gepatcht und überwacht. Eine Datenbank, die versehentlich erreichbar ist, steht in keiner Übersicht: Es gibt keine Protokollierung an Ihr zentrales System, keine Alarmierung bei fehlgeschlagenen Anmeldungen, und niemand hält die Version nach. Ein Angreifer kann dort dadurch lange tätig sein, ohne aufzufallen.

Wie spürt man unnötig erreichbare Dienste auf?

Die Grundlage ist ein Scan von außen über den vollständigen Portbereich jeder Adresse, die zur Organisation gehört. Das geschieht bewusst von außen: Die Frage lautet nicht, welche Ports laut Konfiguration offen sein sollten, sondern welche tatsächlich antworten.

Je gefundenem Dienst werden anschließend Produkt und Version bestimmt sowie geprüft, ob eine Authentifizierung verlangt wird und ob die Standardzugangsdaten noch funktionieren. Ebenso wird geprüft, ob der Dienst eine bekannte Schwachstelle trägt. Wichtig ist die Vollständigkeit des Adressbereichs: Neben den bekannten Servern geht es um Testumgebungen, Systeme bei Lieferanten und Cloud-Ressourcen, die außerhalb der üblichen Verwaltung angelegt wurden. Auch IPv6 erhält Aufmerksamkeit, denn es wird bei Firewallregeln regelmäßig vergessen, während der Dienst sehr wohl darauf lauscht. AssistSec beginnt einen Test standardmäßig mit dieser Bestandsaufnahme, denn was hier gefunden wird, ist oft für den weiteren Verlauf der Untersuchung entscheidend.

Wie verhindert man unnötig erreichbare Dienste?

  • Lassen Sie Dienste, die nur intern benötigt werden, ausschließlich auf der lokalen Schnittstelle oder in einem internen Netz lauschen.
  • Setzen Sie eine Firewall ein, die standardmäßig abweist und nur je Ausnahme erlaubt.
  • Erschließen Sie Verwaltungsprotokolle über ein VPN oder einen Bastion-Host, nie unmittelbar aus dem Internet.
  • Ändern Sie Standardzugangsdaten und schalten Sie die Authentifizierung bei Diensten ein, die sie standardmäßig nicht verlangen.
  • Beziehen Sie IPv6 in Ihre Firewallregeln ein; es wird regelmäßig vergessen.
  • Führen Sie eine Übersicht aller Adressen und Ports, die zu Ihrer Organisation gehören.
  • Scannen Sie regelmäßig von außen, statt sich auf die beabsichtigte Konfiguration zu verlassen.
  • Räumen Sie vorübergehende Öffnungen aktiv auf und halten Sie beim Anlegen ein Enddatum fest.
  • Beziehen Sie auch Test- und Abnahmeumgebungen sowie Ressourcen bei Lieferanten in die Übersicht ein.

Quellen

Häufige Fragen

Wie schnell werden solche Dienste gefunden?

Binnen Minuten bis Stunden. Der gesamte Adressbereich des Internets wird fortlaufend abgesucht, und die Ergebnisse sind öffentlich durchsuchbar. Ein Dienst, der heute geöffnet wird, steht morgen in einer Suchmaschine für Internetdienste. Es gibt keinen Zeitraum, in dem etwas noch nicht aufgefallen ist.

Genügt eine Firewall?

Nur wenn sie standardmäßig abweist und je Ausnahme erlaubt. Viele Vorfälle entstehen dadurch, dass ein Dienst sich an alle Netzwerkschnittstellen bindet, während die Firewallregel zu weit gefasst oder vorübergehend geöffnet war. Verbinden Sie eine restriktive Firewall mit einem Dienst, der nur auf der lokalen Schnittstelle lauscht.

Was ist das Gefährlichste, das man antrifft?

Datenbanken ohne Authentifizierung, Verwaltungsoberflächen mit Standardzugangsdaten und Ports zur Containerverwaltung. Letztere gewähren häufig unmittelbar die Ausführung von Code auf dem Host, ohne dass dafür eine Schwachstelle nötig wäre.

Wie halte ich das in Ordnung?

Indem Sie regelmäßig von außen scannen, statt sich auf die Konfiguration zu verlassen, wie sie gemeint war. Der Unterschied zwischen beidem ist genau der Ort, an dem diese Befunde entstehen: eine vorübergehende Regel, die blieb, ein neuer Server mit anderen Standardwerten.

Verwandte Artikel

Zum Suchen / drücken · Esc