Programmiersprache: Microsoft forscht an sicherer C-Erweiterung

Einige Änderungen an Syntax, Compiler und Laufzeitumgebung sollen C-Programme vor typischen Fehlern der Programmiersprache schützen. Microsoft erforscht diese Technik gemeinsam mit Universitäten in einem Open-Source-Projekt.

Artikel veröffentlicht am ,
Die Forschungsabteilung von Microsoft sucht nach Wegen, C abzusichern.
Die Forschungsabteilung von Microsoft sucht nach Wegen, C abzusichern. (Bild: flickr.com, janitors/CC-BY 2.0)

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, dank der diese Fehler vermieden werden sollen.

In einer vorläufigen Spezifikation (PDF), 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 als auch die Änderungen an LLVM und Clang 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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
Halluzination
ChatGPT erfindet Gerichtsakten

Ein Anwalt wollte sich von ChatGPT bei der Recherche unterstützen lassen - das Ergebnis ist eine Blamage.

Halluzination: ChatGPT erfindet Gerichtsakten
Artikel
  1. Forschung: KI findet Antibiotikum gegen multirestistentes Bakterium
    Forschung
    KI findet Antibiotikum gegen multirestistentes Bakterium

    Forscher zeigen, dass die Hoffnungen in KI bei der Entwicklung von Medikamenten berechtigt sind. Ihre Entwicklung soll deutlich schneller werden.

  2. Mikromechanik: Zotac bringt ersten PC mit fast lautlosem MEMS-Lüfter
    Mikromechanik
    Zotac bringt ersten PC mit fast lautlosem MEMS-Lüfter

    Dank Mikromechanik soll Frores Airjet kleiner und leiser sein als Lüfter. Der erste PC damit wird aber recht teuer.

  3. Blue Byte: Im Bann der ersten Siedler
    Blue Byte
    Im Bann der ersten Siedler

    Vor 30 Jahren wuselten die ersten Siedler über den Bildschirm. Golem.de hat den Aufbauspiel-Klassiker von Blue Byte neu ausprobiert.
    Von Andreas Altenheimer

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • Microsoft Xbox Wireless Controller 40,70€ • Lexar Play 1 TB 99,60€ • DAMN!-Deals mit AMD-Bundle-Aktion • Crucial P5 Plus 1 TB 72€ • MSI RX 7600 299€ • Inno3D RTX 4070 679€ • MindStar: ASRock RX 6800 XT Phantom OC 579€, PowerColor RX 6800 Fighter 489€ • Logitech bis -46% [Werbung]
    •  /