Weniger Android-Speicherschwachstellen dank Rust-Programmierung
Bekanntermaßen hat Google im Rahmen seines „Secure-by-Design“-Ansatzes einen Übergang zu speichersicheren Programmiersprachen wie Rust vollzogen. Wie das Unternehmen nun mitteilt, hat das dazu geführt, dass der Anteil der in Android entdeckten speicherbezogenen Schwachstellen innerhalb von sechs Jahren von sechsundsiebzig Prozent auf vierundzwanzig Prozent gesunken ist.
Der Technologiekonzern erklärte, dass der Fokus auf sicheres Programmieren bei neuen Funktionen nicht nur das allgemeine Sicherheitsrisiko einer Codebasis verringert, sondern auch den Umstieg „skalierbarer und kostengünstiger“ macht. Auf lange Sicht führt dies zu einem Rückgang von Sicherheitslücken im Speicher, da die Entwicklung von unsicherem Code nach einer gewissen Zeit abnimmt und zunehmend durch die Entwicklung von sicherem Code ersetzt wird, so Jeff Vander Stoep und Alex Rebert von Google in einem Beitrag.
Noch interessanter ist, dass die Anzahl der Sicherheitslücken im Speicher tendenziell abnimmt, obwohl der Anteil an neuem unsicherem Code steigt. Dieses Paradoxon lässt sich dadurch erklären, dass Sicherheitslücken mit der Zeit exponentiell abnehmen. Eine Studie zeigte, dass viele Schwachstellen häufig in neuem oder kürzlich geändertem Code zu finden sind. „Das Problem liegt größtenteils in neuem Code, weshalb eine grundlegende Veränderung der Art und Weise, wie wir Code entwickeln, notwendig ist“, erklärten Vander Stoep und Rebert. „Code reift und wird im Laufe der Zeit immer sicherer, wodurch der Nutzen von Maßnahmen wie Neuentwicklungen im Laufe der Zeit abnimmt, wenn der Code älter wird.“
Google kündigte bereits im April 2021 an, Rust in Android zu unterstützen und hat seit 2019 speichersichere Sprachen priorisiert. Dadurch sank die Anzahl der Speicher-Sicherheitslücken im Android-Betriebssystem von 223 im Jahr 2019 auf weniger als 50 im Jahr 2024. Es versteht sich von selbst, dass ein Großteil des Rückgangs solcher Schwachstellen auf Fortschritte in den Methoden zur Bekämpfung dieser Probleme zurückzuführen ist. Dabei hat sich der Ansatz von reaktivem Patchen hin zu proaktiver Schadensbegrenzung und zur proaktiven Entdeckung von Schwachstellen mit Tools wie Clang-Sanitizern entwickelt.
Der Tech-Gigant betonte, dass die Strategien zur Speichersicherheit weiterentwickelt werden sollten. Dabei soll der Fokus stärker auf die „High-Assurance-Prävention“ gelegt werden, indem die Sicherheit direkt in die Grundlagen des Codes integriert wird. „Statt uns auf Maßnahmen wie Abschwächungen und Fuzzing zu konzentrieren oder aus früheren Schwachstellen Prognosen für die Zukunft abzuleiten, ermöglicht uns sicheres Programmieren, klare Aussagen über die Eigenschaften des Codes zu treffen – und darüber, was dadurch passieren kann oder nicht“, erklärten Vander Stoep und Rebert.
Zusätzlich legt Google Wert auf die Feststellung, dass es auf Interoperabilität zwischen Rust, C++ und Kotlin setzt, anstatt den Code komplett neu zu schreiben. Dies sei ein „praktischer und schrittweiser Ansatz“, um speichersichere Sprachen einzuführen und bestimmte Arten von Schwachstellen dauerhaft zu eliminieren.
„Die Einführung von sicherem Programmieren in neuem Code stellt einen grundlegenden Wandel dar. Dieser erlaubt es uns, den natürlichen Rückgang von Schwachstellen zu nutzen – auch in großen, bestehenden Systemen“, so Google. „Das Prinzip ist einfach: Sobald wir neue Schwachstellen stoppen, nehmen sie mit der Zeit exponentiell ab. Dadurch wird unser gesamter Code sicherer, das Sicherheitsdesign effektiver, und die Skalierungsprobleme bei den aktuellen Speichersicherheitsstrategien werden reduziert. Diese Strategien können dann gezielter und effizienter eingesetzt werden.“
Diese Entwicklung kommt, während Google eine engere Zusammenarbeit mit den Produktsicherheits- und Grafikprozessor-Teams (GPUs) von Arm ankündigt. Ziel ist es, Schwachstellen zu identifizieren und die allgemeine Sicherheit des GPU-Software- und Firmware-Stacks im Android-Ökosystem zu verbessern. Dabei wurden zwei Speicherprobleme im Treibercode des Pixel-Geräts (CVE-2023-48409 und CVE-2023-48421) sowie ein weiteres in der Firmware der Arm Valhall GPU und der 5. GPU-Generation (CVE-2024-0153) entdeckt. „Proaktives Testen ist eine bewährte Praxis, da es hilft, neue Schwachstellen zu erkennen und zu beheben, bevor sie ausgenutzt werden“, so Google und Arm.