Zum Hauptinhalt Zur Navigation

Google: Rust führt zu weniger kritischen Lücken in Android

Wie zu erwarten, führt die Nutzung neuer Sprachen in Android zu weniger Speicherfehlern. Google sieht sich darin bestätigt, auf Rust zu setzen.
/ Sebastian Grüner
6 Kommentare News folgen (öffnet im neuen Fenster)
Rust zahlt sich aus. (Bild: Tobias Költzsch/Golem.de)
Rust zahlt sich aus. Bild: Tobias Költzsch/Golem.de

Das Security-Team von Google hat eine ausführliche Analyse zur Nutzung von Programmiersprachen mit garantierter Speichersicherheit in Android 13 veröffentlicht(öffnet im neuen Fenster) . Darin heißt es: "Wir sehen, dass die Anzahl der Speichersicherheitslücken in den letzten Jahren/Versionen erheblich zurückgegangen ist" . Dieser Trend stimme dabei mit dem Wechsel von Android hin zu sichereren Programmiersprachen überein.

In Android 13 sei die Mehrheit des neu geschriebenen Codes erstmals in einer Sprache verfasst, die Speichersicherheit biete. Dazu zählt Google Rust sowie Kotlin und Java. Im Gegensatz dazu stehen C und C++, die keine Garantien zur Speichersicherheit bieten und entsprechend anfällig sind, dass Sicherheitslücken ausgenutzt werden können.

Die Lücken mit Speicherfehlern sind für die Sicherheit von Android besonders brisant. Denn diese bilden zwar nur rund ein Drittel der insgesamt bekannt gewordenen Fehler, aber immer noch die Mehrheit der besonders kritischen Lücken, die sich auch ausnutzen lassen.

Das ist eine seit Jahren bekannte und vielfach mit Beispielen von Zero-Day-Angriffen untermauerte Statistik. Von Google wird dies auch immer wieder als Problem benannt . In Bezug auf die Auswertung in Android heißt es nun: "Mit dem Rückgang der Speicherfehler sehen wir einen entsprechenden Rückgang des Schweregrads der Schwachstellen."

Rust-Einführung sehr wahrscheinlich verantwortlich

Zwar könnte die verstärkte Nutzung von Sprachen mit Speichersicherheit und der Abfall an kritischen Lücken auch nur eine Korrelation sein. Google hält das aber für unwahrscheinlich. Schließlich sei der Zusammenhang sehr deutlich und stimme mit den geäußerten Erwartungen überein. Im April 2021 kündigte Google an, Rust zur Systemsprache in Android zu machen .

Die Verringerung der zahlreichen Lücken könne auch nicht allein durch die Einführung zahlreicher Sicherheitswerkzeuge für den Code in C und C++ erklärt werden. Schon deswegen nicht, weil sich trotz dieser Werkzeuge ein ähnlicher Trend in anderen Projekten nicht zeige. Google schreibt: "Wir glauben, dass der anhaltende Wechsel in Android von speicherunsicheren zu speichersicheren Sprachen ein wichtiger Faktor ist" . Dies betrifft wohl die Nutzung von Rust in nativen Codebereichen.

Immer mehr Rust in Android

Google verfolgt die Strategie, neuen nativen Code in Android möglichst oft in Rust zu schreiben. Für Android 13 umfasse das 21 Prozent des neuen Codes und etwa 1,5 Millionen Zeilen Code. Dies seien etwa Keystore2, die neue UWB-Unterstützung, DNS-über-HTTP3 oder das Android-Virtualisierungs-Framework.

Der Auswertung zufolge ist sich Google bewusst, dass es mit Rust künftig auch Speicherlücken geben kann, auch in explizit notwendigen unsicheren Code-Bestandteilen. Doch ähnlich wie bei der Umsetzung von Java samt JNI werde auch unsicherer Rust-Code besser geprüft. In einem von Google genannten Beispiel habe dies zur Entdeckung einer Race-Condition geführt, die dann verhindert werden konnte.

Eigenen Aussagen zufolge verfolgt Google auch künftig das Ziel, Rust überall in Android für nativen Code verwenden zu können. Mit der Aufnahme von Rust in den Linux-Kernel sollen künftig auch Kernel-Treiber für Android in Rust geschrieben werden, heißt es. Das Unternehmen unterstützt die Initiative zur Nutzung von Rust im Kernel und finanziert diese .


Relevante Themen