Compiler: Windows soll komplett initialisierten Stack bekommen

Nicht initialisierter Speicher ist ein typisches Sicherheitsproblem von C und C++. Microsoft will dies für das gesamte Windows-System lösen.

Artikel veröffentlicht am ,
Windows 10 soll einen Schutz gegen eine ganze Klasse von Sicherheitslücken bekommen.
Windows 10 soll einen Schutz gegen eine ganze Klasse von Sicherheitslücken bekommen. (Bild: REUTERS/Shannon Stapleton)

Microsoft will mittelfristig sämtliche Stack-Variablen in seinem Windows-Betriebssystem automatisch beim Kompilieren initialisieren. Das schreibt das dafür zuständige Team im Blog von Microsofts Security Response Center. Sind die Arbeiten erfolgreich, kann der Windows-Hersteller gleich eine ganze Klasse von Sicherheitslücken automatisch verhindern.

Das zugrunde liegende Problem ist, dass es die Programmiersprachen C und C++ nicht forcieren, Variablen bei der Deklaration zu initialisieren. Das heißt, ihnen werden unter Umständen keine Werte zugewiesen. Das ist jedoch nicht definiertes Verhalten und kann etwa dazu führen, dass geschützte Inhalte von Speicherbereichen versehentlich offengelegt werden oder dass die Speicherbereiche direkt genutzt werden. Beides kann zu Sicherheitslücken führen.

In dem Blogbeitrag schreibt Microsoft selbst, dass in den Jahren 2017 und 2018 nicht initialisierter Speicher die Ursache für 5 bis 10 Prozent der von Microsoft verteilten CVE-Nummern für Sicherheitslücken gewesen sei. Als mögliche Gegenmaßnahmen zählt das Team eine statische Analyse, Fuzzing, Code-Überprüfungen oder eben die automatische Initialisierung auf.

Letzteres nennt Microsoft Initall, wobei bisher noch nicht in allen Fällen wirklich Stack-Variablen initialisiert werden, sondern nur in einigen ausgesuchten Fällen wie im Kernel-Code oder in der Virtualisierung Hyper-V. Der Grund dafür ist die teilweise schlechte Leistung der Technik. So habe das Team in ersten Tests mit verschiedenen Metriken Leistungseinbußen von bis zu 10 Prozent verzeichnet. Man habe darüber hinaus einige Probleme beheben müssen, die in Verbindung mit Initall aufgetaucht seien, etwa bei der Speicherverwaltung.

Dem Blogeintrag zufolge konnte das Team bereits einige Sicherheitslücken mit der Technik verhindern, zumindest auf den unterstützten Systemen. Wohl auch deshalb will Microsoft Initall künftig in noch größerem Umfang als bisher einsetzen. Das Team geht außerdem davon aus, dass Microsoft langfristig kein System mehr unterstützen wird, auf dem Initall nicht eingesetzt wird. Die beschriebene Fehlerklasse sollte damit nicht mehr zu Sicherheitslücken führen.

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


rtlgrmpf 15. Mai 2020

Jo, aber "Default-Initialisierung" kann aber eben auch "keine Initialisierung" bedeuten.

Das Rockt 15. Mai 2020

Ja, der Overhead ist extrem hoch. Das kann leicht schon mal 20.000 Takte kosten wenn...

pythoneer 14. Mai 2020

Ja, die gibt es. Eine die man in diesem Zusammenhang besonders hervorheben kann ist Rust...



Aktuell auf der Startseite von Golem.de
KI im Programmierertest
Kann GPT-4 wirklich Code schreiben?

GPT-4 kann gut einfachen Code schreiben. Meine Tests mit schwierigeren Pfadfindungs- und Kollisionsalgorithmen hat es nicht bestanden. Und statt das einzugestehen, hat es lieber geraten.
Ein Erfahrungsbericht von Tyler Glaiel

KI im Programmierertest: Kann GPT-4 wirklich Code schreiben?
Artikel
  1. Nachfolger von CS GO: Counter-Strike 2 ist geleakt
    Nachfolger von CS GO
    Counter-Strike 2 ist geleakt

    Eigentlich steht CS 2 bisher nur ausgewählten Personen zur Verfügung. Eine davon hat die Spieldateien aber offenbar ins Internet hochgeladen.

  2. Hollywood-Autoren: KI soll Drehbücher schreiben dürfen
    Hollywood-Autoren
    KI soll Drehbücher schreiben dürfen

    Die Writers Guild of America hat vorgeschlagen, das Schreiben von Drehbüchern durch KI zuzulassen - solange dies keine Auswirkungen auf die Vergütung der Autoren hat.

  3. Code-Hoster: Github veröffentlicht privaten SSH-Schlüssel
    Code-Hoster
    Github veröffentlicht privaten SSH-Schlüssel

    Millionen von Entwicklern könnten bald MITM-Angriffen ausgesetzt sein, denn Github muss kurzfristig seinen SSH-Host-Key austauschen.

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 • Cyberport Jubiläums-Deals • MindStar: Gigabyte RTX 4080 OC 1.229€ • Nur noch heute: 38GB Allnet-Flat 12,99€/M. • NBB Black Weeks • Powercolor RX 7900 XTX 1.099€ • Crucial SSD 1TB/2TB (PS5) bis -48% • Amazon Smart TVs ab 189€ • Nintendo Switch + Spiel + Goodie 288€ • PS5 + RE4 569€ [Werbung]
    •  /