Seite 1 von 1
Checksum-Datei
Verfasst: 02 Aug 2025, 12:34
von Kai Schölzke
Wie die aktuelle Situation gerade zeigt, sollten wir das von Anfang an mit einbinden für den Core und für alle Module auch Drittanbieter.
Da aktuell ziemlich viele Gambio Shops gehackt werden, wäre es von Vorteil und würde die Arbeit enorm erleichtern, wenn man manipulierte Dateien schneller finden würde.
Da aber gambio so was nicht anbietet, habe ich ein python Script entwickelt, welches die Arbeit abnimmt und eine gambio-checksums.json erstellt, allerdings halt nur für die Core Dateien, so wie sie von Gambio ausgeliefert werden. Wer von den Entwicklern Interesse, dem kann ich gern das Script zusenden, oder von mir aus auch hier hochladen.
Mich würde nur erst mal interessieren, wie Eure Meinung dazu ist.
Re: Checksum-Datei
Verfasst: 03 Aug 2025, 10:48
von ddehning
Klingt interessant. Kannst du mir sehr gerne mal zusenden. Danke!
Basiert das Skript auf der im Installer bzw. Updater mitgelieferten filelist.txt? Darauf basierend könnte man ja auch Nicht-Core-Dateien finden.
Zumindest mir sind in der Vergangenheit (nicht nur Gambio, auch andere Systeme) weniger manipulierte Dateien begegnet, sondern eher in Unterverzeichnissen hinzugefügte Dateien, die ich nur über Logdateien finden konnte, da sie regelmäßig per POST aufgerufen wurden.
Re: Checksum-Datei
Verfasst: 03 Aug 2025, 16:48
von Kai Schölzke
Aktuell habe ich das so gelöst, ich habe mir eine Gambio Installation in der gleichen Strucktur wie sie auf dem Server liegt auf eine externe Festplatte gelegt. Das Script wird aufgerufen mit dem Pfad der Installation, dan geht das Script alle Dateien inkl. Unterverzeichnisse durch und erstellt dann die Datei für den Abgleich. Das ist allerdings wirklich nur für die Core Dateien. Wenn man aber z.B eine saubere Datensichrung von nach dem letzten Update hätte, könnte man das auch damit machen und würde ziemlich schnell die geänderten Dateien finden. An der Software die dann die geänderten und neue Dateien finden soll, arbeite ich gerade.
Re: Checksum-Datei
Verfasst: 05 Aug 2025, 15:00
von Burkhard
Ich hatte dafür auch schon was gemacht, Dateien aufzuspüren die nach Tag xy erstellt oder geändert wurden zu suchen:
Code: Alles auswählen
<?php
// UTF-8 Header setzen für korrekte Umlautdarstellung
header('Content-Type: text/html; charset=utf-8');
// Basisverzeichnis
$directory = ".";
// Stichtag: 29. Juli 2025
$cutoff = strtotime("2025-07-29");
// Funktion zur rekursiven Dateisuche mit Ausschlüssen
function findRecentFiles($dir, $cutoff) {
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS)
);
foreach ($iterator as $file) {
if ($file->isFile()) {
$filePath = $file->getPathname();
$fileName = $file->getFilename();
$lowerPath = strtolower($filePath);
// Ausschlussfilter
if (
preg_match('/\.log$/i', $fileName) || // Log-Dateien
strpos($lowerPath, 'cache') !== false || // "cache" im Pfad oder Dateinamen
strpos($lowerPath, 'usage') !== false // "usage" im Pfad oder Dateinamen
) {
continue;
}
$modTime = $file->getMTime(); // Änderungszeit
$createTime = $file->getCTime(); // Statusänderungs-/Erstellzeit
// Nur Dateien mit Änderung oder Erstellung nach dem Stichtag
if ($modTime > $cutoff || $createTime > $cutoff) {
echo '<br><strong>' . htmlspecialchars($filePath) . '</strong>';
echo ' — geändert am: ' . date("Y-m-d H:i:s", $modTime);
echo ' — ctime: ' . date("Y-m-d H:i:s", $createTime);
}
}
}
}
// Skript starten
findRecentFiles($directory, $cutoff);
?>
Es gibt ziemlich viele False Positives, weil ich mir unsicher war, welche Verzeichnisse ich gefahrlos zum Ausschlussfilter hinzufügen kann. Ist auf jeden Fall auch nützlich, wenn man weiß wann das Malware-Ereignis eingetreten ist.
Vielleicht könnt ihr das auch gebrauchen, um so eine Art "Shop Health Monitor" zu integrieren. Da könnte man auch noch allerlei Tests und Tools zur Prüfung der Datenbank-Konsistenz mit reinbauen.
Re: Checksum-Datei
Verfasst: 08 Aug 2025, 10:50
von Dominik Späte
Kai Schölzke hat geschrieben: ↑02 Aug 2025, 12:34
Mich würde nur erst mal interessieren, wie Eure Meinung dazu ist.
Ein Integritätscheck. Ja, super Idee!
Bei der Installationsdatei meiner Modulverwaltung habe ich das verbaut, aber nur für die Zip-Datei (reicht ja an der Stelle). Ansonsten nutze ich bei Modulinstallationen auch schon den Hashsummen-Vergleich um zu checken, welche Dateien verändert wurden und daraus schlussfolgernd, welche Caches zu leeren sind.
ddehning hat geschrieben: ↑03 Aug 2025, 10:48
Zumindest mir sind in der Vergangenheit (nicht nur Gambio, auch andere Systeme) weniger manipulierte Dateien begegnet, sondern eher in Unterverzeichnissen hinzugefügte Dateien, die ich nur über Logdateien finden konnte, da sie regelmäßig per POST aufgerufen wurden.
Ja, wahrscheinlich sind die häufiger. In den letzten 20 Jahren hatte ich aber durchaus genügend Begegnungen mit Originaldateien, in die Schadecode eingefügt wurde. Das gilt's schon beides zu berücksichtigen, wenn man so einen Integritätscheck bauen will…