Lese-Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.

Retbleed: Linux-Patches verursachen hohe Leistungseinbuße

Patches gegen CPU-Fehler im Zusammenhang mit spekulativer Ausführung machen Linux-Code langsamer. VMware berichtet nun aber von massiven Leistungseinbrüchen.

Die aktuelle Linux-Kernel-Version 5.19 enthält standardmäßig Patches gegen eine neuartige Variante der Spectre-Lücke, die als Retbleed bezeichnet wird. Unter bestimmten Umständen sorgen diese jedoch für massive Leistungseinbußen, wie sich nun im Test von VMware zeigt. Bei der Art der Sicherheitslücke und den damit verbundenen Gegenmaßnahmen sind Leistungseinbrüche zwar zu erwarten, VMware spricht aber von Verschlechterungen um bis zu 70 Prozent, was durchaus überrascht.

In einer Nachricht an die Mailing-Liste des Linux-Kernels berichtet der VMware-Angestellte Manikandan Jagatheesan davon, dass VMware diese Werte im Rahmen seiner standardmäßigen Tests der offiziellen Versionen des Hauptzweigs des Linux-Kernels erhalten habe. Die Leistung von Linux 5.19 sei dabei im Vergleich zu Linux 5.18 bewertet worden.

Linux-VMs, die auf dem ESXi-Hypervisor von VMware ausführt werden, hätten dabei eine um 70 Prozent geringere Rechenleistung. Zusätzlich dazu sei die Geschwindigkeit des Netzwerks um 30 Prozent reduziert und die Leistung des Festspeichers um 13 Prozent verringert. Laut dem Bericht kann dies direkt auf den Patch zurückgeführt werden, der die Retbleed-Lücke schließt. Ohne den Patch und die Spectre-Vorkehrungen seien die Leistung von Version 5.18 und 5.19 vergleichbar.

 

Die spekulative Ausführung von CPUs ist explizit dazu gedacht, deren Funktionen zu beschleunigen. Seit der koordinierten Veröffentlichung von Informationen zu den Lücken Spectre und Meltdown ist klar, dass Gegenmaßnahmen nicht nur schwierig sind, sondern auch, dass ein konsequentes Vorgehen die Leistung teils massiv drosselt. Doch schon bei den ersten Arbeiten an ursprünglichen Patches zeigten sich Möglichkeiten zur Verbesserung. Ob und inwiefern dies nun auch für die Retbleed-Patches gelten kann, ist derzeit noch nicht abzusehen. Die Daten von VMware könnten aber dafür sorgen, dass auch die Retbleed-Patches verbessert werden.

Der Beitrag Retbleed: Linux-Patches verursachen hohe Leistungseinbuße erschien zuerst auf Linux-Magazin.

LLVM 15 mit experimentellem DirectX-Support

Mit LLVM können nun auch GPU-Shader für DirectX kompiliert werden. Außerdem unterstützt die Werkzeugsammlung das neue ARMv9.

Die Compiler-Werkzeugsammlung LLVM ist in Version erschienen, wie das Projekt über sein Forum mitteilt. Neu hinzugekommen ist ein Backend für die Grafikschnittstelle DirectX aus Windows, das Microsoft zu dem Open-Source-Projekt hinzufügte. Noch ist die Unterstützung für das sogenannte DirectX-Target jedoch experimentell und wird nicht standardmäßig mit den Binärdateien verteilt, die das LLVM-Projekt selbst erstellt.

Vor mehr als fünf Jahren stellte Microsoft seinen Compiler für die Shader-Sprache HLSL als Open Source zur Verfügung. HLSL sowie der zugehörige Compiler sind Teil der 3D-Grafikbibliothek DirectX. Das freie Analogon in OpenGL heißt GLSL. Mit Hilfe dieser Shader-Sprachen können 3D-Effekte programmiert werden. Zuvor nutzte Microsoft als Shader-Compiler die Eigenentwicklung Fxc. Der neue Shader-Compiler basiert auf LLVM und das neue Backend unterstützt die der DXIL (DirectX Intermediate Language), die wiederum auf der LLVM IR basiert. Die Arbeiten daran hatte Microsoft im Frühjahr dieses Jahres bekannt gegeben.

