Software-Schutz vor Spectre-Angriffen ist weitestgehend nutzlos

Programme, die fremden Code empfangen und ausführen, können sich nicht auf Software-Schutz für Spectre-Lücken verlassen, sagen Google-Forscher.

In Pocket speichern vorlesen Druckansicht 216 Kommentare lesen
Prozessorlücke, Meltdown, Spectre, Hardare, Motherboard, Intel, Prozessor, CPU
Lesezeit: 4 Min.
Von
  • Fabian A. Scherschel

Software-Schutzvorkehrungen vor Angriffen auf die Spectre-Prozessorlücken sind weitestgehend nutzlos, Programmierer können sich lediglich auf in Hardware umgesetzte Maßnahmen verlassen. Zu diesem Schluss kommen eine Hand voll Google-Forscher in einer wissenschaftlichen Veröffentlichung, die auf ihren Erfahrungen mit der Entwicklung von Chromes JavaScript-Engine V8 beruht.

Ihre Erkenntnisse sind allerdings kein Grund zur Panik, da von den Angriffen praktisch nur Programme betroffen sind, die Code aus nicht vertrauenswürdigen Quellen ausführen – die meisten Programme, die wir im Alltag nutzen, gehören nicht zu dieser Kategorie. Die wichtigste Gruppe solcher gefährdeter Programme sind Web-Browser. Und deren Entwickler sind sich, wie auch die Google-Forscher, des Problems bewusst und arbeiten daran, den nicht vertrauenswürdigen JavaScript-Code einzelner Webseiten mit Hardware-Mitteln voneinander zu isolieren. Trotz dieser Einschränkung stellt die Veröffentlichung der Forscher eine wichtige Warnung für alle Programmierer da, die in ihren Programmen fremden Code ausführen müssen.

Bei ihrer Analyse der Auswirkungen der verschiedenen Spectre-Versionen und der Software-Schutzmaßnahmen gegen Seitenkanal-Angriffe haben die Google-Forscher festgestellt, dass sich die Abwehrmaßnahmen immer irgendwie umgehen lassen. Sie postulieren deshalb ein Konstrukt namens Universal Read Gadget – ihrer Meinung nach lässt sich bei jeder Software mit genug Mühe die spekulative Ausführung moderner Prozessoren so missbrauchen, dass ein Angreifer Lesezugriff auf alle Speicheradressen im Bereich des Prozesses erhält. Die Forscher schreiben explizit, dass dies nicht einfach ist und sehr gute Kenntnis der anzugreifenden Software und der Prozessorinfrastruktur des Zielgerätes voraussetzt. Sie behaupten aber, mit genug Aufwand für fast jede beliebige Software ein solches Read Gadget konstruieren zu können.

Demnach sind die Schutzmaßnahmen verschiedener Programmiersprachen und Compiler, oder auch Techniken wie das von Google erfundene Retpoline, immer irgendwo durchlässig. Zwar könne man theoretisch dem Prozessor verbieten, spekulative Ausführung zu betreiben, die dafür von den Herstellern vorgeschlagenen Techniken, etwa den lfence-Befehl bei Intel, seien aber schlecht dokumentiert und in der Praxis zeige sich immer wieder, dass sie von Programmierern falsch umgesetzt oder gar vergessen würden.

Deswegen haben die Chrome-Entwickler sich darauf verlegt, einzelne Webseiten (beziehungsweise Tabs) in getrennten Browser-Prozessen auszuführen. Auf diese Weise verwendet jede Webseite ihren eigenen Adressraum – eine Einschränkung, welche die Prozessor-Hardware kontrolliert und verwaltet. Das verhindert, dass JavaScript-Code, den eine Webseite auf den Rechner des Nutzers lädt, auf den Speicher zugreifen kann, der zum Code anderer Webseiten (oder etwa eines im Browser integrierten Passwort-Managers) gehört. Würde der Code mehrerer Webseiten in unterschiedlichen Threads desselben Prozesses ausgeführt, so die Google-Forscher, reicht die Software-basierte Trennung der Speicherbereiche laut ihren neuerlichen Erkenntnissen nicht aus. Die Forscher empfehlen allen Programmierern, deren Programme Code aus nicht vertrauenswürdigen Quellen empfangen und ausführen, eine ähnliche Trennung in separate Prozesse. Nur wenn der Prozessor selbst die Sicherheitsschranken durchsetze, könne man sich sicher sein, gegen Spectre gewappnet zu sein.

Im Nachhinein betrachtet sei der Name Spectre sehr passend, stellen die Forscher am Ende ihrer Veröffentlichung fest. Das Gespenst dieser Prozessorlücke werde uns noch lange verfolgen, so ihre Vorhersage. Lange Zeit habe man bei der Entwicklung neuer Prozessorachitekturen im Sinne der Performance die Sicherheit vernachlässigt. Nun müsse bei den Hardware-Herstellern und Programmierern ein Umdenken stattfinden. Mit ihrer Publikation wollen sie dazu beitragen, dass beide Seiten verstehen, wie tief das Spectre-Problem im Aufbau aktueller Prozessoren verankert sei und dass nur Lösungen auf Hardware-Ebene in Frage kämen, es zu beheben.

Das Paper der Forscher findet sich öffentlich zugänglich auf dem Wissenschaftsportal Arxiv: Spectre is here to stay - An analysis of side-channels and speculative execution; Mcilroy, Sevcik et al. (fab)