Sicherheit von Magento 2: Security-Patches und -Releases

Machen wir uns nichts vor: man liest auf einschlägigen Nachrichtenseiten immer wieder von Sicherheitslücken in und Hackerangriffen auf Magento 2. Das verunsichert Shop-BetreiberInnen.

Was bedeutet das für HändlerInnen? Und was kann frau/man tun, um seinen Shop sicher zu machen? Das möchte ich hier näher beleuchten.

Außerdem erkläre ich, wie oft es in etwa Security-Releases gibt und was zu tun ist. Und nicht zuletzt: man stolpert immer wieder über den Ausdruck „SUPEE„, und der verwirrt manchmal. Auch dem widme ich mich.

Fakt: es werden immer wieder Sicherheitslücken gefunden

Sieht man sich die Informationen zu neuen Versionen an, z.B. Magento 2.4.2, dann stößt man mit hoher Wahrscheinlichkeit auf einen Punkt: „XY Sicherheitslücken behoben„. Warum ist das so?

Magento 2 ist eine komplexe Software mit komplexen Abläufen. Sie besteht aus Millionen Zeilen Programm-Code. Niemand kann hier zu 100% den Überblick behalten, wie der Code in allen (nicht beabsichtigten) Abhängigkeiten zusammenspielt. Sucht man gezielt danach, so kann man Szenarien konstruieren, in denen Lücken entstehen, die ausgenützt werden können. Schon hat man eine Sicherheitslücke. Die lassen sich zum Beispiel als SQL-Injection, XSS, CSRF oder Ähnliches einstufen. Daraus ergeben sich Einstufungen für die Schwere einer Sicherheitslücke.

Ganz so einfach ist es inzwischen natürlich nicht mehr, Security-Bugs in Magento 2 zu finden. Offensichtliche Probleme tauchen kaum mehr auf. Dennoch: es gibt keine fehlerfreie Software. Die Frage ist nur, wie viele Fehler vorhanden sind ob sie gefunden werden. Nach unterschiedlichen Untersuchungen gibt es für populäre Sprachen und Software in etwa zwischen 0,003 und 0,08 grobe Sicherheitslücken pro 1.000 Zeilen Programm-Code.

Maßnahmen von Magento zur Verhinderung und Behebung von Sicherheitslücken

Magento arbeitet an einigen Fronten, um Sicherheitslücken schnell aufzuspüren und zu beseitigen:

  • Es gibt im Magento-Code vorgefertigte Funktionen, um Eingaben (z.B. aus Formularen) auf Sicherheit zu überprüfen, sicher in die Datenbank einzuspielen und sie auch auf sichere Weise wieder auszugeben.
  • Werden Änderungen am Code von Magento gemacht, dann laufen automatisierte Tests, die verhindern sollen dass neue Fehler eingeschleppt werden.
  • Interne Security-Leute von Magento versuchen aktiv, komplexe Szenarien aufzuspüren in denen Sicherheitslücken entstehen.
  • Ein Bug-Bounty-Programm von Magento belohnt externe Sicherheits-ForscherInnen, die Lücken einmelden. Tatsächlich wird ein großer Teil der Security-bugs auf diesem Weg gefunden.

Fakt: es gibt Hacker-Angriffe auf Magento 2

In den meisten Fällen waren die Sicherheitslücken der „dunklen“ Seite gar nicht bekannt. Sie wurden also noch nicht von Kriminellen ausgenutzt.

Dennoch heißt es beim Anwenden von Security-Updates schnell sein: ist ein Patch heraußen, dann können HackerInnen versuchen nachzuvollziehen, wie sich die Lücke ausnutzen lässt. Leider gab es in der Vergangenheit auch Security-ForscherInnen, die innerhalb von Tagen oder auch nur Stunden nach dem Security-Release publik gemacht haben, wie sich die Lücke ausnützen lässt. Das spielt den „Bösen“ natürlich in die Hände und schadet den HändlerInnen sowie Ihren DienstleisterInnen. Eine Untersuchung von 2019 zeigt: nachdem zu viele Informationen zu Sicherheitslücken geleakt wurden blieben nur 16 Stunden Zeit, bis sie aktiv ausgenutzt wurde.

