Modern technology gives us many things.

Long-Term-Release Linux 5.10: Die wichtigsten Neuerungen im Überblick

0 32

Der neue Kernel sichert virtuelle Umgebungen besser ab, rüstet sich mit Memory-Tagging hinauf ARM64 und bietet eine "sleepable"-Markierung zum Besten von BPF-Programme.


    Long-Term-Release Linux 5.10: Die wichtigsten Neuerungen im Überblick

(Bild: Wikimedia Commons / Ben Tubby / CC BY 2.0)

Von

  • Oliver Müller

Inhaltsverzeichnis

  1. Long-Term-Release Linux 5.10: Die wichtigsten Neuerungen im Überblick

    Vorletzten Sonntag gab Linus Torvalds das letzte Release des Linux-Kernels für dieses Jahr frei. Der neue Kernel 5.10 erfährt Long Term Support (LTS) und erhält somit mindestens für die nächsten zwei Jahre noch Patches.

    Aktuell gibt kernel.org als "End of Life" (EOL) Dezember 2022 an. In der Regel geht die Wartungsperiode für LTS-Kernel jedoch für bis zu fünf oder sechs Jahre in die Verlängerung – so wurde etwa der Supportzeitraum für die Ausgaben 4.19 und 5.4 im Sommer von zwei auf sechs Jahre ausgedehnt.

    Linux 5.10 übertrifft in der Anzahl von Changesets seinen Vorgänger Linux 5.9, bleibt aber leicht hinter dem aktuellen Rekordhalter Linux 5.8 zurück. "Rekordverdächtig" (im Hinblick auf die Geschwindigkeit) ist allerdings das keine 24 Stunden nach dem Release von 5.10 nachgeschobene erste Point-Release. Linux 5.10.1 hatte Greg Kroah-Hartman wegen zwei Fehlern freigeben, die das Storage-System und damit eine kritische Komponente betrafen.

    Der erste in 5.10.1 enthaltene Fix nimmt einen Reparaturversuch für den Device Mapper zurück: Hier war ursprünglich versucht worden, Probleme bei der Obergrenze des RAID DISCARD für RAID 1 und RAID 10 zu beheben. Welche Auswirkungen dieser misslungene Korrekturversuch hat, ist aktuell noch nicht dokumentiert. Der Commit zum Fix enthält lediglich den Kommentar: "It causes problems :(."

    Der zweite Fix in 5.10.1 betrifft den MD (Multiple Devices)-Code: In 5.10 ohne den Fix kann es beim Mounten von RAID6-Setups zu erheblichen Problemen nebst Datenverlust kommen. Anwender von 5.10 sollten daher rasch auf 5.10.1 wechseln. Weitere Korrekturen oder Neuerungen umfasst 5.10.1 nicht.

    Mit Linux 5.10 hält die "ARMv8.5 Memory Tagging Extension" (ARMv8.5 MTE) auf ARM64 Einzug in den Kernel. Sie hängt an Zeiger (Pointer) einen Schlüssel an, um automatisch die (Prozess-)Zugehörigkeit eines Zeigers zu markieren und zu erkennen. Auf diese Weise soll Code künftig sicherer und insbesondere Angreifern das Leben erschwert werden. Zudem will man typische Memory-Bugs im Keim ersticken.

    Die ARM64-Architektur ist für 64-Bit-Zeiger ausgelegt. Aktuell verwenden Systeme aber nur 48 Bits oder 52 Bits, sofern die "Large Address Option" aktiviert ist. Für das Verwenden aller verfügbaren 64 Bits besteht aktuell (noch) kein Bedarf. Zudem gestatten es ARM-Prozessoren über ein spezielles Feature, das oberste Byte einer virtuellen Adresse zu ignorieren (top byte ignore). Daher entstanden diverse Erweiterungen für diese ungenutzten Bits. Ein prominenter Vertreter ist die "ARM Pointer Authentication", die kryptographische Schlüssel im obersten Byte zur Authentisierung von Zeigern nutzt. Mit MTE kommt nun noch eine Erweiterung in Linux hinzu.

    Die MTE nutzt das untere Nibble (die unteren vier Bits) des oberen Bytes der virtuellen Adresse. Es lässt sich damit einem oder mehreren Speicherbereichen eine Markierung zuweisen. Wird ein Zeiger dereferenziert, vergleicht das System die Markierung des Zeigers mit der des Speicherbereichs, auf den der Zeiger verweist. Sind die beiden Markierungen nicht identisch, löst die CPU einen so genannten Trap aus: Der unerlaubte Zugriff wird unterbunden.

    Vier Bits erscheinen nicht viel, lassen sich damit doch "nur" 16 Markierungen verwalten. In jener Praxis ist dasjenige meist schon in Maßen, um effektive Schutzfunktionen zu implementieren. Mit Speicherverwaltungsroutinen wie malloc() und free() können so hinauf einfache Weise bestehende Anwendungen um Schutzmechanismen erweitert werden. Beispielsweise lassen sich Use-After-Free-Bugs und Buffer-Overflow-Angriffe verhindern oder zumindest verschlimmern. malloc() setzt passende Markierungen und versucht zumindest verbleibend eine Rotation jener Marken verschiedene Stack-Frames unterschiedlich zu markieren. Damit schottet dasjenige System solche intrinsisch einer Anwendung gegeneinander ab.

    Gibt dasjenige System Speicher verbleibend free() vakant, kann dieser freie Speicher mit einer speziellen Marke versehen werden. Damit ist dieser explizit wie "frei gegeben" markiert. Will die Anwendung infolge eines Bugs oder aufgrund eines Angriffs diesen Speicher Vorlesung halten, stimmen die Marker des Zeigers und des Speicherbereichs nicht überein. Das System löst verdongeln Trap infolge einer Use-After-Free-Situation aus.

    Die Markierungen kann entweder die Anwendung selbst oder die CPU verwalten. Setzen lassen sich die Marken nun jeweils hinauf 16-Byte-Speicherblöcke. MTE ist nun zunächst hinauf allen Linux-Systemen deaktiviert. Die Extension lässt sich aus jener Anwendung hervor verbleibend dasjenige PROT_MTE-Flag von mmap() oder verbleibend mprotect() erregen; eine entsprechende ARM64-CPU vorausgesetzt. PROT_MTE ist doch nur hinauf anonymem Memory perfekt. File-Backed Memory wird nicht unterstützt.

    Aktuell ist MTE hinauf den Userspace eingeengt. Der Kernel selbst nutzt dasjenige Feature noch nicht. Support zum Besten von den Kernelspace ist zum Besten von Linux 5.11 geplant. Mit jener "ARM Pointer Authentication" steht MTE im Übrigen nicht in Konflikt. Obwohl beiderartig Erweiterungen dasjenige obere Byte jener virtuellen Adresse nutzen, können beiderartig taktgesteuert im Einsatz sein. Durch die vier Bits, die MTE vom oberen Byte "abgräbt", verkürzen sich die kryptographischen Signaturen jener Pointer-Authentication. Die kann jedoch im Prinzip wiewohl mit den verkürzten Signaturen funktionieren.

    Quelle: www.heise.de

Hinterlasse eine Antwort

Deine Email-Adresse wird nicht veröffentlicht.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More