Ist Magento 2 eine sichere E-Commerce Lösung?
Mitte der Woche erschien auf dem IT Nachrichtenportal heise.de ein Artikel über Angriffswellen auf Magento E-Commerce Systeme. Um Magento 2 Sicherheit wurde durch eine, meiner Meinung nach, unglückliche Formulierungen wieder umgehend eine Diskussion entfacht. Schnell wurde Magento in die Ecke der unsicheren E-Commerce Lösungen gerückt, was schlicht falsch ist. Wenn man sich die Statistik von Magento in den letzten Jahren ansieht, kam es noch nie zu wirklich kritischen Problemen.
Aufgrund der enorm hohen Verbreitung von Magento grenzt das schon fast an ein Wunder, haben doch andere weit verbreitete Systeme wie z.B. WordPress häufiger mit Sicherheitsproblemen zu kämpfen.
Magento 2 Sicherheit
Bevor nun ein falscher Eindruck über die Sicherheit von Magento entsteht, möchte ich Ihnen an dieser Stelle einen sachlichen Einblick in die Hintergründe der aktuellen Angriffswelle bieten und auch die Frage beantworten, ob Magento nun ein sicheres oder unsicheres System ist.
Was genau ist passiert?
Heise.de berichtete davon, dass Malware in Magento Systeme eingeschleust wurde. Bei Malware handelt es sich um Schadcode, der in eine Software injiziert wird, um beispielsweise an Inhalte der Datenbank zu gelangen, oder grundsätzlich das Verhalten der Software zu manipulieren. Im Fall der Angriffe auf die Magento Systeme wurde der Schadcode genutzt, um Kreditkartendaten abzugreifen bzw. um diese zu versenden.
Das ist soweit auch korrekt und definitiv ein sicherheitskritisches Problem, da der Diebstahl von Kreditkartendaten zu massiven Problemen führt.
Wie wurde der Schadcode eingeschleust?
Die gute Nachricht vorweg: Der Schadcode wurde nicht aufgrund einer Sicherheitslücke in Magento eingeschleust. Letztendlich handelte es sich um eine Brut-Force-Attacke auf das Magento Backend. Dabei wird automatisiert das Magento Backend aufgerufen und jede erdenkliche Art von Benutzername und Passwort Kombinationen getestet. Wurde, sozusagen per Zufall, die richtige Kombination von Benutzername und Passwort ermittelt, haben die Angreifer ein JavaScript Snippet in das Frontend von Magento implementiert.
Durch den Aufruf des Frontends durch einen Nutzer bzw. Kunden, wurde der Javascript Code auf dem Client ausgeführt und anschließend die Daten abgegriffen. Dies fand im Browser, jedoch nicht auf dem Server bzw. in Magento selbst statt.
Was genau bedeutet dies nun?
Anhand des Angriffs kann man erkennen, dass die Angriffe nicht durch eine Sicherheitslücke in Magento erfolgreich waren, sondern durch schlichtweg schwache Passwörter und Nutzernamen. Auch konnten die Kreditkartendaten nicht aus der Datenbank selbst ausgelesen werden (in 99% der Fälle werden diese sowieso beim Payment Service Provider gespeichert), ausschließlich bei neuen Einkäufen konnten Daten über den Javascript Code übermittelt werden.
Welche Features verhindern solche Angriffe?
Meiner Meinung nach ist es praktisch unmöglich, dass bei einem professionell betriebenen Magento System solche Angriffe zum Erfolg führen können. Umso mehr war auch ich verwundert, dass mehr als 7000 Systeme infiziert wurden. Das spricht weniger für Sicherheitsprobleme von Magento, sondern viel mehr für massive Know-How Probleme von Magento Dienstleistern bzw. Unternehmen, die Magento selbst betreiben.
Magento besitzt von Haus aus folgende Mechanismen, um genau solche Angriffe abzuwehren – vorausgesetzt, man macht von diesen Mechanismen gebrauch!
- Magento vergibt nach der Installation eine zufällig erzeugte URL zum Backend, d.h. ein simpler Aufruf von /admin ist nicht möglich. Für Angreifer ist es, sofern dieses Feature genutzt wird, praktisch unmöglich die richtige Magento Backend URL zu identifizieren. Ohne Magento URL ist auch kein Login möglich.
- Sofern gewünscht kann eine Captcha Funktionalität für den Login im Backend aktiviert werden. Diese schließt die meisten Bots direkt aus
- Passwörter müssen grundsätzlich nach x Tagen neu vergeben werden. Dadurch entstehen sich ständig ändernde Backend Passwörter
- Nach x fehlerhaften Login Versuchen wird der Account automatisch für eine gewisse Zeit gesperrt
- Magento prüft bei der Passwortvergabe auf sichere Muster
Das Problem besteht vor allem darin, dass Magento es erlaubt exakt diese Sicherheitsmechanismen zu deaktivieren. Dadurch können Sie Benutzernamen wie „admin“ mit dem Passwort „admin12345“ vergeben. Nur in solchen Fällen, ist ein Einbruch mittels Brute-Force-Attacke möglich.
Bewertung der heise.de Diskussion über Magento 2 Sicherheit
Ist Magento nun eine sichere oder unsichere E-Commerce Lösung? Meiner Meinung nach, das belegen zudem die Fakten, zählt Magento zu den sicheren Systemen. Die aktuelle Angriffswelle hat auch nur bei denjenigen Shops zum Erfolg geführt, die zum einen die Sicherheitsfeatures nicht nutzen und zudem unsichere Passwörter und Benutzername vergeben. Es handelte sich also um keine Lücke in der Software, sondern um Unachtsamkeit bei den Betreibern bzw. Magento Dienstleister.