Rust hat C/C++ beim Umfang des in die Android-Plattform integrierten Codes überholt

Google hat die Nutzung von Rust-Komponenten in der Android-Plattform ausgewertet. Die Strategie zur Implementierung sicherer Entwicklungsmethoden für neuen Code in Android war erfolgreich. Im Jahr 2025 lag zum ersten Mal der Anteil der durch speicherbezogene Fehler verursachten Sicherheitsanfälligkeiten unter 20 % der Gesamtanzahl. Zum Vergleich lag dieser Wert in Android im Jahr 2024 bei 24 % und im Jahr 2019 bei 76 %. Der Branchendurchschnitt bleibt jedoch bei etwa 70 %.

Rust hat C/C++ beim Umfang des in die Android-Plattform integrierten Codes überholt

Die Verwendung von Rust-Code bei der Entwicklung von Systemkomponenten in Android begann im Jahr 2020. Im Jahr 2025 überschritt das Volumen des neuen Rust-Codes in Android das jährliche Volumen des hinzugefügten C- und C++-Codes.

Rust hat C/C++ beim Umfang des in die Android-Plattform integrierten Codes überholt

Die gesammelten Statistiken bestätigen die zuvor geäußerte Annahme, dass neuer Code die Hauptquelle für Sicherheitsprobleme darstellt, während bei altem Code eine exponentielle Abhängigkeit der Sicherheit von der Zeit beobachtet wird – mit der Zeit werden im alten Code immer seltener Fehler entdeckt. Letztendlich hat Google beschlossen, nicht zu versuchen, den alten Code in speichersicheren Sprachen neu zu schreiben, sondern sich darauf zu konzentrieren, solche Sprachen für neuen Code zu verwenden.

Neben der Sicherheit hat die Implementierung von Rust auch positive Auswirkungen auf die Geschwindigkeit, Produktivität und Qualität der Entwicklung. Für Rust-Code wurden viermal weniger Rollbacks aufgrund unerwarteter Fehler verzeichnet, und die Überprüfungszeit wurde um 25 % reduziert.

Rust hat C/C++ beim Umfang des in die Android-Plattform integrierten Codes überholt
Rust hat C/C++ beim Umfang des in die Android-Plattform integrierten Codes überholt

Bei der Integration von Änderungen vergleichbarer Größe in Android erfordern Änderungen in Rust etwa 20 % weniger Überarbeitungen als ihre Entsprechungen in C++.

Rust hat C/C++ beim Umfang des in die Android-Plattform integrierten Codes überholt

Diese Zahlen erklären sich durch die vereinfachte Testung und die frühzeitige Fehlerentdeckung in der Entwicklung, bei der Fehler aufgezeigt werden, noch bevor der Entwickler mit der Überprüfung des Codes beginnt. Darüber hinaus wurde durch den Wegfall von Overhead für die Sandbox-Isolierung im Rust-Code eine Leistungssteigerung erzielt.

In jüngsten Projekten zur Nutzung von Rust in Android wurde im Linux-Kernel 6.12 der erste weit verbreitete Treiber in der Programmiersprache Rust implementiert. Zudem wird Rust bei der Entwicklung von Firmware und Anwendungssoftware eingesetzt. Neben dem bereits im Kernel verwendeten Rust-Treiber wird gemeinsam mit den Unternehmen ARM und Collabora ein neuer GPU-Treiber in dieser Sprache entwickelt. Implementiert in Rust wurde auch das Protokoll Nearby Presence in den Google Play Services, das lokale Geräte über Bluetooth erkennt. Für die nächste Version der Google Messages-App ist eine neue Implementierung des MLS-Protokolls, geschrieben in Rust, geplant. Im Browser-Engine Chromium kommen Parser in Rust für Web-Schriften, PNG-Bilder und das JSON-Format zum Einsatz.

Derzeit sind in Android etwa 5 Millionen Zeilen Code in Rust geschrieben, wobei lediglich eine potenzielle Schwachstelle festgestellt wurde, die durch Speicherprobleme verursacht wird. Damit beträgt die Dichte solcher Schwachstellen im Rust-Code 0,2 Schwachstellen pro Million Zeilen Code. Zum Vergleich: Bei Code in C und C++ liegt dieser Wert bei etwa 1000 Schwachstellen pro Million Zeilen Code. Eine der Hauptursachen für Probleme in Rust sind Codebestandteile in unsafe-Blöcken. Der Anteil solcher Codes wird auf 4 % des gesamten in Rust geschriebenen Codes geschätzt.

Die oben erwähnte Schwachstelle CVE-2025-48530 wurde in der Crabby Avif-Bibliothek gefunden, die einen Parser und Decoder für das Avif-Format umfasst. Das Problem wurde von Mitarbeitern von Google vor der Veröffentlichung des Releases identifiziert und betraf keine Benutzer. Die Schwachstelle wurde durch einen Fehler in einem unsafe-Block verursacht, der zu einem Pufferüberlauf führte. Es wird angemerkt, dass selbst wenn der Fehler nicht bemerkt worden wäre, dessen Ausnutzung durch das in Android integrierte Scudo-Speicherverteilungssystem, das standardmäßig in Firmware für Google Pixel und einige andere Geräte verwendet wird, blockiert worden wäre.

Quelle: opennet.ru

60GB SSD 8Gb DDR4