c't deckt auf: Datenleck bei großer SEO-Agentur

Backups sind wichtig, am besten auf einem externen Server. Doch nicht jeder schützt seine Backups ausreichend, wie der Fall des Unternehmens "SEO-Küche" zeigt.

Lesezeit: 8 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 80 Beiträge

(Bild: Mikhail Starodubov / Shutterstock.com)

Von
  • Jan Mahn

Das Unternehmen SEO-Küche, eine Agentur für Suchmaschinenoptimierung, Webshops und Webdesign, habe beim Datenschutz einiges anbrennen lassen – das berichtete uns ein Hinweisgeber, der auf eine verdächtige Datei gestoßen war: 7,4 GByte groß, mit dem Namen backup.sql. Er selbst habe sie bereits heruntergeladen und im Texteditor einen Blick hineingeworfen. Weil er personenbezogene Daten im Datensalat erhaschen konnte, wandte er sich an unsere Redaktion.

Auch wir konnten die Datei herunterladen. Sie lag auf der obersten Ebene auf einem Webserver, der zur SEO-Küche gehört. Keine Kennwortabfrage hinderte uns am Download, und bei der Datei handelte es sich um eine Datensicherung einer MySQL-Datenbank, wie sie das Kommandozeilenprogramm mysqldump erzeugt. Ein solches Backup enthält sehr viele SQL-Anweisungen zum Bauen und Befüllen von Tabellen, mit denen man die Datenbank identisch wiederherstellen kann. Wer einen MySQL- oder MariaDB-Server betreibt, ist gut beraten, ein solches Backup regelmäßig mit einem automatisch ausgeführten Skript zu erzeugen und an einen sicheren Ort zu legen. Gibt der Datenbankserver den Löffel ab, kann man mit dieser Sicherung schnell einen neuen Server einrichten.

Weil die SEO-Küche auch Social-Media-Accounts für ihre Kunden betreut, lagen unzählige Zugangsdaten für Facebook und Google in der geleakten Datenbank.

Um die Inhalte und die Tragweite des Problems beurteilen zu können, taten wir ebendies und fütterten einen frisch im Docker-Container gestarteten MySQL-Server mit der Backup-Datei. Mit der grafischen Oberfläche MySQL Workbench konnten wir uns einen Überblick über die Daten verschaffen. Und die hatten es durchaus in sich.

Über 200 Mitarbeiter hatte das Unternehmen in der Datenbank verwaltet – mehr als 100 davon waren dort noch beschäftigt, die anderen hatten das Unternehmen laut Datensätzen verlassen. Für jeden Mitarbeiter waren private Anschrift, Kontaktdaten und Wochenarbeitsstunden hinterlegt. In der Datenbank fanden außerdem die Urlaubsplanung sowie die Zeiterfassung statt. Offenbar wurde online ein- und ausgestempelt und neben der Uhrzeit wurden auch die IP-Adressen beim Nutzen der Zeiterfassung protokolliert. Auch Fehltage landeten im System. Zusätzlich zu den Mitarbeitern waren noch über 200 Medienberater damit beschäftigt, Kunden für das Unternehmen zu akquirieren.

Auch die Kunden wurden hier fein säuberlich verwaltet – vom ersten Gespräch bis zur Rechnungsstellung enthielt die Datenbank alles, was im Laufe einer Kundenbeziehung angefallen ist. Insgesamt lagen 5118 Adressdatensätze in der Datenbank.

Die offenkundig verhängnisvollste Entscheidung war es, die Datenbank auch zur Verwaltung von Kennwörtern für Kundenprojekte zu nutzen. Und solche fallen in einer SEO- und Web-Agentur, die sich auch um Social-Media-Marketing kümmert, zahlreich an: Google-Accounts, Facebook-Konten und Zugänge für die Kundenportale von Webhostern. Außerdem Datenbankkennwörter, FTP-, WordPress- und Joomla-Zugänge von Kundenseiten. Insgesamt fanden wir 6225 Zeilen in der Tabelle mit den Zugangsdaten, jeweils den passenden Kundenprojekten zugeordnet.

