Gewinnspielportal der Funke Mediengruppe entblößt über 85.000 Datensätze

Das Gewinnspielportal funke.fun der Funke Mediengruppe zeigte bereitwillig die Daten der Teilnehmer an. Ursache war eine schlampig umgesetzte Prämienaktion.

In Pocket speichern vorlesen Druckansicht 85 Kommentare lesen
Lesezeit: 7 Min.
Von
  • Jan Mahn
Inhaltsverzeichnis

Gewinnspiele sind schon seit Langem das Lieblingswerkzeug von Datensammlern. Für die Teilnahme und die Aussicht auf einen Gewinn zahlt man mit seinen Daten. Früher übermittelte man diese per Postkarte, heute gibt es Formulare im Internet. Und selbst wenn man einer werblichen Nutzung und sogar der Weitergabe an andere Werbetreibende zugestimmt hat, so erwartet man als Teilnehmer, dass die Daten halbwegs vertraulich verwahrt und nicht gleich jedem Internetnutzer preisgegeben werden.

Doch genau das tat unfreiwillig die zur Funke Mediengruppe gehörende Funke Digital GmbH, die unter der Adresse funke.fun ein Gewinnspielportal für ihre Fernseh- und Frauenmagazine wie Hörzu, TV Digital und Donna anbietet. Damit es nicht zu einfach ist, muss man zunächst ein kleines Browserspiel erfolgreich spielen, dann den eigenen Namen, eine Anschrift und eine Mailadresse hinterlassen. Die Angabe von Telefonnummer und Geburtsdatum ist freiwillig. Wenn man das Formular abschickt, landet man im Lostopf.

Zum Dank für die Datenspende darf man sich dann zusätzlich eine Prämie aussuchen – etwa ein Probeabo einer Zeitung oder eine Kreditkarte mit Startguthaben. Für die Abwicklung hat der Betreiber Funke ein Element des Dienstleisters Sovendus GmbH in die Danke-Seite eingebettet. Sovendus ist einer der großen Anbieter für die Prämien- und Gutscheinabwicklung, auch Heise Medien arbeitet mit ihm zusammen. Praktisch für den Teilnehmer: Das Formular, um die Prämie bei Sovendus zu bestellen, ist schon im Voraus ausgefüllt mit den Daten, die man zuvor für das Gewinnspiel hinterlegt hatte. Mit einem Klick kann man Gutschein oder Zeitungs-Abo bestellen.

Auch einer unserer Leser wollte hier gewinnen, spielte das Spiel und gab seine Daten ein. Doch die URL der Danke-Seite machte ihn stutzig – sie sah in etwa so aus:

https://www.funke.fun/gewinnspiele/hoerzu/danke-29/4444001

Interessant kam ihm die letzte Zahl vor – möglicherweise eine Identifikationsnummer, die für seine Teilnahme generiert wurde. Kurzerhand probierte er die vorangegangene Zahl im Browser aus und sah wieder das Prämienangebot und das vorausgefüllte Formular von Sovendus. Allerdings nicht mit seiner eigenen Adresse, sondern mit den Kontaktdaten einer ihm unbekannten Person. Besorgt wandte er sich an unsere Redaktion.

Wir konnten den Fehler nachstellen und den Verdacht bestätigen: Jeder Teilnehmer am Gewinnspiel bekommt eine ID in Form einer natürlichen Zahl zugewiesen, die in der Danke-Seite genutzt wird. Durch mehrmalige Teilnahme mit Testdaten konnten wir bestätigen, dass die IDs fortlaufend vergeben werden. Wir begannen, uns stichprobenartig einen Überblick von den Ausmaßen zu verschaffen und probierten kleinere Zahlen. Im Bereich zwischen 3.000.002 und 4.451.700 wurden wir fündig. Mit 100 zufällig ausgewählten Zahlen in diesem Bereich probierten wir, ob wirklich alle Zahlen vergeben waren. Bei jedem einzelnen Versuch fanden wir einen Datensatz. Demnach standen rechnerisch bis zu 1,45 Millionen Datensätze in der Datenbank, die von Dritten hätten abgerufen werden können. Innerhalb von 24 Stunden während unserer Recherche kamen über 20.000 neue Datensätze hinzu.