Neu hinzugekommen ist außerdem die Unterstützung für die neuen ARM-Architektur-Versionen ARMv9-A, ARMv9.1-A und ARMv9.2-A. Diese Architektur hatte der britische Chip-Designer ARM bereits im Frühjahr 2021 vorgestellt (g+) und erweitert damit die ARMv8-Architektur. Neu hinzugekommen sind dabei mehrere Beschleunigereinheiten und die Architektur soll vom Microcontroller- über den Smartphone- bis hin zum Server-CPU-Kern skalieren. Mit LLVM 15 unterstützt wird zudem die Cortex-M85-CPU, die noch auf ARMv8.1 basiert. Änderungen gibt es außerdem an den Backends für RISC-V und x86.

Für das Compiler-Frontend für C-artige Sprachen, Clang, hat das Team mit LLVM 15 außerdem Techniken umgesetzt, die die Sicherheit damit kompilierter Programme erhöhen soll. So gibt es nun die Möglichkeit, auf x86-Chips bestimmte Register zunächst mit Null zu überschreiben, bevor Werte von einer Funktion zurückgegeben werden. Das soll ROP-Angriffe erschweren. Zudem kann das Layout von Strukturen in C nun zufällig erzeugt werden. Damit soll das Erlangen von Informationen aus den Strukturen durch Angreifer erschwert werden.

Der Beitrag LLVM 15 mit experimentellem DirectX-Support erschien zuerst auf Linux-Magazin.

FreeBSD-Kernel bekommt experimentelle Rust-Patches

Die Rust-Arbeiten an Linux zeigen, dass die Sprache auch im Kernel genutzt werden kann. Nun gibt es Experimente für FreeBSD.

Der Entwickler David Young hat experimentelle Patches erstellt, um Kernel-Module für FreeBSD in der Programmiersprache Rust erstellen zu können. Das berichtet Young zusammen mit einer sehr ausführlichen Erläuterung im Forschungsblog des IT-Sicherheitsunternehmens NCC Group.

Motivation der Arbeiten sind dabei die zahlreichen Speicherfehler, die im Zusammenhang mit der Nutzung von C und C++ auftreten, in denen bisher üblicherweise Betriebssystemkernel erstellt werden. Young schreibt dazu: “Es ist allgemein anerkannt, dass ein großer Teil der Sicherheitsprobleme in komplexer Software auf Speichersicherheitsprobleme zurückzuführen ist.” Die Sprache Rust helfe dagegen dabei, bestimmte Fehlerklassen im Zusammenhang mit der Speicherverwaltung vorzubeugen.

Young verweist darüber hinaus auf die Arbeiten am Linux-Kernel, um dort Rust als Sprache neben C zu etablieren. Auch diese Arbeiten sind primär durch die Sicherheitsperspektive motiviert. Das sieht auch Linux-Gründer Linus Torvalds als einen der Hauptvorteile der Arbeiten an. Für FreeBSD habe es bisher bis auf veralteten Beispielcode aber keine Arbeiten in diese Richtung gegeben, weshalb Young diese Arbeit nun wieder aufgenommen habe, schreibt er.

Der so entstandene Code steht nun auf Github bereit. Dabei handelt es sich unter anderem um Rust-Sprachanbindungen für die Kernel-Header von FreeBSD, eine sichere Abstraktionsschicht sowie ein Beispielmodul. Die Abstraktionen seien jedoch nicht so fortgeschritten, wie dies bei Linux der Fall sei, räumt Young ein. Darüber hinaus wünscht sich der Entwickler, dass diese Arbeiten weitergeführt und künftig eventuell auch Kern-Komponenten in Rust erstellt werden. Ob dies aber letztlich geschieht und der Code in den Hauptzweig von FreeBSD aufgenommen wird, ist derzeit noch nicht absehbar.

Der Beitrag FreeBSD-Kernel bekommt experimentelle Rust-Patches erschien zuerst auf Linux-Magazin.

❌