Sichere Pixel dank Rust: Google integriert DNS in Modem und reduziert Angriffsoberfläche

Veröffentlicht 4 min de lectura 81 Lesen

Google hat einen bemerkenswerten Schritt beim Schutz seiner Pixel-Handys durch die Integration eines DNS-Analysators in Rust in die Modem-Firmware gemacht. Dies ist eine Entscheidung, die nicht nur spezifische Risiken in einem kritischen Teil des Kommunikationsstapels reduziert, sondern auch als praktisches Experiment darüber dient, was es bedeutet, Sprachen mit Speichersicherheit auf Schichten nahe der Hardware zu bringen.

Rust bietet Sicherheitsgarantien gegen klassische Speicherfehler B. Pufferüberläufe oder Off-Range-Zugriffe, die genau die Schwachstellen sind, die oft Remote-Angriffe auf den Baseball (der Prozessor, der Zellradios behandelt) erlauben. Deshalb entschied sich Google für die Implementierung des DNS-Parsers mit einer Bibliothek in Rust: Die Verwaltung von DNS-Paketen ist eine grundlegende Abhängigkeit von modernen mobilen Netzwerken und, wenn es mit Code gemacht wird, der Speicher nicht schützt, kann es ein Gateway für Exploits werden.

Sichere Pixel dank Rust: Google integriert DNS in Modem und reduziert Angriffsoberfläche
Bild generiert mit IA.

Die Toolbox, die Google auf dem Modem implementiert hat, ist nicht auf Rust beschränkt. In den letzten Jahren hat das Unternehmen den intensiven Einsatz von Sanitizern dokumentiert, um unbestimmte Verhaltensweisen in der Umsetzungszeit zu erkennen - Werkzeuge wie das LLVM / Clang Projekt zur Erkennung von Überläufen und Grenzverletzungen während der Entwicklung - und andere spezifische Maßnahmen zur Minderung von Angriffen auf alte Technologien wie 2G. Wenn Sie einsteigen wollen, wie diese Sanitizer funktionieren, ist die LLVM-Dokumentation ein guter Ausgangspunkt: https: / / clang.llvm.org / docs / Sanitizers.html.

Das technische Ziel dieser Migration ist klar: die "Angriffsfläche", die entsteht, wenn kritische Komponenten in Sprachen implementiert bleiben, die Speicherfehler zulassen. Google hat darauf hingewiesen, dass einige reale Schwachstellen in Netzwerkkomponenten einen genauen Zugriff außerhalb der Speichergrenzen ausgenutzt haben; ein Beispiel, das mit seinem entsprechenden Eintrag im Sicherheitskatalog öffentlich identifiziert wird CVE-2024-27227 die die Art von Problemen zeigt, die diese Maßnahmen vermeiden wollen.

Um DNS in der eingeschränkten Modem-Umgebung zu implementieren, hat Google die Rust-Rate "Hickory-proto" angepasst, einen Client / Server / DNS in der Rust-Gemeinschaft entwickelt zu lösen. Die verwendete Version wurde geändert, um in "barem Metall" und geprägten Umgebungen zu laufen, was bedeutet, die üblichen Annahmen eines kompletten Betriebssystems zu ändern. Das Management von Einheiten, die durch diese Rate eingeführt wurden, wurde nach dem Unternehmen durch ein internes Werkzeug namens "cargo-gnaw" erleichtert, das hilft, mehr als 30 Einheiten aus der Integration zu lösen und zu halten.

Technische Integration folgte ein pragmatisches Interoperabilitätsmuster: Google erklärte die DNS-Antwort-Pasing-Schnittstelle in C und implementierte sie dann in Rust. Rust gibt einen ganzen Code zurück, der das Ergebnis der Operation darstellt; wenn es notwendig ist, die Datenstrukturen im Speicher, die bereits durch den vorhandenen C-Code verwaltet werden, zu aktualisieren, ruft die Rust-Implementierung die vorherigen C-Funktionen an, um diese Modifikationen vorzunehmen. Dieser hybride Ansatz vermeidet ein vollständiges Neuschreiben der validierten C-Code-Basis und ermöglicht eine inkrementelle Annahme von sicheren Code durch Speicher.

Die Annahme von Rust in einer Firmware mit begrenzten Ressourcen bringt jedoch auch Herausforderungen. Rust's Kisten sind nicht immer für Umgebungen mit Code-Größe und Speicher Einschränkungen konzipiert; daher Google schlägt vor, dass zusätzliche Optimierung durch Verwendung charakteristischer Flaggen erreicht werden kann, die es Ihnen erlauben, nur die notwendigen Elemente zu kompilieren, wodurch die binäre Footprint und die Oberfläche durch unnötigen Code freigelegt werden.

Neben dem konkreten Fall des DNS-Parsers ist diese Arbeit Teil eines breiteren Trends: Die Embedded-Software- und Mobile-Betriebssystemindustrie erforscht und übernimmt zunehmend Sprachen und Techniken, die die gefährlichsten Fehlerklassen begrenzen. Android, zum Beispiel, hält Dokumentation und Anleitungen auf seiner Strategie der Annahme sicherer Sprachen in kritischen Teilen des Systems: https: / / source.android.com / docs / sicherheit / speichersicherheit. Und Rusts eigene Sprache, die als Priorität mit Gedächtnissicherheit geboren wird, erklärt auf seiner Website, warum dieses Modell viele der klassischen Fehler reduziert: https: / / www.rust-lang.org.

Sichere Pixel dank Rust: Google integriert DNS in Modem und reduziert Angriffsoberfläche
Bild generiert mit IA.

Welche praktischen Auswirkungen hat dies für Nutzer und Industrie? Kurzfristig bedeutet es, dass Geräte wie Pixel 10 besseren Ausbeutungsversuchen widerstehen können, die versuchen, das Modem zu kompromittieren. Mittel- und langfristig wird die Erfahrung, kritische Komponenten in Rust zu tragen und zu betreiben, wertvolle Erkenntnisse über Interoperabilität, Einheitsmanagement und Optimierung für eingeschränkte Umgebungen liefern und weitere Teile des Systems - sowohl auf Android als auch auf anderen Produkten - mit strengeren Sicherheitsgarantien codieren können.

Dies ist keine magische Lösung, sondern ein bedeutender Fortschritt: Die Reduzierung der gesamten Sicherheitsklassen durch Entscheidungen über Sprache und Architektur verbessert die Sicherheitsposition des Geräts von seiner Basis. Der Schlüssel wird nun sein, Wartungskosten, Auswirkungen auf die Firmware-Größe und Best Practices zu verstehen, um Rust und C-Code in kritische Komponenten zu kombinieren, ohne neue Fragmente einzuführen.

Wenn Sie Interesse daran haben, über historische Schwachstellen von Baseball- und Sicherheitsstudien über Mobilfunk sowie über die technischen Initiativen von Google in diesem Bereich zu lesen, können Sie die öffentlichen Inputs und Ressourcen der Gesellschaft und der Sicherheitsgemeinschaft konsultieren: Googles Sicherheits-Blog und Android-Dokumentation sind gute Ausgangspunkte zu vertiefen. Ein Beispiel für die offizielle Dokumentation über Android-Sicherheit ist auf https: / / source.android.com / Sicherheit, die Berichte und Anleitungen im Zusammenhang mit diesem Aufwand sammelt.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.