Das DNS-Protokoll wird meist mit dem Surfen im Internet in Verbindung gebracht, spielt aber auch in der modernen Mobilfunktechnik eine wichtige Rolle. Funktionen wie die Rufumleitung greifen heute auf DNS-Dienste zurück.
Genau hier sieht Google ein Risiko: „DNS ist ein komplexes Protokoll und erfordert das Parsen nicht vertrauenswürdiger Daten, was zu Schwachstellen führen kann — besonders, wenn es in einer nicht speichersicheren Sprache umgesetzt ist", erklärt das Unternehmen. Die Implementierung des DNS-Parsers in Rust verringere die mit Speicherunsicherheit verbundene Angriffsfläche.
Für die Umsetzung wählte Google die Bibliothek hickory-proto. Diese passte das Unternehmen für den Einsatz auf Bare-Metal- und eingebetteten Systemen an, kompilierte die benötigten Rust-Crates, beseitigte Leistungsprobleme und implementierte schließlich die nötige API-Funktion zum Parsen von DNS-Antworten.
Google begründet den Schritt mit der zunehmenden Bedeutung des Mobilfunkmodems als Angriffsziel. „Der neue Rust-basierte DNS-Parser senkt unser Sicherheitsrisiko erheblich, indem er in einem riskanten Bereich eine ganze Klasse von Schwachstellen ausschließt und zugleich die Grundlage für einen breiteren Einsatz speichersicheren Codes in anderen Bereichen legt", so das Unternehmen.
Die Pixel-10-Reihe ist nach Angaben von Google das erste Produkt, das die speichersichere Sprache im Modem einsetzt. Damit baut der Konzern auf seiner bereits zuvor angekündigten Strategie auf, Rust in hardwarenahe Firmware einzuführen, um Speichersicherheitsfehler im klassischen C- und C++-Code zu vermeiden.
Das Projekt beschränke sich nicht auf den Austausch einer einzelnen riskanten Angriffsfläche, betont Google: „Dieses Projekt legt das Fundament für die künftige Integration speichersicherer Parser und speichersicheren Codes in das Mobilfunk-Baseband und stellt sicher, dass sich dessen Sicherheitsniveau mit fortschreitender Entwicklung weiter verbessert."