Lücke in der Sprungvorhersage: BranchScope als Variante von Spectre

Veröffentlicht am: von

intelNoch immer sind die Auswirkungen der Spectre- und Meltdown-Sicherheitslücken nicht ganz abgeklungen, wenngleich Intel die entsprechenden Patches und Microcode-Update größtenteils ausgeliefert und für Ende 2018 bereits Prozessoren mit entsprechenden Änderungen in der Architektur angekündigt hat. Mit den Erkenntnissen dieser beiden Lücken, vor allem aber Spectre in der Variante 2, war klar, dass es durch sogenannte Sprungvorhersagen bzw. Branch Predictions moderner Prozessoren noch zu mehr solcher Lücken kommen könnte.

Die Sprungvorhersage wird verwendet, um freie Ressourcen in den Pipelines zu nutzen, um weitere Berechnungen vorherzusagen. Diese Maßnahme haben alle Prozessorhersteller genutzt, um die Leistung ihrer Prozessoren in den vergangenen Jahren weiter zu steigern. Durch grundsätzliche Fehler in der Konzeption ist es aber zu den nun bekannten Sicherheitslücken gekommen. Eben dieser Fall ist nun scheinbar eingetreten.

Sicherheitsforscher des College of William and Mary, Carnegie Mellon, der University of California Riverside und der Binghamton University haben eine Attacke ausgearbeitet, die sensitive Informationen auslesen kann. Die Gemeinsamkeiten zwischen BranchScope und Spectre in der Variante 2 enden beim jeweiligen Teil der Sprungvorhersage, die für die Lücke genutzt wird. Spectre in der Variante 2 ist hinsichtlich des Branch Target Buffer (BTB) anfällig. Dieser hält die Informationen über das jeweilige Ziel der Sprungvorhersage vor. BranchScope hingegen greift den Pattern History Table (PHT) an. Dieser gibt die "Richtung" vor, in die eine Sprungvorhersage gemacht werden soll. Der PHT listet auf, welche Vorhersagen richtig waren und welche nicht. Daraus können zukünftige Vorhersagen besser abgeschätzt werden. In zwei Bits werden diese Informationen abgespeichert. Über eine Manipulation dieser Bits können zukünftige Vorhersagen entsprechend Manipuliert werden. Der Angreifer gibt den Vorhersagen also eine entsprechende Richtung vor und kann nun beobachten, in welcher Richtung die nicht von ihm gesteuerten Vorhersagen zeigen.

Die Sicherheitsforscher haben damit einen Weg gefunden, Intel's SGX (Software Guard Extensions) zu umgehen. Diese soll eigentlich ein Auslesen solcher Informationen verhindern. Bisher wurde BranchScope nur auf Basis von Intel-Prozessoren untersucht. Derzeit gehen die Sicherheitsforscher davon aus, dass BranchScope genau wie Spectre in der Variante 2 durch eine Kombination aus Hard- und Softwareudpates geschlossen werden kann. Wie aber bei Spectre in der Variante 2 ist der eigentliche Prozess dahinter noch nicht ganz verstanden bzw. es ist nicht ganz klar, in welchem Umfang Änderungen vorgenommen werden müssen, ohne das komplette Prinzip der Sprungvorhersage über den Haufen zu werfen. In Zukunft werden wir sicherlich noch häufiger von solchen Sicherheitslücken hören und alle beteiligten Unternehmen tun gut daran, sich weiter damit zu beschäftigen.

Intel hat die Sicherheitslücke bereits bestätigt und geht davon aus, dass Maßnahmen für Spectre in der Variante 2 auch hier helfen werden:

"We have been working with these researchers and we have determined the method they describe is similar to previously known side channel exploits. We anticipate that existing software mitigations for previously known side channel exploits, such as the use of side channel resistant cryptography, will be similarly effective against the method described in this paper. We believe close partnership with the research community is one of the best ways to protect customers and their data, and we are appreciative of the work from these researchers."