News

Softwareentwicklung – Behörden drängen zu sicheren Programmiersprachen

Softwareentwicklung – nicht alle Sprachen gelten als sicher

Die Sicherheitsagenturen der Vereinigten Staaten, Großbritanniens, Kanadas und Neuseelands, darunter NSA und FBI, raten zu einem Wechsel zu Programmiersprachen wie C#, Go, Java, Python, Rust oder Swift. Sie verlangen zudem von professionellen Softwareentwicklern die Veröffentlichung von Roadmaps für diesen Umstieg.

In diesem Blogbeitrag gehen wir auf die Hintergründe dieser Empfehlungen ein und beleuchten die Debatte über die Sicherheitsaspekte von C++.

Was von den Sicherheitsbehörden gefordert wird

Verschiedene internationale Sicherheitsbehörden haben kürzlich ein Dokument veröffentlicht, in dem sie kommerzielle Softwareentwickler zur Nutzung speichersicherer Programmiersprachen auffordern. Sie unterstreichen, dass Sicherheitsprobleme, insbesondere solche, die auf Speicherfehler wie Buffer Overflows oder die Verwendung nicht initialisierten oder bereits freigegebenen Speichers zurückzuführen sind, hauptsächlich Software betreffen, die in C oder C++ geschrieben ist. Diese Behörden appellieren an Softwarefirmen, einen detaillierten Plan für den Übergang zu speichersicherer Software zu erstellen und zu veröffentlichen.

Die Roadmap soll klar die einzelnen Schritte des Wechsels skizzieren, beginnend mit der Bewertung geeigneter Sprachen bis hin zum Überarbeiten von speicherunsicherem Code, inklusive Zeitplänen. Softwareunternehmen werden auch dazu aufgefordert, einen Zeitpunkt festzulegen, ab dem neuer Code ausschließlich in speichersicheren Sprachen geschrieben wird. Darüber hinaus sollen Pläne für die Schulung der Entwickler und den Umgang mit externen Abhängigkeiten, wie dem Einsatz von C- und C++-Bibliotheken, entwickelt und öffentlich gemacht werden.

Diese Programmiersprachen werden empfohlen

In der Veröffentlichung „The Case for Memory Safe Roadmaps“ wird der Übergang zu den als speichersicher geltenden Programmiersprachen C#, Go, Java, Python, Rust und Swift empfohlen. Dieses Dokument ist das Ergebnis einer gemeinsamen Arbeit mehrerer Behörden: der Cybersecurity and Infrastructure Security Agency (CISA), NSA und FBI aus den USA, dem Australian Cyber Security Centre (ACSC), dem Canadian Centre for Cyber Security (CCCS), dem britischen National Cyber Security Centre (NCSC-UK), dem National Cyber Security Centre aus Neuseeland (NCSC-NZ) und dem Computer Emergency Response Team Neuseelands (CERT NZ).

Kontroverse um die Sicherheit von C++

Im November 2022 veröffentlichte die NSA ein Bulletin, das die Speichersicherheit von C++ thematisierte. Daraufhin verteidigte Bjarne Stroustrup, der Erfinder von C++, die Programmiersprache öffentlich. Die NSA empfiehlt, von C und C++ Abstand zu nehmen, da Speicherprobleme in Software ein wesentlicher Faktor für ausgenutzte Schwachstellen seien, trotz strenger Tests zur Sicherstellung der Code-Sicherheit.

Stroustrup entgegnet, dass die von der NSA als „sicher“ bezeichneten Sprachen in seinen Augen für wichtige Anwendungsbereiche nicht besser als C und C++ seien. Er kritisiert, dass der Begriff „sicher“ in der NSA-Beschreibung nur auf Speichersicherheit beschränkt sei und andere Sicherheitsaspekte außer Acht lasse. Zudem bemängelt Stroustrup, dass die NSA C++ fälschlicherweise mit der älteren Sprache C gleichsetzt und dabei über 30 Jahre Fortschritte ignoriert.

Der Entwickler von C++ definiert Sicherheit als Typ- und Ressourcensicherheit, wobei jedes Objekt entsprechend seines Typs verwendet wird und keine Ressource verloren geht. Für C++ bedeutet dies unter anderem die Überprüfung des Laufzeitbereichs, die Vermeidung von Zugriffen über Dangling Pointer und den Missbrauch von Casts und Unions.

Er betont, dass C++ High-Level-Funktionen wie Container, Span, Range-for-Loops und Varianten bietet, die sowohl Produktivität als auch Effizienz steigern können, ohne die Sicherheit zu beeinträchtigen. Stroustrup merkt an, dass die von der NSA empfohlenen sicheren Sprachen anfällig für Schwächen durch nicht statisch verifizierten Code sein könnten. Zudem weist er darauf hin, dass jeder Softwarezugriff auf Hardware notwendig ist und ein effektiver Zugriff auf Hardware selten völlig sicher sei.

Ob Sie in C++ oder C# eigene Software entwickeln möchten, mit Microsoft Visual Studio bieten wir Ihnen die ideale Grundlage für Ihr Projekt. Auch das neue Microsoft Visual Studio 2022 Professional befindet sich in unserem umfangreichen Softwareangebot.

Daniel Rottländer

Recent Posts

Microsoft Visual Studio: Was sind Slash Commands?

Slash Commands in Microsoft Visual Studio einfach erklärt Slash Commands sind kurze Befehle für GitHub…

3 Tagen ago

Patch Tuesday im Juli 2026: 570 Gründe für ein Microsoft-Update

Microsoft beseitigt 570 Sicherheitsprobleme in Windows und weiteren Produkten Microsoft hat am 14. Juli 2026…

6 Tagen ago

NordVPN führt Anrufschutz gegen Betrugsanrufe ein

NordVPN Anrufschutz: So schützt die Funktion vor Betrugsanrufen NordVPN hat im Juni 2026 eine Anrufschutz-Funktion…

1 Woche ago

C-Laufwerk voll? So bringen Sie wieder Ordnung in Ihre Festplatte

C-Laufwerk voll – wie Sie das Problem mit professioneller Software lösen Das C-Laufwerk ist voll,…

2 Wochen ago

Microsoft Edge 150.0 – das sind die neuen Features

Microsoft Edge 150.0 – was Ihnen die neue Version bringt Microsoft Edge 150.0 ist da…

2 Wochen ago

IT-Wissen – was ist der Windows Server Manager?

IT-Grundlagen: Was sind die Funktionen vom Windows Server Manager? Der Windows Server Manager ist ein…

3 Wochen ago