Blog
Magento und die Sicherheit: Patch SUPEE-6788
Seit Magento dazu übergegangen ist, in den Adminbereichen der Shops Meldungen über Sicherheitslücken und deren Patches aufpoppen zu lassen, sind die Shopbetreiber wesentlich sicherheitsbewusster geworden. Ein kleines Alarm-Icon unter dem „critical“ steht, sensibilisiert. Schön.
Magento ist derzeit etwas unter Beschuss, da es wohl eine Reihe von Shops gibt, die angegriffen wurden. Dafür kann Magento aber erstmal nichts. Denn dies betrifft scheinbar überwiegend Shops, die die Patches (v.a. den Shoplift-Bug-Patch) nicht installiert haben und die Alarm-Icons-Critical nicht so ernst nehmen, wie sie sollten.
Grundsätzlich sollten Sie folgendes nicht in Ihrem Shop haben:
Ihr Admin-Bereich sollte NICHT unter der Adressse www.meine-beispiel-shop-url.de/admin/ (oder www.meine-beispiel-shop-url.de/index.php/admin/) erreichbar sein.
Der Downloader sollte NICHT unter der Adresse www.meine-beispiel-shop-url.de/downloader/ erreichbar sein.
Wenn beides bei Ihnen nicht der Fall ist, ist das schonmal gut. Wenn eines von beidem bei Ihnen der Fall ist, sollten Sie mit Ihrem Entwickler oder Ihrer Agentur Kontakt aufnehmen.
Sicherheitspatches sollten ernst genommen werden und zeitnah nach deren Erscheinen durchgeführt werden – immer ganz brav erst in einer Testumgebung, dann erst im produktiven Shop. Es gibt immer wieder Shops, die keinen SSH-Zugang und keine Testumgebung haben. Ich persönlich finde, dass dort am falschen Ende gespart wird – und hoffe, dass die Alarm-Icons-Critical hieran vielleicht etwas ändern.
Der aktuelle Patch SUPEE-6788 schließt laut Magento so allerlei Lücken, die aber rein prophylaktisch sein sollen, da auf diese Lücken noch keine Angriffe stattgefunden haben. Im Normalfall ändert sich das nach Erscheinen eines Patches, da man damit ja praktisch immer einen Bauplan für die Angriffsziele bekannt gibt. Zum Download für die Community Edition wird er angeboten auf der Magento-Download-Seite https://www.magentocommerce.com/download. Shops, die eine Installation kleiner als Version 1.7 vorweisen, haben ein Problem, denn Patches für diese Versionen wird es wohl nicht geben.
Dieser aktuelle Patch SUPEE-6788 hat so seine Tücken, weil er in recht grundlegende Programmteile von Magento eingreift.Rund 800 Erweiterungen laufen derzeit nicht mit diesem Patch, die Chance, dass der Shop nach Einspielen des Patches zumindest in Teilen lahmgelegt wird, liegt grob geschätzt bei 80%.
Um das zumindest abzufedern gibt‘s einen neue Auswahl im Adminbereich, anhand dessen man auch erkennen kann, ob der Patch denn vorhanden ist oder nicht. Unter System-Konfiguration->Erweitert->Admin findet sich ein Punkt „Sicherheit“ und in diesem die Auswahl „Admin routing compatibility mode for extensions“. Erst wenn dieses auf „disabled“ steht, wird der Patch so richtig aktiv.
Wenn Sie also eine Testumgebung haben – installieren Sie den Patch und deaktivieren Sie diese Auswahl – und testen Sie dann Ihren Shop.
Darauf müssen Sie achten:
Eine (erschreckend lange) Liste von Erweiterungen von Drittanbietern, die nach diesem Patch nicht mehr laufen, finden Sie auf dieser Seite:
https://docs.google.com/spreadsheets/d/1LHJL6D6xm3vD349DJsDF88FBI_6PZvx_u3FioC_1-rg/edit#gid=0
Überprüfen Sie also, ob dort Erweiterungen aufgelistet sind, die Sie einsetzen.
Wenn ja, wird sich z.B. im Adminbereich beim Aufruf einer Erweiterung eine 404-Seite oder Ihre Shop-Startseite zeigen (je nach Einstellung).
Klicken Sie also vor allem alle Erweiterungen von Drittanbietern durch.
Ihr Entwickler kann etwas gezielter vorgehen. Hier ist eine schöne Auflistung der Änderungen: http://magento.com/security/patches/supee-6788-technical-details
Im Einzelnen:
APPSEC-1034: neu ist, dass bestimmte Angaben zur Definition eines Admin-Routers nicht mehr zugelassen werden. Wenn man also sein Projekt durchsucht nach <use>admin</use> wird man betroffene Module finden.
APPSEC-1063: soll mögliche SQL-Injections verhindern, daher sind bestimmte SQL-Statements nicht mehr möglich, nach denen man das Projekt durchsuchen kann.
APPSEC-1057: hier ist geändert worden, dass bestimmte Varibalen in der Templateverarbeitung nur noch bestimmten Modulen erlaubt sind, wie z.B. web/secure/base_url. Wenn also Templatedateien oder Blöcke/CMS-Seiten Direktiven wie diese enthalten: {{config path=”web/unsecure/base_url”}} wird dies weiterhin nur dann funktionieren, wenn man eine White-List damit befüllt hat. Es gibt daher zwei neue Datenbank-Tabellen: permission_variable und permission_block. Ob der Shop betroffen ist von diesem Bereich des Patches kann man herausfinden, indem man fein säuberlich alle betroffenen Variablen durchsucht (derer 12).
APPSEC-1079: dieser Bereich sichert scheinbar einen Angriff über die Auswahl File-Type bei individuellen Produktoptionen ab. Es sind daher anscheinend nur Shops betroffen, die individuelle Optionen vom Typ „Datei“ erlauben.
Fazit: für alle, die gerne wissen möchten, ob dieser Patch trotz aller möglichen Aufwände und Kosten installiert werden sollte: ja. Sicherlich werden viele Anbieter von Erweiterungen Aktualisierungen anbieten, so dass Sie immer sicherer sein können, dass keine Probleme auftauchen. Wenn Sie eine Erweiterung neu kaufen, sollten Sie (halbwegs) sicher sein können, dass diese bereits angepasst ist, wenn diese für Magento 1.9.2.2 angeboten wird, denn in dieser ist der Patch von Haus aus enthalten.
Kleiner Nachtrag
Was nach der Installation des Patches außerdem möglcherweise nicht mehr funktioniert, ist der Link in der Passwort-Vergessen-E-Mail.
Das kann man am – für mich – einfachsten lösen, indem man in der local.xml seines eigenen Templates (app/design/frontend/default/TMPLDIR/layout/local.xml) folgendes einträgt:
Reset a Password
page/1column.phtml
Reset a Password