Ein solcher Datenfundus ist für kriminelle Adresshändler spannend, doch niemand will die Daten per Hand aus dem Formular pulen. Um zu beurteilen, wie kompliziert ein automatischer Export wäre, reichte ein kurzer Blick in den Quelltext der Seite. Am Ende des HTML-Dokuments, das der Funke-Server auslieferte, lagen die Daten in einem JavaScript-Block als Datenobjekt:

window.sovConsumer = {
consumerSalutation : 'Mr.',
consumerFirstName : 'Max',
consumerLastName : 'Muster',
consumerEmail  : 'm@example.org',
consumerStreet : street[1],
consumerStreetNumber : street[2],
consumerCountry : '',
consumerZipcode : '12345',
consumerCity : 'Muster',
consumerPhone : '0512345678',
consumerYearOfBirth : '1901'
}; 

Aus der Straße werden unerwünschte Zeichen vorab entfernt, vom Geburtsdatum wird nur das Jahr übertragen. Aus diesem Datenobjekt kopiert JavaScript-Code die Werte in das Prämienformular von Sovendus. Ein kleines Skript, das die Adresse nacheinander für die 1,45 Millionen existierenden IDs aufruft, diesen immer gleich formatierten JavaScript-Block ausliest und die Daten in eine Tabelle kopiert, wäre schnell programmiert. Für Spammer und dubiose Händler wäre das angesichts der schieren Anzahl an Datensätzen ein Hauptgewinn. Der Blick in den Code zeigte auch, auf wessen Seite das Problem lag: Verantwortlich für das Leck war Funke, nicht der Dienstleister Sovendus.

Zum Dank für die Daten gibt es eine Prämie – durch eine Panne bei der Umsetzung waren auf diesem Weg die Daten zehntausender Gewinnspielteilnehmer öffentlich einsehbar.

Über unsere Untersuchungen informierten wir den im Impressum angegebenen Datenschutzbeauftragten der Funke Mediengruppe und stellten Fragen zum weiteren Vorgehen. Noch am selben Tag konnten wir beobachten, dass die Zugriffe auf die URLs nicht mehr funktionierten. Per E-Mail bestätigte eine Sprecherin des Unternehmens wenig später unsere Beobachtungen: "Mit großer Bestürzung und Bedauern mussten wir feststellen, dass bei einem Gewinnspiel auf unserer Seite funke.fun tatsächlich eine fehlerhafte Programmierung vorgelegen hat."

Die betroffenen 1,45 Millionen Datensätze schaute sich Funke genauer an und filterte mehrfache Teilnahmen heraus. Übrig blieben 85.664 unterschiedliche Teilnehmer, weil, so Funke, in der Adventszeit viele Spieler im Rahmen eines Adventskalenders täglich teilnahmen und ihre Daten immer wieder neu eintippten – im Schnitt 15 Teilnahmen pro Person, was bei einem Adventskalender plausibel klingt. Etwa 1200 Einträge wurden Spam-Bots zugeordnet. Nach Auskunft von Funke wurden die Teilnehmerdaten immer nach vier Wochen gelöscht.

Funke selbst stuft den Fall als meldepflichtigen Datenschutzverstoß im Sinne der DSGVO ein und erklärte, bereits die zuständige Berliner Landesdatenschutzbeauftragte informiert zu haben und in engem Austausch mit der Behörde zu stehen. Die betroffenen 85.664 Teilnehmer sollen über den Fall informiert werden.

Mehr Infos

Viele c’t-Investigativ-Recherchen sind nur möglich dank anonymer Informationen von Hinweisgebern.

