Comretix Blog

Wir bieten aktuelle Informationen über uns und aus der IT Welt.

Programmiersprache Rust: AWS-Wettbewerb für mehr Sicherheit der Standard-Library

Amazon Web Services (AWS) hat einen Wettbewerb gestartet, der die Sicherheit der Rust-Standard-Library überprüft. Einzelne Herausforderungen verifizieren unterschiedliche Bereiche der Rust-Bibliotheken.

Anzeige

Die Rust Foundation, die sich um die Entwicklung der Programmiersprache kümmert, unterstützt den Wettbewerb.

Rust ist vor allem wegen seiner Memory-Safety-Konzepte beliebt. Die Vorgaben verhindern typische Speicherfehler, die für einen Großteil der Schwachstellen in Software verantwortlich sind.

In der Low-Level-Programmierung, beispielsweise für direkte Interaktionen mit dem Betriebssystem, kommt Rust dabei jedoch an seine Grenzen. Als Ausweg existiert das Keyword unsafe, das unter anderem das Verbot aufhebt, Raw Pointer zu dereferenzieren.

Unsafe Rust heißt nicht, dass der Code unsicher ist, aber dass einige Memory-Safety-Konzepte nicht greifen. So kann die Dereferenzierung eines Raw Pointer zu undefiniertem Verhalten führen, falls der Code den Zeiger vorher nicht ausreichend überprüft.

Neben als unsafe gekennzeichneten Funktionen bietet Rust sogenannte Safe Abstractions: Eine Funktion gilt als sicher, obwohl sie unsafe-Code enthält. Dabei ist die Funktion selbst dafür verantwortlich, dass der interne unsafe-Block nicht zu undefiniertem Verhalten führt. Ein ausführliches Beispiel findet sich in der Rust-Dokumentation.

Anzeige

Laut AWS hat die Standardbibliothek von Rust etwa 35.000 Funktionen, von denen 7500 als unsafe gekennzeichnet sind. Weitere 3000 sind Safe Abstractions. Bei der Core-Library von Rust mit etwa 21.000 Funktionen zählt AWS 7000 als unsafe markierte und zusätzlich 1700 Safe Abstractions.

In den letzten drei Jahren wurden 57 Issues zur Sicherheit der Rust-Standard-Libary gestartet, und es gab 20 CVE-Einträge (Common Vulnerabilities and Exposures).

Der von AWS gestartete Wettbewerb setzt auf Crowdsourcing, um die Sicherheit der Standard-Library zu verbessern.

Eine Reihe von Challenges dient dazu, einzelne Bereiche der Library zu überprüfen. Für erfolgreich abgeschlossene Herausforderungen zahlt AWS finanzielle Belohnungen, deren Höhe der Blogbeitrag nicht näher beziffert.

Als Beispiel für eine Herausforderung führt der Beitrag die "Challenge 10: Memory safety of String" auf, um die Safe Abstraction der insert-Funktion von std::string::String zu überprüfen:

pub fn insert(&mut self, idx: usize, ch: char) { assert!(self.is_char_boundary(idx)); let mut bits = [0; 4]; let bits = ch.encode_utf8(&mut bits).as_bytes(); unsafe { self.insert_bytes(idx, bits); } }

Dabei gilt es die Implementierung der im unsafe-Block verwendeten Funktion insert_bytes zu verifizieren:

unsafe fn insert_bytes(&mut self, idx: usize, bytes: &[u8]) { let len = self.len(); let amt = bytes.len(); self.vec.reserve(amt); unsafe { ptr::copy(self.vec.as_ptr().add(idx), self.vec.as_mut_ptr().add(idx + amt), len - idx); ptr::copy_nonoverlapping(bytes.as_ptr(), self.vec.as_mut_ptr().add(idx), amt); self.vec.set_len(len + amt); } }

Jede Herausforderung hat eine Liste von Kriterien, die erfolgreich überprüft werden müssen, um die Sicherheit zu gewährleisten. AWS listet in seinem Blogbeitrag einige Tools aus, die sich auf unterschiedliche Weise eignen, die Funktionen zu verifizieren.

Für den Wettbewerb hat AWS ein GitHub-Repository erstellt, das sowohl die Challenges als auch einen Fork der Standard-Library aufweist. Dieser Fork dient explizit nicht als Alternative zu den offiziellen Rust-Releases, sondern nur dazu, die Herausforderungen durchzuführen.

Weitere Details lassen sich dem AWS-Blog und der Ankündigung der Rust Foundation entnehmen.

(Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.)

(Ursprünglich geschrieben von Rainald Menge-Sonnentag)
×
Stay Informed

When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.

Angriffe auf Citrix-Sicherheitslücke beobachtet
heise-Angebot: iX-Workshop: Angriffe auf Entra ID ...
 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Samstag, 01. November 2025

Die Comretix GmbH ist ein IT Systemhaus aus Tuttlingen. Seit über 30 Jahren betreuen wir unsere Kunden in Baden-Württemberg, der Schweiz und im gesamten Bundesgebiet mit Leidenschaft, Fairness und Loyalität. Wir bauen auf eine zuverlässige Partnerschaft mit unseren Lieferanten und Kunden. Unseren Mitarbeitern stehen wir auf Augenhöhe gegenüber.

Comretix GmbH Logo