Kurz notiert: Weitere Magento Patches werden folgen!

magento-malware-code

Aktuell häufen sich die Informationen über eine weitere Sicherheitslücke in Magento. Angreifer sollen in der Lage sein Kreditkartendaten und Informationen über Kunden des Shops auszulesen bzw. an fremde Server zur Speicherung weiterzuleiten.

Bisher ist unklar ob es sich um eine Lücke im Magento Kern oder aber einer weit verbreiteten Extension handelt. – Ein Patch ist noch nicht verfügbar!

Unsere Infrastruktur haben wir nach Anzeichen von Angriffen untersucht und sind (leider) fündig geworden, die involvierten IPs haben wir sofort per Firewall gesperrt um schlimmeres zu verhindern:

169.57.0.212
217.23.12.208
190.10.9.28

Wir werden unser Netzwerk weiterhin beobachten und ggf weitere IPs sperren bis ein Patch zur Verfügung steht, wann dies sein wird steht noch nicht fest.

Unseren (kostenpflichtigen) Patch-Service könnt ihr vorab per Support-Ticket freigeben, d.h. auch wenn ihr in Kürze Urlaub oder Betriebsferien plant ist eurer Shop geschützt. – Sobald der Patch veröffentlicht wurde spielen wir diesen für euch ein!

Ausführliche Informationen zur aktuellen Problematik findet ihr unter anderem bei:
Heise Security
Sucuri Blog


Kritisches Sicherheitsupdate: Magento SUPEE-5994

Am 14.05.2015 hat das Magento Team, neben dem bereits bekannten Patch SUPEE-5344, einen weiteren kritischen Sicherheitspatch mit dem Namen SUPEE-5994 veröffentlicht.

Betroffen sind die Magento Versionen 1.6.x.x – 1.9.1.1, somit auch die bisher als sicher geltende Magento Version 1.9.1.1!

Laut Changelog wurden folgende Lücken geschlossen:

Admin Path Disclosure: Auslesen des Admin-Pfades auch wenn dieser umbenannt wurde, Brute-Force Attacken sind somit trotz Umbenennung des Admin-Pfades möglich.

Customer Address Leak through Checkout / Customer Information Leak through Recurring Profile: Kundendaten inkl. Bestelldaten lassen sich durch hochzählen von IDs auslesen. Der Angriff kann vollständig automatisiert werden was die Kundendaten jedes Magento Shops in akute Gefahr bringen!

Local File Path Disclosure Using Media Cache: Durch fiktive Bild-URLs lassen sich Pfadangaben auf dem Server auslesen.

Spreadsheet Formula Injection: Ausführung von Schadcode in der Tabellenkalkulation Excel durch von Magento generierte Tabellen.

Cross-site Scripting Using Authorize.Net Direct Post Module: Angreifer können über spezielle Links versenden um die User-Session zu übernehmen und Zugriff auf das Kundenbackend zu bekommen, ebenfalls sind Bestellungen im Namen des Kunden möglich.

Malicious Package Can Overwrite System Files: Angreifer können Extensions mit Schadcode veröffentlichen die Dateien direkt auf dem Server überschreiben.

Wie wir bereits aus SUPEE-5344 gelernt haben sind sämltiche ungepatchten Magento Versionen nach 48h mit Malware verseucht, die Patches sollten daher schnellstmöglich eingespielt werden!

Für unsere Kunden bieten wir wie immer einen Patch-Service zum Pauschalpreis an, öffnet zur Beauftragung der Patches ein Support-Ticket im Kundencenter. Wir kümmern uns kurzfristig darum :)


BruteForce Attacken und Hacks von Magento Shops (Shoplift Bug)

Heute erreichen uns einige Support-Tickets von Kunden deren Magento Backend nicht mehr lädt und folgende Fehlermeldungen ausgibt:

Fatal error: Class ‚Magpleasure_Filesystem_Helper_Data‘ not found in app/Mage.php on line 546
Fatal error: Class ‚Mage‘ not found in includes/src/Mage_Core_functions.php on line 244
Fatal error: Class ‚Mage‘ not found in includes/src/Mage_Core_Model_Resource_Session.php on line 108

