Werbung
In dieser Woche sorgte die Entdeckung einer neuen Sicherheitslücke in Intel-Prozessoren für Aufsehen. Load Value Injection oder kurz LVI ist eine weitere Transient-Execution Attack. Die Methodik von LVI ist eine Art von Reverse Engineering von Spectre-ähnlichen Lücken, die allerdings einen aktiven Bestandteil besitzen (eine Injection), um die Daten extrahieren zu können.
Die Anfälligkeit der Prozessoren ist von einigen Faktoren abhängig. Intel hat eine Liste der betroffenen Prozessor-Generationen veröffentlicht. In einer ersten Version dieser waren unter anderem die Ice-Lake-Prozessoren aufgeführt. In der aktuellen Version sind sie dies nicht mehr. Festzuhalten bleibt: Grundsätzlich sind alle Prozessoren mit der Unterstützung von Software Guard Extensions (SGX) betroffen. Davon vollständig ausgenommen sind aktuellen Erkenntnissen zufolge nur die Ice-Lake-Prozessoren. Zwar sind Desktop- und Mobilprozessoren ebenso betroffen wie die Servermodelle, Endkundensysteme verwenden meist aber keine der Relevanten Sicherheitsfunktionen wie eben SGX und sind daher primär zunächst einmal nicht betroffen. Server und Serveranbieter sollten ihre Systeme bzw. die der Kunden jedoch absichern und dies hat Auswirkungen auf die Leistung des Prozessors. Dazu kommen wir gleich.
Man muss hier allerdings einige Abstufungen machen, die auch Auswirkungen auf die Software-Mitigation haben. Intel hat in einigen Coffee-Lake-Steppings, in Comet Lake und in Cascade Lake bereits Hardware-Mitigationen eingepflegt. Intel hat bereits ein Update des SGX-SDKs sowie ein technisches Whitepaper veröffentlicht. Für Software wird ein Compiler-Patch verfügbar sein, der per LFENCE Barrieren für die erwähnten Spekulationen aufbaut und diese verhindern. Damit wird auch das Einfallstor für LVI geschlossen.
Derzeit sind drei Assembler-Optionen verfügbar: LFENCE kann nach jeder Load Instruction ausgefürt werden, für jedem Indirect Branch und vor jeder Ret Instruction. Anstatt in einer massiven parallelen Prozessor-Pipeline ausgeführt zu werden, sorgte LFENCE dafür, dass diese in weiten Teilen seriell abgearbeitet werden. Teile des Speichers müssen also häufiger neu geschrieben werden, was einen gewissen Overhead nach sich zieht. Dieser Overhead hat Auswirkungen auf die Leistung des Systems bzw. des Prozessors.
Phoronix hat nun entsprechende Benchmarks veröffentlicht. Getestet hat man mit einem Intel Xeon E3-1275 v6 (Kaby Lake) auf einem Ubuntu 20.04. Je nach Stufe der Mitigation sind die Auswirkungen mal größer und mal kleiner. Natürlich gibt es hier auch Abhängigkeiten innerhalb der verschiedenen Anwendungen.
Über alle Benchmarks hinweg reduziert sich die Leistung durch ein LFENCE Before Indirect Branch um 3,4 %. Ein LFENCE Before RET sorgt für eine um 8,3 % niedrigere Leistung. Um alle Risiken zu beseitigen, muss ein LFENCE After Load oder ein LFENCE Load + Indirect Branch + Ret angewendet werden. Die Leistung liegt hier nur noch bei 25 % im Vergleich zum System ohne Software-Mitigation! Die Auswirkungen können also enorm sein.
Zahlreiche weitere Benchmarks finden sich im Test bei Phoronix. Dort sind die unterschiedlichen Auswirkungen – je nach Anwendung – zu erkennen.