Eine interne Webanwendung für die Agenturmitarbeiter, die zu einem Kunden alle Informationen inklusive der Zugänge im Klartext darstellen kann, war sicher im Alltag praktisch und sparte Zeit, führte so aber zum größten anzunehmenden Unfall. Hätte ein übel gesinnter Finder die Datenbanksicherung aufgespürt und die Kennworttabelle geöffnet, hätte er damit auf Hunderten Websites und Social-Media-Kanälen Schaden anrichten können.

Problematisch aus Datenschutzperspektive war, abgesehen von Adressdaten und persönlichen Informationen der Mitarbeiter, eine Tabelle mit Logfiles von Kundenservern, die hier zusammengetragen wurden. Der zentrale Datenbankserver sammelte offenbar Logs von anderen Servern ein und bewahrte sie für Analysen auf – für eine SEO-Agentur ein verständliches Vorgehen. Rund 1,8 Millionen Zeilen Webserver-Logs landeten so in der Datenbank. Protokolliert wurden Uhrzeit, IP-Adresse und Browser-Informationen von Webseitenbesuchern, zurück bis ins Jahr 2014. So lange sollte niemand Logfiles seiner Webserver aufbewahren.

Mit diesen Beobachtungen informierten wir das Unternehmen und bekamen schnell eine umfangreiche Antwort. Demnach stufte man den Fall als meldepflichtig im Sinne der DSGVO ein. Der Datenschutzbeauftragte des Unternehmens habe bereits eine Meldung für die zuständige Datenschutzbehörde erstellt und sei mit dieser im Kontakt. Auch die Kunden seien per Mail über den Fall informiert worden. Das interne Forensik-Team arbeite den Fall gerade auf und bemühe sich, solche Probleme in Zukunft zu vermeiden.

Das Problem selbst, nämlich die ungeschützte SQL-Datei, war schnell zu beseitigen, die Folgen leider nicht. Weil die Kundenpasswörter im Klartext abrufbar waren, mussten sie alle geändert werden – dass das passiert war, bestätigte uns das Unternehmen ebenfalls. Bei bis zu 6000 Einträgen eine unangenehme Fleißarbeit. Wer schon mal ein einzelnes Kennwort bei Google oder Facebook geändert hat, kann sich das Ausmaß vorstellen. Bei der Gelegenheit kommen gerade die großen Dienste gerne auf die Idee, noch mal drei neue Sicherheitsfragen vom Nutzer abzufragen und die Handynummer zu verifizieren.

Mehr von c't Magazin Mehr von c't Magazin

Ein ungeschütztes Backup, das zum Datenschutz-Gau führt, ist kein Einzelfall und kein neues Problem. Anfang 2020 berichteten wir über den bis dahin größten Verlust von Daten in Deutschland: Der Autovermieter Buchbinder hatte seine Kundendatenbank mit über 3 Millionen Mietkunden in ein Backup kopiert und dieses auf ein ungesichertes SMB-Netzlaufwerk gelegt. Damals handelte es sich um eine Microsoft-SQL-Server-Sicherung. Dort hatte es ein Tippgeber gefunden und unsere Redaktion kontaktiert. Anfang 2021 erhielten wir einen weiteren Hinweis, wieder ging es um ein SMB-Laufwerk ohne Zugriffsschutz. In den zig Terabyte Daten fanden wir die komplette Sicherung von Warenwirtschaftssystemen einer Supermarktkette aus der Ukraine und informierten den Betreiber.

Ob MySQL- oder Microsoft-SQL-Server, die Idee hinter solchen Backups ist immer ähnlich und bis zu einem bestimmten Punkt durchaus richtig: Der zu sichernde Server bekommt den Auftrag, nachts eine Backup-Datei zu verpacken. Entweder legt er sie per SMB auf einen externen Server oder veröffentlicht sie per HTTP auf einem Webserver, wo sie ein anderer Server regelmäßig abrufen kann.