Nach einer kurzen Analyse der Shops und unserer Server können wir festhalten das die Shops in der letzten Nacht gehackt wurden. Neben dem Upload zahlreicher Dateien u.a. einer Fake-Extension mit dem Namen „File System“ wurden auch neue Benutzer mit dem Namen „acjb“ und Adminberechtigung angelegt. Einige Kunden berichten von Änderungen an der Magento Datenbank, eine genaue Prüfung steht noch aus.

Einen Hack unserer Server können wir zu 100% ausschließen da sofort ausgeführte Checks negative Ergebnisse liefern, gleichzeitig konnten wir eine Liste der Gemeinsamkeiten der gehackten Shops erstellen.

Betroffene Shops haben folgende Eigenschaften:

  • Adminbereich nicht wie empfohlen umbenannt, unter /admin/ erreichbar.
  • Dem Hack gingen zahlreiche BruteForce Attacken auf /admin/ voraus.
  • In der letzten Nacht wurde eine neue Extension installiert (app/code/community/Magpleasure/Filesystem/)
  • Es fehlt der von uns bereits im Februar angekündigte Security-Patch (SUPEE-5344), das Magento Team hat in den letzten Tagen per Benachrichtigungssystem noch einmal auf das kritische Update hingewiesen.

„Critical Reminder: Download and install Magento security patches. Download now.
Download and implement 2 important security patches (SUPEE-5344 and SUPEE-1533) from the Magento Community Edition download page (https://www.magentocommerce.com/products/downloads/magento/). If you have not done so already, download and install 2 previously-released patches that prevent an attacker from remotely executing code on Magento software. These issues affect all versions of Magento Community Edition. A press release from Check Point Software Technologies in the coming days will make one of these issues widely known, possibly alerting hackers who may try to exploit it. Ensure the patches are in place as a preventative measure before the issue is publicized.“

Nicht betroffene Shops haben folgende Eigenschaften:

  • Adminbereich ist nicht unter /admin/ erreichbar.
  • Der Security-Patch (SUPEE-5344) ist installiert.

Wir gehen davon aus das die BruteForce Attacke erfolgreich war da die mit Malware beladene Extension über MagentoConnect geladen wurde. Es finden sich gleichnamige Dateien im Cache Ordner des Downloaders:

downloader/.cache/community/File_System-1.0.0.tgz

Die dazugehörige Magento Extension wird noch von Google gelistet, der Link zu MagentoConnect leitet allerdings auf eine 404-Seite weiter.

Magpleasure_Filesystem_Helper_Data

Über die gravierende Sicherheitslücke wurde in den letzten Tagen in Blogs berichtet:

https://blog.sucuri.net/2015/04/critical-magento-shoplift-vulnerability-supee-5344-patch-immediately.html
http://www.itespresso.de/2015/04/20/check-point-deckt-massive-sicherheitsluecke-in-magento-auf/

Update folgt!


Kritische Magento Sicherheitslücke – Patch (SUPEE-5344) erforderlich!

Fast still und heimlich hat das Magento Team am 09.02.2015 einen Patch für fast alle Magento Versionen veröffentlicht. Im Netz und per Google lassen sich kaum Infos zum Patch finden daher reichen wir diesen Beitrag erst jetzt nach.

Im Magento Core wurde eine schwerwiegende Sicherheitslücke entdeckt. Die Lücke erlaubt es einem Angreifer Zugriff auf die gesamte Magento Instanz zu erhalten bzw. Dateien auf dem Server zu speichern. Diese Dateien können später für weitere Angriffe auf externe Ziele oder als Backdoor zum Shop verwendet werden.

Betroffen sind die Magento Versionen CE 1.6 bis CE 1.9 sowie EE 1.11 bis EE 1.14. Auch die aktuellen Versionen CE 1.9.1.0 und EE 1.14.1.0 sind betroffen!

Wir raten daher allen Kunden schnellstmöglich den bereitgestellten Patch, passend zur eingesetzen Magento-Version, einzuspielen!

Einspielen des Magento-Patches per SSH:

  1. Download des passenden Patches von Magentocommerce.com (ganz unten)
  2. Upload des Patches in den Ordner public_html
  3. sh PATCH-DATEINAME.sh
  4. rm var/cache/* -rf

Einspielen des Patches ohne SSH:

  1. Download des passenden Patches von Magentocommerce.com (ganz unten)
  2. Öffnen des Patches im Texteditor
  3. Manuelles Anwenden des Patches: Zeilen im Patch mit einem Minus (-) werden entfernt, Zeilen mit einem Plus (+) ergänzt. Die zu editierenden Dateinamen befinden sich über den geänderten Zeilen.
  4. Alle Caches leeren um die Änderungen zu übernehmen: System > Cache Management

Das Entwicklerteam empfiehlt die Änderungen vorher in einer Testumgebung zu prüfen!

rack::SPEED Kunden mit einem SSD Business Hosting oder CloudServer können die Updates jederzeit wie oben beschrieben per SSH einspielen, SSD StartUp und Kunden älterer Tarife können jederzeit die Unterstützung unseres Support-Teams in Anspruch nehmen. – Für das Einspielen des Patches berechnen wir eine einmalige Servicegebühr.


rackSPEED ist offizieller MagentoDE Partner!

MagentoDE Banner

Lange hat es gedauert aber nun sind wir endlich MagentoDE Partner!

Ab sofort habt ihr die Möglichkeit die für den deutschen Markt vorkonfigurierte MagentoDE Version mit Hilfe des 1-Klick Installers zu installieren.

Im Gegensatz zur „normalen“ Magento-Version startet nach dem ersten Login als Admin ein weiterer Assistent, der euch durch die Einrichtung der für den deutschen Markt benötigten Module führt. Ist dieser Prozess abgeschlossen fehlen nur noch die ersten Artikel bevor Ihr den Verkauf starten könnt. – Der umfangreiche und nicht ganz einfache Anpassungsprozess des Shopsystems an die deutschen Gesetze entfällt durch die Nutzung von MagentoDE vollständig!

Die Highlights von MagentoDE auf einen Blick:

  • komplettes Magento CE vorkonfiguriert für den deutschen Markt
  • inklusive wichtiger Extensions für die Anwendung in Deutschland
  • mit deutschem Sprachpaket
  • PDF Rechnungen, Grundpreisangabe, Anzeige von Versandkosten
  • integrierte Zahlungsarten: Nachnahme, Bankeinzug, Rechnung, PayPal
  • einfache Anbindung an eBay und andere Marktplätze möglich
  • mit der Magento Community entwickelt
  • Trusted Shops vorzertifiziert

Natürlich könnt ihr MagentoDE ab sofort in unserem Testaccount ausprobieren bevor ihr unser Magento Hosting bestellt.

Die Arbeiten zur Implementierung von MagentoAT und MagentoCH laufen bereits auf Hochtouren. 😉


Magento Datenbank Optimierung – Teil 3

Im ersten und zweiten Teil der Reihe „Magento Datenbank Optimierung“ haben wir uns die Log-Funktionen genauer angesehen. Dieses Mal wollen wir die Datenbank von allen unnötigen Einträgen befreien.

Als direkte Auswirkung der Optimierung sehen wir mehr freien Speicherplatz auf der Festplatte und einen reduzierten Bedarf an Arbeitsspeicher.

Das Problem der großen Tabellen

Eine optimale MySQL-Konfiguration sieht vor möglichst viele Abfragen aus dem sehr schnellen Arbeitsspeicher zu bearbeiten. Große Tabellen verhindern dies und zwingen den MySQL-Server temporäre Tabellen auf der vergleichsweisem „langsamen“ Festplatte abzulegen.

Besonders gut bemerkbar macht sich dieser Performanceverlust bei der core_session Tabelle wenn diese, aufgrund vieler Besucher und / oder falsch eingestellter Session Lebensdauer, sehr groß geworden ist. Die Tabelle wird bei jedem Seitenaufruf nach alten Sessions gescannt, kann der Server diese nicht aus dem Arbeitsspeicher bedienen muss auf die „langsame“ Festplatte zurückgegriffen werden. Die Abfragedauer steigt dadurch von wenigen Millisekunden auf mehrere Sekunden was die Auslieferung der Website ebenfalls um diese Zeit verzögert. – Die Seitenladezeit des Magento Shops steigt (meistens) ohne erkennbare Anzeichen wie steigende Besucherzahlen oder CPU-Auslastung immens an.

Die Leerung der Session-Tabelle ist im Query nicht berücksichtigt da dies die Warenkörbe der Besucher leeren würde, dennoch empfehlen wir die Tabelle ab einer Größe von 50 – 100 MB zu leeren.

Unnötigen Ballast entfernen

Backup nicht vergessen! :)

Die folgenden Tabellen können und sollten regelmäßig geleert (nicht gelöscht!!!) werden damit die Performance Eures Magento Shops nicht negativ beeinträchtig wird: aw_core_logger, catalog_compare_item, catalogindex_aggregation, catalogindex_aggregation_tag, catalogindex_aggregation_to_tag, dataflow_batch_export, dataflow_batch_import, index_event, log_customer, log_quote, log_summary, log_summary_type, log_url, log_url_info, log_visitor, log_visitor_info, log_visitor_online, report_event, report_viewed_product_index, report_compared_product_index’.

Markiert dazu in phpMyAdmin die o.g. Tabellen und wählt anschließend unten im Dropdown den Befehl „Leeren“ aus.

cpanel-phpmyadmin-truncate

Alternativ könnt ihr folgendes Query direkt auf der MySQL-CLI oder mit Hilfe von phpMyAdmin über den Reiter „SQL“ abfeuern. – Achtet unbedingt auf die richtige Datenbank Auswahl und die korrekten Tabellennamen im SQL-Query!

TRUNCATE 'aw_core_logger';
TRUNCATE 'catalog_compare_item';
TRUNCATE 'catalogindex_aggregation';
TRUNCATE 'catalogindex_aggregation_tag';
TRUNCATE 'catalogindex_aggregation_to_tag';
TRUNCATE 'dataflow_batch_export';
TRUNCATE 'dataflow_batch_import';
TRUNCATE 'index_event';
TRUNCATE 'log_customer';
TRUNCATE 'log_quote';
TRUNCATE 'log_summary';
TRUNCATE 'log_summary_type';
TRUNCATE 'log_url';
TRUNCATE 'log_url_info';
TRUNCATE 'log_visitor';
TRUNCATE 'log_visitor_info';
TRUNCATE 'log_visitor_online';
TRUNCATE 'report_event';
TRUNCATE 'report_viewed_product_index';
TRUNCATE 'report_compared_product_index';

Die SQL-Befehle entfernen nicht mehr benötigte Daten aus den Tabellen und sorgen somit für eine rasante Ladezeit. Andere Prozesse, wie die Erstellung eines Backups, werden durch die kleinere Datenbank ebenfalls positiv beeinflusst, so verbrauchen die meisten Vorgänge wesentlich weniger Zeit und Ressourcen (Stichwort: Timeout). :)


Magento Datenbank Optimierung – Teil 2

Nachdem wir in der letzten Woche (Magento Datenbank Optimierung – Teil 1) die Grundlagen für einen schnellen Magento-Shop geschaffen haben zeigen wir Euch heute weitere Möglichkeiten der Optimierung.

In einem aktuellen Projekt (ca. 50.000 Besuchern, 700.000 Seitenaufrufen und knapp 1000 Checkouts pro Tag) konnten wir durch Deaktivierung der Log-Funktionen 1 – 1,5 CPU-Kerne auf dem Datenbankserver einsparen. 

Die Änderungen aus Teil 1 sorgen für eine aufgeräumte Datenbank, allerdings loggt Magento nach wie vor jeden Zugriff in den entsprechenden Tabellen und löscht diese nach einigen Tagen wieder. Beide Vorgänge verbrauchen CPU-Ressourcen die wir sinnvoller einsetzen können, daher deaktivieren wir die Log-Funktionen heute komplett.

Deaktivierung über das Backend – Lösung mit Hindernis

Magento bietet Out-of-the-Box einige Möglichkeiten die Log-Funktionen zu deaktivieren. Am einfachsten ist es das Magento Backend zu benutzen:

System -> Konfiguration -> Erweitert -> Modulausgaben

Hier setzt Ihr Mage_Log auf Deaktivieren.

Die Deaktivierung über das Backend hat einen entscheidenden Nachteil: Es werden alle internen Log-Funktionen deaktiviert, somit funktionieren die Entwickler- und Extension-Logs auch nicht mehr.

MySQL Storage Engine BLACKHOLE – Das schwarze Datenloch!

Technisch etwas anspruchsvoller aber eleganter ist die Änderung der MySQL Storage Engine der Log-Tabellen auf BLACKHOLE. BLACKHOLE ist wie der Name schon sagt ein schwarzes Loch, allerdings nur in digitaler Form und wird daher „nur“ Euren Daten gefährlich.

ALTER TABLE log_url ENGINE = BLACKHOLE;
ALTER TABLE log_url_info ENGINE = BLACKHOLE;
ALTER TABLE log_visitor ENGINE = BLACKHOLE;
ALTER TABLE log_visitor_info ENGINE = BLACKHOLE;

Das oben gezeigte Query müsst Ihr direkt auf der MySQL-CLI oder mit Hilfe von phpMyAdmin über den Reiter „SQL“ abfeuern. – Achtet unbedingt auf die richtige Datenbank Auswahl und die korrekten Tabellennamen im SQL-Query!!!

Sobald das SQL-Query ausgeführt wurde sind die Log-Tabellen leer und sämtliche neu zu schreibende Log-Daten werden sofort verworfen.

Die BLACKHOLE-Lösung hat einen entscheidenden Vorteil gegenüber der Backend-Lösung da aus Magento-Sicht nach wie vor alle Log-Funktionen aktiv sind. Die Entwickler- und Extension-Logs könnt Ihr nutzen, an die Log-Tabellen gesendete Daten werden allerdings nicht verarbeitet und verschwinden direkt in unserem schwarzen Loch. Ganz ohne die CPU oder unsere Speichermedien zu belasten! 😀

In der nächsten Folge (Magento Datenbank Optimierung – Teil 3) zeigen wir Euch zwei kleine aber sehr wirkungsvolle SQL-Querys zur Optimierung der Magento Datenbank.


Magento Datenbank Optimierung – Teil 1

Immer wieder werden wir, in Beratungsgesprächen zu unserem Magento Hosting und der täglichen Arbeit im Support, nach der optimalen Konfiguration eines Magento-Shops gefragt.

Unser Wissen möchten wir gerne weitergeben, deshalb findet Ihr ab heute in der Kategorieliste rechts den Punkt Performance. In unregelmäßigen Abständen werden wir hier kurze Beiträge mit leistungssteigernden Maßnahmen vorstellen.

Starten werden wir heute mit einem der häufigsten Gründe für einen langsamen Magento-Shop und Backup-Probleme, die immer größer werdenden Log-Tabellen.

Nach der Installation loggt Magento jeden Zugriff auf eine beliebige Seite in der Datenbank. Die Daten können später dazu genutzt werden Statistiken oder andere Auswertungen zu erstellen, in der Regel werden diese Daten allerdings nie benötigt da externe Dienste wie Google Analytics zum Einsatz kommen.

Der Cronjob – ohne ihn geht nichts

Grundlegend für die fehlerfreie Funktion von Magento ist die Einrichtung des Cronjobs. Die Aufgabe eines Cronjobs ist es in regelmäßigen Abständen bestimmte Aufgaben zu erledigen, welche das im Detail sind könnt Ihr im Magento Wiki nachsehen. Neben den Standardaufgaben wie Newsletterversand, Index- und Sitemaperstellung führt das Script auch diverse Wartungsarbeiten aus. Wie Ihr einen Cronjob einrichtet erfahrt Ihr im Kundencenter.

Auf die richtigen Einstellungen kommt es an!

Nachdem der Cronjob eingerichtet wurde müssen wir noch einige Einstellungen im Magento Backend vornehmen. Das Menü zur Konfiguration der Log-Bereinigung findet Ihr unter:

System > Konfiguration > Erweitert > System > Log Bereinigung

Da der Vorgang je nach Datenmenge sehr viele Ressourcen beanspruchen kann sollte die Bereinigung in der Nacht erfolgen. Die Anzahl der Tage kann beliebig konfiguriert werden. – Je kürzer desto besser! :)

Magento Log Bereinigung

Einstellungen der Log-Bereinigung in Magento

Sobald der Cronjob eingerichtet und die Einstellungen vorgenommen wurden ist alles korrekt konfiguriert, in der folgenden Nacht startet der Job pünktlich seine Arbeit und räumt Eure Magento Datenbank gründlich auf.

In der nächsten Folge (Magento Datenbank Optimierung – Teil 2) erklären wir die komplette Deaktivierung der Log-Funktion und zeigen euch wie ihr die Datenbank weiter aufräumen könnt.


Kritische Magento Sicherheitslücke – Patch erforderlich!

Am 11.12.2013 wurde im Magento Core eine schwerwiegende Sicherheitslücke entdeckt. Die Lücke erlaubt es einem Angreifer Zugriff auf die gesamte Magento Instanz inkl. Datenbank zu erhalten.

Betroffen sind alle Magento Versionen von 1.4.0.0 bis 1.7.0.2! – Die letzte aktuelle Version 1.8.0.0 ist nicht betroffen.

Wir raten daher allen Kunden schnellstmöglich den bereitgestellten Patch, passend zur eingesetzen Magento-Version, einzuspielen!

Einspielen des Magento-Patches per SSH:

  1. Download des passenden Patches von Magentocommerce.com (ganz unten)
  2. Upload des Patches in den Ordner public_html
  3. sh PATCH-DATEINAME.sh
  4. Alle Caches leeren um die Änderungen zu übernehmen: System > Cache Management

Einspielen des Patches ohne SSH:

  1. Download des passenden Patches von Magentocommerce.com (ganz unten)
  2. Öffnen des Patches im Texteditor
  3. Öffnen der Datei app/code/core/Mage/Cms/Helper/Wysiwyg/Images.php auf dem Server
  4. Einspielen des Patches
    1. Nach „public function getCurrentPath()“ (ohne „“) in der Datei Images.php auf dem Server suchen
    2. Manuelles Anwenden des Patches: Zeilen im Patch mit einem Minus (-) werden entfernt, Zeilen mit einem Plus (+) ergänzt
  5. Alle Caches leeren um die Änderungen zu übernehmen: System > Cache Management

Das Entwicklerteam empfiehlt die Änderungen vorher in einer Testumgebung zu prüfen!

rack::SPEED Kunden können jederzeit die Unterstützung unseres Support-Teams in Anspruch nehmen.


24-Kerne, 96 GB DDR3 RAM, ultraschnelle SSDs…

… die neue Grundlage für hochperformantes SSD-Webhosting!

Schnell ist uns nicht schnell genug, daher haben wir unsere Server von Grund auf neu geplant und konfiguriert. Das Herzstück bilden 2x XEON E5-CPUs (24-Kerne mit HT), 96 GB DDR3 RAM mit ECC-Fehlerkorrektur, ultraschnelle SSD-Laufwerke, Intel Hardware-RAID 1 und 1000 MBit Netzwerk-Uplink.

Neben der beachtlichen Leistungssteierung haben wir versucht eure Anregungen umzusetzen. Das Resultat ist eine großartige Hosting-Plattform mit zahlreichen Zusatz-Features!

Jede Website hat irgendwann Saison, daher haben wir uns etwas ganz besonderes einfallen lassen: Der +100% Saison-Turbo! – Bis zu 3 Monate +100% Leistung für deine Website, je nach Tarif für 1 oder 3 Monate aktivierbar. Kein Serverumzug, kein Ausfall, kein Umzugs-Stress in der heißen Phase!

Ab sofort könnt ihr zwischen den PHP Versionen 5.2, 5.3 und 5.4 per Mausklick wechseln, auch die Konfiguration der bereitgestellten PHP-Extensions ist frei konfigurierbar.

Ein Pluspunkt für Entwickler ist die Integration von mod_pagespeed, GIT und SSH-Zugang.

Abgerundet wird das Ganze durch lange Scriptlaufzeitengroßzügig bemessener PHP-Speicher, 100% Ökostrom aus Wasserkraft und eine aktuelle MySQL 5.5 Instanz.

Notiert euch bereits jetzt den Promo-Code RELAUNCH2013 für den kommenden Montag! :)