c't 6/2021
S. 12
Aktuell
Datenlecks in der Schulcloud

Schul-Hintertüren

Datenlecks in der HPI Schul-Cloud

In der HPI Schul-Cloud leckte es gewaltig. Externe hätten über einen Demo-Account auf das System zugreifen können und ein ungesicherter Endpunkt verriet vertrauliche Links zu Dateien von Lehrern und Schülern – von Aufgaben­blättern bis Videos. Nach ­unserem Hinweis reagierte man schnell und stellte die ­Probleme ab.

Von Jan Mahn

Lernplattformen für Schulen gehören zu den IT-Umgebungen, die seit der Pandemie im Mittelpunkt des öffentlichen Interesses stehen. Einige Bundesländer bieten ihren Schulen die HPI Schul-­Cloud an, die das Hasso-Plattner-Institut (HPI) seit 2016 als Open-Source-Software entwickelt. Neben einer Instanz, die das HPI selbst betreibt, gibt es eigene Instanzen in Brandenburg, Niedersachsen und Thüringen. Die Schulen nutzen die Plattform teils, weil sie noch keine eigenen Lösungen im Einsatz haben, teils als dauerhafte Lösung. Über die HPI Schul-Cloud werden Videokonferenzen geführt sowie Aufgaben gestellt und bearbeitet.

An der Thüringer Schulcloud konnten sich nicht nur Lehrer und Schüler ­anmelden. Über einen vergessenen Demo-Account hätte jeder Zugriff ­bekommen können.

Im Februar bekamen wir von einem Hinweisgeber die Information, er habe sich die Schul-Cloud mal genauer angesehen und sei auf diverse Sicherheitsprobleme gestoßen. Ausgangspunkt seiner Recherche waren die GitHub-Repositories, in denen die HPI Schul-Cloud quelloffen entwickelt wird. Zunächst suchte er nach etwaigen Demo-Zugangsdaten und wurde in einer Konfigurationsdatei fündig. Mit dem Benutzernamen schueler@schul-cloud.org konnte er sich schließlich bei der Thüringer Instanz anmelden. Weil die Thüringer eigentlich eine Single-Sign-on-­Lösung nutzen, musste er allerdings einen kleinen Umweg nehmen, die Anmeldeseite direkt öffnen und die gefundenen Zugangsdaten dort eintippen. Erst mit einem Klick auf die Zurück-Taste des Browsers fand er sich aber als angemeldeter Demo-Nutzer in der HPI Schul-Cloud wieder. An anderen Instanzen klappte dieser Weg über die Hintertür nicht.

Im JavaScript-Code im GitHub-Repository wurde unser Hinweisgeber auf den Endpunkt /teachersOfSchool aufmerksam, der in Thüringen eine Liste mit Hunderten von Lehrern aus dem gesamten Bundesland als JSON-Objekt anzeigte, darin Name, Vorname und eine ID. Über einen Parameter in der Suche konnte man auch auf Schulen filtern.

Serverstatistiken

Als noch freizügiger stellte sich der Endpunkt //metrics heraus – wohlgemerkt mit zwei Schrägstrichen am Anfang. Um diesen im Browser zu öffnen, musste man nicht einmal angemeldet sein, sodass wir ihn nicht nur in Thüringen, sondern auch in der Instanz des HPI ausprobieren konnten. Angezeigt wurden Messwerte aus dem Innenleben des Servers, unter anderem Auslastung von Prozessoren und Arbeitsspeicher.

Für Angreifer, die eine Denial-of-­Service-Attacke (DoS) planen, den Server also so weit auslasten wollen, dass er unbenutzbar wird, sind solche Messwerte ein Geschenk. Über diese Informationen können sie gezielt ausmessen, welche Aktionen die Last nach oben treiben und ihre Angriffe in der Effizienz steigern. Anfang 2021 waren die Schulclouds immer wieder DoS-Attacken ausgesetzt, die die Server in die Knie zwangen.

Noch verhängnisvoller waren die weiteren Informationen, die der Endpunkt anbot. Am Ende des Dokuments fanden sich Auszüge aus Logs mit aufgerufenen URLs. Dabei bemühte sich das System, IDs unkenntlich zu machen, scheiterte aber an einer entscheidenden Stelle: Im Log lagen zahlreiche Einträge nach dem Schema „/link/aBc123Defg“. Die Folge war ein ernst zu nehmendes Datenleck. Über solche Links stellen Nutzer anderen Dateien zur Verfügung – wer den Link kennt, darf die Datei lesen. Der Demo-Schüler, dessen Daten ja öffentlich zugänglich waren, reichte also aus, und die eigentlich geheimen Links präsentierte der Endpunkt auf dem Silbertablett.

Persönliches im Netz

Was wir bei Stichproben über diese Links fanden, war sehr vielfältig. Darunter handschriftlich bewertete Tests und Übungsblätter, teils mit Namen und Noten. Noch schlimmer Klassen- und Lehrerlisten, auch mit Kontaktdaten. Abgerundet wurde die Liste der Fundstücke durch diverse Videos: Schüler, die im heimischen Wohnzimmer Gedichte vortrugen und ihre Klasse grüßten, tanzende Schülerinnen in einem Video zur Verabschiedung ihrer Lehrerin und ganze Bildschirmaufzeichnungen von virtuellen Unterrichtsstunden.

Aufzeichnungen von digitalen Unterrichtsstunden aus Thüringen – inklusive ­Klassenliste und Chat der Schüler – waren nicht für die Öffentlichkeit bestimmt. Durch einen Konfigurationsfehler war der Link zum Video öffentlich einsehbar.

