Alle Artikel

Das vergessene Backup auf Ihrem Server, das jeder herunterladen kann

Dateien wie backup.zip, .sql-Dumps und old/-Ordner im Webverzeichnis sind leichte Beute für Bots. Wie Sie das prüfen, worum Sie bitten sollten und wohin Backups gehören.

Radek, ENSOMEDIAVeröffentlicht 4 Min. LesezeitIn EnglishPo polskuEn españolEn français中文بالعربية

Ein Backup zu haben, ist gut. Problematisch wird es, wenn es am falschen Ort liegt.

Meist läuft es so: Ein Entwickler zieht Ihre Website zu einem neuen Hoster um oder nimmt größere Änderungen vor. Zur Sicherheit packt er die ganze Website in backup.zip, exportiert die Datenbank nach database.sql und lässt beides im Website-Ordner liegen, damit es griffbereit ist. Die Arbeit ist erledigt, die Website läuft, die Dateien bleiben. Ein Jahr später weiß niemand mehr, dass es sie gibt.

Der Website-Ordner ist aber öffentlich. Alles, was darin liegt, kann jeder mit einem normalen Browser herunterladen, der die Adresse kennt oder errät.

Was meistens liegen bleibt

Die häufigsten Funde sehen etwa so aus:

  • Archive der ganzen Website, etwa backup.zip, site.tar.gz oder www-2023.zip,
  • Datenbank-Dumps: dump.sql, database.sql, db_backup.sql,
  • Kopien der Konfigurationsdatei: wp-config.php.bak, wp-config.php.old, config.php~,
  • komplette alte Versionen der Website in Ordnern namens old/, test/ oder backup/,
  • Archive und Installationsdateien, die Migrations-Plugins zurückgelassen haben.

Am gefährlichsten ist oft die kleinste Datei: die Kopie der Konfigurationsdatei. Die Original-wp-config.php führt der Server als Programm aus, deshalb kann von außen niemand ihren Inhalt lesen. Für den Server ist wp-config.php.bak dagegen eine gewöhnliche Textdatei. Er liefert sie vollständig aus, samt Datenbankname, Benutzername und Passwort.

Ein Datenbank-Dump enthält wiederum alles, was Ihr Shop oder Ihre Formulare gesammelt haben: Namen, Adressen, Telefonnummern, Bestellhistorie, Benutzerkonten. Und ein old/-Ordner enthält oft eine vollständige, funktionierende Kopie der Website von vor Jahren, mit Plugins, die niemand aktualisiert. Ihre Hauptseite kann gut gepflegt sein und trotzdem über die vergessene Kopie daneben angegriffen werden.

Warum Bots danach suchen

Niemand muss wissen, dass gerade Sie ein Backup auf dem Server haben. Automatisierte Scanner durchstreifen das Internet und probieren auf jeder Website, die sie erreichen, eine Liste gängiger Namen aus: /backup.zip, /site.zip, /dump.sql, /wp-config.php.bak, /.env. Das ist billig und schnell, also tun sie es ständig.

Wenn Sie Ihren Hoster um die Zugriffsprotokolle der Website bitten, werden Sie diese Versuche mit großer Wahrscheinlichkeit sehen. Auf einer aufgeräumten Website endet jeder davon mit einem 404, die Datei existiert also nicht. Auf einer Website mit vergessenem Backup endet einer davon mit einem 200 und einem Download.

Der zweite Weg führt über Google. Ist die Verzeichnisauflistung eingeschaltet, zeigt ihredomain.de/backup/ eine schlichte Dateiliste mit der Überschrift „Index of /backup“. Solche Seiten landen manchmal in den Suchergebnissen, und dann findet sie jeder, ganz ohne Raten.

Was Sie selbst prüfen können, ohne Serverzugang

