Magento: Webserver über Schwachstelle im MySQL-Protokoll gehackt

Eine lange bekannte Funktion im Datenbank-Protokoll MySQL führt aktuell dazu, dass Kriminelle Schadcode in E-Commerce-Shops einbauen.

In Pocket speichern vorlesen Druckansicht 51 Kommentare lesen
Magento: Schwachstelle im MySQL-Protokoll wird missbraucht, um Webserver zu hacken

Mitschnitt eines Angriffs auf einen Server mit Hilfe der MySQL-Protokollschwachstelle

(Bild: Willem de Groot)

Lesezeit: 3 Min.
Von
  • Fabian A. Scherschel

Ein MySQL-Server kann einen MySQL-Client dazu verleiten, äußerst sensible Informationen über sich preiszugeben. Ein bösartiger Server kann eine Schwachstelle des MySQL-Protokolls ausnutzen, um beliebige Dateien auf dem System auszulesen, auf die der MySQL-Client Zugriff hat. Um einen Webserver auf diese Weise anzugreifen, muss der Angreifer einen gepatchten MySQL-Server betreiben und einen MySQL-Client auf dem Server des Opfers dazu kriegen, sich mit dem manipulierten Server zu verbinden. Diese Schwachstelle im Datenbank-Protokoll ist seit Jahren dokumentiert, jetzt hat ein Sicherheitsforscher allerdings tatsächliche Angriffe auf Webserver festgestellt – und diese scheinen sich zu häufen.

Entdeckt hatte die Angriffe Willem de Groot, ein unabhängiger Sicherheitsforscher, der sich auf sogenannte Magecart-Angriffe auf die E-Commerce-Plattform Magento spezialisiert hat. De Groot hatte im Zuge der Landtagswahl in Bayern im Oktober die CSU auf Malware in ihrem Magento-Shop hingewiesen. Er hatte beobachtet, dass Kriminelle eine Schwachstelle im Admin-Werkzeug Adminer dazu missbrauchen, einen verbundenen MySQL-Client dazu zu bewegen, ihren bösartigen Server zu kontaktieren. Der befiehlt dem MySQL-Client dann, eine Konfigurationsdatei auszulesen, in der das Datenbank-Passwort für den Magento-Server gespeichert ist. Damit können die Angreifer dann die Magento-Software übernehmen und ihren Magecart-Schadcode einspielen.

Die Konfigurationsdatei mit dem Passwort ist normalerweise für Angreifer aus dem Netz natürlich nicht lesbar. Die Angreifer missbrauchen also eine Lücke in Adminer, um Zugang zu einem MySQL-Client auf dem Webserver des Opfers zu bekommen. Dieser Client wird normalerweise für Admin-Aufgaben auf dem Webserver genutzt, kann aber wegen der Schwachstelle im MySQL-Protokoll dazu missbraucht werden, die sensible Config-Datei auszulesen. Denkbar wären solche Angriffe auch auf geheime Krypto-Schlüssel oder Zugangs-Informationen zu Wallet-Software von Kryptowährungen. Oder man kann sich Zugang zu anderer Software und deren Datenbanken verschaffen, die auf dem Ziel-Server läuft.

In der MySQL-Dokumentation wird das Sicherheitsrisiko zwar beschrieben, dort heißt es allerdings lapidar, Clients sollten sich nicht mit Servern verbinden, die nicht vertrauenswürdig sind. An Schwachstellen wie den Bug in Adminer haben die MySQL-Entwickler wohl nicht gedacht, als sie diesen Text verfassten. Bisher nahmen wohl die meisten Entwickler und Admins ebenfalls an, dass die Lücken rein theoretischer Natur sind. Wie de Groot zu bedenken gibt, gibt es allerdings in der Praxis bereits seit fünf Jahren einen frei verfügbaren, gepatchten MySQL-Server, der genau für solche Angriffe ausgelegt zu sein scheint. Und diverse Admins berichten im Netz auch schon von gehäuft auftretenden Angriffen auf ihre Systeme, die versuchen, die von de Groot beschriebene Schwachstellen-Kombination auszunutzen.

Einige Software-Systeme, die MySQL-Client-Funktionen implementieren, schützen sich bereits vor der Schwachstelle durch bösartige Server – etwa die Programmiersprachen Go und Python. Sicherlich besteht aber nach wie vor ein Risiko durch verwundbare Software wie Adminer, dessen sich Server-Betreiber bewusst sein sollten. Die Adminer-Entwickler haben die Lücke wohl ebenfalls mit Version 4.6.3 aus dem vergangenen Jahr geschlossen, ältere (verwundbare) Versionen der Software lassen sich aber nach wie vor tausendfach im Netz aufspüren. (fab)