Die genaue Antwort auf Ihre Frage finden Sie unter /magento//a/72700/361
Hintergrund
Erstens gibt es keinen spezifischen Exploit - es gibt eine Reihe von Artikeln, die im Moment die Runde machen und die den Quellartikel falsch verstanden haben.
Der ursprüngliche Artikel sagte nur (und ich umschreibe),
Wenn ein Hacker war die Lage Zugriff auf Ihre Magento - Dateien zu erhalten, sie könnten Informationen von Ihrem Kunden erfassen
Der wichtigste Teil ist der Hacker, der tatsächlich auf Ihren Server zugreifen und Dateien ändern muss.
Keine Panik ... das ist nichts Besonderes für Magento
In Bezug auf die Erfassung von Informationen gibt es für Magento nichts Spezielles als jede andere Website / Plattform. Wenn ein Hacker Zugriff auf Ihre Dateien erhält, ist das Spiel praktisch vorbei - er kann alle gewünschten Informationen erfassen.
Das Beste, was Sie tun können (und letztendlich das Minimum, das Sie tun sollten), ist die Einhaltung einer guten Sicherheitsrichtlinie, die den PCI-Sicherheitsstandards der Zahlungsverkehrsbranche entspricht. Die Liste finden Sie hier: https://www.pcisecuritystandards.org /documents/Prioritized_Approach_for_PCI_DSS_v3_.pdf
Härten Sie Ihren Laden
Sie können Facetten Ihres Geschäfts wirklich sperren, die die Angriffsfläche für einen Hacker erheblich verringern, oder zumindest deren Fortschritt verlangsamen, wenn er es schafft, in das Geschäft zu gelangen.
Berechtigungen sperren
Sie können die Berechtigungen für den Dokumentstamm einschränken, um nur das Schreiben in wichtige Verzeichnisse ( /var
und /media
) zuzulassen.
Dies ist, was wir standardmäßig auf MageStack tun ,
echo -n "Fixing ownership"
chown -R $SSH_USER:$WEB_GROUP $INSTALL_PATH && echo " ... OK" || echo " ... ERROR"
INSTALL_PATH="/path/to/public_html"
chmod 750 $INSTALL_PATH
find $INSTALL_PATH -type d ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing file permissions"
find $INSTALL_PATH -type f ! -perm 740 -exec chmod 740 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing cron permissions"
find $INSTALL_PATH/*/cron.sh -type f ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var file permissions"
chmod -R 760 $INSTALL_PATH/*/media $INSTALL_PATH/*/var && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var directory permissions"
find $INSTALL_PATH/*/media $INSTALL_PATH/*/var -type d ! -perm 770 -exec chmod 770 {} \; && echo " ... OK" || echo " ... ERROR"
Anpassen INSTALL_PATH,SSH_USER,WEB_GROUP
, um zu passen. Wichtig ist, dass Sie SSH_USER
nicht derselbe Benutzer sind, den PHP für den Webserver-Prozess verwendet. Andernfalls würden Sie im Wesentlichen vollständigen Schreibzugriff auf den Webserver gewähren (um die Vorteile zu verringern).
Sperren Sie Ihren Administrator- / Downloader-Zugang
Auf MageStack würden Sie dies einstellen ___general/x.conf
set $magestack_protect_admin true;
set $magestack_protect_downloader true;
Auf Nginx könnten Sie dies verwenden,
location ~* ^/(index.php/)?admin{
satisfy any;
allow x.x.x.x;
auth_basic "Login";
auth_basic_user_file /microcloud/data/domains/x/domains/x/___general/.htpasswd;
deny all;
location ~* \.(php) {
include fastcgi_params;
}
try_files $uri $uri/ /admin/index.php ;
}
Es ist ein bisschen mehr Dokumentation, wie eine Vorbereitung .htpasswd
Datei hier
Wickeln Sie den cron.sh
Prozess
Ich bin auf andere Hosting-Anbieter gestoßen, die dedizierte Computer für die Verwendung von Cron / Admin verwendet haben. Das bedeutet, dass das Ändern der cron.sh
Datei eine Remotecodeausführung auf Cron / Admin ermöglicht, ohne jemals darauf zugreifen zu müssen. Wenn Sie den Prozess mit dem richtigen Benutzer in eine falsche Wurzel packen, können Sie den Prozess noch weiter blockieren.
Es gibt viel zu viel Code für mich zu schreiben, aber es gibt ein Skript hier . Es ist spezifisch für MageStack, kann aber für weniger elegante Serverkonfigurationen angepasst werden :)
Prüfung, Prüfung, Prüfung
Linux ist fantastisch in Bezug auf die Anmeldung und das Eingeben, sodass Sie einen vollständigen Einblick in die Funktionsweise Ihres Servers erhalten.
Eine fantastische Funktion von MageStack ist das Auditing-Tool, das täglich alle Arten von Zugriffen und sogar Dateiänderungen protokolliert. Die Protokolle finden Sie hier,
/microcloud/logs_ro
|-dh[0-9]+
|---access-YYYY-MM-DD.log.gz
|---backup-YYYY-MM-DD.log.gz
|---magescan-YYYY-MM-DD.log.gz
|---php-differential-YYYY-MM-DD.log.gz
|-acc[0-9]+
|---access-YYYY-MM-DD.log.gz
Wenn Sie MageStack nicht verwenden, können Sie einen Teil davon ganz einfach mit Ihrem eigenen Hosting-Anbieter replizieren. Dies rsync
ist das einfachste Tool, um dies zu tun.
Z.B. Wenn Ihre Backups lokal verfügbar sind, können Sie Folgendes tun. Dadurch werden zwei Verzeichnisse im Probelauf verglichen und eine Diff-Patch-Liste erstellt.
rsync -na /path/to/public_html/ /path/to/backup/public_html/ > change.log
grep -E '\.php$' change.log | while read FILE; do
diff -wp /path/to/public_html/$FILE /path/to/backup/public_html/$FILE >> php-differential.log
done
PHP-Änderungen sind so selten, dass Sie dies so planen können, dass es täglich (oder mehrmals täglich) ausgeführt wird und Sie per E-Mail benachrichtigt werden, wenn sich eine PHP-Datei ändert.
in Summe
- Verwenden Sie die Versionskontrolle, um Änderungen leichter verfolgen zu können
- Nur ein SSL-Zertifikat zu haben, reicht nicht aus, um Ihre Site sicher zu machen
- Warten Sie nicht, bis Sie gehackt werden, um über Sicherheit nachzudenken
- Nur weil Sie zu Ihrem Zahlungsgateway-Anbieter weiterleiten (im Gegensatz zum Erfassen von Informationen), bedeutet dies nicht, dass Sie die PCI-Konformität vermeiden können
- Seien Sie proaktiv, sicher und gründlich - prüfen Sie den Modulcode vor der Installation, prüfen Sie die PHP-Dateien täglich, überprüfen Sie die Protokolle, prüfen Sie den FTP / SSH-Zugriff, ändern Sie die Kennwörter regelmäßig
Ihre Kunden setzen enormes Vertrauen in Sie, wenn sie alle ihre privaten Informationen weitergeben - und wenn Sie dieses Vertrauen verraten, indem Sie kein sicheres Geschäft betreiben, verlieren Sie Ihre Gewohnheiten und alle zukünftigen Gewohnheiten.
Forensische PCI-Untersuchungen sind unglaublich teuer, zeitaufwändig und riskieren letztendlich, dass Sie jemals wieder Kartenzahlungen annehmen können. Lass dich niemals in diese Position bringen!
Lass dich patchen
In letzter Zeit gab es eine Reihe von Patches von Magento, die Lücken geschlossen haben, darunter auch einige, die die Ausführung von Remote-Code ermöglichten. Sie können sie hier abrufen : https://www.magentocommerce.com/products/downloads/magento/
Diese neuen Artikel beziehen sich jedoch nicht auf einen neuen Exploit, sondern beschreiben lediglich, wie Hacker historische Exploits (oder andere Angriffsmethoden) nutzen, um Karteninhaberinformationen zu erfassen.
Quellen