Startseite » Softwareentwicklung – Behörden drängen zu sicheren Programmiersprachen

Softwareentwicklung – Behörden drängen zu sicheren Programmiersprachen

by Daniel Rottländer

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.

Das könnte Ihnen auch gefallen