Zum hauptinhalt springen

No You Medican't

zu viele Teststäbchen in einer Nase

Spielt denselben Song nochmal! Neeeeeeein! Wir haben mittlerweile das vierte Testzentrums-Datenleck in drei Monaten gefunden und sind einfach nur noch genervt. Diesmal geht es um das Unternehmen Medican, gegen das die Staatsanwaltschaft wegen falsch gemeldeter Testzahlen ermittelt.


In den letzten Monaten sind immer wieder Corona-Testzentren in den Schlagzeilen aufgetaucht, weil dort Sicherheitslücken gefunden wurden.
Dieses Mal war es andersrum: Medican hat mehr als 50 Teststationen in ganz Deutschland betrieben – bis NDR, WDR und Süddeutsche Zeitung dann mal mit versteckter Kamera nachgezählt haben, ob sich wirklich so viele Menschen haben testen lassen, wie das Unternehmen angegeben hat.
Die Antwort: Nein. Tatsächlich wurden teilweise mehr als 10 Mal so viele Tests abgerechnet wie Menschen dort waren.

Als wir davon hörten, wurde auch unser Interesse geweckt und wir haben uns dort mal registriert – und mussten feststellen, dass Medican offenbar nicht nur sehr locker mit der Zählung ihrer Getesteten umgegangen ist, sondern auch mit deren Daten.

Anmeldung mit doppeltem Durchschlag

Wir wollen uns also testen lassen. Nachdem man auf der Seite mit der höchst seriösen URL coronatest-eu.com einen Standort ausgewählt hat, wird man auf medicanst.com weitergeleitet.

Screenshot der Voranmeldung zum Test

Schritt 1: Persönlichen Daten (inklusive Ausweisnummer) angeben.
Schritt 2: DS-GVO lesen und bestätigen, dass man sie gelesen hat und akzeptiert.1
Schritt 3: Quarantäneverordnung NRW akzeptieren (obwohl wir garnicht in NRW sind?)

Abfrage ob man die DSGVO gelesen und akzeptiert hat (mit kaputter Grammatik) und der Quarantäneverordnung von NRW zustimmt

Dann wird man diverse Male weitergeleitet und landet schließlich auf einer Seite, auf der man seine Ausweisnummer nochmals eingeben soll. Danach bekommt man seine Daten, ggf. bisherige Testergebnisse sowie einen QR-Code angezeigt, den man dann beim Check-In in der Teststation vorzeigen soll.

Es gibt keinen passwortbasierten Login zum System, sondern man kann sein eigenes Profil immer wieder über diesen Link aufrufen. Die Adresse zum Profil enthält zur Identifizierung einen 7-stelligen Code aus Großbuchstaben und Ziffern.
Wir fühlen uns zuerst an unsere letzte Testzentrums-Geschichte erinnert. Allerdings gibt es hier erst mal Entwarnung, denn um ein weiteres mal auf die Daten zuzugreifen, muss man seine Ausweisnummer als eine Art Zugangsprüfung angeben.

Profilnummer rein, PDF raus

Eine weitere Funktion der Profilseite ist es, ein PDF mit den eigenen Daten und dem QR-Code zu erzeugen, um es dann im Testzentrum schnell vorzeigen zu können. Wollen wir unser PDF herunterladen und klicken den entsprechenden Button, werden wir auf folgende URL weitergeleitet: https://medicanst.com/customer/ticket/pdf/{CODE}. Und hier entdecken wir den vorher erwähnten 7-stelligen Code wieder. Mit dem Unterschied, dass wir auf dieses PDF auch zugreifen können, ohne erneut die Ausweisnummer angeben zu müssen. Dieser Zugriff funktioniert auch von einem anderen Gerät – der 7-stelligen Code reicht also aus, um auf die richtige URL schließen zu können und dort das PDF zu bekommen.

Screenshot des PDF

Darin stehen eine Menge Daten:

  • Vorname
  • Nachname
  • Geburtsdatum
  • E-Mail-Adresse und
  • Registrierungsdatum

Damit können wir jetzt die PDF-Nummern durchprobieren. Da nur Großbuchstaben und Zahlen verwendet und anscheinend sogar nach einem bestimmten Schema zusammengesetzt werden, ist die Anzahl der möglichen Codes relativ begrenzt. Geht man von Buchstaben von A bis Z und zehn möglichen Ziffern aus, kommt man bei einem 7-stelligen Code auf mehr als 78 Milliarden Zeichen.

Das klingt zwar viel, lässt sich aber durchaus automatisiert durchprobieren. Bei ein paar unserer Testregistrierungen hatten viele Codes die gleichen ersten Stellen. Wenn wir nur die letzten beiden Stellen durchprobierten, hatten wir eine Erfolgschance von 1%.

Aber Moment: So kompliziert müssen wir es uns gar nicht machen – wir haben noch eine einfachere Möglichkeit gefunden, an die Codes heranzukommen.

Sag mir, wann du dich registriert hast und ich sage dir, wie du heißt

In dem PDF fiel uns auch ein Eintrag namens “Test-ID” auf: Eine zehnstellige Nummer, die immer mit 162 beginnt. Als wir etwas genauer draufschauten, entdeckten wir, dass diese Nummer bereits im Registrierungsforumlar in einem versteckten Feld namens “hash” vom Server festgelegt wurde. Mehrere Aufrufe des Registrierungsformulars ergaben langsam aufsteigende “hash”-Werte. Nach etwas Nachdenken stellten wir fest, dass es sich hierbei um den Unix-Timestamp handelt.

Unix-Timestamps sind ein Weg, einen Zeitpunkt zu kodieren. Dabei werden einfach die Sekunden seit dem 01.01.1970 00:00 Uhr UTC kontinuierlich hochgezählt. Für Dienstag, den 8.6.2021 um 8:00 Uhr morgens wäre das dann beispielsweise die Zahl 1623132000.

