Zum Hauptinhalt Zur Navigation

Speichersicherheit: Fast 20 Prozent aller Rust-Pakete sind potenziell unsicher

Nach Angaben der Rust Foundation verwendet etwa jedes fünfte Rust-Paket das Unsafe-Keyword. Meistens werden dadurch Code oder Bibliotheken von Drittanbietern aufgerufen.
/ Marc Stöckel
23 Kommentare News folgen (öffnet im neuen Fenster)
Knapp jede fünfte Rust-Crate verwendet das Unsafe-Keyword. (Bild: pixabay.com / tiburi)
Knapp jede fünfte Rust-Crate verwendet das Unsafe-Keyword. Bild: pixabay.com / tiburi

Die Programmiersprache Rust ist bekannt für ihr hohes Maß an Speichersicherheit . Mit Unsafe Rust(öffnet im neuen Fenster) bietet die Sprache Entwicklern dennoch die Möglichkeit, potenziell unsicheren Code auszuführen – auf eigene Gefahr. In welchem Umfang davon tatsächlich Gebrauch gemacht wird, hat die Rust Foundation kürzlich untersucht und die Ergebnisse nun bekannt gegeben(öffnet im neuen Fenster) .

Demnach verwenden insgesamt 24.362 aller Rust-Pakete (Crates) das Unsafe-Schlüsselwort, mit dem potenziell unsicherer Quellcode markiert wird. Die Gesamtzahl aller Crates, die nennenswerten Code enthalten, lag nach Angaben der Rust Foundation im Mai 2024 bei etwa 127.000.

Die Pakete mit Unsafe-Keyword machen folglich einen Anteil von mehr als 19 Prozent aus. Der Anteil jener Crates, die einen direkten Funktionsaufruf in ein anderes Paket mit dem Unsafe-Schlüsselwort enthalten, liegt sogar bei über 34 Prozent.

Am häufigsten wird das Unsafe-Keyword verwendet, um Code oder Bibliotheken von Drittanbietern zu verwenden, die nicht in Rust, sondern beispielsweise in C oder C++ geschrieben sind. Jene Crate, in dem Unsafe am häufigsten zum Einsatz kommt, ist dem Bericht zufolge die Windows-Crate , die es Entwicklern erlaubt, verschiedene Windows-APIs zu verwenden.

Unsafe erhöht das Risiko für Schwachstellen

Die Rust Foundation betont, dass die Verwendung des Unsafe-Keywords nicht bedeutet, dass der Code dadurch automatisch ausnutzbare Schwachstellen enthält. Das Risiko sei in diesen Fällen lediglich höher. Bei der Verwendung von Unsafe Rust sei folglich besondere Vorsicht geboten, um potenzielle Sicherheitslücken zu vermeiden.

Obendrein gebe es in Rust eine Reihe von Sicherheitsvorkehrungen, um die Risiken zu minimieren. Dazu zähle etwa der Umstand, dass es nur eine begrenzte Anzahl von Möglichkeiten gebe, Unsafe zu verwenden – und wenn etwas schiefgehe, sei aufgrund der isolierten Unsafe-Blöcke schnell klar, welcher Code das Problem wahrscheinlich verursacht habe.

Außerdem seien die normalen Sicherheitsprüfungen, die jeder sichere Rust-Code habe, auch innerhalb eines Unsafe-Blockes aktiv. Ferner sei die Verwendung des Unsafe-Schlüsselworts eine explizite Handlung, die Entwickler dazu zwinge, sich bewusst für die damit einhergehenden Risiken zu entscheiden, um selber angemessene Sicherheitsvorkehrungen treffen zu können.


Relevante Themen