All diese Beobachtungen dokumentierten wir und suchten im öffentlich zugänglichen Code nach Erklärungen und ähnlich gelagerten Problemen. Dass der Demo-Nutzer in Thüringen aktiv war, kann man als klassischen Konfigurationsfehler der Thüringer Betreiber einstufen. Der Endpunkt dagegen, der alle Lehrer als JSON-Daten exponierte, war offenbar bewusst eingebaut. Das Frontend, das diesen Endpunkt anbot, bezog die Daten über ein API im Hintergrund und gab sie im JSON-­Format an den Browser weiter. Zur Sicherheit prüften wir weitere API-Endpunkte, konnten aber zum Beispiel mit dem Demo-Account nicht alle Schüler­namen herunterladen. Das Rechtesystem war also intakt, nur an dieser Stelle sehr locker konfiguriert.

Der Endpunkt //metrics schließlich, der versehentlich die Links exponierte und so zum größten Datenleck führte, war eine Mischung aus Programmier- und Konfigurationsfehler. In Thüringen und beim HPI selbst trat er auf, in Niedersachsen zum Beispiel nicht.

Mit all diesen Beobachtungen kontaktierten wir das HPI und die Betreiber der Thüringer Instanz sowie die im jeweiligen Impressum angegebenen Datenschutz­beauftragten.

Mustergültige Antwort

Die Reaktion auf unsere Information könnte man als Musterlösung für Datenschutzbeauftragte veröffentlichen. In unter einer Stunde bekamen wir eine erste Empfangsbestätigung, nach unter 25 Stunden eine mehr als ausführliche Stellungnahme vom Presse- und Öffentlichkeitsteam der HPI Schul-Cloud , die ganz offensichtlich in Zusammenarbeit mit mehreren Verantwortlichen verfasst wurde. Darin wurden alle technischen und datenschutzrechtlichen Fragen fundiert beantwortet.

Laut Antwortschreiben hätte der Demo-­Nutzer in Thüringen nicht aktiv sein sollen – normalerweise werde er auf Produktivinstanzen deaktiviert, was jedoch versäumt wurde. Das Problem konnte man erwartungsgemäß schnell lösen. Auch der Endpunkt //metrics war nicht für die Öffentlichkeit bestimmt, sondern wie angenommen für interne Analysen. Der eingesetzte Filter, der den Zugriff eigentlich verhindern sollte, funktionierte nur, wenn man die Adresse über /metrics aufrief, bei //metrics versagte er. Dass dadurch die Links mit den Schüler- und Lehrerdateien exponiert wurden, war ein schwerer Folgefehler. Alle bisher ausgestellten Links wurden zur Sicherheit gelöscht.

Der Endpunkt, der die Lehrernamen des Bundeslandes auflistete, wurde ebenfalls vorsorglich für Schüler deaktiviert, obwohl es durchaus einen plausiblen Grund für ihn gab. Angezeigt wurden nur Lehrer, die angehakt hatten, dass sie in schulübergreifende Teams aufgenommen werden wollen. Für diese Funktion gab es eine Suchfunktion, die ebenfalls zunächst deaktiviert wurde. Die Suche war bisher auf Client-Seite umgesetzt – der Browser lud also die riesige Liste vom Server und zeigte nur eine Auswahl davon an, wenn man einen Suchbegriff eintippte. Unsere Empfehlung, die Daten auf dem Server zu filtern und nie den gesamten Datensatz anzubieten, nahm man für die Entwicklung dankbar auf.

Die schriftliche Antwort macht deutlich, dass man auf solche Fälle beim HPI mittlerweile vorbereitet war und die Notfallpläne in der Schublade lagen. Im Mai 2020 sah die Reaktion auf einen Sicherheitshinweis noch ganz anders aus. Als das ARD-Magazin Kontraste damals auf einen aktiven Registrierungslink hinwies, über den Externe an einen Account gelangen konnten, reagierte das HPI unwirsch und erstattete Strafanzeige gegen Unbekannt wegen des Ausspähens von Daten.

Solche Schritte blieben bei unseren Hinweisen aus. Das HPI stufte den Fall als meldepflichtig im Sinne der DSGVO ein und informierte nach eigenen Angaben die zuständigen Landesdatenschutzbeauftragten, ebenso die Partner in den Bundes­ländern. In Absprache mit den Behörden sollen auch die Benutzer informiert werden, dass ihre Daten potenziell abgeflossen sein könnten.

Viele Lehren

Der Fall ist aus mehreren Perspektiven lehrreich. Unser Hinweisgeber hat sich bei seinen Untersuchungen verhalten wie ein Penetration-Tester, der solche Tests für Geld anbietet. Einen solchen anzuheuern, kann sich lohnen. Wer selbst eine Infrastruktur im Netz betreibt, sollte sich zumindest hin und wieder die Zeit nehmen, um selbst von außen einen Blick auf die eigenen Systeme zu werfen und zumindest die offensichtlichsten Schritte auszuprobieren.

Wichtig ist auch gute Vorbereitung für den Fall der Fälle. Wenn Techniker und Datenschutzbeauftragte das Grundgerüst für eine Meldung schon vorab ausgefüllt haben, ist die Wahrscheinlichkeit höher, dass man innerhalb der von der DSGVO geforderten 72 Stunden eine Meldung an den Landesdatenschützer zu Papier bringt, falls ein Datenleck offenbar wird. (jam@ct.de)

Kommentieren