Corona-Warn-App: SicherheitslĂĽcke im Server

Im Server der deutschen Corona-App gab es eine SicherheitslĂĽcke. Daten von Nutzern der Corona-App sind nicht betroffen. Die LĂĽcke ist bereits geschlossen.

In Pocket speichern vorlesen Druckansicht 17 Kommentare lesen

GitHubs Sicherheitsforscher haben mitgemacht – und wurden fündig.

Update
Lesezeit: 2 Min.
Von
  • Merlin Schumacher

Eine Lücke im Server-Backend der deutschen Corona-Warn-App ermöglichte eine Remote Code Execution (RCE). Die eigentliche App war davon nicht betroffen. Laut SAP wurde die Lücke nicht ausgenutzt. Personenbezogene Daten waren über die Schnittstelle nicht erreichbar.

Zwar arbeitet die Kontakterkennung der Corona-Warn-App dezentral auf den Smartphones, aber die Verteilung der Zufallskennungen infizierter Personen an die App läuft über einen zentralen Server.

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externes Video (Kaltura Inc.) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Kaltura Inc.) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

Die Lücke bestand in der Schnittstelle zur Übermittlung von positiven Testergebnissen an den Server. Diese ist öffentlich erreichbar und erfordert keine Authentifikation. Lediglich eine TAN für die Übermittlung eines positiven Ergebnisses ist nötig. Die TAN wird zwar von einem zusätzlichen Verifikationsserver geprüft, aber erst, nachdem Sie vom anfälligen Code verarbeitet wurde. Für die Nutzung Lücke war daher also kein positiver Corona-Test nötig.

Schlimmstenfalls wäre es möglich gewesen, eigenen Code auf dem Server auszuführen und möglicherweise gefälschte Ergebnisse einzuschleusen. In einem Blog-Post schreibt SAP, dass die Beseitigung der Schwachstelle zeigt, dass "der Open-Source- sowie Community-Prozess einwandfrei funktioniert und zur Sicherheit des Betriebs der Corona-Warn-App entscheidend beiträgt."

Der Quellcode der App und der des Servers liegen öffentlich auf GitHub. Gefunden wurde die Lücke eher zufällig durch GitHubs Security Lab. Dessen Forscher hatten nach Mustern für "Java Bean Validation"-Lücken gesucht, um die Erkennungsmuster in die automatischen Code-Scanning-Werkzeuge der Plattform zu integrieren. Bei der Suche fanden sie auch die Lücke im Code für die Server der Corona-Warn-App. Dort wurde die Ausgabe einer Fehlermeldung als Code interpretiert.

Nach dem Fund meldeten die Entdecker die Lücke an SAP. Vier Tage später wurde sie vorerst geschlossen und Version 1.5.1 des Servers veröffentlicht. Nach Tests von SAP und BSI wurde ein zweiter, zuverlässigerer Fix eingespielt. Aktuell ist die Version 1.6.0 des Servers.

Auch in Belgien wird ein Fork der deutschen Corona-Warn-App eingesetzt. Der Fork entstand aber, bevor die Lücke im Code des Corona-App-Servers auftauchte. GitHub empfiehlt dennoch allen Ländern, die öffentliche oder private Forks des Servers betreiben, den Fix ebenfalls einzuspielen.

[UPDATE: 19.11.20 15:00: Weitere Details eingepflegt] (mls)