Magento 2 ist ähnlich wie WordPress und co eine beliebte, weit verbreitete Software. Weil bei Magento-Shops zudem oft viel Geld und wertvolle KundInnen-Daten im Spiel sind, sind die Shops ein beliebtes Angriffsziel. Und weil Magento polarisiert und es einen entsprechenden Nachrichtenwert gibt, springen bestimmte Medien gerne auf und berichten, oft recht unreflektiert darüber.

Beispiel für missführende Berichterstattung: Magecart

Ein prominentes Beispiel dafür ist „Magecart„: diese Art von Angriff heißt zwar ähnlich wie Magento, unter anderem weil der erste großflächige Angriff gegen Magento ausgeführt wurde, aber tatsächlich ist sie überhaupt nicht auf Magento beschränkt sondern betrifft andere Shop-Softwares genau so. Mehr zu Magecart findet sich bei TechRepublic.

Security-Releases für Magento 2

Wie häufig gibt es Security-Releases für Magento 2?

Momentan gibt es von Magento in etwa vier Security-Releases pro Jahr. Die meisten sind so genannte Patch-Releases. Das sind jene Versionsnummern, bei denen sich nur die dritte Stelle ändert, zum Beispiel Magento 2.3.1 oder 2.3.2.

Im August 2019 wurde angekündigt, dass wir bald vielleicht wieder Hotfix-Releases wie in Magento 1 bekommen. Das sind die, bei denen sich nur die vierte Stelle ändert (z.B. 2.3.2.1).

Hotfix-Releases sind deswegen praktisch, weil sie wirklich nur Sicherheitslücken beheben, sonst aber nichts ändern. Patch-Releases haben oft hunderte andere Änderungen, was das Update langwieriger und fehleranfälliger macht.

Was ist zu tun, wenn ein Security-Release erscheint?

Kurz gesagt: nicht in Panik geraten, aber fokussiert und zeitnah das Security-Update einplanen. Es muss als geschäftskritisch gesehen und entsprechend hoch priorisiert werden.

Ihr Dienstleister kann Ihnen nach Überprüfung des Releases mehr dazu sagen, wie aufwändig das Update ist und was alles getestet werden muss, bevor die neue Version online gestellt werden kann.

Über Security-Patches („SUPEE“)

Besonders im Zusammenhang mit Magento 1, ganz selten noch im Zusammenhang mit Magento 2 liest man von „SUPEE-Patches“.

SUPEE steht für „Support Enterprise Edition“ und kommt aus Magento-1-Zeiten. Gibt es Sicherheitslücken und Patches, dann ist oft von SUPEE und den SUPEE-Patches die Rede.

Das stimmt insofern, weil Magento für Security-Patches SUPEE Nummern vergibt, aber ein paar Unklarheiten muss ich hier ausräumen, weil sie verwirrend sind:

  • auch wenn in SUPEE „Enterprise Edition“ steckt, betreffen sie in den allermeisten Fällen auch die kostenlose Open Source Edition.
  • auch wenn SUPEE-Patches Sicherheitsbehebungen sind, gibt es viele andere SUPEE-Patches, die keine Sicherheitsprobleme sind. Wendet man sich als Commerce-Kunde wegen einem Core-Bug an den Support, bekommt man dafür auch einen SUPEE-Patch geschickt.
  • Die SUPEE-Nomenklatur gilt eigentlich nur für Patches in Magento 1, wenn man also einen Patch einzuspielt, anstatt auf die neueste Version zu aktualiseren. Es gibt aber zwischen dem, was in Magento 1 der Patch und das Release tun und auch dem Magento 2 Release starke Überschneidungen, weil in der überwiegenden Mehrheit die gleichen Sicherheitslücken behoben werden. Deswegen ist SUPEE oft ein Synonym für Sicherheitsupdates in Magento 1 und Magento 2, die auf unterschiedlichen Wegen erreicht werden.

