Menü
c't Magazin

Neue Linux-Kernel schützen vor ZombieLoad aka MDS

Der Linux-Kernel geht jetzt gegen Intels neueste Prozessorlücken vor. Den mit derlei einhergehenden Performance-Einfluss kann man jetzt leichter vermeiden.

vorlesen Drucken Kommentare lesen 58 Beiträge

(Bild: Connect world/Shutterstock.com + geralt + Larry Ewing + The Gimp + heise online)

Innerhalb einer Stunde haben die Linux-Entwickler einen Schwung neuer Kernel-Versionen freigegeben, um die neuesten, am Dienstagabend bekannt gewordenen Sicherheitslücken in vielen modernen Intel-Prozessoren zu stopfen. Um sich vor diesen "ZombieLoad" oder "Microarchitectural Data Sampling" (MDS) genannten Lücken zu schützen, müssen Linux-Anwender ähnlich vorgehen wie im vergangenen August bei der Prozessorlücke Foreshadow/L1TF: Prozessor-Microcode und Kernel aktualisieren, sowie gegebenenfalls noch Qemu und Libvirt stopfen, wenn man mit dem Kernel-eigenen Hypervisor KVM virtualisiert.

Für vollen Schutz müssen Anwender Hyper-Threading deaktivieren.

(Bild: Screenshot der Kernel-Dokumentation )

Die MDS-Gegenmaßnamen kann man über einen neuen Kernel-Parameter leicht ein- und ausschalten, denn ähnlich wie bei früheren Prozessorlücken können sie offenbar in manchen Fällen die Performance verschlechtern. Das gilt um so mehr, wenn man vollständig auf der sicheren Seite sein will, denn vollen Schutz erhält man erst, wenn man Hyper-Threading (HT) über das BIOS-Setup oder einen Kernel-Parameter deaktiviert. Das ist vor allem für Umgebungen wichtig, wo Fremde eigenen Code einbringen können; etwa bei Cloud-Providern, wo Kunden virtuelle Maschinen (VMs) mit Malware starten können, um darüber VMs anderen Kunden anzugreifen, die auf demselben Host laufen.

Kaum eine Stunde nach Bekanntgabe der Lücken waren die Quellen neuer Stable- und Longterm-Kernel mit Gegenmaßnahmen für die MDS-Lücken erhätlich. Damit hat Intel diesmal deutlich besser mit der Linux-Community zusammengearbeitet als bei den Spectre- und Meltdown-Lücken Anfang 2018; damals hat es aufgrund zahlreicher Abstimmungsprobleme und verschiedenen Lösungsansätzen mehrere Wochen gedauert, bis die offiziellen Linux-Versionen von Kernel.org einen Schutz vor Spectre v2 mitbrachten.

Über den neuen Kernel-Parameter mds= kann man festlegen, wie stark der Schutz greifen soll.

(Bild: Screenshot der Kernel-Dokumentation)

Die MDS-Gegenmaßnahmen flossen nun zuerst in den Hauptentwicklungszweig von Linux ein, wo derzeit Linux 5.2 vorbereitet wird. Sie bestehen aus 23 Patches, die unter anderem ein Dokument nachrüsten, das die wichtigsten Informationen zu MDS und den neuen Schutzfunktionen von Linux näher erläutert. Die Änderungen bringen auch Unterstützung für den neuen Kernel-Parameter mds=[full|full,nosmt|off], mit dem man den Schutz ein- und ausschalten kann; ferner ist es darüber auch möglich, gleich Hyper-Threading lahmzulegen.

Man kann jetzt im Sysfs nachsehen, wie Linux gegen MDS schützt.

Durch die Änderungen stellt der Kernel jetzt zudem die Datei /sys/devices/system/cpu/vulnerabilities/mds bereit, über die man nachsehen kann, wie der Kernel gegen die Lücke vorgeht. Ihr Inhalt weist etwa darauf hin, wenn dem Microcode die zum MDS-Schutz nachgerüstete Instruktion VERW fehlt, denn dann versucht der Kernel mit anderen Tricks vor den neuen Lücken zu schützen.

Direkt nach Aufnahme in den Hauptentwicklungszweig haben die Entwickler auch neue Stable- und Longterm-Kernel veröffentlicht, die die MDS-Gegenmaßnahmen ebenfalls mitbringen: Linux 5.1.2, 5.0.16, 4.19.43, 4.9.176 und 4.14.119.

Intel schulde den Linux-Entwickler einige Biere für ihre Arbeit, wie ein Kernel-Entwickler scherzhaft anmerkt.

(Bild: Screenshot von lore.kernel.org/lkml/ )

In einer der Freigabemails weist Greg Kroah-Hartman darauf hin, dass die sonst übliche Test- und Begutachtungsphase bei diesen Versionen ausgelassen wurde, daher lauern vielleicht mehr Probleme. Der wohl zweitwichtigste Linux-Entwickler bedankt sich zudem bei den vielen anderen Programmierern, die in den letzten Wochen die MDS-Gegenmaßnahmen unter Verschwiegenheitsabkommen entwickelt haben; außerdem führt er an, Intel würde den Linux-Entwicklern jetzt noch mehr Biere schulden, denn diese hätten abermals Hardwarefehler mit Software korrigiert.

Über den neuen Kernel-Parameter "mitigations=" kann man viele Gegenmaßnahmen lahmlegen und so die Performance steigern.

(Bild: Screenshot der Kernel-Dokumentation )

Die neuen Stable- und Longterm-Kernel enthalten zudem sieben weitere Patches, die den den neuen Kernel-Parameter mitigations=[auto|auto,nosmt|off] nachrüsten. Mit ihm kann man die Performance steigern, denn es legt Kernel-eigene Schutztechniken wie PTI oder Retpoline lahm; als solche, die vor Prozessorlücken wie Spectre v1 & v2, Meltdown, SSB, L1TF und MDS schützen, die in den letzten eineinhalb Jahren bekannt geworden sind. Diese Gegenmaßnahmen auszuschalten kann für Umgebungen interessant sein, wo ohnehin nur vollkommen vertrauenswürdiger Code ausgeführt wird.

Viele oder alle der genannten Änderungen dürften in den nächsten Tagen und Wochen in vielen Linux-Distributionen ankommen, denn deren Macher integrieren solch sicherheitsrelevante Änderungen typischerweise in ihre Kernel, die oft auf älteren Versionen aufbauen, die die Entwickler von Kernel.org nicht mehr Pflegen. Erste Distributionen liefern diese Änderungen sogar schon aus. (thl)