Krankenkassen: Vivy-App gibt Daten preis
"Sicherheit auf höchstem Niveau" verspricht Vivy, der Hersteller der gleichnamigen App für Krankenkassen, auf seiner Webseite(öffnet im neuen Fenster). Die IT-Sicherheitsfirma Modzero hat sich die App angeschaut – und ist dabei auf einige sehr gravierende Sicherheitsprobleme gestoßen(öffnet im neuen Fenster). Besonders problematisch: Dokumente, die ein Nutzer mit einem Arzt teilt, können von Unberechtigten abgerufen werden. Weiterhin verspricht Vivy Ende-zu-Ende-Verschlüsselung, die aber offenbar mit wenig Sachkenntnis implementiert wurde.
Vivy ist eine App, die von insgesamt 18 Krankenkassen ihren Kunden angeboten wird. Beteiligt sind unter anderem die Allianz und die DAK. Mit der App können Patienten Gesundheitsdaten verwalten und mit Ärzten teilen – ein Bereich, in dem man ein besonders hohes Niveau an Datenschutz und Datensicherheit erwarten würde. Vivy wirbt auch damit, dass die App und die dahinterliegende Technik von zahlreichen externen Dienstleistern geprüft wurde.
Bruteforce-Angriff erlaubt Auslesen von Dokumenten
Die Vivy-App bietet eine Funktion, mit der man kurzfristig Dokumente mit einem Arzt teilen kann. Gedacht ist sie beispielsweise für Situationen, in denen ein Patient in der Praxis sitzt und etwas direkt dem Arzt zeigen möchte.
Dabei wurde das Dokument auf der Vivy-Domain unter einer fünfstelligen Kennung abgelegt. Diese Kennung bestand nur aus Kleinbuchstaben. Damit war die Zahl der möglichen Kombinationen relativ begrenzt, insgesamt waren es etwa 11 Millionen mögliche Kennungen. Diese ließen sich nach Schätzung von Modzero innerhalb von weniger als einem Tag alle durchprobieren.

