In Magento wurde eine Sicherheitslücke entdeckt, welche zu einer kompletten Übernahme des Online-Shops führen kann. Diese Lücke betrifft nahezu 200.000 Online-Shops und kann zu Datenverlust im Bereich Kreditkarten- und personenbezogene Daten führen.

Magento veröffentlicht Patches in der Regel zu drei verschiedenen Gegebenheiten.

  1. Es wird eine Sicherheitslücke im Content-Management-System gefunden
  2. Magento erhöht die allgemeine Sicherheit des Systems
  3. Drittanbieter, welche direkt in Magento eingebunden sind, ändern ihre Anbindung

Kritische Sicherheitspatches sollten schnellstmöglich installiert werden. Diese tauchen bei angeschalteten Benachrichtigungen im Magento Backend in folgender Form auf.

Die kritische Meldung taucht zusätzlich auch in den Benachrichtigungen im Posteingang auf.

Im nun Folgenden werde ich beschreiben wie man einen Patch einspielt. Berücksichtigt werden hierbei die Patches:

  • SUPEE 1533
  • SUPEE 5344
  • SUPEE 5994
  • SUPEE 6285

Wie kann mein Shop gehackt werden und was dann?

Hacker können durch verschiedene Sicherheitslücken oftmals Schadcode auf Webseiten ausführen. Dieser Schadcode kann zum einen Kundendaten stehlen oder auch direkte Phishing-Mailing über den Server versenden. Falls Sie glauben, dass Ihre Website gehackt wurde, sollten Sie in Ihrer Datenbank nach verdächtigen Usernamen wie zum Beispiel admin_user oder ypwq suchen.

Warum sollte ich einen Patch so schnell wie möglich installieren?

Das Unternehmen hat zum Beispiel eine sogenannte RCE (remote code execution) Sicherheitslücke entdeckt, welche zu einer kompletten Übernahme des Online-Shops führen kann. Diese Lücke betrifft nahezu 200.000 Online-Shops und kann zu Datenverlust im Bereich Kreditkarten- und personenbezogene Daten führen.

SUPEE 1533 & SUPEE 5344

Die Patches können von der offiziellen Magento Download-Seite geladen werden.

Zum Magento Download

Wichtig ist, dass die Patches richtig in Ihr Magento-System eingespielt werden. Die folgende und verständliche Anleitung soll Ihnen beim Einspielen der Patches helfen.

Es gibt drei Wege, Patches zu installieren. Dazu gehören das Einspielen über SSH, FTP und cpanel. Manche Hoster bieten leider keinen SSH-Zugang an, weshalb die anderen Methoden hier wichtig werden.

Kompilierung

Stellen Sie den Compiler von Magento vor jedem Patch ab. Sollten Sie den Patch mit einem laufenden Compiler eingespielt haben, testen Sie ihr System gründlich und lassen Sie den Compiler noch einmal durchlaufen. Der Compiler muss das System einmal kompiliert haben, damit der Code einen Effekt in Ihrem System hat.

Starten wir nun mit der Anleitung zum Installieren eines Patches.

Folgen Sie den nun folgenden Schritten ganz genau uns lassen Sie keinen Schritt aus.

Methode 1:

  1. Laden Sie die Patch-Datei via FTP in das Root-Verzeichnis von Magento
  2. Erstellen Sie eine PHP-Datei mit dem Namen unix-shell.php und folgendem Code (Alternativer Download: unix-shell.zip):
$sPatch = isset($_GET['n']) ? $_GET['n'] : FALSE;
$sType = isset($_GET['t']) ? $_GET['t'] : '/bin/bash';