Einiges dauert fünf Minuten:

  1. Suchen Sie bei Google nach site:ihredomain.de intitle:"index of". Keine Treffer sind ein gutes Zeichen.
  2. Geben Sie ein paar Adressen in den Browser ein, etwa ihredomain.de/backup.zip, ihredomain.de/database.sql oder ihredomain.de/old/. Startet ein Download oder sehen Sie statt einer Fehlerseite eine Dateiliste, haben Sie Ihre Antwort.
  3. Prüfen Sie die Website mit einem Scanner wie ShieldWave, der von außen dieselben gängigen Namen ausprobiert wie die Bots. Der Unterschied: Die Ergebnisse bekommen Sie.

Raten hat allerdings Grenzen. Es gibt Hunderte möglicher Namen, und ein Entwickler kann die Datei beliebig benannt haben. Eine verlässliche Antwort gibt nur jemand, der sich die Dateien auf dem Server ansieht.

Wie Sie Entwickler oder Hoster um eine Prüfung bitten

Technische Details brauchen Sie dafür nicht. Eine kurze Nachricht mit vier Bitten genügt:

  • prüfen, dass im öffentlichen Website-Ordner (meist public_html, www oder httpdocs) keine .zip-, .tar.gz-, .sql-, .bak- oder .old-Dateien liegen und keine Ordner wie old, backup oder test,
  • alles Gefundene aus dem öffentlichen Ordner verschieben oder löschen,
  • die Verzeichnisauflistung abschalten, falls sie eingeschaltet ist,
  • in den Serverprotokollen nachsehen, ob jemand diese Dateien heruntergeladen hat.

Der letzte Punkt ist wichtig. Hat jemand eine Kopie der Konfigurationsdatei heruntergeladen, reicht Löschen nicht. Das Datenbankpasswort muss geändert werden, weil es womöglich schon jemand notiert hat.

Enthielt die heruntergeladene Datei Kundendaten, haben Sie es mit einer Verletzung des Schutzes personenbezogener Daten zu tun. Nach Artikel 33 DSGVO müssen Sie diese dann binnen 72 Stunden, nachdem sie Ihnen bekannt wurde, der zuständigen Datenschutzaufsichtsbehörde melden, es sei denn, die Verletzung führt voraussichtlich nicht zu einem Risiko für die betroffenen Personen. Auch wenn Sie nicht melden, müssen Sie den Vorfall dokumentieren.

Wohin Backups gehören

Ein gutes Backup erfüllt ein paar einfache Bedingungen:

  • es liegt außerhalb des öffentlichen Website-Ordners, am besten auf einem ganz anderen Server oder in einem separaten Speicherdienst,
  • es läuft automatisch nach Zeitplan, nicht dann, wenn jemand daran denkt,
  • mehrere ältere Versionen werden aufbewahrt, weil eine Infektion oft erst Wochen später auffällt,
  • jemand hat die Website mindestens einmal daraus wiederhergestellt.

Vorsicht bei WordPress-Backup-Plugins. Manche speichern Archive standardmäßig im Website-Ordner, zum Beispiel irgendwo in wp-content, und schützen sie mit einer .htaccess-Datei. Dieser Schutz wirkt auf Apache- und LiteSpeed-Servern, ein nginx-Server liest die Datei aber überhaupt nicht. Am einfachsten stellen Sie das Plugin so ein, dass es Backups an einen anderen Ort schickt und keine lokale Kopie behält.

Systemadministratoren sprechen von der 3-2-1-Regel: drei Kopien Ihrer Daten, auf zwei verschiedenen Speicherarten, eine davon außer Haus. Für die Website eines kleinen Unternehmens reicht eine leichtere Variante: ein Backup vom Hoster plus eine Kopie, die automatisch an einen anderen Ort geht. Nur nie in einen Ordner, den jeder im Browser öffnen kann.

Wenn Sie demjenigen, der Ihre Website betreut, nur eine Frage stellen, dann diese: Wo liegen unsere Backups, und wer außer uns kann sie herunterladen?