Bundesamt für Sicherheit in der Informationstechnik

Offene Redis-Server

Redis ist eine Open-Source In-Memory-Datenbank mit einer einfachen Schlüssel-Werte-Datenstruktur, welche häufig in Verbindung mit Web-Applikationen eingesetzt wird.

Problem

Ist ein Redis-Server offen aus dem Internet erreichbar und wurde keine SASL-Authentifizierung konfiguriert, können Angreifer nach Belieben die mittels Redis verwalteten Daten auslesen, modifizieren oder löschen. Dies ermöglicht Angreifern ggf. das Ausspähen von sensiblen Informationen wie beispielsweise Zugangsdaten zu Web-Applikationen, Kundendaten von Online-Shops oder andere vertrauliche Inhalte.

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 Redis-Server offen aus dem Internet erreichbar ist, kann das Programm 'netcat' wie folgt verwendet werden:

$ (printf "info\r\n"; sleep 1) | netcat 192.168.45.67 6379

Ein offen erreichbarer Redis-Server liefert Informationen wie die folgenden zurück:

# Server
redis_version:2.8.17
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:4c1d5710660b9479
redis_mode:standalone
os:Linux 3.16.0-4-amd64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.9.2
process_id:12738
run_id:178e1ca5be355158cabdb51aa848b4cdd68a5d54
tcp_port:6379
uptime_in_seconds:8785215
uptime_in_days:101
hz:10
lru_clock:7298172
config_file:/etc/redis/redis.conf

Wenn keine Verbindung zu dem Server hergestellt werden konnte, liefert netcat eine Fehlermeldung zurück:

netcat: connect to 192.168.45.67 port 6379 (tcp) failed: Connection refused

oder

netcat: connect to 192.168.45.67 port 6379 (tcp) failed: Connection timed out

Lösung

  • Stellen Sie Ihren Redis-Server nicht offen ins Internet!
  • Beschränken Sie in der Konfiguration des Redis-Servers und/oder durch Blockieren eingehender Verbindungen aus dem Internet auf Port 6379/tcp auf der Firewall den Zugriff auf den Redis-Server auf vertrauenswürdige Systeme (zum Beispiel den Server der Webanwendung).
  • Beachten Sie die Sicherheitsempfehlungen des Herstellers.
  • Halten Sie Ihre Redis-Installation auf dem aktuellen Stand. Installieren Sie verfügbare Sicherheitsupdates zeitnah.

Weitere Informationen