Computersprachen aus den Siebzigern und Achtzigern sind schuld an rund zwei Dritteln aller Sicherheitslücken in moderner Software. Nun drängen Nachrichtendienste und Militär auf einen Umstieg. Aber das letzte Wort dürfte Donald Trump haben.

Ein Grossteil der Sicherheitslücken in moderner Software ist auf alte Programmiersprachen zurückzuführen. Geheimdienste wollen das Problem endlich an der Wurzel packen.
Es kommt selten vor, dass ein kanadischer Sozialist etwas erfindet, was die NSA, das FBI und das Pentagon gleichermassen begeistert. Aber genau das hat der Informatiker Graydon Hoare geschafft.
Welche Programmiersprachen Softwareentwickler benutzen, hat meist wirtschaftliche, oft technische, manchmal emotionale Gründe. Selten ist die Wahl der Programmiersprache jedoch eine Sache der nationalen Sicherheit. Hoare erfand eine Sprache, die unter all diesen Gesichtspunkten überzeugt.
2006 war der 29-jährige Hoare bei Mozilla angestellt und baute mit am Firefox-Browser. In seiner Freizeit tüftelte er an Rust. So nannte er seine neue Programmiersprache – wohl in Anlehnung an die besonders robusten und fortpflanzungsfähigen Rostpilze.
In seinem Job schrieb Hoare täglich Programme in C++, einer in den Achtzigern erfundenen Programmiersprache, die ihn regelmässig in die Verzweiflung trieb. Mit Rust wollte er sich selbst und andere frustrierte C++-Entwickler erlösen.
Die Sprache eines Nostalgikers
Dass C++ eine alte Sprache war, dürfte Hoare wenig gestört haben. In Interviews bezeichnet sich der bekennende Linke schliesslich als Nostalgiker. Er liebt die Achtziger: sowohl ihre schlechten Filme als auch ihre typische, niedrig aufgelöste, monochrome Bitmap-Schriftart für Computerbildschirme. Seine Programme tippt er am liebsten auf nicht mehr lieferbaren Laptops.
Was Hoare aber vor allem ärgerte: Seine in C++ geschriebenen Programme waren immer wieder von den gleichen Fehlern durchsetzt. Und selbst einem geübten Programmierer wie ihm fiel es schwer, diese Fehler komplett zu vermeiden.
Mit Rust wollte Hoare ein paar guten Ideen aus alten, vergessenen Programmiersprachen eine neue Chance geben. Richtig kombiniert, könnten diese Ideen viele der Probleme lösen, die C++ verursachte, dachte er.
2009 war Hoare mit Rust so weit, dass er sich traute, die noch halbgare Erfindung seinen Vorgesetzten zu zeigen. Bei Mozilla kam dieser Embryo sofort gut an. Hoare bekam Geld und ein Team, um die Sprache weiterzuentwickeln. Die Gruppe liess sich in einem umfunktionierten Sitzungszimmer nieder, das fortan als «Höhle der Nerds» bekannt wurde.
2010 durfte Hoare Rust vor grösserem Publikum präsentieren. Auf der ersten Folie nannte der Nostalgiker seine neue Sprache eine «Technologie, die aus der Vergangenheit gekommen ist, um die Zukunft vor sich selbst zu retten».
Diese Zukunft ist jetzt.
C++ – und die etwas ältere, mit ihr verwandte Sprache C – ist immer mehr Programmierern ein Ärgernis. Und Rust, deren erste Version 2015 von Mozilla herausgebracht wurde, drängt sich zunehmend als Alternative auf. In Rust geschriebene Programme seien in der Regel weniger fehleranfällig und deshalb sicherer als jene in C und C++, sagt Josh Aas. Er ist Gründer und Direktor der gemeinnützigen Internet Security Research Group. Die Gruppe plädiert mit dem Projekt Prossimo für die Abkehr von C und C++ in sicherheitskritischer Internet-Software. Die Prossimo-Website warnt Firmen, die noch auf die alten Sprachen setzen: «Der Einsatz von C und C++ ist schlecht für die Gesellschaft, schlecht für Ihren Ruf und schlecht für Ihre Kunden.»
Eine Frage der nationalen Sicherheit
Gefährlich sind C und C++ auch nach Ansicht der US-Regierung. Die alten Sprachen gelten inzwischen sogar als Risiko für die nationale Sicherheit. Bereits 2022 warnte die NSA vor der in C- und C++-Software schlummernden Bedrohung. 2023 schlossen sich das FBI und die Behörde für Cyber- und Infrastruktursicherheit (CISA) sowie internationale Partner dieser Einschätzung an. Im Februar 2024 wies sogar das Weisse Haus auf das Problem hin. Und im Juli 2024 lancierte das Verteidigungsministerium ein Forschungsprojekt, um bestehende C-Programme mithilfe von KI in Rust umzuschreiben.
Der Grund dafür, dass die alten Sprachen in Ungnade gefallen sind, liegt in einer einfachen, aber nicht ganz neuen Erkenntnis: Programme, die in C und C++ geschrieben werden, kranken oft an sogenannten Speicherfehlern. Und gerade diese Art von Programmfehler verursacht einen Grossteil der Sicherheitslücken, die Cyberkriminelle ausnutzen, um Daten zu stehlen oder die Kontrolle über ganze IT-Systeme zu gewinnen.
«Wir stecken in einer Softwarekrise»
Speicherfehler entstehen, wenn Programme den Zugriff auf Daten im Arbeitsspeicher – so etwas wie das Kurzzeitgedächtnis des Computers – zu nachlässig regeln. Man denke zum Beispiel an eine To-do-Liste mit momentan zehn Einträgen und ein Programm, das es dem Nutzer erlaubt, den elften Eintrag abzurufen. Weil es keinen elften Eintrag gibt, kann das fehlerhafte Programm diesen auch nicht ausgeben. Dann kann es aber passieren, dass das Programm dafür ein Passwort herausgibt, das im Speicher direkt neben der To-do-Liste abgelegt ist. Für einen gewieften Hacker also ein gefundenes Fressen.
Ralf Jung, Professor für Informatik an der ETH Zürich
Ein weiterer häufiger Speicherfehler tritt auf, wenn mehrere Teile eines Programms gleichzeitig auf dieselben Daten im Arbeitsspeicher zugreifen und diese unkoordiniert verändern. Im besten Fall führt das Chaos zum Programmabsturz. «Im schlimmsten Fall erschleicht sich ein Cyberkrimineller Zugang zu Bereichen des Speichers, in denen er Ransomware oder andere Schadprogramme laufenlassen kann», sagt Ralf Jung, Professor für Informatik an der ETH Zürich.
In C und C++ müssen Programmierer weitgehend selber manuell sicherstellen, dass solche Fehler in ihren Programmen nicht vorkommen. Bei grösseren Softwareprojekten ist das dennoch aussichtslos. «Sehr oft werden die Fehler zu spät erkannt, nämlich dann, wenn das Programm bereits bei Nutzern im Einsatz ist», sagt Jung.
Laut Google, Microsoft und Apple waren 2019 rund 70 Prozent aller Sicherheitslücken in Android, Windows und den Apple-Betriebssystemen iOS und macOS Speicherfehlern zuzuschreiben.
Und einige der schlimmsten Cyberangriffe der letzten Jahrzehnte sind tatsächlich dieser Art von Fehler geschuldet. Der Slammer-Wurm von 2003, die als Heartbleed bekannte Sicherheitslücke in Webdiensten von 2014 und der Nordkorea zugeschriebene WannaCry-Angriff von 2017 sind nur ein paar prominente Beispiele.
Jamal Khashoggi wurde im Oktober 2018 in der saudischen Botschaft in Istanbul ermordet.
Auch beim Mord am saudiarabischen Journalisten und Regimekritiker Jamal Khashoggi im Jahr 2018 spielten Speicherfehler eine Rolle. Sie wurden ausgenutzt, um die Spyware Pegasus in die iPhones von Mitstreitern Khashoggis einzuschleusen und ihn so indirekt zu überwachen.
«Wir stecken in einer Softwarekrise», sagt Benjamin Titzer, Forscher in der Abteilung für Software- und Gesellschaftssysteme der Carnegie Mellon University in Pittsburgh. Die Sorge der Regierung hält er für gerechtfertigt. Schliesslich sei wegen der weitverbreiteten Softwarefehler auch kritische Infrastruktur verwundbar – vom Stromnetz über Spitäler bis hin zu Regierungsämtern. Im Falle eines heissen Cyberkriegs wären die Folgen laut Titzer verheerend.
«Jonglieren mit Kettensägen»
Die Allgegenwart von Speicherfehlern ist aus technischer Sicht leicht nachvollziehbar: C- und C++-Programme sind überall, weil die beiden Sprachen jahrzehntelang in manchen Anwendungen praktisch alternativlos waren. Wenn es darum geht, Systemsoftware zu schreiben – also etwa Betriebssysteme, Router- oder Verschlüsselungsprotokolle –, bieten die alten Sprachen unleugbare Vorteile. Die Programme laufen blitzschnell und verbrauchen wenig Speicherplatz. Das ist zum Beispiel für die Software in Autos entscheidend. Oder eben bei Betriebssystemen.
So ist das offene Betriebssystem Linux, das auf den schnellsten Supercomputern der Welt läuft, fast gänzlich in C geschrieben. Auf Linux basiert auch der Marktführer unter den Betriebssystemen für mobile Geräte, Android.
Die Schnelligkeit von C-Programmen hat allerdings oft einen Preis, nämlich das hohe Sicherheitsrisiko. Oder in den Worten des Linux-Erfinders und C-Programmierers Linus Torvalds: «Programmieren in C ist wie jonglieren mit Kettensägen.»
Ähnliches gilt laut Titzer auch für C++. «Die C++-Community verspricht seit Jahrzehnten bessere Sicherheit. Ehrlich gesagt: Sie hat nicht geliefert.» Und das habe einen einfachen Grund: Die Sprache ziele nach wie vor auf Leistung als oberste Priorität ab.
Jüngste Versuche, Varianten von C++ zu entwickeln, die mehr auf Speichersicherheit achten, sieht Titzer als verzweifelte Reaktion auf die wachsende Popularität von Rust. «Sie werden Lippenbekenntnisse abgeben und kleine Schritte machen. Aber sichere C++ zu versprechen, ist wie das Versprechen von sauberer Kohle oder gesundem Asbest.»
Tatsächlich schart sich hinter Rust inzwischen eine schnell wachsende Fangemeinde. Erhebungen zeigen: Allein zwischen 2023 und 2024 verdoppelte sich die Zahl der Rust-Nutzer. Inzwischen sind es mehr als vier Millionen «Rustaceans» weltweit. Bei Umfragen geben über 80 Prozent von ihnen an, die Sprache zu «lieben».
Inoffizielles Logo der Rust-Community, deren Mitglieder sich selbst «Rustaceans» nennen.
Erfolg dank streng durchgesetzten «Eigentumsrechten»
Der ETH-Professor Jung ist überzeugt: «Rust ist eine der besten Chancen, die wir haben, um die alten Probleme von C und C++ zu lösen.» Die grösste Stärke von Rust liegt laut Jung darin, Speicherfehler grundsätzlich unmöglich zu machen, ohne dass die Leistung darunter leidet. Dafür verantwortlich sei vor allem der Rust-Compiler.
Ein Compiler ist eine Art Übersetzer, der den vom Programmierer geschriebenen Code in eine Sprache überträgt, die Computer verstehen. Wenn der Rust-Compiler Speicherfehler in einem Programm findet, zwingt er den Programmierer, diese zu beheben. Erst dann kann das Programm überhaupt auf Computern ausgeführt werden.
Ironischerweise schafft der Rust-Compiler das nur, weil der Sozialist Hoare seine Sprache nach dem Prinzip klar definierter Eigentumsrechte ersann. Daten im Arbeitsspeicher können in Rust-Programmen jeweils nur durch exklusive Zugriffsrechte verändert werden. «Der Compiler prüft sozusagen das gesamte Vertragswerk eines Programms, bevor es überhaupt ausgeführt wird. So werden die meisten Speicherfehler frühzeitig abgefangen», sagt Jung. Die strenge Ordnung hilft, Programmabstürze zu verhindern – und Hacker fernzuhalten.
Big Tech nutzt die Vorteile von Rust bereits. Google beispielsweise programmiert seit 2019 vermehrt neue Teile von Android in Rust und anderen speichersicheren Sprachen. Seitdem ist die Anzahl jährlich entdeckter Sicherheitslücken durch Speicherfehler in Android von mehr als 200 auf weniger als 40 gesunken. Entwickler seien mit Rust auch produktiver, obwohl das Lernen der neuen Sprache etwas länger dauere. In Google-Software ist insbesondere C++ überall vorzufinden. Aber in einer Studie hielten Google-Forscher fest, langfristig sei es unrealistisch, dass C++ jemals strenge Garantien in Bezug auf Speichersicherheit biete.
Auch Microsoft schreibt seit einigen Jahren immer mehr Teile von Windows in Rust. Und Amazon setzt Rust längst in seiner Cloud-Software ein. Gefragt sind Rust-Entwickler auch bei SpaceX, Apple und Meta.
Aber den grössten Beleg für die technische Reife von Rust sehen Experten darin, dass die Sprache seit kurzem auch in Teilen des stark verbreiteten Linux-Betriebssystems verwendet wird. Das Linux-Team ist dafür bekannt, höchste Anforderungen an die Sprachen zu stellen, die es benutzt. Und jüngste Debatten zeigen, dass noch nicht alle in der Linux-Community vom Neuling Rust restlos überzeugt sind. Dabei sind die Einwände der Rust-Gegner oft emotionsgeladen. Im September sagte Linux-Chef Torvalds, der Streit um Rust habe «religiöse Züge» angenommen.
Fit für den politischen Härtetest?
Für die Zukunft von Rust dürften die politischen Prioritäten unter Trump mindestens genauso wichtig sein wie die breite Akzeptanz der Tech-Welt. Unter Biden waren grosse Initiativen in Gang, um Softwarehersteller zum Umstieg von den alten, unsicheren Sprachen auf sichere, moderne Alternativen wie Rust zu bewegen. Diese Bestrebungen wurden vor allem von der Cybersicherheitsbehörde (CISA) vorangetrieben. Deren Direktorin trat aber pünktlich zum Tag der Amtseinführung Trumps zurück. Und die Nachfolge muss Trump noch ernennen. Es erscheint unwahrscheinlich, dass die neue amerikanische Regierung den Softwareherstellern viele Regeln vorgeben wird.
Als brisant könnte sich auch herausstellen, dass Rust seit 2021 von einer Stiftung verwaltet wird, in der neben grossen amerikanischen Tech-Firmen auch der chinesische Konzern Huawei als Gründungsmitglied viel Einfluss hat. Die von Graydon Hoare als zäher Rostpilz konzipierte Sprache steht also vielleicht vor einer geopolitischen Zerreissprobe. Die Zukunft wird zeigen, ob sie diese auch besteht.