zur Übersicht

Der Magento Pharma-Hack

Was ist der Pharma-Hack, wie kann man sich davor schützen und was kann getan werden, wenn der Shop bereits gehackt wurde?

04.06.2017 1.995 Wörter Christian Seifert, Yves Neyraud

Eine Google-Suche nach den Begriffen „Pharma Hack“ und „Magento“ liefert wenig zielführende Suchergebnisse. Alle brauchbaren Einträge beziehen sich meist auf das Content-Management-System Wordpress oder handeln von Magento-Hacks allgemein.


Das möchten wir ändern und in diesem Beitrag aufzeigen, dass auch ein gut gewarteter Magento-Shop Opfer dieses weit verbreiteten Hacks werden kann. Wie man sich schützt, worauf man achten sollte und was man tun kann, wenn der eigene Shop bereits gehackt wurde, erfahrt ihr hier.


Wichtiger Hinweis: Der Pharma-Hack kann nur Ablenkungsmanöver bzw. Begleiterscheinung eines weitreichenderen und schädlicheren Hacks – nämlich dem Abgreifen von User-Daten beim Bestellvorgang - sein. So war es auch im vorliegenden Fall. Der Shopbetreiber muss sich im Klaren sein, dass der Hacker (vermutlich) vollen Zugriff auf das Backend, die Dateibasis und somit Datenbank hatte bzw. immer noch hat!

Was ist der Pharma-Hack?

Einer unserer Kunden bat uns heraus zu bekommen, wieso viele seiner Produktseiten für Suchbegriffe wie „Viagra“ oder „Cialis“ auf Platz eins bei Google zu finden sind. Es kam hinzu, dass der Shop einen massiven Einbruch an Besucherzahlen verzeichnete. Nach kurzem Check über die gecachten Seiten bei Google war klar, dass es sich hier um einen Pharma-Hack handelte.


Veränderter Quelltext der Originalseite. Title- und Meta-Tags wurden angepasst.

Abbildung 1: Veränderter Quelltext der Originalseite. Title- und Meta-Tags wurden angepasst. ©behind you GmbH


Der Pharma-Hack ist mit 37% der weltweiten Hacks der Verbreitetste – vor allem im WordPress-Umfeld (auch dadurch bedingt, dass Wordpress einen Marktanteil von rund 57% hat). Dieser hat zum Ziel, durch SEO-Manipulation eine gute Platzierung der verlinkten Seiten (in diesem Fall Online-Apotheken) zu erreichen. Dabei wird von eingeschleusten Dateien überprüft, ob es sich bei einem Website-Zugriff um einen SEO-Crawler handelt. Wenn ja, wird der schädliche SEO-Text in den Quellcode eingefügt. Somit indizieren die Suchmaschinen die Shopseiten mit dem modifizierten Text und die infizierte Seite wird mit Potenzmitteln in Verbindung gebracht. Ein "normaler" Besucher sieht hingegen die unveränderte Seite.


Sucht ein User nun nach diesen Suchbegriffen, so landen die infizierten Seiten meist auf den vorderen Plätzen. Auch bei einer Suche nach dem Original-Shop werden Viagra spezifische Suchergebnisse angezeigt. Beim Klick auf eines der Ergebnisse wird der Nutzer auf Seiten wie http://canadian-pharmacy-24.com/ weitergeleitet. Das Ziel des Hacks ist damit erreicht.


Eingeschleuster SEO-Text

Abbildung 2: Eingeschleuster SEO-Text (Symbolbild - designed by ©behind you GmbH).


Wie kann ich meine Magento-Seite vor Hacks schützen?

