• IT-Karriere:
  • Services:

Linux: Rust wandert ins System

Eine wichtige Python-Bibliothek nutzt künftig teilweise Rust-Code. Bald wird es möglicherweise schwer, Linux-Systeme ohne Rust zu betreiben.

Eine Analyse von veröffentlicht am
Wird Rust bald systemrelevant? Die Programmiersprache mit der Krabbe Ferris als Maskottchen wird zunehmend von systemnahen Tools verwendet.
Wird Rust bald systemrelevant? Die Programmiersprache mit der Krabbe Ferris als Maskottchen wird zunehmend von systemnahen Tools verwendet. (Bild: Arjit Chowdhury, Wikimedia Commons/CC-BY-SA 4.0)

Die Cryptography-Bibliothek für Python hat vor einiger Zeit eine Entscheidung getroffen, die nicht unerhebliche Konsequenzen haben wird. Teile des Codes, der ASN1-Strukturen verarbeitet, wurden in Rust neu geschrieben. Mit der vor wenigen Tagen veröffentlichten Version 3.4 landete dieser Code in einem offiziellen Release des Cryptography-Pakets.

Stellenmarkt
  1. Umicore AG & Co. KG, Hanau-Wolfgang
  2. PVS eCommerce-Services GmbH, Meckenheim

Für diesen Schritt spricht einiges. ASN1 ist ein komplexes Binärformat, das viel in kryptographischen Anwendungen eingesetzt wird. In C geschriebene Parser für derartige Strukturen führen notorisch häufig zu Sicherheitsproblemen. In allen wichtigen TLS-Bibliotheken gab es in der Vergangenheit Sicherheitslücken im ASN1-Code.

Zwar wird es noch eine Zeit lang möglich sein, das Cryptography-Paket nur mit C-Code und ohne die Rust-Neuentwicklungen zu verwenden, aber mit der kommenden Version 3.5 soll diese Möglichkeit auch verschwinden.

Auf exotischen CPU-Architekturen gibt es bisher keinen Rust-Compiler

Auf der Entwicklerliste von Gentoo Linux führte der Schritt zu der Frage, ob durch diese Änderung künftig die Unterstützung für manche CPU-Architekturen eingestellt werden muss. Gentoo unterstützt eine Vielzahl von Systemen, darunter auch veraltete und exotische Prozessorarchitekturen wie HPPA oder Alpha. Und für viele davon gibt es bislang keinen Rust-Compiler.

In der Diskussion stellte sich heraus, dass Gentoos Paketmanager Portage wohl auch ohne das Python-Cryptography-Paket auskommt und somit auch weiterhin Gentoo-Systeme ohne Rust-Compiler angeboten werden können. Doch das ist möglicherweise nur ein Aufschub.

Diskussionen über die Schwächen und systemischen Sicherheitsprobleme von C und C++ gibt es schon lange. Speicherverwaltungsfehler wie Buffer Overflows und Use-after-Free-Bugs gehören zu den häufigsten Sicherheitslücken überhaupt, insbesondere bei Browser-Exploits spielen sie eine wichtige Rolle. Aber auch in systemnahen Tools können solche Fehler bei der Speicherverwaltung zu Sicherheitslücken führen, wie kürzlich ein Bug in Sudo aufzeigte.

Programmierung sicherer Systeme mit Rust: Eine Einführung

Zwar sorgten Mechanismen wie die Speicherrandomisierung (ASLR) und Stack-Cookies dafür, Angriffe gegen derartige Speicherfehler zu erschweren, komplett verhindern lassen sie sich damit allerdings nicht. Aber lange Zeit gab es keine echte Alternative zu C und C++, insbesondere für systemnahe Programmierung konnte sich keine andere Programmiersprache in größerem Maße durchsetzen. Mit Rust hat sich das geändert.

Rust vermeidet viele C-Probleme

Rust wird von vielen in der IT-Sicherheitscommunity als Möglichkeit gesehen, viele Klassen von Sicherheitslücken in der Speicherverwaltung grundlegend zu vermeiden. Zwar können auch in Rust Speicherfehler in speziell als "unsafe" (unsicher) markierten Programmteilen auftreten, doch standardmäßig vermeidet Rust die meisten der typischen C-Fehler. Und wenige Zeilen Unsafe-Code lassen sich leichter nach Fehlern durchsuchen als ein großes C- oder C++-Projekt.

Es ist absehbar, dass künftig immer mehr Softwareprojekte ganz oder teilweise Rust-Code einsetzen. Und das gilt nicht nur für komplexe Projekte wie den Firefox-Browser. Die Librsvg-Bibliothek nutzt seit einiger Zeit Rust-Code, ein Rust-Port des Kompressionstools Bzip2 ist in Arbeit. Weitere werden folgen und sogar die Linux-Kernelentwickler diskutieren, ob Rust eine Option ist.

Absehbar wird das bedeuten, dass es schon bald nicht mehr praktikabel sein könnte, ein Linux-Basissystem ohne Rust-Code zu betreiben. Für Personen, die Prozessoren ohne Rust-Support verwenden, sollten das Warnschüsse sein. Entweder die Communities, die Linux auf den entsprechenden Systemen betreuen und betreiben wollen, entwickeln eine Portierung des Rust-Compilers für ihre Systeme - oder der Betrieb eines modernen Linux-Systems ist auf den entsprechenden CPUs bald nicht mehr möglich.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Spiele-Angebote
  1. 79,99€ (Release 10. Juni)
  2. 19,90€
  3. 20,99€
  4. 3,50€

wurstdings 12. Feb 2021 / Themenstart

Jupp, genau das ist es. Um es _noch_ deutlicher zu machen, weil die langsame Variante...

jsonn 11. Feb 2021 / Themenstart

De facto arbeitet Python gerade daran, alle seine 32bit-Platformen zu begraben...

autarch_princeps 10. Feb 2021 / Themenstart

Die fehlende Unterstützung für PA-RISC & Alpha ist ja wohl mal die schwachsinnigste...

Kommentieren


Folgen Sie uns
       


Sega Mega Drive (1990) - Golem retro_

Mit Mega-Power sagte Sega 1990 der Konkurrenz den Kampf an. Im Golem retro_ holen wir uns die Spielhalle nach Hause.

Sega Mega Drive (1990) - Golem retro_ Video aufrufen
    •  /