Seitenkanäle moderner Prozessoren – Auf der Suche nach Informationslecks in Anwendungen

Pressemitteilung / 3.9.2018

Auf dem diesjährigen USENIX Security Symposium in Baltimore präsentierten Forscher vom Fraunhofer AISEC und der Technischen Universität Graz vom 15. bis 17. August ein neues Werkzeug für Sicherheitstests von Software. Das Tool findet automatisch jene Codezeilen, die bei Ausführung auf modernen Prozessoren geheime Informationen an andere Programme preisgeben. Diese Informationslecks hinterlassen verräterische Spuren im Prozessor und öffnen sogenannte Seitenkanäle, die von Schadsoftware angezapft werden können. Darüber lassen sich dann Geheimnisse rekonstruieren, die die Sicherheit des gesamten Systems gefährden.

Prozessoren liefern Rechenleistung für die Cloud, sparen Energie im Internet der Dinge, und ermöglichen mobilen Endgeräten, vielfältige Funktionalität trotz kleinster Größe bereitzustellen. Unabhängig vom Einsatzzweck spielt Geschwindigkeit dabei immer eine Rolle. Moderne Prozessoren enthalten daher unzählige Optimierungen, die Anwendungen mit jeder Hardware-Generation weiter beschleunigen. Der Preis für höhere Geschwindigkeit ist meist eine verminderte Trennung ausgeführter Anwendungen. Wechseln sich Programme am Prozessor ab, können sie als Konsequenz die Ausführung anderer Programme indirekt beobachten. Dies wird meist durch gemeinsam genutzte Prozessor-Ressourcen ermöglicht, die Spuren laufender Anwendungen enthalten. Diese Spuren werden gemeinhin als Seitenkanäle bezeichnet. Sie enthalten Informationen über potenziell geheime Daten, die eine Anwendung verarbeitet. Darunter fallen auch Passwörter und kryptografische Schlüssel.

Aus diesem Grund ist unter anderem der Prozessorcache ein beliebtes Ziel für Angriffe. Er enthält alle Daten, auf die ein Programm kürzlich zugegriffen hat. Da jede Anwendung vom Cache beschleunigt wird, kann er gezielt manipuliert werden. Dadurch lässt sich im schlimmsten Fall lernen, welche (geheimen) Daten andere Anwendungen gerade verarbeiten – trotz der Schutzmechanismen von Betriebssystemen, Hypervisorn und Trusted Execution Environments.

Für sicherheitskritische Anwendungen kann das schnell zu einem Albtraum werden. Wenn Schadsoftware über Prozessorseitenkanäle an Geheimnisse gelangt, steht die Sicherheit des Gesamtsystems auf dem Spiel. Erschwerend kommt hinzu, dass häufig nicht genau bekannt ist, wie die meisten kommerziell erhältlichen Prozessoren im Detail funktionieren. Erst aufwendige Forschung gibt Einblicke in die internen Abläufe der Hardware. Nicht selten werden dabei neue Sicherheitslücken entdeckt, die mit einem Schlag jegliche Software bedrohen, die auf betroffenen Prozessoren ausgeführt wird. Dabei können Anwendung eigentlich derart programmiert werden, dass die meisten Angriffe ins Leere laufen. Bisher blieb dies aber meist Programmen für Hochsicherheitsumgebungen vorbehalten. Ein Grund: das Auffinden von angreifbarem Code, beispielsweise mittels statischer Codeanalyse, war schlicht zu aufwendig und nur von wenigen Experten durchführbar.

Dem haben Forscher des Fraunhofer AISEC und der TU Graz nun entgegengewirkt. Sie haben ein neuartiges Werkzeug entwickelt, das automatisiert die Codezeilen aufspürt, die geheime Informationen über Prozessorseitenkanäle preisgeben. Das ermöglicht Entwicklern auch ohne Expertenwissen eine fundierte Bedrohungsanalyse ihres Programms durchzuführen. Die Methodik wurde speziell in Hinblick auf einfache Anwendbarkeit, Genauigkeit und Effizienz entwickelt. Die Forscher des Fraunhofer AISEC und der TU Graz präsentierten die Ergebnisse der Entwicklung vom 15. bis 17. August auf dem USENIX Security Symposium in Baltimore. Das zugehörige wissenschaftliche Paper und der Source Code des Werkzeugs sind öffentlich verfügbar.

 

Bei Interesse an unseren Testverfahren und Schutzstrategien für sicherheitskritische Software wenden Sie sich bitte an Andreas Zankl (andreas.zankl@aisec.fraunhofer.de).