Ursache des Problems ist oft die fatale Annahme, dass Adressen im Internet "geheim" sind, solange man sie niemandem verrät. Dabei sind Funde durch systematische Portscans oder Zufallsfunde keineswegs ausgeschlossen, wie diese Beispiele zeigen. Das Internet wird regelmäßig systematisch nach solchen Konfigurationsfehlern abgesucht und indiziert – nicht nur von wohlmeinenden Sicherheitsforschern. Eine Suche nach dem Suchbegriff "backup.sql" bei einschlägigen Spezialsuchmaschinen lieferte in unserem Test zahlreiche Treffer mit Datenbanksicherungen.

Eigene Datenbanken regelmäßig zu sichern ist eine sehr gute Idee. Auch die Idee, dass ein externer Server die bereitgestellten Daten regelmäßig herunterlädt und außer Haus lagert, ist angesichts von Ransomware sehr sinnvoll, weil ein Verschlüsselungsangriff so nicht so leicht auf das externe Backup übergreifen kann.

Wenn Sie sich für die Strategie entscheiden, die Sicherung für einen externen Server zum Download bereitzustellen, dürfen Sie sich aber keinesfalls auf die Anonymität des Internets verlassen. Ein HTTP-Verzeichnis mit der Backup-Datei sollten Sie mindestens per Kennwortanmeldung (Basic authentication) schützen und unbedingt transportverschlüsselt mit HTTPS bereitstellen. Noch besser ist es, die gesicherte Datei vor dem Upload zusätzlich verschlüsseln zu lassen (etwa mit AES-256). Sollte es einem Angreifer dann gelingen, die Zugriffsbeschränkungen des Webservers zu umgehen (weil die Serversoftware zum Beispiel eine Sicherheitslücke hatte), kann der die Datei zwar laden, steht dann aber vor einem weit größeren Problem und muss sich mit einer bis heute ungebrochenen Verschlüsselung auseinandersetzen.

Eine weitere Erkenntnis, die dieser Fall mitbringt, betrifft die Kennwortdatenbank. Weil die Zugangsdaten aller Kunden-Accounts im Klartext herumlagen, war der Verlust besonders unangenehm. Die Aufgabe, auf einen Schlag bis zu 6000 Kennwörter auf Websites und bei Google und Facebook zu ändern, nachdem die Datenbank abhandengekommen ist, sollte man sich unter allen Umständen ersparen. Kennwörter gehören unter keinen Umständen im Klartext in Datenbanken (und auch nicht in Excel-Tabellen auf Netzlaufwerken). Besser sind Kennwortmanager, die die Daten verschlüsselt ablegen und nur zum Anzeigen kurz entschlüsseln. Wer die Accounts von Kunden verwaltet, ist außerdem gut beraten, wo es nur geht, auf zweite Faktoren, am besten in physischer Form (zum Beispiel mit FIDO2-Sticks), zu setzen. Das erspart nicht nur bei Datenlecks viele peinliche Erklärungen, sondern ist auch hilfreich, wenn ein Mitarbeiter das Unternehmen verlässt und viele Kennwörter gekannt hat.

Neben der Verwaltung von Mitarbeiterdaten diente die Datenbank auch zum Speichern von Zugangsdaten zu Websites der Kunden. In einer Web- und SEO-Agentur fallen diese zahlreich an.
c’t Ausgabe 7/2021

Notebooks sind ideal zum Arbeiten, Surfen oder auch fürs Gaming. Unser Ratgeber in c’t 7/2021 hilft Ihnen bei der Auswahl eines passenden Geräts. Wenn Sie Ihren PC lieber selbst zusammenstellen und tunen, sollten Sie unseren Test von guten, aber günstigen CPU-Kühlern lesen. c't hat aufgedeckt, dass eine große SEO-Agentur unfreiwillig Firmengeheimnisse und Kunden-Zugangsdaten veröffentlichte. Außerdem erklären wir, wie Verschlüsselung heute funktioniert und geben Tipps, wie Sie gefälschte AirPods Pro reklamieren können. Dies und noch viel mehr lesen Sie in Ausgabe 7/2021, die ab dem 12. März im Heise-Shop und am gut sortierten Zeitschriftenkiosk erhältlich ist.

(jam)