Um gar nicht erst in die Verlegenheit zu kommen, die Sicherheitslücke(n) eines gehackten Magento-Shops ausfindig machen zu müssen, haben wir ein paar Maßnahmen zusammengetragen, die im Vorfeld zur Absicherung gegen Hacks ergriffen werden sollten:


  1. Neueste Magento-Version einsetzen. Das gilt für Neuinstallationen und trifft für die aktuellste 1.9.x- sowie 2.x-Version zu. In den neuen Versionen sind bereits alle Sicherheitsupdates enthalten und somit viele Sicherheitslücken geschlossen. Es ist nicht nötig, bei diesen sofort mit zusätzlichen Security-Patches nachzubessern.
  2. Auf Sicherheitslücken und fehlende Patches prüfen. Gerade bei älteren Magento-Installationen oder unbekanntem Sicherheitsstatus empfiehlt es sich, den Shop auf fehlende Updates und Lücken zu überprüfen. Ein sehr empfehlenswertes Tool für diese Zwecke ist magereport.com
  3. Sicherheitsupdates einspielen. Wurden Sicherheitslücken erkannt, so ist es dringend anzuraten alle Sicherheitsupdates für die entsprechenden Versionen zu installieren. Diese sind im offiziellen Download-Portal zu finden.
  4. Backend-/Admin-URL ändern. Standardmäßig ist das Backend jedes Magento-Shops über „/admin“ zu erreichen. Diese Kenntnis kann ein Hacker ausnutzen, um über Brute-Force-Attacken Zugang zum Backend zu erlangen. Wie man die Admin-URL ganz einfach ändert, erfahrt ihr hier. Hierbei ist zu beachten, dass „/admin“ nicht in ähnlich verbreitete Backend-URLs wie „/backend“ oder „/magento“ geändert werden sollte. Je kreativer die URL, umso schwerer ist es für potentielle Angreifer, die Seite zu hacken.
  5. Downloader- und RSS-URL sperren. Der Magento-Downloader wird benutzt, um Patches und Module in der Magento-Umgebung zu installieren. Dieser wird im Normalfall nur selten gebraucht, bietet für Hacker jedoch ebenfalls die Möglichkeit, mittels Brute-Force Zugang zum Backend erlangen. Wie man diese URLs sichert, erfahrt ihr unter folgendem Link.
  6. Sichere Passwörter und Benutzernamen wählen. Diese Information sollte eigentlich selbstverständlich sein. Doch gerade bei mehreren Backend-Benutzern ist es schwierig, alle Benutzernamen und Passwörter hinsichtlich ihrer Komplexität und Sicherheit im Auge zu behalten. Es sollten daher stets zufällig generierte Passwörter mit ausreichender Länge und Variabilität des Zeichentyps genutzt werden – gerade, wenn die Admin-, Downloader-, und RSS-URLs nicht gesichert sind! Passwortgeneratoren sind im Internet weit verbreitet. Unter anderem hier.
  7. Wenige Backend-Benutzer & granulare Zugriffsrechte. Je mehr Benutzer im Backend angelegt sind, umso größer ist die Wahrscheinlichkeit eines unsicheren Passworts. Ergo steigen auch die Möglichkeiten für Angreifer sich Zugriff zum Backend zu verschaffen. Wenn zusätzlich jeder Benutzer volle Zugriffsrechte besitzt (siehe u.a. Punkt 8), so ist diese Situation kritisch. Daher sollten alle inaktiven oder nicht mehr benötigten User gelöscht werden. Außerdem gilt es, die Zugriffsberechtigungen möglichst genau und differenziert festzulegen - vollen Adminzugriff sollte nach Möglichkeit nur ein User haben.
  8. Das Magento-Filesystem sperren. Über das Magento-Backend ist es möglich, alle Shop-Dateien der Magento-Installation einzusehen - auch Core-Dateien inklusive der Config-Datei mit Datenbank-Zugängen! Das öffnet potenzierller Manipulation natürlich Tür und Tor. Das Recht das Filesystem aufrufen zu können, sollte - wenn überhaupt - nur ein Benutzer haben. Im besten Fall wird dieses Recht allen Benutzern entzogen, da Änderungen an den Dateien genauso mittels FTP/SSH gemacht werden können.

    Update: Wie wir herausgefunden haben, ist das Filesystem keine Standardfunktionalität des Magento-Shopsystems sondern ein Plugin. Im vorliegenden Fall wurde es vom Hacker installiert, um dadurch umfassenden Zugriff auf die Dateibasis zu bekommen. Dieses Plugin sollte also umgehend entfernt werden!

Das Filesystem im Magento-Backend sollte für alle User gesperrt werden.

Abbildung 3: Das Filesystem im Magento-Backend sollte für alle User gesperrt werden.