Was ein Angreifer nach dem erfolgreichen Erraten einer gültigen Kennung tun konnte, hing davon ab, ob der Arzt das Dokument bereits abgerufen hatte. War das der Fall, wurden nur Metadaten preisgegeben. Zum Abruf der Daten benötigt man eine PIN. Die war jedoch nur vierstellig und konnte ebenfalls durch reines Durchprobieren erraten werden.
Die Antwort des Servers enthielt den vollen Namen, das Geburtsdatum, die E-Mail-Adresse des Patienten sowie Informationen über den behandelnden Arzt und die Krankenversicherung.
Vivy akzeptiert beliebigen Schlüssel
Problematischer wurde es, wenn der Arzt das Dokument noch nicht abgerufen hat. Dann konnte der Angreifer dem Server einen öffentlichen Schlüssel schicken. Der Server leitete diesen Schlüssel ohne jede Prüfung an den Client weiter, das Dokument wurde damit verschlüsselt. Anschließend konnte das verschlüsselte Dokument heruntergeladen werden. Da der Angreifer selbst den Schlüssel setzen konnte, besaß er auch den passenden privaten Schlüssel.
Das Zeitfenster für einen solchen Angriff ist im Normalfall gering, da es üblicherweise so gedacht ist, dass der Arzt ein geteiltes Dokument direkt abruft. Ein gezielter Angriff wäre daher schwierig. Doch ein Angreifer hätte einfach wahllos nach gültigen Kennungen suchen, wenn möglich Dokumente herunterladen und somit potenziell Kenntnis von privaten Patientendaten erlangen können.
Ein weiteres Problem: Die Kennung für die Dokumente wurde gleich an vier externe Dienstleister weitergeleitet, deren Services in der Vivy-App integriert sind. Diese hätten den Angriff dann sehr schnell durchführen und potenziell auf Dokumente zugreifen können.
Schlüssel auslesen mit Cross-Site-Scripting
Bei der Verschlüsselung gab es bei Vivy eine ganze Reihe von Problemen. Vivy wirbt damit, dass die Daten Ende-zu-Ende-verschlüsselt werden. Theoretisch ist das korrekt, doch bei der Implementierung wurde eine ganze Reihe von Fehlern gemacht und auch fragwürdige Designentscheidungen getroffen.
Auf Seiten des Arztes ist Vivy im Moment als Webanwendung implementiert. Generell ist die Verwendung von Webanwendungen in Kombination mit einer Ende-zu-Ende-Verschlüsselung nicht allzu sinnvoll. Denn eine Ende-zu-Ende-Verschlüsselung soll davor schützen, dass der Betreiber die Daten selbst lesen kann. Doch bei einer Webanwendung kann der Betreiber jederzeit einem bestimmten Nutzer eine veränderte Webseite unterschieben, die dann die Daten unverschlüsselt ausliest.
Ein weiterer Effekt, auf den Modzero hinweist: Wenn ein Angreifer eine Cross-Site-Scripting-Lücke in der Webanwendung findet, kann er den privaten Schlüssel des Arztes einfach auslesen. Das hätte man vermeiden können, wenn man die in modernen Browsern vorhandene Webcrypt-API verwendet; die sieht nämlich nicht extrahierbare Schlüssel vor. Doch darauf hatte Vivy ursprünglich verzichtet.
Modzero fand gleich eine ganze Reihe von Cross-Site-Scripting-Lücken in Vivy. So konnte man in Dokumenten selbst HTML-Code unterbringen, etwa in einer SVG-Datei. Auch Profilfotos von Patienten konnten HTML-Dokumente sein. Und in den Feldern für den Vor- und Nachnamen von Patienten können diese HTML-Code eintragen, der bei der Ausgabe in der Arzt-App nicht gefiltert oder codiert wurde.
Die Verschlüsselung selbst nutzte veraltete Technologien. So wurden die Daten mit dem CBC-Modus verschlüsselt und es kam keinerlei Authentifizierung zum Einsatz. Dieser Modus verschlüsselt Daten zwar, er schützt sie aber nicht vor Manipulation. Diese Schwäche war die Grundlage für den Efail-Angriff, der im Frühjahr Schwachstellen in OpenPGP und S/MIME aufzeigte.
Vivy wurde von mehreren Sicherheitsfirmen geprüft
Das alles sind schwer zu entschuldigende Fehler – vor allem bei einer App, die so aggressiv mit ihrer Sicherheit wirbt. Laut Vivy hat man die App durch eine ganze Reihe von Sicherheitsfirmen prüfen lassen, darunter ERNW, Blue Frost Security, ePrivacy und der TÜV Rheinland.
Ein Whitepaper vom Fraunhofer-Institut für Angewandte und Integrierte Sicherheit (AISEC) gibt genauer Aufschluss darüber(öffnet im neuen Fenster), welche Firma was geprüft hat. Die Backend-Systeme und die Android-App hat demnach die Frankfurter Firma Blue Frost Security geprüft. Ob die Webanwendung, auf die sich die meisten gefundenen Schwachstellen beziehen, hier als Teil des Backends anzusehen ist, wird nicht klar.
Wir hatten Blue Frost um eine Stellungnahme gebeten, von dort wurde uns mitgeteilt, dass man erst prüfen müsse, inwieweit man aufgrund eines bestehenden Non-Disclosure Agreements (NDA) zu den Vorfällen etwas sagen könne.
TÜV-Siegel für Verschlüsselung nach Stand der Technik
Die Verschlüsselung wurde laut dem Whitepaper vom TÜV Rheinland geprüft. "Die Integrität, Authentizität und die Vertraulichkeit von sensiblen Daten ist durch eine verschlüsselte Kommunikation gemäß dem Stand der Technik geschützt", heißt es dort. Es ist schwer nachvollziehbar, wie der TÜV zu dem Schluss kommt, dass eine unauthentifizierte CBC-Verschlüsselung dem Stand der Technik entspricht. Wir haben den TÜV Rheinland um eine Stellungnahme gebeten. Eine Antwort haben wir bisher nicht erhalten.
Vivy hat eine Stellungnahme zu den Funden von Modzero veröffentlicht(öffnet im neuen Fenster). Darin gibt sich die Firma redlich Mühe, die gefundenen Sachverhalte herunterzuspielen, bestätigt sie aber in den meisten Fällen auch.
Vivy hält Bruteforce-Szenario für unplausibel
So schreibt Vivy etwa zu Problemen bei der Verschlüsselung: "Aufgrund der Art und Weise, wie die verschlüsselten Daten bei Vivy ausgetauscht werden, würde dieses Angriffsszenario eine unbemerkte Kompromittierung der Vivy-Server selbst voraussetzen." Das ist zwar im Prinzip korrekt, allerdings wirbt Vivy explizit damit, dass die Verschlüsselung auch vor solchen Szenarien schützt. So heißt es beispielsweise auf der Webseite: "Durch die Verschlüsselung wird auch sichergestellt, dass weder Versicherungen noch Vivy ohne die ausdrückliche Freigabe durch den Nutzer auf Daten zugreifen können."
Das Szenario, bei dem ein Angreifer die PIN durch Ausprobieren erraten kann, bevor der Arzt das Dokument abgerufen hat und somit selbst auf das Dokument zugreift, hält Vivy für unplausibel. Begründet wird das damit, dass die App für einen solchen Angriff geöffnet sein muss und nur einmal pro Sekunde eine PIN prüft. Alle PINs durchzuprobieren, würde so knapp drei Stunden dauern, im Schnitt würde man aber schon nach der Hälfte der Versuche die gültige PIN finden.

Weiterhin schreibt Vivy, Modzero habe Schutzmaßnahmen gegen Brute-Force-Angriffe, die auf den Servern vorhanden sind, bei seiner Einschätzung nicht berücksichtigt. Modzero wiederum sagte gegenüber Golem.de, dass es bei seinen Tests nichts von Schutzmaßnahmen bemerkt hätte und die Angriffe auch praktisch durchführbar waren.
Vivy hat nach eigenen Angaben inzwischen die Dokumentenkennung auf acht Zeichen verlängert und weitere Schutzmaßnahmen implementiert. Die CBC-Verschlüsselung wurde zudem durch das authentifizierte GCM-Verfahren ersetzt. Auch die Cross-Site-Scripting-Schwachstellen und andere von Modzero identifizierte Lücken seien inzwischen korrigiert. Nutzer der Vivy-App sollten diese daher auf jeden Fall aktualisieren.
- Anzeige Hier geht es zu Hacking & Security: Das umfassende Handbuch bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.