Wenn Sie Kenntnis von einem Missstand haben, von dem die Öffentlichkeit erfahren sollte, können Sie uns Hinweise und Material zukommen lassen. Nutzen Sie dafür bitte unseren anonymen und sicheren Briefkasten.

https://heise.de/investigativ

Auch unsere weiteren Fragen zur IT-Sicherheit beantwortete das Unternehmen sehr ausführlich. So habe man das Security-Unternehmen Northwave beauftragt zu untersuchen, ob Daten über den Weg massenhaft abgegriffen wurden. "Nach eingehender Analyse und intensiver Recherche ist davon auszugehen, dass (außer dem Hinweisgeber, den beteiligten Redakteuren der c’t sowie den an der Aufklärung beteiligten Mitarbeiterinnen und Mitarbeitern unseres Hauses) niemand von dem Programmierfehler Kenntnis erlangt hat und keine Daten in die Hände Dritter gelangt sind“, so die Unternehmenssprecherin. Außerdem habe man einen Penetration Test in Auftrag gegeben, und zukünftig soll ein Vier- oder Sechs-Augen-Prinzip bei Änderungen am Code zum Einsatz kommen.

Der Fehler, den die Entwickler des Gewinnspielportals eingebaut hatten, gehört zu den häufigsten Problemen im Web. Zuletzt deckten wir Ende 2020 auf, dass der Navigationsgerätehersteller TomTom eine natürliche Zahl als ID verwendete. Auf dessen Website konnte man durch Hoch- und Runterzählen einer Zahl in der URL Rechnungen anderer Kunden einsehen. Im Oktober 2017 berichteten wir über einen ähnlichen Fehler im Ticketshop der Elbphilharmonie. Eingeloggte Kunden konnten durch Verändern der URL fremde Tickets anzeigen und ausdrucken.

Das Problem war in allen Fällen leicht vermeidbar: Als Entwickler sollte man verinnerlichen, dass solche IDs nicht berechenbar sein dürfen. Natürliche Zahlen fallen deshalb raus. Stattdessen kann man zum Beispiel einen String aus dem Namen, der Adresse und dem aktuellen Zeitstempel zusammensetzen und mit einer Hash-Funktion zu einem einmaligen und nicht zu erratenden Hash verarbeiten. Alternativ bietet sich eine Funktion zum Generieren sogenannter Universally Unique Identifier (UUID) an, ein gängiges Format für IDs. Die sind ebenfalls eindeutig und nicht zu erraten. Muss man in einer Anwendung zwingend auf fortlaufende IDs setzen, braucht man eine ausgereifte Berechtigungsprüfung (Authentifizierung), zum Beispiel über einen Cookie.

c’t Ausgabe 6/2021

In c’t 6/2021 möchten wir Ihnen den Einstieg ins Smart Home erleichtern: Wir liefern Praxistipps und Kaufberatung für mehr Sicherheit, Komfort und Effizienz im intelligenten Zuhause. Wer seine Finanzen im Griff haben und dafür Homebanking nutzen möchte, sollte Ausgabe 6 zu Rate ziehen: Darin haben wir sechs Programme fürs Homebanking getestet und dabei besonders auf den Datenschutz geschaut. Außerdem zeigen wir, wie Sie im Homeoffice Ihre persönlichen Telefonate und Daten sauber von den beruflichen trennen können. Wir testen GPS-Tracker für E-Bikes, kompakte Dokumentenscanner für mehr Ordnung im Büro und das erste E-Auto mit Android. Die Schul-Cloud des Hasso-Plattner-Instituts (HPI) offenbarte kürzlich ein gewaltiges Sicherheitsleck. Zum Glück wurde das Loch der Plattform nach unseren Hinweisen geschlossen. Dies und noch viel mehr lesen Sie in Ausgabe 6/2021, die ab dem 26. Februar im Heise-Shop und am gut sortierten Zeitschriftenkiosk erhältlich ist.

(jam)