Überprüfen, ob alle Sicherheits-Updates vorhanden sind

Wie findet man heraus, ob der eigene Shop auf dem aktuellen Stand und gut gesichert ist?

  • MageReport.com scannt einen Shop von außerhalb und erkennt mit guter Verlässlichkeit, welche Updates/Patches auf einen Shop angewendet sind.
  • Dem offiziellen Magento Security Scan Tool geben Sie Zugriff auf Ihren Server, um die Sicherheit zu überprüfen und den Befall durch Malware zu erkennen. Im September 2020 gab Adobe eine eine Partnerschaft mit Sansec für das Security Scan Tool bekannt. Dank der Partnerschaft werden Sansecs Security-Scans nach infizierten Dateien automatisch im Security Scan Tool eingesetzt. Seit Juni 2021 kann das Tool auch Shops auf Basis von PWA Studio überprüfen.
  • Sanguine Security des bekanntem Magento-Security-Forschers Willem de Groot bietet einen kostenpflichtigen Service, der Shops regelmäßig und zeitnah auf Infektione überprüft.

Sicherheit von 3rd-Party-Code und Eigenentwicklungen

Nicht nur beim Code von Magento müssen Sie aufpassen, sondern auch beim Code von Drittherstellern und bei Eigenentwicklungen.

Je häufiger eine Extension verwendet wird und je transparenter der Code für alle einsehbar (wie bei Open Source), desto wahrscheinlicher ist es, dass Sicherheitsprobleme in einem Modul gefunden und behoben werden. Ist eine Extension hingegen selten im Einsatz und der Code womöglich sogar verschlüsselt, steigt das Risiko, dass Sicherheitslücken im Code schlummern. Die Magento Vulnerability Database ist ein Community-Projekt, das verletzbare Versionen von Extensions zusammenträgt und hilft, problematische Pluginversionen zu finden.

Bei Eigenentwicklungen hilft es nur, DienstleisterInnen zu finden, denen man vertraut und die Zeit und Wissen in den Bau der Extensions investieren.

Maßnahmen für mehr Sicherheit

Dieser Talk enthält eine gute Liste von möglichen Maßnahmen, um Sicherheitsproblem im Code aufzuspüren.

Security-Checkliste

Die von Talesh Seeparsan ins leben gerufene Magento Security Checklist hilft dabei, seinen Magento 2 Store in Sachen Sicherheit auf den Start vorzubereiten.

Die Checkliste beinhaltet Punkte für:

  • Richtlinien zu selbst geschriebenen Code
  • Best Practices, wenn man Extensions von Drittherstellern verwendet
  • Empfehlungen für Backend-Einstellungen
  • Server-Einstellungen und DevOps-Praktiken
  • Regelmäßige Wartungsarbeiten
  • einen sicheren Entwicklungs-Prozess
  • die Sicherheit des Magento-Cores
  • externe Sicherheitsbelange (Web Application Firewalls etc)

Content Security Policy (CSP)

Eine Content Security Policy (CSP) kann vor Cross-Site-Scripting-Angriffen schützen. Informationen dazu finden Sie in meinem Artikel zu CSP.

Nützliche Extensions

Invalidierung von Admin-Passwörtern

SomethingDigital_InvalidateAdminPasswords erlaubt es, die Passwörter der Administratoren über das Kommandozeilen-Tool von Magento zu invalidieren.

Im Backend kann man zuvor definieren, ob beim Ausführen des Befehls eine Info-E-Mail an die Admins geschickt werden soll und ob auch die 2FA (Zwei-Faktor-Authentifizierung) der User zurück gesetzt werden soll.

Admin-Aktivitäten aufzeichnen

KiwiCommerce_AdminActivity zeichnet die Aktionen der Admin-User auf und hilft damit sowohl bei der Problemsuche als auch bei möglichen Hacking-Versuchen.