Sicherheitsupdate: Microsoft-Compiler baut Schutz gegen Spectre
Eine neue Funktion in Microsofts Compiler für C und C++ soll Schutzmaßnahmen gegen eine Variante des Spectre-Angriffs in Code einbauen. Diese Vorgehen wird zwar von Intel empfohlen, hat aber offensichtlich Grenzen und wird deshalb von der Linux-Community kritisiert.

Wie bereits von Microsoft angekündigt muss Code mit bestimmten Compiler-Optionen neu erstellt werden, um Schutzmaßnahmen gegen die Variante 1 des Spectre-Angriffs (CVE-2017-5753) erhalten zu können. Das Compiler-Team von Microsoft erklärt nun die Verfügbarkeit und Funktionsweise dieser Option in seinem eigenen Compiler MSVC für C und C++.
Demnach enthalten aktuelle Versionen des Compilers die Option /Qspectre, die bisher aber nur für optimierten Code funktioniere (/O2 oder /O1). Ältere Compiler-Versionen enthalten die undokumentierte Option /d2guardspecload, die gleichbedeutend sei zu /Qspectre. Nutzer sollten aber auf /Qspectre wechseln, sobald diese in ihren Compilern verfügbar sei.
Die neue Option bewirkt das von Chiphersteller Intel empfohlene Vorgehen gegen diesen Spectre-Angriff. Dabei fügt der Compiler den Befehl LFENCE in die Codeabschnitte ein, die möglicherweise von dem Angriff betroffen sind. Das sorgt für eine direkte Barriere im Code. Sie unterbindet die für den Angriff genutzte spekulative Ausführung auf der CPU.
LFENCE hat Grenzen
Microsoft zufolge ist es wichtig zu beachten, dass es Grenzen für die Analyse gibt, die MSVC und Compiler im Allgemeinen durchführen können, wenn versucht wird, Instanzen von Variante 1 von Spectre zu identifizieren. "Daher gibt es keine Garantie, dass alle möglichen Instanzen von Variante 1 unter /Qspectre richtig behandelt werden", schreibt Microsoft.
Das sehen auch die Entwickler des Linux-Kernels, die ebenfalls vor dem Problem stehen, Schutzmaßnahmen gegen den Angriff umzusetzen. Darüber hinaus fürchten diese aber Leistungseinbußen durch die Verwendung von LFENCE, auch wenn etwa Microsoft sagt, dass diese in ihrem Fall vernachlässigbar sein sollten. Die Entwickler des Linux-Kernels arbeiten deshalb an alternativen Lösungen, die den Code vor Spectre schützen sollen. Das erfordert aber wohl größere konzeptionelle Umbauarbeiten am Code.
Einer der Entdecker von Spectre, Daniel Gruß, sagte im Interview mit Golem.de, dass er nur ein "geringes Vertrauen" in die Softwarelösungen zum Beheben von Spectre habe.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Doch wird, sie schap23 hat da schon recht. Der Compiler fügt dann an Stellen die er für...
Ich denke die haben wir vor sehr langer Zeit überschritten, ungefähr seit der MOS 6502...
Software die mit dem Compiler genaut wurde, bei der die Option eingeschaltet war ist...
vllt das gute alte phoronix? https://www.phoronix.com/scan.php?page=news_item&px=GCC-7.3...