Malware in Bilddateien finden

Maleware Inside Image Exif Header

Es ist ein Alptraum. Die Liveumgebung deines Kunden wurde gehackt und du weisst nicht, wie genau und welche Daten gestolen wurden. Schnell muss also untersucht werden, wo die Schwachstelle liegt um solche Angriffe in Zukunft besser abzufangen. Natürlich gibt es verschiedene Wege sich Zugang zu einer Liveumgebung zu verschaffen. In diesem Post möchte ich nur kurz darauf eingehen, wie mittels Bilddateien beliebiger Code eingeschleust werden kann.

Wie auf Snapfast und Sucuri beschrieben, kann beliebiger Code in EXIF von Bilddateien untergebracht werden. Oft genügt schon ein einfaches Script um einen neuen Administrator account zu erstellen. Alles weitere passiert dann im Hintergrund, oft unerkannt.

Leider hilft ein svn status oder git status nicht um geänderte Dateien zu erkennen, denn oft sind Verzeichnisse wie /media/ nicht versioniert.

Hier ein einfacher Befehl wie du solche Bilddateien mit “find” aufspüren kannst.

Sollten Dateien auf dem Produktivsystem infiziert sein, bekommst du folgendes Suchergebnis.

Praktische Beispiele für deine Magento Logdatei Analyse

Verbessere deine wöchentliche Logdatei Analyse mit ein paar einfachen ” grep ” Befehlen. Verwende diese vor jedem Rollout um sicher zu gehen, dass dein Code einwandfrei funktioniert und keine Fehlermeldungen generiert. Um bei grösseren Logdateien die Übersicht zu behalten, kannst du mit ” tail ” die letzten 1000 Zeilen überprüfen, oder zunächst einfach mit ” wc -l ” schauen wie hoch die Anzahl an Fehlermeldungen überhaupt ist.

Zähle die Resultate mit ” wc -l ” am Ende.

Zeige die letzten 1000 Zeilen von system.log mit ” tail -n 1000 ” an.

1. System.log

1.1 Zugriffe auf ein Array mit einem Key welcher nicht existiert

1.2 Zugriff auf eine Variable welche nicht definiert ist

1.3 Debug Ausgaben mit Mage::log() generiert

1.4 Diverse fehlgeschlagene Versuche eine Datei oder ein Verzeichnis zu erstellen oder manipulieren

1.5 Falsch definierte oder nicht existierende Template Dateien

1.6 Fehler bei Zugriff auf ein Objekt

1.7 Parameter an eine Funktion nicht korrekt übergeben

1.8 Ungültige Variable an eine Schleife übergeben

Alles mit einmal finden:

2. Exception.log

2.1 Generelle Probleme mit XML Dateien

2.2 Spezifische Probleme mit dem Authorize.net Gateway

2.3 Spezifische Probleme mit dem PayPal Gateway

2.4 Generelle Probleme mit CURL

Alle mit einmal finden:

3. Reports

Report Dateien auf der Konsole zu überprüfen ist mühsam. Mit den folgenden Befehlen kannst du schnell die neusten 10 Reports mit einmal durchsuchen.

3.1 MySQL Verbindungen

3.2 Invalid config field

3.3 Unable to read response

3.4 External urls redirect

Alle mit einmal finden:

4. Apache error logs

4.1 Fehlende Dateien im Projektverzeichnis