Cybersicherheit

Google integriert Rust in das Pixel-10-Modem, um die Sicherheit der Mobilfunkbasis zu erhöhen

Google hat angekündigt, dass die Pixel-10-Serie die ersten Pixel-Geräte sein wird, die die speichersichere Sprache Rust in die Software des Mobilfunkmodems integriert, indem ein DNS-Parser durch eine in Rust geschriebene Komponente ersetzt wird. Nach Angaben des Unternehmens reduziert dieser Schritt eine ganze Klasse von Risiken durch Speicherfehler, obwohl die Komponente das Software-Image um etwa 371 Kilobyte vergrößert.

2026-04-10
4 Min. Lesezeit
6 Aufrufe
فريق تحرير certi.news
Google integriert Rust in das Pixel-10-Modem, um die Sicherheit der Mobilfunkbasis zu erhöhen

Die Pixel-10-Serie integriert erstmals bei Pixel-Geräten eine in der speichersicheren Sprache Rust geschriebene Komponente in die Software des Mobilfunkmodems, wie aus einem Beitrag im Google Security Blog hervorgeht. Dabei wird eine auf Rust basierende Implementierung des Domain Name Systems (DNS) in die Modem-Firmware aufgenommen, um das Risiko von Schwachstellen im Zusammenhang mit der Speichersicherheit in einem Teil zu verringern, der nicht vertrauenswürdige Daten verarbeitet.

Dieser Schritt ist Teil der Bemühungen von Google, das Mobilfunkmodem gegen Ausnutzung zu schützen. Das Unternehmen hatte das Pixel 9 mit Abwehrmaßnahmen gegen eine Reihe von Schwachstellen zur Speichersicherheit ausgestattet, ist jedoch der Ansicht, dass die Komplexität der Modem-Firmware und ihre große Angriffsfläche zusätzliche proaktive Maßnahmen erfordern. Google erklärte, dass Project Zero zuvor über das Internet eine Remote-Codeausführung auf Pixel-Modems erreichen konnte, während das Pixel-Modem Dutzende Megabyte ausführbaren Code enthält.

Warum hat Google einen DNS-Parser ausgewählt?

DNS wird nicht nur verwendet, um Browsern beim Auffinden von Websites zu helfen. Da moderne Mobilfunkkommunikation auf digitale Datennetze umgestellt wurde, hängen auch grundlegende Vorgänge wie die Weiterleitung von Anrufen von DNS-Diensten ab. Dieses komplexe Protokoll muss möglicherweise nicht vertrauenswürdige Daten analysieren, was es zu einem sensiblen Punkt macht, wenn es mit einer Sprache implementiert wird, der Speicherschutz fehlt. Laut dem Beitrag stand diese Art von Risiko im Zusammenhang mit der Schwachstelle CVE-2024-27227.

Google bewertete mehrere Open-Source-Pakete für eine DNS-Implementierung in Rust und wählte die Bibliothek hickory-proto aufgrund ihres Wartungsstands, einer Testabdeckung von über 75 % und ihrer Verbreitung in der Rust-Community aus. Die Bibliothek unterstützte zunächst nicht no_std, das für ressourcenbeschränkte oder ohne Betriebssystem arbeitende Umgebungen benötigt wird. Daher fügte Google diese Unterstützung der Bibliothek und einigen ihrer Abhängigkeiten hinzu. Die Arbeit führte außerdem zur no_std-Unterstützung für den URL-Parser im Projekt rust-url.

Größenkosten und Integration in die bestehende Software

Eine Größenanalyse zeigte, dass die in Rust geschriebene Middleware-Komponente 4 Kilobyte benötigt, während die Komponenten core, alloc und compiler_builtins 17 Kilobyte benötigen. Die Bibliothek hickory-proto und ihre Abhängigkeiten verbrauchen 350 Kilobyte, was insgesamt 371 Kilobyte ergibt. Google ist der Ansicht, dass die Größe des Speichers im Pixel-Modem keine strengen Einschränkungen auferlegt, und bevorzugte daher in dieser Phase die Unterstützung durch die Community und die Codequalität gegenüber einer Größenoptimierung. Das Unternehmen wies jedoch darauf hin, dass die Vergrößerung für andere eingebettete Systeme ein Hindernis darstellen könnte und sich künftig durch Compileroptionen reduzieren lässt, mit denen nicht benötigte Funktionen ausgeschlossen werden.

Um Rust in die bestehende Codebasis in C und C++ zu integrieren, verwendete das Team Unit-Tests zur Überprüfung grundlegender Rechenoperationen, der dynamischen Speicherzuweisung und der Schnittstellen für die Sprachverknüpfung. Außerdem entschied es sich, die Rust-Kompilierungsschritte direkt in das bestehende Build-System zu integrieren, anstatt über Cargo separate statische Bibliotheken zu erstellen, da dieser Ansatz bei der Hinzufügung weiterer Rust-Komponenten leichter skalierbar ist und die Wahrscheinlichkeit von Symbolkonflikten verringert.

Das grundlegende Build-System basiert auf Pigweed, während FFI-Schnittstellen verwendet wurden, um das im Firmware-Code vorhandene Speicherzuweisungssystem mit der alloc-Komponente in Rust zu verbinden und außerdem die Behandlung von Abstürzen zwischen Rust und C/C++ zu vereinheitlichen. Beim Verknüpfen trat ein Problem mit der Leistung und dem Energieverbrauch auf, weil die für das Modem optimierten Implementierungen der Funktionen memset und memcpy durch Implementierungen aus compiler_builtins ersetzt wurden. Das Team behob das Problem, indem es die compiler_builtins-Dateien vor dem Verknüpfungsschritt aus der statischen Bibliothek entfernte.

DNS-Schnittstelle und nächster Schritt

Google definierte eine API in C zur Verarbeitung von DNS-Antworten und implementierte sie anschließend in Rust. Nach der Analyse der Antwort ruft die Komponente die vorhandenen C-Funktionen auf, um die von der ursprünglichen Software verwendeten Datenstrukturen zu aktualisieren. Für die erforderlichen Bindings bei komplexen Konvertierungen zwischen Datentypen wurde das Tool bindgen verwendet.

Google zufolge stellt die Pixel-10-Serie einen wichtigen Meilenstein dar, da sie die ersten Pixel-Geräte ist, die eine speichersichere Sprache in das Modem integrieren. Das Ziel besteht nicht nur darin, einen einzelnen Parser zu ersetzen. Das Unternehmen ist vielmehr der Ansicht, dass das Projekt die Grundlage dafür schafft, künftig weitere Parser und Komponenten in speichersicheren Sprachen in die Mobilfunk-Codebasis aufzunehmen.

Nachrichtenquelle
Google Security Blog
Originalquelle öffnen ↗
ف
Autor

فريق تحرير certi.news

Aus derselben Kategorie

Das könnte Sie interessieren

Alle Nachrichten anzeigen