Suchen

Schwachstellenanalyse von CVE-2020-7958 Sicherheitsrisiken in Trusted Execution Environments (TEE)

| Autor / Redakteur: Georgi Boiko / Peter Schmitz

Biometrische Authentifizierung ist gerade bei Smartphones voll im Trend. Bei einer Analyse von Sicherheitsvorkehrungen bei mobilen Trusted Execution Environments (TEEs) sind die Synopsys-Experten auf ein Informationsleck gestoßen, das die Fingerabdrücke von OnePlus 7 Pro Advanced-Nutzern bei jeder Verwendung des Fingerabdrucksensors offenlegt.

Firmen zum Thema

(Bild: gemeinfrei / Pixabay )

Biometrische Authentifizierung ist kein besonders neues Konzept. Die überwiegende Mehrzahl von uns ist damit vertraut, über Fingerabdruckscan auf das Mobiltelefon zuzugreifen. Demgegenüber ist das Konzept mobiler Trusted Execution Environments (TEEs) vielen vielleicht nicht ganz so vertraut. TEEs sind aber zunehmend auf dem Vormarsch und kommen bei Dienstanbietern, Betriebssystem- und Anwendungsentwicklern sowie Geräteherstellern zum Einsatz, wenn diese einen vertrauenswürdigen Client benötigen - beispielsweise bei mobilen Zahlungssystemen.

Bei einer Analyse von bei TEEs angewandten Sicherheitsvorkehrungen, sind die Synopsys-Experten auf ein Informationsleck gestoßen, das die Fingerabdrücke von OnePlus 7 Pro Advanced-Nutzern bei jeder Verwendung des Fingerabdrucksensors offenlegt. Die Schwachstelle wird von MITRE als CVE-2020-7958 geführt und erlaubt es einem Angreifer mit Root-Privilegien, Bitmap-Bilder von Fingerabdrücken vom Fingerabdrucksensor abzurufen, die nur im TEE zugänglich sein sollten.

Rooten und TEEs

Wenn wir über das "Rooten" eines Android-Geräts sprechen, bedeutet das normalerweise, einige der Integritätskontrollen innerhalb der Firmware absichtlich zu deaktivieren. Dadurch erhalten Benutzer Root-Privilegien, die es unter anderem ermöglichen Systemkomponenten zu manipulieren. Ein weit verbreitetes Motiv dafür ist, das Nutzer das Erscheinungsbild der Benutzeroberfläche verändern wollen. Die Integritätskontrollen für das TEE werden durch das Rooten nicht deaktiviert, das TEE bleibt auch auf gerooteten Geräten vertrauenswürdig.

Rooting kann aber auch für Angreifer zugänglich sein, wenn sie einen Speicherfehler im Android-Kernel finden und ausnutzen. Üblicherweise sind Hersteller recht schnell darin, solche Bugs umgehend zu veröffentlichen. Wer eine Vorstellung davon bekommen will, wie unmittelbar wichtig das für Anbieter sein kann, der möge sich den Artikel über die Bad Binder-Schwachstelle des Google Project Zero ansehen.

Allein die TEE-Ebene unterhalb des Android-Kernels hinzuzufügen garantiert noch nicht, dass im TEE selbst keine derartigen Bugs existieren. Je weniger Code man verwendet, desto weniger Fehler wird man wahrscheinlich haben. Zumindest rein statistisch gesehen. Einer der Vorteile des TEE besteht darin, dass seine Funktionalität ziemlich beschränkt ist. Die meisten seiner Aufgaben drehen sich um Verschlüsselung, Entschlüsselung und digitale Signaturen. Das reduziert die Angriffsfläche und macht es leichter, das TEE zu schützen. Man kann es fast mit einer Art Festung vergleichen. Vor allem kombiniert mit hardwaregestützten Maßnahmen zum Schutz vor Manipulationen, die nicht deaktiviert werden können.

Sicherheit für Fingerabdrücke

Fingerabdrücke sind ausgesprochen sensible Daten, die man nicht ersetzen kann und die man ein Leben lang behält. Das ist der Grund, warum sie die sichere TEE-Umgebung nicht nur nicht verlassen, sondern auch innerhalb der Umgebung niemals in Bildform abgespeichert werden.

