Linux: Kernel 5.13 ist fertig

Nach zwei Monaten Arbeit hat sich beim neuen Linux-Kernel eine Menge verändert: Er unterstützt neue Hardware und bringt mit Landlock ein Sicherheitsmodul in den Mainstream, das Sandboxen von User space apps erlaubt. Außerdem gibt es Verbesserungen an File-Systemen und viele sonstige Updates. Zugleich erlaubt Linux erstmals externen Programmen über eBPF Zugriff auf interne Kernel-Funktionen – ein potenzielles Security-Problem?
Linus Torvalds veröffentlichte den Kernel nach nur sieben Release Candidates. "Wir hatten also rc7 eine ziemlich ruhige Woche, und ich sehe keinen Grund, 5.13 zu verschieben" , begründete er diesen Schritt in seinem wöchentlichen State-of-the-Kernel-Post(öffnet im neuen Fenster)
Dabei ist das 13. Release der 5.x-Reihe ein ziemlich umfangreiches. "5.13 ist insgesamt eigentlich ziemlich groß. Tatsächlich ist es eines der größeren 5.x-Releases mit über 16k Commits (über 17k, wenn man Merges mitzählt) von über 2k Entwicklern" , schrieb Torvalds.
Der Elefant im Raum ist diesmal ein Apfel
Einen nicht unwesentlichen Teil der Aufmerksamkeit bekam in diesem Linux-Entwicklungszyklus ein Hersteller, der mit Linux eigentlich wenig zu tun hat: Apple. Das hatte weniger mit dem neu eingeführten Support für Apples Magic Mouse 2 von John Chen zu tun, als vielmehr mit den Apple-Silicon-Geräten mit M1-Prozessor: Mit dem Kernel 5.13 gibt es einen ersten, noch rudimentären Linux-Support für die ARM-basierte Plattform.
Details lieferte das Asahi-Linux-Projekt(öffnet im neuen Fenster) in seinem Pull Request(öffnet im neuen Fenster) . Demnach arbeitet das Team an einem initialen Bootloader mit dem Namen m1n1(öffnet im neuen Fenster) , GRUB und U-Boot sollen folgen. Aktuell kann Linux die M1-Plattform booten, den Framebuffer sowie – über ein spezielles USB-Kabel – die serielle Konsole verwenden. Für Interessierte liefert das Projekt einen Quickstart Guide(öffnet im neuen Fenster) und eine Hardware-Dokumentation(öffnet im neuen Fenster) .
Anwendungen absichern – Sandboxen im Userspace
Das Modul Landlock(öffnet im neuen Fenster) trägt seinen Namen nicht zufällig. Landlocked Countries sind Binnenstaaten, also Länder ohne Zugang zum Meer, weil sie von anderen Ländern eingeschlossen sind.
Als neues Linux Security Module richtet sich Landlock an Anwendungsentwickler und limitiert die Zugriffsrechte unprivilegierter Anwendungen – etwa den Zugriff auf das globale Dateisystem. Es will so die systemweiten Zugriffskontrollen ergänzen und ermöglichen, Sandboxen als neuen Security-Layer zu erstellen, um unerwartetem oder bösartigem Verhalten von Userspace-Anwendungen einen Riegel vorzuschieben.
Laut der Release-Mitteilung(öffnet im neuen Fenster) lässt sich Landlock dabei von Seccomp-BPF(öffnet im neuen Fenster) inspirieren, filtert allerdings nicht die System Calls und ihre Argumente, sondern reguliert den Zugriff auf Kernelobjekte wie Dateihierarchien. Dabei inspiriert sich die Software bei XNU Sandbox(öffnet im neuen Fenster) (Apple), Capsicum(öffnet im neuen Fenster) (Free BSD) und Pledge/Unveil(öffnet im neuen Fenster) (Open BSD) und füllt so quasi blinde Flecken von Seccomp(öffnet im neuen Fenster) . Noch fehlen der Software einige Features zur Zugriffskontrolle, auch, um die Review zu erleichtern. Doch schon jetzt deckt Landlock laut Release-Mitteilung eine Reihe von Anwendungsszenarien(öffnet im neuen Fenster) ab.
Kurven und Hashes
In Sachen Sicherheit ist Landlock aber nicht die einzige Neuerung von Linux 5.13. So beherrscht der neue Kernel laut Herbert Xu, Principal Software Engineer bei Red Hat, den Elliptic Curve Digital Signature Algorithm (ECDSA), eine DSA-Variante, die Elliptische-Kurven-Kryptografie(öffnet im neuen Fenster) verwendet. Ebenfalls um Sicherheit geht es bei den Patches für SELinux(öffnet im neuen Fenster) : Ein Messen des SELinux-Zustands und der Richtlinien-Fähigkeiten ist neuerdings über die Integrity Measurement Architecture(öffnet im neuen Fenster) (IMA) möglich. Dieses Linux-Subsystem erzeugt Hashes von Dateien und Programmen, um deren Integrität im Auge zu behalten. Zugleich lässt sich der SELinux-Zustand eines Mounts mit Hilfe einer Reihe von Mount-Optionen abgleichen, was bei so genannten Kontext-Mounts von NFS und SELinux hilft.
Verschlüsselte VMs
Ebenfalls in den Security-Bereich fällt ein größeres Update, das Paolo Bonzini für KVM(öffnet im neuen Fenster) ankündigt. Es betrifft AMDs Platform Security Processor(öffnet im neuen Fenster) (PSP), auch bekannt als AMD Secure Technology. Bei PSP handelt es sich um ein Trusted Execution Environment Subsystem (TEE), das seit 2013 im AMD-Chips steckt und das Kritiker – ähnlich wie Intels Management Engine – für eine potenzielle Backdoor der NSA(öffnet im neuen Fenster) , aber zumindest für ein Sicherheitsrisiko(öffnet im neuen Fenster) , halten.
Die Änderungen an PSP betreffen den Treiber und den Umgang mit AMDs Secure Encryption Virtualization(öffnet im neuen Fenster) (SEV), das den Betrieb verschlüsselter VMs ermöglicht. AMDs SEV erlaubt es zum Beispiel, bestimmte Speicher-Pages zu verschlüsseln sowie alle CPU-Register, sobald eine VM stoppt (SEV ES).
Eine weitere KVM-Baustelle: ARMs Coresight(öffnet im neuen Fenster) erhält Support für die Embedded Trace Extension (ETE), eine Trace Unit für CPUs sowie für die Trace Buffer Extension (TRBE), die einen Trace Buffer pro CPU bereitstellt, den Entwickler über die Systemregister erreichen.
Dateien mit System
CIFS, die Erweiterung des Netzwerk-Dateisystems Samba, bringt im neuen Kernel(öffnet im neuen Fenster) Shutdown-Support mit und kommt besser mit Zugriffen auf Dateien zurecht, um diese etwa verzögert zu schließen.
Das Flash-Dateisystem F2FS hingegen erhält mit checkpoint merge(öffnet im neuen Fenster) eine neue Mount-Option, die bewirkt, dass sich ein Kernelthread um die F2FS-Checkpoints kümmert und gegebenenfalls deren Priorität im Prozess-Kontext senkt. Die Checkpoints kennen sämtliche Dateisystem-Operationen und sollen die Dateisystem-Integrität von F2FS bewahren.
Ext4 kommt hingegen neuerdings mit Encrypted Casefolding(öffnet im neuen Fenster) zurecht, macht also auch bei verschlüsselten Dateien keinen Unterschied mehr zwischen "Dateiname" und "DateiNAME". Das Casefold-Feature hilft unter anderem beim Portieren von Windows-Spielen auf Linux(öffnet im neuen Fenster) . Zugleich überschreibt Ext4 in den Directory Blocks die Directory-Einträge für gelöschte Verzeichnisse mit Nullen, wenn letztere verschoben oder gelöscht (entkoppelt) werden.
Platz von einer Allocation Group zu entfernen, ist für Darrick Wong neben einigen Performance-Optimierungen die auffälligste Neuerung für das Dateisystem XFS in dieser Entwicklungsrunde. Dies sei der erste Schritt(öffnet im neuen Fenster) auf dem Weg dahin, ein vollständig verkleinerbares Dateisystem zu erzeugen, brauche aber eben noch eine Reihe weiterer Änderungen.
Neues auch für ARM64
Hilfreich ist auch ein neues Feature für den ARM64-Kernel. Darin landete endlich der Support für den Bau von Kernel mit Clangs aktivierter Control Flow Integrity(öffnet im neuen Fenster) . Laut Kees Cook kommt das Compiler-Flag in der Praxis bereits seit drei Jahren für Android-Kernel zum Einsatz. Es ergänzt Programme um einige Mechanismen, die den Einsatz von Malware erschweren. Die Idee ist, dass ein Programm seine Arbeit einstellt, sobald bestimmte Formen undefinierten Verhaltens auftreten, die den Control Flow des Programms untergraben können.
Künftig sollen auch Programme auf x86-Systemen von dieser ARM64-Entwicklung profitieren und sich mit dieser Clang-Option übersetzen lassen. Das Feature sei zwar noch in Entwicklung, aber schon ziemlich weit fortgeschritten, heißt es in der Mitteilung.
Paket-Filter-Änderungen: Übersehenes Problem?
Auch in Sachen Berkeley Packet Filter (BPF) gibt es eine vielbeachtete Neuerung: BPF-Programme können nun bestimmte Kernelfunktionen direkt aufrufen, etwa tcp_slow_start(), was zuvor nicht möglich war. Trotz der derzeitigen Beschränkung auf die TCP Congestion-Control-Algorithmen sieht LWN.net(öffnet im neuen Fenster) -Autor und Kerneldokumentar Jonathan Corbet dadurch auch zukünftige Probleme entstehen: Was passiert eigentlich(öffnet im neuen Fenster) , wenn ein wichtiges BPF-Programm auf eine Kernel-Funktion vertraut, die sich plötzlich ändert?
Für Corbet ist es problematisch. dass die neue Funktionalität kein Teil der Kernel-ABI ist. Zudem seien die BPF Helper dafür vorgesehen, von außen aufgerufen zu werden. Das BPF-Subsystem prüft BPF-Programme laut Corbet zwar intensiv, er bezweifelt aber, dass das Subsystem die inneren Mechanismen sämtlicher Kernelfunktionen kennt und alle Angriffsvektoren absehen kann.
Und nicht mehr dabei ist ...
Dass Dinge im Kernel kommen und gehen, ist keine Neuigkeit. Im Hardware-Monitoring-Bereich ist seit Kernel 5.13 der amd_energy-Treiber nicht mehr dabei. Dieser wurde nach einer Security-bedingten Änderung unbrauchbar, eine vorgeschlagene Lösung hatte AMD abgelehnt, schreibt(öffnet im neuen Fenster) Guenter Roeck. Künftig müsse man einfach dafür sorgen, dass keine Treiber mehr im Hwmon-Subsystem landen, die nur einen privilegierten Zugriff erlauben.
Ein paar hardwarebezogene Änderungen
Auch für die Power-PC-Fraktion bringt Linux immer wieder Neues: So aktiviert Linux 5.13 Kfence und implementiert eBPF für 32-Bit-Systeme. Außerdem unterstützt der Kernel auf dieser Plattform neuerdings Time Namespaces (CONFIG_TIME_NS).
Ebenfalls in den Hardware-Bereich fallen einige von Greg Kroah-Hartmans Ankündigungen. Für Thunderbolt gab es Updates und einige Neuerungen, zugleich entfernte der Maintainer die Wimax-Treiber aus dem Kernel sowie die Gasket-Treiber auf Betreiben von Google hin. Kleiner Fun Fact: Nach knapp 15 Jahren wanderte der Comedi-Treiber von Staging nach drivers/comedi. Laut(öffnet im neuen Fenster) Greg Kroah-Hartman war es einer der ersten Treiber für den damals noch jungen Staging-Bereich – und er hätte schon längst dort weg sein sollen. "Schön, dass das endlich passiert" , schrieb Kroah-Hartman.
Außer AMD PSP gibt es bei den Hypervisoren noch mehr
Neben dem bereits erwähnten AMD PSP passierte im Hypervisor-Bereich für den aktuellen Turnus noch mehr(öffnet im neuen Fenster) .
KVM bringt zum Beispiel auf der ARM-Plattform eine Stage-2-Isolation für den Host-Kernel mit, wenn er im geschützten Modus läuft. KVM-Gäste dürfen seit Kernel 5.13 die Arm Scalable Vector Extension (SVE) verwenden, wenn sie im nVHE-Modus laufen. Dieser Modus erlaubt es, den Hypervisor auf einer CPU zu installieren, bevor der Host selbst darauf läuft. Die Xen-Entwickler haben hingegen mehrere Fehler repariert und kaputten Hotplug-Code entfernt. Am Hyper-V-Code gab es eine VMBus-Verbesserung und Patches, damit Linux als ARM64-Gast laufen kann.
Für das Auge nur ein bisschen was
Die Grafikentwickler werden offenbar auch nicht müde, selbst wenn die ganz großen Innovationen in dieser Runde ausblieben: Intels i915-Treiber bringt ersten Code für die Alderlake-Platform und die Allzweck-GPU Intel XE mit. Ganz ähnlich klingt die Sache für den AMDGPU-Treiber: Der unterstützt jetzt AMDs neue Aldebaran GPUs und außerdem Freesync HDMI.
... und der ganze Rest
Daneben gab es auch wieder viele feine, aber über die Systeme verteilte, Nachbesserungen. Zu viele, um sie alle aufzuzählen. So bietet zum Beispiel Fanotify nicht-privilegierten Anwendern einen beschränkten Funktionsumfang an. Neben dem Aggregator Module für Microsofts Surface-Geräte gibt es neuerdings(öffnet im neuen Fenster) Support für die anfangs erwähnte Magic Mouse 2 von Apple und das Thinkpad X1 Tablet Keyboard. Das Tool perf stat führt eine -iostat -Option ein, die jetzt auf Intel-Hardware funktioniert.
Wer die Änderungen ausprobieren möchte, kann sich den neuen Kernel direkt von Kernel.org(öffnet im neuen Fenster) oder Github(öffnet im neuen Fenster) herunterladen und ihn übersetzen.
Und wie immer: Mit dem Release von Kernel 5.13 beginnt dann auch direkt die Arbeit an der kommenden Version. Viel Glück den Kernel-Entwicklern bei 5.14!



