Datenschutz & Sicherheit
C# 16: Microsoft plant strengere Regeln für unsicheren Code
Microsoft will die Speichersicherheit in C# verbessern. Dazu überarbeitet das .NET-Team das bisherige unsafe-Modell mit dem Ziel, unsichere Operationen sichtbarer und überprüfbarer zu machen, was Speicherfehlern und damit auch Sicherheitslücken vorbeugen soll. Live gehen sollen die Änderungen mit C# 16, das voraussichtlich Ende 2027 erscheint.
Weiterlesen nach der Anzeige
KI-Coding begünstigt Speicherfehler
Das bisherige unsafe-Modell ist so alt wie das 2002 erschienene C# 1.0. Änderungsbedarf bestehe nun aber unter anderem wegen der hohen Geschwindigkeit KI-gestützter Softwareproduktion, denn die skaliere schneller als die menschliche Überprüfung, was zu mehr Speicherfehlern führen könne. Das schreibt .NET-Produktmanager Richard Lander in einem ausführlichen Blogpost.
Da viele Sicherheitslücken auf Speicherfehler zurückgehen, empfehlen internationale Sicherheitsbehörden schon seit Längerem, speichersichere Programmiersprachen in der kommerziellen Softwareentwicklung zu nutzen, wobei auch Rust explizit genannt wird.
Kein Versteckspiel mehr
Unsicheren Code blockiert C# bereits standardmäßig, doch das neue Sicherheitsmodell soll einen deutlich größeren Bereich abdecken. Dafür hat sich das .NET-Team von Rust inspirieren lassen und will Rusts Konzept der Sichtbarkeit und Weitergabe von Unsicherheit sowie dessen Syntax für C# übernehmen.
Weiterlesen nach der Anzeige
Das neu definierte Schlüsselwort unsafe greift künftig auf Member-Ebene statt auf Typ-Ebene, also dort, wo ein konkreter unsicherer Speicherzugriff stattfindet, etwa in einer bestimmten Methode oder Eigenschaft.
Des Weiteren gelten Pointer‑Typen nicht mehr automatisch als unsicher, sondern erst dann, wenn sie auf den Speicherinhalt zugreifen. Das soll verhindern, dass Sicherheitsregeln und ‑annahmen versteckt oder stillschweigend vorausgesetzt werden. Nun sollen sie für Entwicklerinnen und Entwickler klarer erkennbar und nachprüfbar sein, so Richard Lander.
Für .NET 11 und C# 15 plant Microsoft eine Opt-in-Vorschau des neuen unsafe-Modells. Die endgültige Version soll vermutlich Ende 2027 mit C# 16 und .NET 12 kommen. Um die Nutzung des neuen Sicherheitsmodells zu fördern, könnte es auf NuGet.org, dem Paket-Repository für .NET, künftig spezielle Badges für entsprechende Bibliotheken von Package‑Maintainern geben.
(mro)