Parallel dazu arbeiten Hacker fleißig an der Herstellung gefälschter Fingerabdrücke. Beispielsweise hat Jan Krissler schon im Jahr 2014 einen Vortrag auf dem Chaos Communications Congress gehalten, bei dem es ihm gelungen ist, lediglich anhand von Fotos von Fingerabdrücken diese zu fälschen und erfolgreich auf einem Mobiltelefon zu verwenden. Anfang dieses Monats haben Paul Rascagneres und Vitor Ventura sehr umfangreiche Untersuchungen dazu veröffentlicht, wie man moderne Fingerabdrucksensoren mit gefälschten Fingerabdrücken überlisten kann. Das Ergebnis unserer aktuellen Forschungen passt perfekt dazu: den Ergebnissen zufolge war es fast ebenso wirksam (und in einem Fall sogar noch wirkungsvoller), mehrere Bilder eines Fingerabdrucks direkt vom Sensor aus zu erfassen, als jemanden zu bitten, seinen Finger auf ein Material zu legen, das speziell für die Herstellung von Fingerabdruckformen entwickelt wurde.

Kurz gesagt, geleakte Fingerabdrücke lassen sich problemlos verwenden, um selbst moderne, handelsübliche Fingerabdrucksensoren zu überlisten. Nehmen wir uns einen Moment Zeit und sehen uns an, wie die Fingerabdruckauthentifizierung auf Android-Geräten im Kontext der aktuellen Sicherheitslage funktioniert.

Vor der Betriebssystemversion Android 6 existierte keinerlei Standard für die Implementierung einer Authentifizierung per Fingerabdruck. Die Funktion wurde allerdings so schnell populär, dass sich die Hersteller ziemlich beeilten, mit entsprechenden Implementierungen nachzuziehen. Sicherheitsexperten haben sich diese Entwicklung zunutze gemacht, und schnell Wege gefunden, Fingerabdruckbilder zu extrahieren und die registrierten Referenzfingerabdrücke zu manipulieren. Diese sind auf den Geräten zur Überprüfung der Authentifizierung gespeichert.

Es gibt tatsächlich eine auf der BlackHat Konferenz gehaltene Präsentation, die im Detail beschreibt, wie unsicher Fingerabdruck-Authentifizierungsmechanismen damals implementiert wurden. Implementierungen, die persönliche biometrische Daten einem Risiko ausgesetzt haben und potenziell Millionen von Benutzern hätten schaden können. Mit der Veröffentlichung von Android 6 hat Google dann selbst die Initiative ergriffen und in einem Compatibility Definition Document eine Reihe von Anforderungen für die Authentifizierung per Fingerabdruck festgelegt. Diese Anforderungen sind seitdem ständig erweitert worden und umfassen inzwischen eine breite Gruppe von biometrischen Sensoren. Ab diesem Zeitpunkt durften keine Rohdaten von Fingerabdruckbildern mehr gespeichert werden. Stattdessen wurden lediglich abgeleitete Metadaten gespeichert, was für die Verifizierung von Fingerabdrücken ausreicht. Man kann sich das ähnlich vorstellen wie beim Hashing von Passwörtern, nur eben für biometrische Daten. Ab jetzt darf nur das TEE mit dem Fingerabdrucksensor kommunizieren.

„Dank“ CVE-2020-7958 kann man nun wieder Rohdaten von Fingerabdruckbildern vom Sensor abrufen, ohne den Rest des TEE zu kompromittieren. Das verstößt gegen die seit Android 6 geltende Voraussetzung, dass der Sensor nur vom TEE aus zugänglich ist. Und es erschüttert die Vorstellung, es reiche womöglich aus, die Rohdaten von Fingerabdruckbildern nicht auf der Festplatte zu speichern, wenn sie nicht geleakt werden sollen.

Die angesprochene Untersuchung von Synopsys zeigt eine interessante Lücke auf: Speicherfehler sind bei Weiten nicht das einzige, worüber Anbieter sich in hoch entwickelten Software-Lieferketten Sorgen machen müssen. Simple Fehler in der Geschäftslogik, die bei der Integration von Bibliotheken gemacht werden, führen potenziell zu Sicherheitsschwachstellen. Unserer Erfahrung nach geht das Problem aber weit über einzelne Handyanbieter oder das Konzept der biometrischen Authentifizierung hinaus, und es wird häufig übersehen.

Um sich vor CVE-2020-7958 zu schützen, sollten Benutzer den Software-Build ihrer OnePlus 7 Pro-Geräte auf die neueste verfügbare Version updaten. OnePlus Technology hat die Schwachstelle mit dem im Januar veröffentlichten Software-Build 10.0.3.GM21BA behoben.

Über den Autor: Georgi Boiko ist Senior Security Consultant bei Synopsys.

(ID:46836325)