Google hat die Nutzung von Rust-Komponenten auf der Android-Plattform ausgewertet. Die Strategie zur Implementierung sicherer Entwicklungsmethoden für neuen Code in Android war erfolgreich. Im Jahr 2025 lag der Anteil der Sicherheitsanfälligkeiten, die durch Speicherfehler verursacht wurden, erstmals unter 20 % aller Sicherheitsanfälligkeiten. Zum Vergleich: Im Jahr 2024 betrug dieser Wert in Android 24 %, während er 2019 bei 76 % lag. Der Durchschnittswert in der Industrie bleibt jedoch bei 70 %.

Die Verwendung von Rust-Code zur Entwicklung von Systemkomponenten in Android begann im Jahr 2020. Im Jahr 2025 übertraf das Volumen des neuen Codes in Rust in Android erstmals die Menge des jährlich hinzuzufügenden Codes in C und C++.

Die gesammelten Statistiken bestätigen die zuvor geäußerte Annahme, dass der Hauptmotor für Sicherheitsprobleme neuer Code ist. Bei älterem Code zeigt sich eine exponentielle Abhängigkeit der Sicherheit von der Zeit — im Laufe der Zeit werden in altem Code immer seltener Fehler gefunden. Letztendlich entschied Google, den alten Code nicht in speichersicheren Programmiersprachen neu zu schreiben, sondern sich darauf zu konzentrieren, solche Sprachen für neuen Code zu nutzen.
Neben der Sicherheit hat die Einführung von Rust positive Auswirkungen auf Geschwindigkeit, Produktivität und Qualität der Entwicklung gehabt. Für Rust-Code wurden viermal weniger Rollbacks aufgrund unerwarteter Fehler verzeichnet, zudem gab es eine Reduzierung der Prüfzeiten um 25%.


Bei Änderungen vergleichbarer Größe in Android benötigen Änderungen in Rust etwa 20% weniger Revisionen als ihre C++-Äquivalente.

Diese Werte erklären sich durch die Vereinfachung der Tests und die Verschiebung der Fehlererkennung in frühere Entwicklungsphasen, in denen Fehler auffallen, bevor der Entwickler mit der Codeüberprüfung beginnt. Zudem konnte durch den Verzicht auf Overhead für die Sandbox-Isolierung im Rust-Code eine Leistungssteigerung erzielt werden.
Aus jüngsten Projekten, die Rust in Android verwenden, ist zu erwähnen, dass im Linux-Kernel 6.12 der erste weit verbreitete Treiber in Rust implementiert wurde. Außerdem wird Rust bei der Entwicklung von Firmware und Anwendung verwendet. Neben dem bereits im Kernel eingesetzten Rust-Treiber wird gemeinsam mit den Unternehmen ARM und Collabora ein neuer GPU-Treiber in dieser Sprache entwickelt. In den Google Play Services wurde der Nearby Presence-Protokoll, der lokale Geräte über Bluetooth erkennt, in Rust implemented. Für die nächste Version der Google Messages-App ist die Integration einer neuen Implementierung des MLS-Protokolls, die in Rust geschrieben wurde, geplant. Im Browser-Engine Chromium sind Rust-basierte Parser für Webfonts, PNG-Bilder und das JSON-Format integriert.
Derzeit sind in Android etwa 5 Millionen Zeilen Code in Rust geschrieben, wobei nur eine potenzielle Schwachstelle festgestellt wurde, die durch Probleme im Umgang mit dem Speicher verursacht wurde. Somit lag die Dichte solcher Schwachstellen im Rust-Code bei 0,2 Schwachstellen pro Million Zeilen Code. Zum Vergleich: In C- und C++-Code liegt dieser Wert bei etwa 1000 Schwachstellen pro Million Zeilen Code. Die Hauptquelle für Probleme in Rust ist der Code, der sich in unsafe-Blöcken befindet. Der Anteil solcher Codes wird auf 4 % des gesamten in Rust geschriebenen Codes geschätzt.
Die oben genannte Schwachstelle CVE-2025-48530 wurde in der Bibliothek Crabby Avif gefunden, die einen Parser und Decoder für das Avif-Format enthält. Das Problem wurde von Google-Mitarbeitern vor der Veröffentlichung des Releases entdeckt und betraf keine Nutzer. Die Schwachstelle wurde durch einen Fehler im unsafe-Block verursacht, der zu einem Pufferüberlauf führte. Es wird angemerkt, dass selbst wenn der Fehler unentdeckt geblieben wäre, dessen Ausnutzung durch das in Android integrierte Scudo-Speicherverteilungssystem, das standardmäßig in den Firmware-Versionen für Google Pixel und einige andere Geräte aktiv ist, blockiert worden wäre.
Quelle: opennet.ru
