Programmiersprache: Microsoft forscht an sicherer C-Erweiterung
Wegen einiger Besonderheiten der Programmiersprache haben manche in C geschriebene Programme immer wieder typische Probleme, die schnell zu Sicherheitslücken werden können. Dazu gehören der fehlerhafte Umgang mit Zeigern und der Zugriff auf Daten außerhalb ihrer eigentlichen Grenzen. Microsoft erforscht deshalb eine Erweiterung der Sprache C(öffnet im neuen Fenster), dank der diese Fehler vermieden werden sollen.
In einer vorläufigen Spezifikation (PDF(öffnet im neuen Fenster)), die das Projekt mit dem Namen Checked C erstellt, werden dazu einige Erweiterungen zu der Sprache C eingeführt, die es ermöglichen sollen, Bounds Checking für Zeiger und Arrays durchzuführen. Das heißt, es wird überprüft, ob sich die Zeiger und Operationen auf dem Array innerhalb festgelegter Grenzen bewegen. Anders als etwa bei Java geschieht dies nicht automatisch, sondern muss explizit deklariert werden.
Der Programmcode wird dabei meist statisch geprüft, das heißt, bereits während des Kompilierens. Das Team von Microsoft ist sich über die damit verbundenen theoretischen Grenzen im Klaren und erklärt, die aufgestellten Regeln umfassten bewusst nur einen stark limitierten Bereich und seien damit inkomplett. Ebenso schützt Checked C nicht vor bestimmten weiteren Fehlerkategorien von C-Programmen, wie dem Freigeben von Speicher, der noch in Benutzung ist, oder Data Races.
Erweiterung zu Clang und LLVM
Beim Erstellen der Regeln ist das Team eigenen Angaben zufolge schrittweise vorgegangen und hat einen Teil des Quellcodes von OpenSSL den neuen Regeln entsprechend umgeschrieben. Dafür seien etwa 11.000 Zeilen Code verteilt auf über 160 Dateien angepasst worden. Die praktische Umsetzung der Spezifikation von Checked C erfolgt durch Anpassungen an die Compiler-Werkzeugsammlung LLVM sowie dessen C-Frontend Clang.
Sowohl die Spezifikation(öffnet im neuen Fenster) als auch die Änderungen an LLVM(öffnet im neuen Fenster) und Clang(öffnet im neuen Fenster) finden sich auf Github. Neben Microsoft sind an den Arbeiten Forscher der University of Maryland beteiligt, ebenso haben Forscher von Samsung und der Cornell-University an dem Projekt mitgewirkt.
- Anzeige Hier geht es zum Handbuch für Softwareentwickler bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.