Mein Shop ist dem Pharma-Hack zum Opfer gefallen – was kann ich tun?

Verlorene Umsätze und Kunden, aber auch der Imageschaden kann nach einem solchen Hack sehr groß sein. Speziell wenn dieser nicht sofort erkannt wird oder wenn er mit noch brisanteren Themen - z.B. Kinderpornografie - zu tun hat. Zwar wird nichts weiter getan, als entsprechende SEO-Texte auf der Website zu platzieren. Jedoch bedeutet dies auch, dass sich Zugang zum Server und/oder Backend verschafft wurde. Daher sollte sicher gegangen werden, dass nicht noch andere Bereiche manipuliert wurden, welche für den Shop und die Kunden noch schwerwiegendere Auswirkungen haben!


Manipulierte oder fremdartige Dateien – die Ursache des Pharma-Hacks – identifizieren und löschen


Um die Symptome des Magento-Hacks so schnell wie möglich zu beseitigen, empfiehlt es sich, die eingeschleusten und infizierten Dateien vom Server zu entfernen. Viele Server-Betreiber bieten hierfür einen Scan des Webspaces an. Dadurch können bereits viele schadhafte Dateien erkannt werden.


Im vorliegenden Fall handelte es sich hauptsächlich um Dateien (auf eine detaillierte Beschreibung der Funktionsweise wird an dieser Stelle bewusst verzichtet) im app\etc\modules-Ordner der Magento-Installation.


Der Code, welcher den Hack initialisiert, überprüft zunächst, ob es sich bei dem Seitenbesucher um einen Crawler handelt und inkludiert, falls dies der Fall ist, den schädlichen SEO-Text anschließend in das Shop-Template. Er befindet sich in folgenden Dateien:



Die include.php-Datei - so codierte Dateien weisen meist auf Schadcode hin.

Abbildung 4: Die include.php - so codierte Dateien weisen meist auf Schadcode hin.


Die im Folgenden gelisteten Dateien beinhalten Informationen, welche für den Hack benötigt werden. Darunter befindet sich zum einen eine modifizierte Template-Datei mit Platzhaltern für die schädlichen META-Tags, -Descriptions und den Seitentext an sich. Zum anderen findet sich darunter eine Sitemap des Shops mit allen verfügbaren URLs:



Generell lässt sich sagen: Sind Dateien im app\etc\modules-Ordner vorhanden, welche nicht im .xml-Format vorliegen, sollten diese genauer angeschaut werden. Sind diese verschlüsselt - oder enthalten kryptischen Code - empfiehlt es sich zunächst ein Backup zu machen, die betroffenen Dateien zu löschen und anschließend die Funktionsweise des Shops zu überprüfen.



Update:
Wie wir herausgefunden haben, ist das Magento-Filesystem keine Standardfunktionalität des Magento-Shopsystems sondern ein Plugin (siehe oben). Im vorliegenden Fall wurde es vom Hacker installiert um dadurch umfassenden Zugriff auf die Dateibasis zu bekommen. Dieses Plugin sollte also umgehend entfernt werden! Dazu die Datei app\etc\modules\Magpleasure_Filesystem.xml sowie die entsprechenden Plugin-Dateien aus app\code\community\Magpleasure löschen.



Natürlich müssen diese Dateien auch in den bootstrap-Prozess von Magento eingebunden werden. Dazu werden Core-Dateien modifiziert. In diesem Fall handelt es sich um folgende Datei:



Innerhalb dieser wird die vorher erwähnte Datei "include.php" in den Programmstart eingebunden. Die Mage.php kann dabei jedoch nicht einfach gelöscht, sondern muss händisch nach Schadcode durchsucht und gesäubert werden.


Infizierte Core-Datei Mage.php. Über diese wird der Schadcode in den Programmablauf eingebunden.

Abbildung 5: Infizierte Core-Datei Mage.php. Über diese wird der Schadcode in den Programmablauf eingebunden.


Mit dem Bearbeiten dieser Dateien wurde die Ursache bzw. die Symptome des Hacks bereinigt. Nun muss Google nur noch die Seiten neu indizieren – am besten ihr stoßt diesen Vorgang manuell über die WebmasterTools an.