Der “hash”-Wert des Registrierungsformulars enthält also einen so kodierten Zeitpunkt, je nachdem, wann man das Formular aufgerufen hat.

Ein Blick in unsere Browser-History zeigt uns, dass wir nach der Registrierung einmal kurz über die URL https://medicanst.com/customer/appointment?success=1&hash={HASH} weitergeleitet wurden, in der ausschließlich dieser zehnstellige Unix-Timestamp enthalten ist.
Der spannende Punkt: In der Antwort auf diese Anfrage steht der siebenstellige Code, mit dem wir auch unser PDF abrufen können.

Meme-Template: Trade Offer; I receive: unix timestamp - you receive: siebenstelliger code

Also haben wir mal probiert, dort nicht unseren Registrierungszeitpunkt anzugeben, sondern den Zeitpunkt ein paar Sekunden zuvor. Und tatsächlich hatten wir schon nach drei Versuchen einen Treffer – und bekamen für unsere Timestamp-Eingabe den siebenstelligen Code einer anderen Person zurück. Diesen mussten wir nur noch in die bekannte URL https://medicanst.com/customer/ticket/pdf/{CODE} einbauen und konnten so das PDF einer fremden Person ohne Probleme abrufen.

Das geht natürlich auch automatisiert, und in kurzen Stichproben waren mehr als 15% der Versuche erfolgreich.

Und jetzt?

Wie viele Menschen betroffen sind, wissen wir dieses Mal nicht, da wir aus unseren Stichproben keine Rückschlüsse auf die Gesamtmenge ziehen können.

Schon während unserer Tests war die Registrierungsseite mal für ein paar Stunden offline, vermutlich wegen einer Hausdurchsuchung. Das war ausgerechnet, als wir uns selber testen lassen wollten. Ein bisschen hatten wir die Hoffnung, dass unsere Versuche bemerkt und das System abgesichert wurde.

Nachdem die Seite aber recht bald wieder unverändert online ging, haben wir uns mal wieder an Berichte gesetzt, um alle Lücken fein säuberlich zu dokumentieren und an die zuständigen staatlichen Stellen, also das CERT-Bund beim BSI und die Landesbeauftragte für Datenschutz und Informationsfreiheit des Landes Nordrhein-Westfalen zu schicken.

Und jetzt kommt etwas Ungewöhnliches: Eigentlich veröffentlichen wir Sicherheitslücken erst, wenn der Hersteller sie behoben hat oder zumindest genügend Zeit dazu hatte. Zwar hatte Medican inzwischen eine Woche Zeit, die Lücken zu schließen, wir haben aber bisher gar keine Rückmeldung erhalten.

Allerdings hat Medican inzwischen fast alle Testzentren geschlossen (auf der Website findet sich nur noch eins) und die Buchungsseite liefert seit einigen Tagen nur noch eine leere Seite. Nachdem es jetzt sogar Festnahmen bei diesem Unternehmen gab, gehen wir nicht davon aus, dass die Buchungsseite nochmal online geht.

Daher halten wir es für vertretbar, diesen Beitrag zu veröffentlichen.

Fazit

Diese Lücken reihen sich in eine viel, viel (!) zu lange Liste von Testzentren mit mangelnder IT-Sicherheit und mangeldem Datenschutz ein.

Wir finden es absolut unglaublich, dass selbst Firmen mit mehr als 50 Teststationen ganz offensichtlich kein ausreichendes Interesse an Datensicherheit haben. Wir haben ja mittlerweile gesehen, dass es für die Betreibenden dabei auch um enorme Mengen Geld geht. Das verleitet sicherlich dazu, mal eben schnell irgendwelche Testbuden und dazugehörige Software hinzurotzen – für alle Betroffenen hat das aber weitreichende Konsequenzen. Für sie geht es darum, dass ihre persönlichen Daten offen einsehbar im Internet stehen!

Meme-Template: That's On Me, I Set the Bar Too Low; I'm a zerforschi - Okay, then name 4 zerforschungen - Corona-Testzentren? - That's on me, I set the bar too low.

Wir fühlen uns langsam echt wie eine kaputte Schallplatte:

Immer und immer wieder finden wir schwerwiegende Sicherheitslücken bei Testzentren, die uns den Zugriff auf große Mengen fremder Daten erlauben.
Das darf einfach nicht mehr passieren.
Es braucht Tests zur Pandemiebekämpfung und diese müssen sicher möglich sein.

Meme-Template: I Am Once Again Asking for Your Financial Support; I am once again asking you to prüf your IT-Sicherheit before accepting Kunden.

Und so gilt, wie schon bei Flink, Testzentren mit Software von medicus, Dive, Testzentren mit Software von Eventus, Gorillas und Testzentren mit Software von Deckert: Wenn das Produkt marktreif genug ist, um Kund*innendaten zu speichern, muss es auch reif genug sein, diese für sich zu behalten. Verdammt nochmal! 😡


Der Landesbeauftragte für Datenschutz und Informationsfreiheit Baden-Württemberg hat eine Liste veröffentlicht, was Testzentren-Betreibende beachten müssen. Darin wird auch gefordert:

Die Systeme sollten zudem im Rahmen professioneller Sicherheits-Audits geprüft werden.

Dies passiert offensichtlich bei vielen Anbietern nicht, denn solche Fehler würden innerhalb kürzester Zeit gefunden werden.


Wenn ihr zerforschung unterstützen wollt, findet ihr hier Möglichkeiten: https://zerforschung.org/unterstuetzen/

  1. Bei einem Klick auf den Link zur Datenschutz-Grundverordnung passiert übrigens nichts. ↩︎