if ($sPatch != FALSE) {
	// INSTALL PATCH
	exec($sType . ' ' . $sPatch, $aOutput, $iStatus);
	
	switch ($iStatus) {
		case 1 :	echo 'ERROR (Code: ' . $iStatus . '): Catchall for general errors';
					break;
			
		case 2 :	echo 'ERROR (Code: ' . $iStatus . '): Misuse of shell builtins (according to Bash documentation)';
					break;
			
		case 126 :	echo 'ERROR (Code: ' . $iStatus . '): Command invoked cannot execute';
					break;
			
		case 127 :	echo 'ERROR (Code: ' . $iStatus . '): command not found';
					break;
			
		case 128 :	echo 'ERROR (Code: ' . $iStatus . '): Invalid argument to exit';
					break;
			
		case 130 :	echo 'ERROR (Code: ' . $iStatus . '): Script terminated by Control-C';
					break;
		
		default : 	echo implode(PHP_EOL, $aOutput);
					break;
	}

} else {
	// ERROR
	header('Location: index.php');
	exit;
}
  1. Übergeben Sie den Dateinamen des Patches mit dem GET Parameter n (z.B. https://www.domain.tld/magento/unix-shell.php?n=PATCH.sh)
  2. Laden Sie die unix-shell.php Datei auf Ihren Server und rufen die Datei im Browser auf.
  3. Sie sollten in Ihrem Browser folgende Ausgabe erhalten.
  4. Falls Sie eine Fehlermeldung wie,„Error! Some required system tools, that are utilized in this sh script, are not installed; Tool (s) “patch” is (are) missed, please install it(them).“
    erhalten, dann heißt dies, dass Ihr Server nicht die notwendigen Tools besitzt um SH-Dateien aufzuführen. In diesem Fall sollten Sie Ihren Hoster kontaktieren oder eine der anderen Methoden wählen.

Methode 2:

Natürlich können Sie den Patch auch komplett via SSH einspielen. Falls Sie nicht wissen was SSH überhaupt ist oder wie Sie dies einrichten, kontaktieren Sie Ihren Hosting-Provider.

  1. Laden Sie die Patch-Dateien in das Magento-Rootverzeichnis
  2. Führen Sie folgende Befehle der Reihe nach aus:
  3. Wechseln Sie mit dem „cd-Befehl“ in das Root-Verzeichnis
  4. Führen Sie den „sh-Befehl“ mit der Patch-Datei folgendermaßen aus:
sh PATCH_SUPEE-1533.sh

Sollte die Patch-Datei mit der Dateiendung .patch enden, so führen Sie folgenden Code aus

patch —p0 < patch_file_name.patch

Methode 3:

Die dritte Methode sollte nur mit äußerster Vorsicht ausgeführt werden! Wenn man keine Möglichkeit hat die Sh-Datei auf dem Server auszuführen, kann man diesen Patch auch einfach per Dateien via FTP hochladen. Hierzu bieten oftmals Drittanbieter die gepackten Patch-Dateien an. Hierbei sollten Sie sichergehen, dass Sie die Dateien von einer vertrauenswürdigen Quelle herunterladen, da der Sicherheitspatch Ihrem System sonst schaden könnte.

SUPEE 5994

Am 14. Mai 2015 hat Magento einen weiteren kritischen Sicherheits-Patch veröffentlicht. Dieser Patch schließt einige kritische Sicherheitslücken, welche es Hackern erlaubt zum Beispiel Kundendaten herunterzuladen. Hier ein Leitfaden zum Einspielen dieses Patches:

Methode 1:

  1. Laden Sie den Patch von der offiziellen Magento-Seite
    https://www.magentocommerce.com/download
  2. Laden Sie die heruntergeladene Patch-Datei in Ihr Magento-Root-Verzeichnis hoch
  3. Gehen Sie sicher, dass der Compiler deaktiviert ist.
  4. Installieren Sie die Patch-Dateien via SSH mit den „sh-Befehl“
  5. Leeren Sie den Cache und vergessen Sie hierbei nicht den OPcode und APC cache (Leeren Sie diese nicht, kann dies zu Problemen führen)

Momentan gibt es keine Möglichkeit zu prüfen, ob der Patch SUPEE 5994 erfolgreich installiert wurde. Es gibt aber bereits Anbieter, die an verschiedenen Extensions arbeiten, welche dieses Problem beheben sollen. Eine Extension, welche dies abbildet findet man unter folgendem Link: https://www.magecomp.com/magento-applied-security-patches.html . Diese Methode funktioniert laut Anbieter nur bei einem Patch via SSH oder unix-shell.php Methode.

Methode 2:

Diese Methode sollte nur mit äußerster Vorsicht ausgeführt werden! Wenn man keine Möglichkeit hat die Sh-Datei auf dem Server auszuführen, kann man diesen Patch auch einfach per Dateien via FTP hochladen, hierzu bieten oftmals Drittanbieter die gepackten Patch-Dateien an. Hierbei sollten Sie sichergehen, dass Sie die Dateien von einer vertrauenswürdigen Quelle herunterladen, da der Sicherheitspatch Ihrem System sonst schaden könnte.

SUPEE 6285 – (UPDATE: Magento hat eine zweite Version des Patches veröffentlicht)

Magento hat den Patch SUPEE 6285 veröffentlicht, welcher folgende Sicherheitslücken behebt:

  • Angreifer können sich als falscher Admin-User registrieren und damit den Bestellungs-Feed auslesen. Sobald Sie dies geschafft haben, können die Informationen für Folgeangriffe genutzt werden.
  • Einige kleine Sicherheitslücken, welche XSS ermöglichen.

Methode 1:

Sie können die gleichen Schritte wie auch schon bei den Patches SUPEE 1533, 5344 und 5994 anwenden.

Methode 2

Sie können die gleichen Schritte wie auch schon bei den Patches SUPEE 1533, 5344 anwenden.

Methode 3

Sie können die gleichen Schritte wie auch schon bei den Patches SUPEE 1533, 5344 anwenden.

Falls Sie Hilfe bei Ihren Patches benötigen, melden Sie sich gerne bei uns.

Update: 31.05.2017 neues Ausführungsskript: unix-shell.zip