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
Ich füge eine weitere Antwort hinzu, nur weil meine andere die Frage nicht wirklich beantwortet hat - und es muss sicher nicht mehr länger sein!
Wie kann ich überprüfen, ob ein Bild CC-Informationen enthält?
Letztendlich kannst du nicht. Es gibt manchmal Indikatoren, die es abheben,
Z.B.
Es kann jedoch besonders schwierig sein, den Inhalt von Binärdateien zu verdauen, um den Inhalt zu bestimmen, wenn der Inhalt nicht nur im Klartext vorliegt.
Der häufigste Exploit, den ich gesehen habe, besteht darin, keine Klartextdaten in eine Datei mit einer
.jpg|png|gif|etc
Erweiterung zu schreiben. In der Regel handelt es sich um eine Art Codierung / Verschlüsselung, um die Daten zu verschleiern (z. B.base64
odermcrypt
usw.). Was bedeutet, dass ein einfaches Grep nicht funktioniert.Sie könnten (und das ist keineswegs erschöpfend) ...
Finden Sie ungewöhnlich große Dateien
Finden Sie Dateien, die mit CC regex übereinstimmen
Überprüfen Sie, ob die Bilddateien gültig sind
Oder
Wie kann ich die PHP-Dateien in meiner Installation überprüfen, um festzustellen, ob sie geändert wurden?
Der einfachste Weg, Ihre Installationsdateien zu vergleichen, besteht darin, den Kern mit einer sauberen Kopie zu vergleichen. Dies wird Ihre Designdateien nicht berücksichtigen, reicht jedoch weit aus, um einige tausend Dateien in Ihrer Installation zu überprüfen.
Der Prozess ist wirklich einfach,
Z.B. Für Magento Version 1.7.0.2
Bedenken Sie, dass ältere Magento-Versionen (ärgerlicherweise) nicht gepatcht sind. Wenn Sie also einen Core Diff verwenden, werden Änderungen angezeigt. Um dies zu vermeiden, wenden Sie die Patches auf die frisch heruntergeladene saubere Quelle an und unterscheiden Sie sie anschließend erneut.
quelle
Toller Beitrag, aber leider sind nicht alle Dinge gleich angelegt.
Dateiberechtigungen
Als Shared Hosting populär wurde, wurde es als wichtiger erachtet, dass Personen nicht berechtigt waren, Inhalte anderer auf demselben Server anzuzeigen. Bis zum Aufkommen von FreeBSD-Jails bedeutete dies:
Dies ermöglichte die Änderung der (damaligen) HTML-Dateien durch den Kontoinhaber, während gleichzeitig sowohl der Webserver-Prozess als auch der Kontoinhaber keinen Zugriff auf andere auf demselben Computer hatten.
Daran hat sich nicht viel geändert, und Softwarepakete, die auf Shared Hosting (CPanel, DirectAdmin, Plex) zugeschnitten sind, verwenden alle diese Prinzipien. Dies bedeutet, dass der Haupteinstiegspunkt (Webserver und / oder Skriptinterpreter) in jede Datei im Konto schreiben kann, wodurch Dateiberechtigungen unbrauchbar werden.
Kein CC zu stehlen, wenn Sie es nicht haben
Informieren Sie Ihren CC-Zahlungsanbieter, ob die CC-Daten tatsächlich an Ihren Server gesendet werden, und wenn ja, ob sie unverschlüsselt gesendet werden. Heutzutage ist JavaScript ziemlich leistungsfähig, und es gibt Zahlungsdienstleister, die die JavScript-Engine Ihres Kunden verwenden, um vertrauliche Informationen vor der Übertragung an den Server zu verschlüsseln. Während es für diesen Informationssammler möglich sein mag, den Sitzungsschlüssel sowie die verschlüsselten Daten abzurufen (und somit zu entschlüsseln), ist dies für den Sammler weniger interessant, da die gesammelten Daten größer und die KI des Bots viel komplexer sind .
Änderungserkennung
Über 15 Jahre Unix und es zaubert immer noch ein nostalgisches Lächeln auf mein Gesicht, wenn ich die Reinkarnationen von TripWire sehe . Es ist auch ein gutes Werkzeug dafür. Im Vergleich zu einer bekannten guten Version etwas weniger, da hier keine Ergänzungen berücksichtigt werden und wieder ein gutes Werkzeug verwendet wird, da ortsbezogene Änderungen häufiger sind als makellose Installationen.
Der Downloader
Es ist genauso einfach, den Download-Ordner aus dem Dokumentenstamm zu verschieben wie eine Art HTTP-Authentifizierung zu installieren. Setzen Sie es dann erst wieder ein, wenn Sie es benutzen. Wenn das nicht praktikabel ist, sperre ich es lieber auf der Basis einer entfernten Adresse als auf einer anderen Benutzer- / Kennwortebene, insbesondere auf der Basis von Kennwörtern, die im Klartext gesendet werden.
WAF und Alternativen
Eine Webanwendungsfirewall kann viele Probleme verhindern, die sich bereits in der Scanphase eines Angriffs befinden. Leider handelt es sich hierbei um teure Blackboxes, es gibt jedoch einige Alternativen:
Ich denke, wir haben eine Menge abgedeckt, aber lassen Sie mich mit meinem Petpeeve enden:
Beenden Sie die Verwendung von FTP
Dort. Ich sagte es. Und hier geht's: https://wiki.filezilla-project.org/Howto
quelle
An diesem neuen Hack ist nichts sicher, Ben Marks hat gestern geschrieben, dass sie das Problem untersuchen, und es gibt auch diesen Artikel.
Der beste Ansatz, den Sie versuchen können, besteht darin, sich über SSH anzumelden und in allen Dateien nach einer bestimmten Zeichenfolge zu suchen
Überprüfen Sie die Datei in Ihrem Magento-Stammordner manuell, um zu sehen, was gerade passiert, wenn Sie eine Übereinstimmung erhalten. Dasselbe gilt für andere Zeichenfolgen wie beispielsweise "END PUBLIC KEY".
quelle