Googles Safe-Coding-Strategie verspricht Investitionsschutz und Sicherheit
Das neue Programmier-Paradigma von Google soll die Sicherheit von großen Anwendungen nachweislich erhöhen. Rust spielt eine zentrale Rolle dabei.
- Robert Lippert
Dass Programmiersprachen wie Rust dazu beitragen, speicherbezogene Schwachstellen zu reduzieren, ist keine neue Idee. Google stellt in einem neuen Bericht vor, wie der Ansatz aber selbst in komplexen Projekten wie Android einen Mehrwert bringt, und nennt Safe Coding als strategisches Programmier-Paradigma.
Im aktuellen Bericht zu seiner Safe-Coding-Strategie hebt das Unternehmen hervor, dass der Anteil der Sicherheitslücken durch Speicherprobleme stark von der verwendeten Programmiersprache abhängt. Bei Android machten diese 2019 noch 76 Prozent aller Schwachstellen aus, sind aber bis 2024 auf 24 Prozent gesunken – deutlich unter dem Branchendurchschnitt von 70 Prozent.
Safe Coding erweitert die Sicherheitsstrategie
Bekannt ist, dass Speicherfehler oft schwerwiegendere Folgen haben als andere Fehlerkategorien. Typischerweise adressieren Entwickler diese Fehler mit reaktiven Maßnahmen, also mit einer Fehlerbehebung nach Bekanntwerden einer Schwachstelle. Die nächste Stufe zur Fehlervermeidung sind proaktive Abwehrmaßnahmen, wie Exploit Mitigations, die Angriffe erschweren, aber Performanceeinbußen mit sich bringen können. Schließlich setzen Entwicklungsteams noch auf proaktive Maßnahmen, zum Beispiel per Fuzzing oder Code-Analyse, was jedoch meist nur die Symptome von Schwachstellen lindert.
Doch diese Ansätze beantworten noch nicht die Frage, wie sich Maßnahmen bezahlbar skalieren und in große, wachsende Projekte integrieren lassen, deren Codebasen kontinuierlich anwachsen.
Google schlägt mit Safe Coding an dieser Stelle nun eine weitere Sicherheitsstrategie vor. Dieses Paradigma integriert Sicherheitsstandards direkt in den Entwicklungsprozess, was eine stärkere Kontrolle über Codeeigenschaften erlaubt und im Gegensatz zu den genannten Ansätzen eine kontinuierliche Sicherheit durch präventive Maßnahmen verspricht. Letztlich soll es das Risiko reduzieren, dass Sicherheitslücken überhaupt entstehen.
Ăśber 50 Prozent weniger Speicherfehler in Android
Den Teams bei Google war bekannt, dass die meisten Schwachstellen in neuem oder kürzlich geändertem Code auftreten. Studien legen zudem nahe, dass von nur rund drei Prozent aller Probleme auch ein kritisches Risiko ausgeht. Internen Simulationen nach ließe sich der Anteil der Speicherfehler signifikant reduzieren, wenn neue Entwicklungen in speichersicheren Sprachen erfolgen, selbst wenn die Menge unsicheren Codes insgesamt wächst.
Davon ausgehend hat sich das Android-Team seit 2019 darauf die Verwendung speichersicherer Sprachen konzentriert und das im Kern seiner Safe-Coding-Strategie verankert. Allein auf C++ zu setzen, ist schon seit einer Weile keine Option mehr fĂĽr Google.
Für Android bedeutete das erhebliche Investitionen in das Rust-Ökosystem (für die Interoperabilität zwischen Rust und C++, sowie zwischen Rust und Kotlin), unter anderem finanzieller Natur in Form einer Förderung von einer Million US-Dollar für die Rust Foundation.
Heute, knapp fünf Jahre später, blickt Google auf das Ergebnis seines Feldversuchs zurück. Und tatsächlich: Gegenüber 2019 ist die Anzahl an Speicherfehlern in Android von damals 76 Prozent auf heute 24 Prozent gefallen. Und dabei rechne sich Safe Coding auch in der Gesamtbetrachtung – so konnte Google nach eigenen Angaben
- das Wettrüsten aufbrechen: Anstatt ständig gegen Angreifer aufzurüsten, konzentriert sich Safe Coding darauf, von Anfang an sicheren Code zu entwickeln.
- Sicherheit als Standard etablieren: Safe Coding schafft ein hohes Sicherheitsniveau durch den Einsatz speichersicherer Sprachen wie Rust, ohne individuelle Anpassungen fĂĽr jedes Risiko.
- die Produktivität steigern: Fehler werden bereits in der Entwicklungsphase gefunden, was die Korrektheit des Codes verbessert. Als Beispiel nennt Google, dass Rust im Android-Team weniger als halb so viele Rollbacks wie C++ erfordert.
Interoperabilität statt Rewrite: Was Unternehmen von Google lernen können
Statt alten unsicheren Code komplett neu zu schreiben, setzt Google mit Safe Coding auf Interoperabilität, um speichersichere Sprachen wie Rust einzubinden. Das schütze bestehende Investitionen und erlaubt es, neue Funktionen schneller zu entwickeln. So verspricht das Paradigma nicht nur eine höhere Sicherheit, sondern verbessert zugleich die Produktivität der Entwicklerteams durch frühzeitiges Erkennen und Beheben von Fehlern.
Am 5. November findet zum vierten Mal die betterCode() Rust statt. Dieses Jahr steht die Embedded-Entwicklung im Fokus. Die von iX und dpunkt.verlag ausgerichtete Online-Konferenz zeigt, welche Vorteile Rust gerade fĂĽr kritische Systeme hat.
Das Programm bietet Vorträge zu folgenden Themen:
- Embedded Development mit Rust: Sicherheit und Leistung vereint
- Asynchrones Rust: Effizientere Embedded-Entwicklung
- Unsafe for Work
- Von 0 zur UI mit Slint
- Rust im Automotive-Bereich
- Safe and Open: Rust and RISC-V for Embedded Developers
Speziell Rust ist nicht nur bei Google beliebt. Microsoft sieht die Sprache im Windows-Kernel vor und auch Linux ergänzt Rust im Kernel.
Für die Zukunft rechnet Google damit, zudem weniger auf Patches und mehr auf präventive Sicherheit zu setzen, was dann auch die Effizienz erhöhen soll. Bereits der Fokus auf die Reduzierung neuer Schwachstellen habe sich für Android als effektiv erwiesen.
(who)