Als nächstes: Shop auf Sicherheitslücken überprüfen


Wie bereits erwähnt, bietet nur ein gut gepatchter Shop ausreichend Sicherheit gegen Angriffe. Spätestens jetzt ist es ratsam den Shop mithilfe von magereport.com auf eventuelle Sicherheitslücken, fehlende Sicherheitsupdates und andere Einfallstore zu überprüfen.


Dieser Dienst überprüft allerdings nur die Standard-Magento-Installation. Viele Shops setzen jedoch eine Vielzahl von Plugins und Modulen ein. Diese können natürlich auch Sicherheitslücken aufreißen. Daher bietet es sich an, alle eingesetzten Plugins zu überprüfen, auf die neueste Version zu updaten und nicht verwendete zu deinstallieren.


Datenbank-, Backend- und FTP/SSH/Server-Passwörter ALLER Benutzer ändern


Zu diesem Zeitpunkt ist noch nicht sicher, wie sich der Angreifer Zugriff zum Shop und/oder Server verschafft hat. In jedem Fall ist es dringend ratsam, unverzüglich alle Passwörter (und ggf. Benutzernamen) aller Benutzer mit Zugriff auf das Magento-Backend oder den Server (FTP/SSH) zu ändern.


Natürlich ist es dabei wieder wichtig, die Passwörter nicht von „admin123“ zu „admin1234“ zu ändern, sondern – wie oben erwähnt – sichere, zufällige Passwörter zu benutzen. Außerdem bietet es sich an, inaktive oder nicht mehr benutzte Useraccounts für Server und Backend zu löschen bzw. zu deaktivieren, sodass über diese Accounts kein Zugriff stattfinden kann.

Wie wurde sich Zugriff auf das Backend bzw. den Server verschafft?

Das ist die wichtigste zu klärende Frage – allerdings auch die Schwierigste. Es gibt natürlich mehrere Möglichkeiten, wie der Hacker in das System eindringen kann. Diese sind unter anderem:



Mittels Brute-Force ausgeführte Attacke auf das Magento-Backend.

Abbildung 6: : Der "User" mit der IP 31.184.194.90 hat innerhalb von 24 Stunden ca. 3.500-mal die Admin-URL ausgerufen. Weitere Aufrufe geschahen über andere IP-Adressen.



Zusammenfassung: Was lernen wir daraus?


Der Pharma-Hack ist ein leidiges Übel, kann jedoch relativ einfach erkannt werden. Werden einige grundlegende Dinge beherzigt, so kann dieses Problem relativ einfach vermieden werden:


  1. Magento aktuell halten und mit neuesten Sicherheitsupdates versorgen
  2. Nur die nötigsten und verbreitete Plugins installieren bzw. diese regelmäßig updaten
  3. Inaktive Plugins löschen
  4. Backend-, Downloader- sowie RSS-URLs sichern und/oder umbenennen
  5. Sichere Benutzernamen und Passwörter einsetzen
  6. Inaktive und überflüssige Benutzer entfernen
  7. Granulare Zugriffsrechte verteilen
  8. Filesystem-Zugriff über das Magento-Backend sperren

Ist der Hack bereits geschehen, so sind folgende Schritte notwendig:


  1. Infizierte und eingeschleuste Dateien identifizieren und löschen bzw. Schadcode entfernen
  2. Shop auf Sicherheitslücken prüfen (magereport.com)
  3. Alle Benutzerpasswörter von Backend, Server und Datenbank ändern
  4. Einstiegsstelle des Hacks ausfindig machen und schließen

Für weitere Hinweise zum Artikel, in Bezug auf Magento bzw. den Pharma-Hack, weitere betroffene Dateien oder wie man sich besser schützen kann, sind wir jederzeit dankbar. Lasst es uns via E-Mail (info@behind-you.de) wissen.


Gerne Unterstützen wir auch bei der sicheren Neuumsetzung bzw. der Absicherung bestehender Shops oder helfen dabei, betroffene Shops zu bereinigen. Kontaktieren Sie uns gerne.


zur Übersicht


© 2013 - 2017 behind you GmbH Impressum Datenschutzerklärung facebook twitter google+