Navigation und Service

CERT-Bund-Reports

Offene Sphinx-Server

Sphinx ist ein Open-Source Volltext-Suchserver, welcher häufig in Verbindung mit Web-Applikationen eingesetzt wird. 

Problem

In der Standardkonfiguration lauscht der Sphinx-Server auf den Ports 9306/tcp und 9312/tcp auf allen Netzwerkschnittstellen. Sphinx verfügt über keinerlei Authentifizierungsmechanismen. Ist ein Sphinx-Server offen aus dem Internet erreichbar, kann ein Angreifer dies ausnutzen, um beliebige Daten in der Sphinx-Datenbank zu lesen, zu modifizieren oder zu löschen. Der Zugriff auf einen Sphinx-Server sollte daher nur von vertrauenswürdigen Systemen (zum Beispiel dem Server einer Web-Applikation) aus möglich sein.

Prüfung

Dieser Abschnitt beschreibt, wie Sie Ihr System auf einen offenen Dienst prüfen können. Es existieren üblicherweise mehrere Wege, dies zu testen. Das hier beschriebene Verfahren ist eines davon. Für alle hier beschriebenen Testverfahren werden Programme verwendet, die in gängigen Linux/Unix-Distributionen enthalten sind. Um zu überprüfen, ob ein Dienst offen aus dem Internet erreichbar ist, sollte die Prüfung nicht auf dem System selbst oder im lokalen Netzwerk erfolgen, sondern von einem anderen System im Internet, zum Beispiel an einem Kabel/DSL-Internetzugang. In allen Beispielen muss 192.168.45.67 durch die IP-Adresse des Systems ersetzt werden, welches geprüft werden soll.

Um zu überprüfen, ob ein Sphinx-Server offen aus dem Internet erreichbar ist, kann das Programm 'netcat' wie folgt verwendet werden:

$ netcat 192.168.45.67 9306

Kann erfolgreich eine Verbindung zu dem Sphinx-Server hergestellt werden, erfolgt eine Ausgabe wie diese:

2.2.11-id64-release (95ae9a)

Lösung

  • Stellen Sie Ihren Sphinx-Server nicht offen ins Internet!
  • Beschränken Sie den Zugriff auf den Sphinx-Server auf vertrauenswürdige Systeme, z. B. durch Blockieren aller anderen eingehenden Verbindungen aus dem Internet zu den Ports 9306/tcp und 9312/tcp auf der Firewall.
  • Laufen Web-Server und Sphinx-Server auf einem System, sollte der Sphinx-Server nur auf localhost lauschen. Ändern Sie dazu z. B. in der Sphinx-Konfigurationsdatei die Zeilen
    listen       = 9312
    listen       = 9306:mysql41
    wie folgt ab:
    listen       = localhost:9312
    listen       = localhost:9306:mysql41
  • Halten Sie Ihre Sphinx-Installation auf dem aktuellen Stand. Installieren Sie verfügbare Sicherheitsupdates zeitnah.