Zum Hauptinhalt Zur Navigation

LLVM 6.0: Clang bekommt Maßnahme gegen Spectre-Angriff

Die neue Version der LLVM-Compiler wie Clang bringt mit Retpolines eine wichtige Maßnahme gegen Angriffe über Spectre. Davon profitieren auch künftige Windows-Versionen von Google Chrome. Optimierungen gibt es außerdem bei der Diagnose von Quelltexten.
/ Oliver Nickel
Kommentare News folgen (öffnet im neuen Fenster)
LLVM-Compiler bekommen eine Maßnahme gegen Spectre. (Bild: LLVM.org/Montage: Golem.de)
LLVM-Compiler bekommen eine Maßnahme gegen Spectre. Bild: LLVM.org/Montage: Golem.de

Die neue Version 6.0 der LLVM-Compiler-Infrastruktur ist erschienen. Das berichten die Projektverantwortlichen auf ihrer Webseite(öffnet im neuen Fenster) . Die wichtigste Neuerung ist die Einführung einer Retpoline-Kompilierungsoption. Dieser Parameter soll gegen die Kernelangriffe durch die CPU-Sicherheitslücke Spectre – genau genommen dem Teilangriff Branch Target Injection – helfen.

Stackoverflow-Community-Mitglied Tobias Ribizel erklärt den Retpoline-Ansatz in einem Post(öffnet im neuen Fenster) . Dieser emuliert eine Endlosschleife von Anweisungen im Cache des Prozessors, die spekulative Ausführung und damit den möglichen Zugriff auf eigentlich geschützte Speicheradressen verhindern sollen.

Mit der Neuerung zieht auch der C-Sprachfamilien-Compiler Clang mit der Alternative GCC gleich. Google spielte den Retpolines-Fix laut dem Onlinemagazin Pro-Linux.de(öffnet im neuen Fenster) dort bereits ein. Googles eigener Browser Chrome wird auch in der Windows-Version künftig mit dem LLVM-Produkt-Clang kompiliert . Der Schutz vor Branch Target Injection ist also eine gute Nachricht für dessen Nutzer.

Verbesserte Diagnose beim kompilieren

Weitere Neuerungen gibt es bei den Diagnosewerkzeugen in Clang. Die Warnung Wpragma-pack kann auf Fehler im Quelltext hinweisen, beispielsweise wenn Speicherzuweisungen (Alignments) vor einem Bibliothekenimport #include sich von Zuweisungen nach diesem Befehlssatz unterscheiden. Zusätzlich gibt es mehrere Null-Pointer-Behandlungen, wenn etwa eine Zeigerarithmetik auf einen leeren Wert verweist. Außerdem gibt es neue Compiler-Flags wie das bereits genannte -mretpoline gegen Spectre.

Die neue Version 6.0 von LLVM kann auf der offiziellen Seite heruntergeladen werden. Wie alle vorigen Versionen ist die Compilerinfrastruktur Open Source und frei nutzbar. Detaillierte Patch-Notes stellt die Organisation auf der eigenen Homepage zur Verfügung.


Relevante Themen