[Technik] MySQL: BACKRONYM-Schwachstelle macht viele Server angreifbar

Eine Anfang diesen Jahres entdeckte Schwachstelle in MySQL macht wohl viele MySQL-Implementationen unsicher. In vielen verbreiteten Versionen der Software lässt sich eine SSL-Verschlüsselung der übertragenen Daten zwischen MySQL-Client (z. B. Apache-Webserver) und MySQL-Server zwar benutzen aber nicht erzwingen. Sobald der MySQL-Client zwar Verschlüsselung benutzen möchte, der MySQL-Server aber zurückmeldet, dass er diese nicht unterstütze, wird vom Client automatisch auf das Fallback ohne Verschlüsselung umgeschaltet ohne eine Möglichkeit dieses abzuschalten.

Durch diese Tatsache sind alle MySQL-Clients angreifbar für Man-In-The-Middle-Attacken. Ein Angreifer muss nur das Handshake-Paket des MySQL-Servers abfangen und ein manipuliertes Paket ohne das Flag "Ich unterstütze SSL" zurücksenden. Der weitere Traffic zwischen Client und Server erfolgt dann unverschlüsselt und kann vom Angreifer mitgelesen werden. Die SSL-Verschlüsselung im MySQL-Server zu erzwingen bringt ebenfalls nur bedingt Abhilfe. Auch hier kann ein Angreifer ein unverschlüsseltes Paket abfangen, es dann erst verschlüsseln und verschlüsselt an den Server weiterleiten. Auch hier ist der komplette Traffic durch den Angreifer einsehbar.

Das Problem wurde vom MySQL-Team bereits entdeckt und vor einem Jahr behoben. Allerdings wurde der Fix nur in den MySQL-Versionen >5.7.3 und libmysqlclient-Versionen >6.1.3 implementiert, welche bisher in den wenigsten Fällen zum Einsatz kommen. Zudem ist der Fix nicht standardmäßig aktiv, sondern muss vom Benutzer selbst eingeschaltet werden.

mysqldns.png
Mögliche Angrifsszenarien:

In vielen kleineren Setups laufen Webserver (Client) und Datenbankserver in der Regel auf dem selben Gerät. Dieses Setup ist nach dem derzeitigen Stand sicher, wenn der MySQL-Server vom Internet aus nicht erreichbar ist (Port 3306) und im Client "localhost" als Datenbank-Server festgelegt ist. Nicht sichere Setups sind aber:

  • MySQL-Client und -Server kommunizieren über ein unbekanntes Netzwerk (z. B. Internet) oder das benutzte Netzwerk ist vom Internet aus erreichbar.
  • Im MySQL-Client ist der Datenbankserver mit einem DNS-Hostname festgelegt (db1.beispiel.de). Erfolgt die Namensauflösung durch einen externen DNS-Server, kann der Inhaber dieses Servers die Inhalte des MySQL-Clients an einen eigenen Server weiterleiten (Bild rechts).


Quelle:
 
  • Thread Starter Thread Starter
  • #2
Der Titel dieser News könnte auch genauso gelautet haben: Wie die Geheimdienste möglicherweise viele sensible Daten von Webservern abgegriffen haben. Vor allem die zweite genannte Methode wäre für Geheimdienste denkbar, da diese wohl genug Einfluss haben, um die Einträge in etlichen verbreiteten DNS-Servern zu manipulieren.


Interessant sind auch manche Beiträge bei Reddit zu dem Thema, vor allem folgender:

Reddid schrieb:
TL;DR: we can say that 34% of MySQL instances that aren't firewalled off the Internet are running vulnerable versions and thus could be MITMed if you could get positioned between a client and the server in a similar fashion to sslstrip.


Ein kleiner Test, ob ein MySQL-Server über das Internet erreichbar ist, geht übrigens mittels :
[kw]telnet beispiel.de 3306[/kw]
 
Zuletzt bearbeitet:
Bei kleineren Setups werden SQL-Server und Client wohl auf dem gleichen Host laufen, eventuell noch durch VMs getrennt.
Bei größeren Setups gehe ich stark davon aus, dass Client und Server zumindest in einem privaten Netzwerk ((V)PN) befindlich sind.

Großartig getrennte Systeme dürften ggf. bei schlecht konfigurierten Freehostern, kleineren Webspacepaketen (schlechter) Paidhoster oder bei speziellen Datenbankhostern (z.B. freemysqlhosting.net) zu erwarten sein. Von letzteren ist allerdings aus Performancegründen ohnehin abzuraten, da bei SQL-Anwendungen häufig schon Festplatten-I/O als kritischer Zeitfaktor gesehen wird und dieser deutlich vernachlässigbar zu einer WWW-Übertragung ist.

Für mich ist unglaubwürdig, dass Geheimdienste diese Lücke im großen Stil genutzt haben sollten. Bei der angestrebten Zielgruppe der NSA sollten anfällige Netzwerkkonfigurationen nicht vorliegen, bei den Anwendern, die verletzbare Konfigurationen verwenden, dürfte gewöhnlich kein Interesse seitens der Geheimdienste bestehen.
 
Ich habe das sogar noch paranoider gelöst:

Auf dem Server läuft ESXi, dort eine Virtuelle Maschine mit Apache und dann eine mit MySQL unter Debian. Die Debian Maschine mit dem MySQL Server hat nichtmal eine Internetverbindung...
 
der Server mit Apache löst aber hoffentlich den MySQL-Server nicht über DNS auf sondern du hast dann eine feste IP zugewiesen und verwendest diese? ;)
Sonst könnte man ja evtl *extremes Hirngespinst* auch über den DNS-Lookup eine Fake-DB vorgaukeln und zumindest die Daten die in die DB geschrieben werden abfangen ;)
 
Zurück
Oben