Zum Hauptinhalt Zur Navigation

Google: Chrome testet Rust und sicheres C++

Die Mehrheit der schweren Sicherheitslücken in Chrome wird durch Speicherfehler verursacht. Das Team sucht nun nach weitgehenden Lösungen.
/ Sebastian Grüner
39 Kommentare News folgen (öffnet im neuen Fenster)
Das inoffizielle Maskottchen der Rust-Community ist eine Krabbe namens Ferris. (Bild: RODRIGO BUENDIA/AFP via Getty Images)
Das inoffizielle Maskottchen der Rust-Community ist eine Krabbe namens Ferris. Bild: RODRIGO BUENDIA/AFP via Getty Images

Das Entwicklungsteam von Googles Chrome-Browser untersucht derzeit eine vielversprechende Technik, die Speicherfehler in dem Programm möglichst weitgehend verhindern soll. Immerhin sorgt allein diese Klasse von Fehlern für rund 70 Prozent der schweren Sicherheitslücken, wie es in der Ankündigung heißt(öffnet im neuen Fenster) . Um dies zu verhindern, testet das Team nun die Nutzung der Programmiersprache Rust sowie einige eigene Erweiterungen von C++.

Im Fall des bisher für den Chrome-Code genutzten C++ habe das Team prinzipiell zwei Möglichkeiten: die Überprüfung von Zeigern zur Compile-Zeit oder zur Laufzeit. Die erste Option scheint für das Team aber nicht realistisch. Dazu heißt es: "Leider ist die Sprache einfach nicht dazu konzipiert" . So hat das Team etwa damit experimentiert, einen Borrow-Checker für C++ zu bauen, der so ähnlich auch standardmäßig in Rust zum Einsatz kommt. Das gelang aber offenbar nicht zufriedenstellend.

Ebenso seien Überprüfungen zur Laufzeit nur bedingt einsetzbar, da dies die Leistung des Browser einschränke. Google setzt hier dennoch auf einige Verbesserungen, wie etwa den sogenannten MiraclePtr(öffnet im neuen Fenster) . Dabei handele es sich um smarte Pointer, die vor allem Use-after-Free-Bugs verhindern sollen. Ebenso nutzt das Team einen sogenannten Hardened-Mode(öffnet im neuen Fenster) in seiner Abseil-C++-Bibliothek .

Überlegungen zu Rust in Chrome

Als letzte Möglichkeit bleibe dann noch der Wechsel auf eine Sprache, die Speichersicherheit biete. Hier bietet sich eben Rust an. Noch gebe es aber viele offenen Fragen für das Chrome-Team zur Integration von Rust mit C++. Das Team schreibt dazu: "Selbst wenn wir morgen mit dem Schreiben neuer großer Komponenten in Rust beginnen würden, würden wir wahrscheinlich viele Jahre lang keinen signifikanten Teil der Sicherheitslücken beseitigen. Und können wir die Sprachgrenze so sauber gestalten, dass wir Teile bestehender Komponenten in Rust schreiben können? Wir wissen es noch nicht."

Details und weitere technische Überlegungen zu der Nutzung von Rust in Chrome(öffnet im neuen Fenster) hat das Team in einem eigenen Dokument zusammengefasst. Darüber hinaus hat das Team intern bereits damit begonnen, nicht-öffentliche Chrome-Builds mit Rust-Experimenten zu erstellen. Dies werde zunächst aber noch in einer experimentellen Phase bleiben. Wann und ob dies also auch Endnutzer erreicht, ist derzeit noch nicht klar.


Relevante Themen